Hello community,

here is the log from the commit of package xf86-video-qxl for openSUSE:Factory 
checked in at 2014-08-01 14:34:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xf86-video-qxl (Old)
 and      /work/SRC/openSUSE:Factory/.xf86-video-qxl.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "xf86-video-qxl"

Changes:
--------
--- /work/SRC/openSUSE:Factory/xf86-video-qxl/xf86-video-qxl.changes    
2014-04-25 16:12:01.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.xf86-video-qxl.new/xf86-video-qxl.changes       
2014-08-01 14:34:15.000000000 +0200
@@ -1,0 +2,11 @@
+Thu Jul 24 13:20:37 UTC 2014 - [email protected]
+
+- Update to version 0.1.2:
+  * Support for server managed fds
+  * Xspice: use playback rate interface if available
+  * Bugs fixed:
+    - 1030531 - drm: restore cursor after resolution change
+    - fix cursor2 support in older kernels
+    - FD 79317 - prevent crash on dual head systems
+
+-------------------------------------------------------------------

Old:
----
  xf86-video-qxl-0.1.1.tar.bz2

New:
----
  xf86-video-qxl-0.1.2.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ xf86-video-qxl.spec ++++++
--- /var/tmp/diff_new_pack.fCJbkV/_old  2014-08-01 14:34:15.000000000 +0200
+++ /var/tmp/diff_new_pack.fCJbkV/_new  2014-08-01 14:34:15.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           xf86-video-qxl
-Version:        0.1.1
+Version:        0.1.2
 Release:        0
 Summary:        QXL virtual GPU video driver for the Xorg X server
 License:        MIT

++++++ xf86-video-qxl-0.1.1.tar.bz2 -> xf86-video-qxl-0.1.2.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-video-qxl-0.1.1/ChangeLog 
new/xf86-video-qxl-0.1.2/ChangeLog
--- old/xf86-video-qxl-0.1.1/ChangeLog  2013-10-20 17:58:20.000000000 +0200
+++ new/xf86-video-qxl-0.1.2/ChangeLog  2014-07-23 16:03:28.000000000 +0200
@@ -1,3 +1,179 @@
+commit 6210f34e3570341e0b6318c3fc2e2cc2cf6e5d82
+Author: Alon Levy <[email protected]>
+Date:   Wed Jul 23 11:21:03 2014 +0300
+
+    Release 0.1.2
+    
+    Signed-off-by: Alon Levy <[email protected]>
+
+commit 76d82060dff80417cdc58de49acd72b9ce91bf4c
+Author: Alon Levy <[email protected]>
+Date:   Mon Jun 9 16:08:13 2014 +0300
+
+    qxl_driver.c: fix compiler warning 'defined but not used' 
qxl_kernel_mode_enabled
+    
+    Signed-off-by: Alon Levy <[email protected]>
+
+commit cf16a40ebde42478a1edd5fbfe841f69b2c9c37f
+Author: Alon Levy <[email protected]>
+Date:   Wed Jun 25 14:53:14 2014 +0300
+
+    qxl_image.c: fix compilation break
+    
+    Since 3d511c30206bd8c9a207c436186a03af0bb02962 Xspice building is broken
+    due to undefined MAX_RELOCS when not building with XF86DRM_MODE.
+
+commit 17e2ee0d904f35d4fe756ca2d9cd100e15663018
+Author: Marc-AndrĂ© Lureau <[email protected]>
+Date:   Wed Jul 2 12:22:46 2014 +0200
+
+    drm: restore cursor after resolution change
+    
+    The Spice server & qemu reset the cursor state when
+    changing resolution. Although X does restore the
+    cursor on framebuffer changes, it doesn't for crtc
+    config. Restoring the cursor here is the simplest
+    way to solve the "invisible cursor" after resolution
+    change bug with DRM driver.
+    
+    https://bugzilla.redhat.com/show_bug.cgi?id=1030531
+
+commit 3d511c30206bd8c9a207c436186a03af0bb02962
+Author: David Mansfield <[email protected]>
+Date:   Tue Jun 3 10:05:42 2014 -0400
+
+    Dynamically adjust chunk size to avoid command buffer overflow.
+    
+    The maximum number of "commands" that can be queued at once is
+    fixed at compile time at MAX_RELOCS. However, during the creation
+    of an image object in qxl_image_create(), the image is split into
+    commands of maximum size 512*512. For a large dual-head system,
+    it is easy to create an image for which the number of chunks will
+    result in an overflow of MAX_RELOCS number of "commands".
+    
+    Identify this scenario and dynamically increase the chunk size to
+    avoid the overflow, and the resulting assert() which crashes Xorg.
+    
+    Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=79317
+    Signed-off-by: David Mansfield <[email protected]>
+
+commit cbe70e99136eca3f1eb00048e98ccad653897dd5
+Author: Hans de Goede <[email protected]>
+Date:   Wed Apr 23 17:50:41 2014 +0200
+
+    Add support for server managed fds
+    
+    Signed-off-by: Hans de Goede <[email protected]>
+
+commit a7115f636bc1054c350b7a6a9557ecb944188596
+Author: Hans de Goede <[email protected]>
+Date:   Wed Apr 23 17:35:24 2014 +0200
+
+    Fix qxl_driver_func to adhere to the API
+    
+    The driverFunc callback MUST check the passed in operand and only return
+    TRUE it if understands it and has handled it. It must NOT blindly assume 
the
+    op is GET_REQUIRED_HW_INTERFACES.
+    
+    While at also always define driverFunc, and welcome qxl to the 21st 
century.
+    
+    Signed-off-by: Hans de Goede <[email protected]>
+
+commit 463084aa8e73fbafb8dc404e2bd458548d04e9dc
+Author: Hans de Goede <[email protected]>
+Date:   Wed Apr 23 17:28:28 2014 +0200
+
+    Add support for XSERVER_PLATFORM_BUS
+    
+    This is a preparation patch for adding support for server managed fds.
+    
+    Signed-off-by: Hans de Goede <[email protected]>
+
+commit 9123b177eeeae53c5faf106eaf6d0f811efd6186
+Author: longguang.yue <[email protected]>
+Date:   Thu Mar 27 00:21:05 2014 +0800
+
+    fix memory leak when alloc uxa
+
+commit 9971a5ce9007c23fffb4221cbff7c125660929bd
+Author: Jeremy White <[email protected]>
+Date:   Mon Mar 31 09:53:24 2014 -0500
+
+    Make use of the new playback rate interface, if available.
+
+commit e543c6ba78d0be27d29a4f50a6641208161556c2
+Author: Dave Airlie <[email protected]>
+Date:   Fri Feb 28 11:59:15 2014 +1000
+
+    qxl: fix set cursor2 support for older kernel
+    
+    On older kernels we were getting -EINVAL not -ENOSYS,
+    so we'd never render the cursor, gnome continuous uses a 3.10
+    kernel.
+    
+    Signed-off-by: Dave Airlie <[email protected]>
+
+commit 9f9709b3dcdf2c8475d67cb42c8765ce17165b8b
+Author: Alon Levy <[email protected]>
+Date:   Sun Oct 27 12:01:46 2013 +0200
+
+    Xspice: add better doc strings for audio & vdagent
+    
+    Signed-off-by: Alon Levy <[email protected]>
+
+commit d6066e77c12f6a6273b7b57c3d3a37df2be9a0b4
+Author: Alon Levy <[email protected]>
+Date:   Sun Oct 27 11:50:28 2013 +0200
+
+    spiceqxl_util.[hc]: add copyright & license headers
+    
+    Signed-off-by: Alon Levy <[email protected]>
+
+commit c1b698baf3a5d653854c69a12f2d3cb76991b406
+Author: Alon Levy <[email protected]>
+Date:   Mon Oct 21 18:26:12 2013 +0300
+
+    Xspice: cleanup vdagent files
+
+commit eb437149e26c995aac780dc8bb67ea41275d0429
+Author: Alon Levy <[email protected]>
+Date:   Mon Oct 21 18:26:02 2013 +0300
+
+    Xspice: fix cleanup when some processes are already dead
+
+commit a778d9da649b16098ab3721f135bd7508bc32167
+Author: Alon Levy <[email protected]>
+Date:   Mon Oct 21 18:25:47 2013 +0300
+
+    Xspice: cleanup non regular files too
+
+commit e1b4022a0d2c598e5d5dead8d770f5e7d0de5a0c
+Author: Alon Levy <[email protected]>
+Date:   Mon Oct 21 18:22:15 2013 +0300
+
+    xspice: chown both files used by vdagent for suid Xorg case
+    
+    When running a suid Xorg mkfifo and bind produce files owned by root.
+    Change the ownership so that the user launched vdagent & vdagentd can
+    write to them. This also makes it easier to cleanup the files from the
+    Xspice process that is not running as root (and is launching both
+    vdagent & vdagentd, hence they are not running as root either).
+    
+    The patch adds two new parameters, uid and gid of the agent used files,
+    namely the virtio unix domain socket and the uinput fifo.
+
+commit 5f23159d86e94d599301581f25a6e13fe3a050b9
+Author: Alon Levy <[email protected]>
+Date:   Mon Oct 21 11:57:43 2013 +0300
+
+    spiceqxl_spice_server: no need to call spice_server_set_noauth twice
+
+commit 1b4c1dd47e7876f85a5e6338f3561e718cb39929
+Author: Alon Levy <[email protected]>
+Date:   Mon Oct 21 11:21:44 2013 +0300
+
+    tests/xspice_util.py: fix hardcoded port
+
 commit 516c07ea582db00aac75133e5bbd8f8647900bd7
 Author: Alon Levy <[email protected]>
 Date:   Sun Oct 20 18:39:14 2013 +0300
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-video-qxl-0.1.1/INSTALL 
new/xf86-video-qxl-0.1.2/INSTALL
--- old/xf86-video-qxl-0.1.1/INSTALL    2013-10-20 17:58:20.000000000 +0200
+++ new/xf86-video-qxl-0.1.2/INSTALL    2014-07-23 16:03:28.000000000 +0200
@@ -0,0 +1,291 @@
+Installation Instructions
+*************************
+
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
+2006, 2007, 2008 Free Software Foundation, Inc.
+
+   This file is free documentation; the Free Software Foundation gives
+unlimited permission to copy, distribute and modify it.
+
+Basic Installation
+==================
+
+   Briefly, the shell commands `./configure; make; make install' should
+configure, build, and install this package.  The following
+more-detailed instructions are generic; see the `README' file for
+instructions specific to this package.
+
+   The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation.  It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions.  Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, and a
+file `config.log' containing compiler output (useful mainly for
+debugging `configure').
+
+   It can also use an optional file (typically called `config.cache'
+and enabled with `--cache-file=config.cache' or simply `-C') that saves
+the results of its tests to speed up reconfiguring.  Caching is
+disabled by default to prevent problems with accidental use of stale
+cache files.
+
+   If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release.  If you are using the cache, and at
+some point `config.cache' contains results you don't want to keep, you
+may remove or edit it.
+
+   The file `configure.ac' (or `configure.in') is used to create
+`configure' by a program called `autoconf'.  You need `configure.ac' if
+you want to change it or regenerate `configure' using a newer version
+of `autoconf'.
+
+The simplest way to compile this package is:
+
+  1. `cd' to the directory containing the package's source code and type
+     `./configure' to configure the package for your system.
+
+     Running `configure' might take a while.  While running, it prints
+     some messages telling which features it is checking for.
+
+  2. Type `make' to compile the package.
+
+  3. Optionally, type `make check' to run any self-tests that come with
+     the package.
+
+  4. Type `make install' to install the programs and any data files and
+     documentation.
+
+  5. You can remove the program binaries and object files from the
+     source code directory by typing `make clean'.  To also remove the
+     files that `configure' created (so you can compile the package for
+     a different kind of computer), type `make distclean'.  There is
+     also a `make maintainer-clean' target, but that is intended mainly
+     for the package's developers.  If you use it, you may have to get
+     all sorts of other programs in order to regenerate files that came
+     with the distribution.
+
+  6. Often, you can also type `make uninstall' to remove the installed
+     files again.
+
+Compilers and Options
+=====================
+
+   Some systems require unusual options for compilation or linking that
+the `configure' script does not know about.  Run `./configure --help'
+for details on some of the pertinent environment variables.
+
+   You can give `configure' initial values for configuration parameters
+by setting variables in the command line or in the environment.  Here
+is an example:
+
+     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
+
+   *Note Defining Variables::, for more details.
+
+Compiling For Multiple Architectures
+====================================
+
+   You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory.  To do this, you can use GNU `make'.  `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script.  `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.
+
+   With a non-GNU `make', it is safer to compile the package for one
+architecture at a time in the source code directory.  After you have
+installed the package for one architecture, use `make distclean' before
+reconfiguring for another architecture.
+
+   On MacOS X 10.5 and later systems, you can create libraries and
+executables that work on multiple system types--known as "fat" or
+"universal" binaries--by specifying multiple `-arch' options to the
+compiler but only a single `-arch' option to the preprocessor.  Like
+this:
+
+     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+                 CPP="gcc -E" CXXCPP="g++ -E"
+
+   This is not guaranteed to produce working output in all cases, you
+may have to build one architecture at a time and combine the results
+using the `lipo' tool if you have problems.
+
+Installation Names
+==================
+
+   By default, `make install' installs the package's commands under
+`/usr/local/bin', include files under `/usr/local/include', etc.  You
+can specify an installation prefix other than `/usr/local' by giving
+`configure' the option `--prefix=PREFIX'.
+
+   You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files.  If you
+pass the option `--exec-prefix=PREFIX' to `configure', the package uses
+PREFIX as the prefix for installing programs and libraries.
+Documentation and other data files still use the regular prefix.
+
+   In addition, if you use an unusual directory layout you can give
+options like `--bindir=DIR' to specify different values for particular
+kinds of files.  Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.
+
+   If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+Optional Features
+=================
+
+   Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System).  The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+   For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+Particular systems
+==================
+
+   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
+CC is not installed, it is recommended to use the following options in
+order to use an ANSI C compiler:
+
+     ./configure CC="cc -Ae"
+
+and if that doesn't work, install pre-built binaries of GCC for HP-UX.
+
+   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
+parse its `<wchar.h>' header file.  The option `-nodtk' can be used as
+a workaround.  If GNU CC is not installed, it is therefore recommended
+to try
+
+     ./configure CC="cc"
+
+and if that doesn't work, try
+
+     ./configure CC="cc -nodtk"
+
+Specifying the System Type
+==========================
+
+   There may be some features `configure' cannot figure out
+automatically, but needs to determine by the type of machine the package
+will run on.  Usually, assuming the package is built to be run on the
+_same_ architectures, `configure' can figure that out, but if it prints
+a message saying it cannot guess the machine type, give it the
+`--build=TYPE' option.  TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name which has the form:
+
+     CPU-COMPANY-SYSTEM
+
+where SYSTEM can have one of these forms:
+
+     OS KERNEL-OS
+
+   See the file `config.sub' for the possible values of each field.  If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the machine type.
+
+   If you are _building_ compiler tools for cross-compiling, you should
+use the option `--target=TYPE' to select the type of system they will
+produce code for.
+
+   If you want to _use_ a cross compiler, that generates code for a
+platform different from the build platform, you should specify the
+"host" platform (i.e., that on which the generated programs will
+eventually be run) with `--host=TYPE'.
+
+Sharing Defaults
+================
+
+   If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists.  Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Defining Variables
+==================
+
+   Variables not defined in a site shell script can be set in the
+environment passed to `configure'.  However, some packages may run
+configure again during the build, and the customized values of these
+variables may be lost.  In order to avoid this problem, you should set
+them in the `configure' command line, using `VAR=value'.  For example:
+
+     ./configure CC=/usr/local2/bin/gcc
+
+causes the specified `gcc' to be used as the C compiler (unless it is
+overridden in the site shell script).
+
+Unfortunately, this technique does not work for `CONFIG_SHELL' due to
+an Autoconf bug.  Until the bug is fixed you can use this workaround:
+
+     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
+
+`configure' Invocation
+======================
+
+   `configure' recognizes the following options to control how it
+operates.
+
+`--help'
+`-h'
+     Print a summary of all of the options to `configure', and exit.
+
+`--help=short'
+`--help=recursive'
+     Print a summary of the options unique to this package's
+     `configure', and exit.  The `short' variant lists options used
+     only in the top level, while the `recursive' variant lists options
+     also present in any nested packages.
+
+`--version'
+`-V'
+     Print the version of Autoconf used to generate the `configure'
+     script, and exit.
+
+`--cache-file=FILE'
+     Enable the cache: use and save the results of the tests in FILE,
+     traditionally `config.cache'.  FILE defaults to `/dev/null' to
+     disable caching.
+
+`--config-cache'
+`-C'
+     Alias for `--cache-file=config.cache'.
+
+`--quiet'
+`--silent'
+`-q'
+     Do not print messages saying which checks are being made.  To
+     suppress all normal output, redirect it to `/dev/null' (any error
+     messages will still be shown).
+
+`--srcdir=DIR'
+     Look for the package's source code in directory DIR.  Usually
+     `configure' can determine that directory automatically.
+
+`--prefix=DIR'
+     Use DIR as the installation prefix.  *Note Installation Names::
+     for more details, including other options available for fine-tuning
+     the installation locations.
+
+`--no-create'
+`-n'
+     Run the configure checks, but stop before creating any output
+     files.
+
+`configure' also accepts some other, not widely useful, options.  Run
+`configure --help' for more details.
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-video-qxl-0.1.1/NEWS 
new/xf86-video-qxl-0.1.2/NEWS
--- old/xf86-video-qxl-0.1.1/NEWS       2013-10-20 16:56:37.000000000 +0200
+++ new/xf86-video-qxl-0.1.2/NEWS       2014-07-23 10:20:50.000000000 +0200
@@ -1,3 +1,13 @@
+Major changes in 0.1.2
+======================
+Support for server managed fds
+Xspice: use playback rate interface if available
+
+Bugs fixed:
+ 1030531 - drm: restore cursor after resolution change
+ fix cursor2 support in older kernels
+ FD 79317 - prevent crash on dual head systems
+
 Major changes in 0.1.1
 ======================
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-video-qxl-0.1.1/aclocal.m4 
new/xf86-video-qxl-0.1.2/aclocal.m4
--- old/xf86-video-qxl-0.1.1/aclocal.m4 2013-10-20 17:56:47.000000000 +0200
+++ new/xf86-video-qxl-0.1.2/aclocal.m4 2014-07-23 10:11:31.000000000 +0200
@@ -1326,7 +1326,7 @@
   rm -rf conftest*
   ;;
 
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
 s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
@@ -1340,7 +1340,10 @@
          x86_64-*linux*)
            LD="${LD-ld} -m elf_i386"
            ;;
-         ppc64-*linux*|powerpc64-*linux*)
+         powerpc64le-*linux*)
+           LD="${LD-ld} -m elf32lppclinux"
+           ;;
+         powerpc64-*linux*)
            LD="${LD-ld} -m elf32ppclinux"
            ;;
          s390x-*linux*)
@@ -1359,7 +1362,10 @@
          x86_64-*linux*)
            LD="${LD-ld} -m elf_x86_64"
            ;;
-         ppc*-*linux*|powerpc*-*linux*)
+         powerpcle-*linux*)
+           LD="${LD-ld} -m elf64lppc"
+           ;;
+         powerpc-*linux*)
            LD="${LD-ld} -m elf64ppc"
            ;;
          s390*-*linux*|s390*-*tpf*)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-video-qxl-0.1.1/configure 
new/xf86-video-qxl-0.1.2/configure
--- old/xf86-video-qxl-0.1.1/configure  2013-10-20 17:56:48.000000000 +0200
+++ new/xf86-video-qxl-0.1.2/configure  2014-07-23 10:11:33.000000000 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for xf86-video-qxl 0.1.1.
+# Generated by GNU Autoconf 2.69 for xf86-video-qxl 0.1.2.
 #
 # Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>.
 #
@@ -591,8 +591,8 @@
 # Identity of this package.
 PACKAGE_NAME='xf86-video-qxl'
 PACKAGE_TARNAME='xf86-video-qxl'
-PACKAGE_VERSION='0.1.1'
-PACKAGE_STRING='xf86-video-qxl 0.1.1'
+PACKAGE_VERSION='0.1.2'
+PACKAGE_STRING='xf86-video-qxl 0.1.2'
 PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg'
 PACKAGE_URL=''
 
@@ -1382,7 +1382,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures xf86-video-qxl 0.1.1 to adapt to many kinds of systems.
+\`configure' configures xf86-video-qxl 0.1.2 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1452,7 +1452,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of xf86-video-qxl 0.1.1:";;
+     short | recursive ) echo "Configuration of xf86-video-qxl 0.1.2:";;
    esac
   cat <<\_ACEOF
 
@@ -1598,7 +1598,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-xf86-video-qxl configure 0.1.1
+xf86-video-qxl configure 0.1.2
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1922,7 +1922,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by xf86-video-qxl $as_me 0.1.1, which was
+It was created by xf86-video-qxl $as_me 0.1.2, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2859,7 +2859,7 @@
 
 # Define the identity of the package.
  PACKAGE='xf86-video-qxl'
- VERSION='0.1.1'
+ VERSION='0.1.2'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -13094,7 +13094,7 @@
   rm -rf conftest*
   ;;
 
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
 s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
@@ -13112,7 +13112,10 @@
          x86_64-*linux*)
            LD="${LD-ld} -m elf_i386"
            ;;
-         ppc64-*linux*|powerpc64-*linux*)
+         powerpc64le-*linux*)
+           LD="${LD-ld} -m elf32lppclinux"
+           ;;
+         powerpc64-*linux*)
            LD="${LD-ld} -m elf32ppclinux"
            ;;
          s390x-*linux*)
@@ -13131,7 +13134,10 @@
          x86_64-*linux*)
            LD="${LD-ld} -m elf_x86_64"
            ;;
-         ppc*-*linux*|powerpc*-*linux*)
+         powerpcle-*linux*)
+           LD="${LD-ld} -m elf64lppc"
+           ;;
+         powerpc-*linux*)
            LD="${LD-ld} -m elf64ppc"
            ;;
          s390*-*linux*|s390*-*tpf*)
@@ -19388,7 +19394,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by xf86-video-qxl $as_me 0.1.1, which was
+This file was extended by xf86-video-qxl $as_me 0.1.2, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -19454,7 +19460,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-xf86-video-qxl config.status 0.1.1
+xf86-video-qxl config.status 0.1.2
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-video-qxl-0.1.1/configure.ac 
new/xf86-video-qxl-0.1.2/configure.ac
--- old/xf86-video-qxl-0.1.1/configure.ac       2013-10-20 17:54:02.000000000 
+0200
+++ new/xf86-video-qxl-0.1.2/configure.ac       2014-07-23 10:11:22.000000000 
+0200
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-video-qxl],
-        [0.1.1],
+        [0.1.2],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         [xf86-video-qxl])
 AC_CONFIG_SRCDIR([Makefile.am])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-video-qxl-0.1.1/scripts/Xspice 
new/xf86-video-qxl-0.1.2/scripts/Xspice
--- old/xf86-video-qxl-0.1.1/scripts/Xspice     2013-10-20 16:53:29.000000000 
+0200
+++ new/xf86-video-qxl-0.1.2/scripts/Xspice     2014-07-23 10:11:07.000000000 
+0200
@@ -85,13 +85,15 @@
                     default='filter', help='filter by default')
 add_boolean('--ipv4-only')
 add_boolean('--ipv6-only')
-parser.add_argument('--vdagent', action='store_true', dest='vdagent_enabled', 
default=False, help='launch vdagent & vdagentd')
-parser.add_argument('--vdagent-virtio-path', default='/tmp/xspice-virtio', 
help='virtio socket path')
-parser.add_argument('--vdagent-uinput-path', default='/tmp/xspice-uinput', 
help='uinput socket path')
-parser.add_argument('--vdagentd-exec', default='spice-vdagentd')
-parser.add_argument('--vdagent-exec', default='spice-vdagent')
-parser.add_argument('--vdagent-no-launch', default=True, action='store_false', 
dest='vdagent_launch')
-parser.add_argument('--audio-fifo-dir', default='')
+parser.add_argument('--vdagent', action='store_true', dest='vdagent_enabled', 
default=False, help='launch vdagent & vdagentd. They provide clipboard & 
resolution automation')
+parser.add_argument('--vdagent-virtio-path', default='/tmp/xspice-virtio', 
help='virtio socket path used by vdagentd')
+parser.add_argument('--vdagent-uinput-path', default='/tmp/xspice-uinput', 
help='uinput socket path used by vdagent')
+parser.add_argument('--vdagentd-exec', help='path to spice-vdagentd (used with 
--vdagent)')
+parser.add_argument('--vdagent-exec', help='path to spice-vdagent (used with 
--vdagent)')
+parser.add_argument('--vdagent-no-launch', default=True, action='store_false', 
dest='vdagent_launch', help='do not launch vdagent & vdagentd, used for 
debugging or if some external script wants to take care of that')
+parser.add_argument('--vdagent-uid', default=str(os.getuid()), help='set 
vdagent user id. changing it makes sense only in conjunction with 
--vdagent-no-launch')
+parser.add_argument('--vdagent-gid', default=str(os.getgid()), help='set 
vdagent group id. changing it makes sense only in conjunction with 
--vdagent-no-launch')
+parser.add_argument('--audio-fifo-dir', default='', help="set fifo directory 
for playback audio. designed to work with PulseAudio's module-pipe-sink")
 
 #TODO
 #Option "SpiceAddr" ""
@@ -157,12 +159,18 @@
 
 def cleanup(*args):
     for f in cleanup_files:
-        if os.path.isfile(f):
+        if os.path.exists(f):
             os.remove(f)
     for p in cleanup_processes:
-        p.kill()
+        try:
+            p.kill()
+        except OSError:
+            pass
     for p in cleanup_processes:
-        p.wait()
+        try:
+            p.wait()
+        except OSError:
+            pass
     del cleanup_processes[:]
 
 def launch(*args, **kw):
@@ -231,7 +239,8 @@
     'tls_ciphers', 'dh_file', 'password', 'image_compression',
     'jpeg_wan_compression', 'zlib_glz_wan_compression',
     'streaming_video', 'deferred_fps', 'exit_on_disconnect',
-    'vdagent_enabled', 'vdagent_virtio_path', 'vdagent_uinput_path']
+    'vdagent_enabled', 'vdagent_virtio_path', 'vdagent_uinput_path',
+    'vdagent_uid', 'vdagent_gid']
 
 for arg in var_args:
     if getattr(args, arg):
@@ -269,6 +278,7 @@
     for f in [vdagentd_uds, args.vdagent_virtio_path, 
args.vdagent_uinput_path]:
         if os.path.exists(f):
             os.unlink(f)
+    cleanup_files.extend([args.vdagent_virtio_path, args.vdagent_uinput_path])
 xorg = launch(executable=args.xorg, args=exec_args + xorg_args)
 time.sleep(2)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-video-qxl-0.1.1/src/Makefile.am 
new/xf86-video-qxl-0.1.2/src/Makefile.am
--- old/xf86-video-qxl-0.1.1/src/Makefile.am    2013-10-20 17:37:47.000000000 
+0200
+++ new/xf86-video-qxl-0.1.2/src/Makefile.am    2013-10-21 17:26:34.000000000 
+0200
@@ -79,6 +79,8 @@
        qxl.h                                   \
        qxl_option_helpers.c                    \
        qxl_option_helpers.h                    \
+       spiceqxl_util.h                                 \
+       spiceqxl_util.c                                 \
        spiceqxl_spice_server.c                 \
        spiceqxl_spice_server.h                 \
        spiceqxl_io_port.c                      \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-video-qxl-0.1.1/src/Makefile.in 
new/xf86-video-qxl-0.1.2/src/Makefile.in
--- old/xf86-video-qxl-0.1.1/src/Makefile.in    2013-10-20 17:56:48.000000000 
+0200
+++ new/xf86-video-qxl-0.1.2/src/Makefile.in    2014-07-23 10:11:34.000000000 
+0200
@@ -175,19 +175,20 @@
 @BUILD_XSPICE_TRUE@spiceqxl_drv_la_DEPENDENCIES = uxa/libuxa.la \
 @BUILD_XSPICE_TRUE@    $(am__DEPENDENCIES_1)
 am__spiceqxl_drv_la_SOURCES_DIST = qxl.h qxl_option_helpers.c \
-       qxl_option_helpers.h spiceqxl_spice_server.c \
-       spiceqxl_spice_server.h spiceqxl_io_port.c spiceqxl_io_port.h \
-       spiceqxl_driver.c spiceqxl_driver.h spiceqxl_main_loop.c \
-       spiceqxl_main_loop.h spiceqxl_display.c spiceqxl_display.h \
-       spiceqxl_vdagent.c spiceqxl_vdagent.h spiceqxl_uinput.c \
-       spiceqxl_uinput.h spiceqxl_audio.c spiceqxl_audio.h \
-       spiceqxl_inputs.c spiceqxl_inputs.h qxl_driver.c qxl_image.c \
-       qxl_surface.c qxl_surface_ums.c qxl_surface.h qxl_ring.c \
-       qxl_mem.c mspace.c mspace.h murmurhash3.c murmurhash3.h \
-       qxl_cursor.c dfps.c dfps.h qxl_uxa.c qxl_ums_mode.c qxl_io.c \
-       compat-api.h
+       qxl_option_helpers.h spiceqxl_util.h spiceqxl_util.c \
+       spiceqxl_spice_server.c spiceqxl_spice_server.h \
+       spiceqxl_io_port.c spiceqxl_io_port.h spiceqxl_driver.c \
+       spiceqxl_driver.h spiceqxl_main_loop.c spiceqxl_main_loop.h \
+       spiceqxl_display.c spiceqxl_display.h spiceqxl_vdagent.c \
+       spiceqxl_vdagent.h spiceqxl_uinput.c spiceqxl_uinput.h \
+       spiceqxl_audio.c spiceqxl_audio.h spiceqxl_inputs.c \
+       spiceqxl_inputs.h qxl_driver.c qxl_image.c qxl_surface.c \
+       qxl_surface_ums.c qxl_surface.h qxl_ring.c qxl_mem.c mspace.c \
+       mspace.h murmurhash3.c murmurhash3.h qxl_cursor.c dfps.c \
+       dfps.h qxl_uxa.c qxl_ums_mode.c qxl_io.c compat-api.h
 @BUILD_XSPICE_TRUE@am_spiceqxl_drv_la_OBJECTS =  \
 @BUILD_XSPICE_TRUE@    spiceqxl_drv_la-qxl_option_helpers.lo \
+@BUILD_XSPICE_TRUE@    spiceqxl_drv_la-spiceqxl_util.lo \
 @BUILD_XSPICE_TRUE@    spiceqxl_drv_la-spiceqxl_spice_server.lo \
 @BUILD_XSPICE_TRUE@    spiceqxl_drv_la-spiceqxl_io_port.lo \
 @BUILD_XSPICE_TRUE@    spiceqxl_drv_la-spiceqxl_driver.lo \
@@ -511,6 +512,8 @@
 @BUILD_XSPICE_TRUE@    qxl.h                                   \
 @BUILD_XSPICE_TRUE@    qxl_option_helpers.c                    \
 @BUILD_XSPICE_TRUE@    qxl_option_helpers.h                    \
+@BUILD_XSPICE_TRUE@    spiceqxl_util.h                                 \
+@BUILD_XSPICE_TRUE@    spiceqxl_util.c                                 \
 @BUILD_XSPICE_TRUE@    spiceqxl_spice_server.c                 \
 @BUILD_XSPICE_TRUE@    spiceqxl_spice_server.h                 \
 @BUILD_XSPICE_TRUE@    spiceqxl_io_port.c                      \
@@ -703,6 +706,7 @@
 @AMDEP_TRUE@@am__include@ 
@am__quote@./$(DEPDIR)/spiceqxl_drv_la-spiceqxl_main_loop.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ 
@am__quote@./$(DEPDIR)/spiceqxl_drv_la-spiceqxl_spice_server.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ 
@am__quote@./$(DEPDIR)/spiceqxl_drv_la-spiceqxl_uinput.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ 
@am__quote@./$(DEPDIR)/spiceqxl_drv_la-spiceqxl_util.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ 
@am__quote@./$(DEPDIR)/spiceqxl_drv_la-spiceqxl_vdagent.Plo@am__quote@
 
 .c.o:
@@ -733,6 +737,13 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) 
$(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC 
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) 
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) 
$(spiceqxl_drv_la_CFLAGS) $(CFLAGS) -c -o spiceqxl_drv_la-qxl_option_helpers.lo 
`test -f 'qxl_option_helpers.c' || echo '$(srcdir)/'`qxl_option_helpers.c
 
+spiceqxl_drv_la-spiceqxl_util.lo: spiceqxl_util.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC 
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) 
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) 
$(spiceqxl_drv_la_CFLAGS) $(CFLAGS) -MT spiceqxl_drv_la-spiceqxl_util.lo -MD 
-MP -MF $(DEPDIR)/spiceqxl_drv_la-spiceqxl_util.Tpo -c -o 
spiceqxl_drv_la-spiceqxl_util.lo `test -f 'spiceqxl_util.c' || echo 
'$(srcdir)/'`spiceqxl_util.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) 
$(DEPDIR)/spiceqxl_drv_la-spiceqxl_util.Tpo 
$(DEPDIR)/spiceqxl_drv_la-spiceqxl_util.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='spiceqxl_util.c' 
object='spiceqxl_drv_la-spiceqxl_util.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) 
$(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC 
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) 
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) 
$(spiceqxl_drv_la_CFLAGS) $(CFLAGS) -c -o spiceqxl_drv_la-spiceqxl_util.lo 
`test -f 'spiceqxl_util.c' || echo '$(srcdir)/'`spiceqxl_util.c
+
 spiceqxl_drv_la-spiceqxl_spice_server.lo: spiceqxl_spice_server.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC 
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) 
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) 
$(spiceqxl_drv_la_CFLAGS) $(CFLAGS) -MT 
spiceqxl_drv_la-spiceqxl_spice_server.lo -MD -MP -MF 
$(DEPDIR)/spiceqxl_drv_la-spiceqxl_spice_server.Tpo -c -o 
spiceqxl_drv_la-spiceqxl_spice_server.lo `test -f 'spiceqxl_spice_server.c' || 
echo '$(srcdir)/'`spiceqxl_spice_server.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) 
$(DEPDIR)/spiceqxl_drv_la-spiceqxl_spice_server.Tpo 
$(DEPDIR)/spiceqxl_drv_la-spiceqxl_spice_server.Plo
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-video-qxl-0.1.1/src/qxl.h 
new/xf86-video-qxl-0.1.2/src/qxl.h
--- old/xf86-video-qxl-0.1.1/src/qxl.h  2013-10-20 16:53:29.000000000 +0200
+++ new/xf86-video-qxl-0.1.2/src/qxl.h  2014-07-23 10:11:07.000000000 +0200
@@ -50,6 +50,9 @@
 #ifdef XSERVER_PCIACCESS
 #include "pciaccess.h"
 #endif
+#ifdef XSERVER_PLATFORM_BUS
+#include "xf86platformBus.h"
+#endif
 #include "fb.h"
 #include "vgaHW.h"
 #endif /* XSPICE */
@@ -66,6 +69,8 @@
 typedef struct xorg_list xorg_list_t;
 #endif
 
+struct xf86_platform_device;
+
 #include "compat-api.h"
 #define hidden _X_HIDDEN
 
@@ -147,6 +152,8 @@
     OPTION_SPICE_VDAGENT_ENABLED,
     OPTION_SPICE_VDAGENT_VIRTIO_PATH,
     OPTION_SPICE_VDAGENT_UINPUT_PATH,
+    OPTION_SPICE_VDAGENT_UID,
+    OPTION_SPICE_VDAGENT_GID,
 #endif
     OPTION_COUNT,
 };
@@ -269,6 +276,7 @@
     pciVideoPtr                        pci;
     PCITAG                     pci_tag;
 #endif
+    struct xf86_platform_device *platform_dev;
     vgaRegRec                   vgaRegs;
 #endif /* XSPICE */
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-video-qxl-0.1.1/src/qxl_driver.c 
new/xf86-video-qxl-0.1.2/src/qxl_driver.c
--- old/xf86-video-qxl-0.1.1/src/qxl_driver.c   2013-10-20 16:53:29.000000000 
+0200
+++ new/xf86-video-qxl-0.1.2/src/qxl_driver.c   2014-07-23 10:11:07.000000000 
+0200
@@ -142,6 +142,10 @@
       "SpiceVdagentVirtioPath",   OPTV_STRING,    {.str = 
spice_vdagent_virtio_path_default}, FALSE},
     { OPTION_SPICE_VDAGENT_UINPUT_PATH,
       "SpiceVdagentUinputPath",   OPTV_STRING,    {.str = 
spice_vdagent_uinput_path_default}, FALSE},
+    { OPTION_SPICE_VDAGENT_UID,
+      "SpiceVdagentUid",          OPTV_INTEGER,    {0}, FALSE},
+    { OPTION_SPICE_VDAGENT_GID,
+      "SpiceVdagentGid",          OPTV_INTEGER,    {0}, FALSE},
 #endif
     
     { -1, NULL, OPTV_NONE, {0}, FALSE }
@@ -745,8 +749,6 @@
        }
     }
     
-    qxl->uxa = uxa_driver_alloc ();
-    
 #ifndef XSPICE
     qxl->io_pages = (void *)((unsigned long)qxl->ram);
     qxl->io_pages_physical = (void *)((unsigned long)qxl->ram_physical);
@@ -1240,7 +1242,7 @@
     pScrn->ValidMode        = NULL;
 }
 
-#ifdef XF86DRM_MODE
+#if defined(XF86DRM_MODE) && !defined(XSPICE)
 static char *
 CreatePCIBusID(const struct pci_device *dev)
 {
@@ -1300,12 +1302,6 @@
     return TRUE;
 }
 
-static Bool qxl_driver_func (ScrnInfoPtr screen_info_ptr, xorgDriverFuncOp 
xorg_driver_func_op, pointer hw_flags)
-{
-    *(xorgHWFlags*)hw_flags = (xorgHWFlags)HW_SKIP_CONSOLE;
-    return TRUE;
-}
-
 #else /* normal, not XSPICE */
 #ifndef XSERVER_LIBPCIACCESS
 static Bool
@@ -1385,8 +1381,66 @@
 #define qxl_probe NULL
 
 #endif
+
+#ifdef XSERVER_PLATFORM_BUS
+static Bool
+qxl_platform_probe(DriverPtr driver, int entity, int flags,
+                   struct xf86_platform_device *dev, intptr_t match_data)
+{
+    qxl_screen_t *qxl;
+    ScrnInfoPtr pScrn;
+    int scrnFlag = 0;
+
+    if (!dev->pdev)
+        return FALSE;
+
+    if (flags & PLATFORM_PROBE_GPU_SCREEN)
+        scrnFlag = XF86_ALLOCATE_GPU_SCREEN;
+
+    pScrn = xf86AllocateScreen(driver, scrnFlag);
+    if (!pScrn)
+       return FALSE;
+
+    if (xf86IsEntitySharable(entity))
+        xf86SetEntityShared(entity);
+
+    xf86AddEntityToScreen(pScrn, entity);
+
+    qxl = pScrn->driverPrivate = xnfcalloc (sizeof (qxl_screen_t), 1);
+    qxl->pci = dev->pdev;
+    qxl->platform_dev = dev;
+
+    qxl_init_scrn (pScrn, qxl_kernel_mode_enabled(pScrn, dev->pdev));
+
+    return TRUE;
+}
+#endif /* XSERVER_PLATFORM_BUS */
+
 #endif /* XSPICE */
 
+static Bool
+qxl_driver_func(ScrnInfoPtr pScrn, xorgDriverFuncOp op, void *data)
+{
+    xorgHWFlags *hw_flags;
+
+    switch (op) {
+    case GET_REQUIRED_HW_INTERFACES:
+        hw_flags = data;
+#ifdef XSPICE
+        *hw_flags = HW_SKIP_CONSOLE;
+#else
+        *hw_flags = HW_IO | HW_MMIO;
+#endif
+        return TRUE;
+#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1,15,99,902,0)
+    case SUPPORTS_SERVER_FDS:
+        return TRUE;
+#endif
+    default:
+        return FALSE;
+    }
+}
+
 static DriverRec qxl_driver = {
     0,
     driver_name,
@@ -1395,15 +1449,23 @@
     qxl_available_options,
     NULL,
     0,
-#ifdef XSPICE
     qxl_driver_func,
+#ifdef XSPICE
+    NULL,
     NULL,
-    NULL
-#else
     NULL,
+#else
 #ifdef XSERVER_LIBPCIACCESS
     qxl_device_match,
-    qxl_pci_probe
+    qxl_pci_probe,
+#else
+    NULL,
+    NULL,
+#endif
+#ifdef XSERVER_PLATFORM_BUS
+    qxl_platform_probe,
+#else
+    NULL,
 #endif
 #endif /* XSPICE */
 };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-video-qxl-0.1.1/src/qxl_drmmode.c 
new/xf86-video-qxl-0.1.2/src/qxl_drmmode.c
--- old/xf86-video-qxl-0.1.1/src/qxl_drmmode.c  2013-10-20 16:53:29.000000000 
+0200
+++ new/xf86-video-qxl-0.1.2/src/qxl_drmmode.c  2014-07-07 16:32:58.000000000 
+0200
@@ -47,6 +47,9 @@
 
 #include "qxl.h"
 #include "qxl_surface.h"
+
+static void drmmode_show_cursor (xf86CrtcPtr crtc);
+
 static void
 drmmode_ConvertFromKMode(ScrnInfoPtr   scrn,
                     drmModeModeInfo *kmode,
@@ -248,6 +251,10 @@
                crtc->active = TRUE;
 #endif
 
+        CursorPtr cursor = xf86_config->cursor;
+        if (cursor)
+            drmmode_show_cursor(crtc);
+
        return ret;
 }
 
@@ -279,7 +286,7 @@
                CursorPtr cursor = xf86_config->cursor;
                int ret;
                ret = drmModeSetCursor2(drmmode->fd, 
drmmode_crtc->mode_crtc->crtc_id, handle, 64, 64, cursor->bits->xhot, 
cursor->bits->yhot);
-               if (ret == -ENOSYS)
+               if (ret == -EINVAL)
                        use_set_cursor2 = FALSE;
                else
                        return;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-video-qxl-0.1.1/src/qxl_image.c 
new/xf86-video-qxl-0.1.2/src/qxl_image.c
--- old/xf86-video-qxl-0.1.1/src/qxl_image.c    2013-10-20 16:53:29.000000000 
+0200
+++ new/xf86-video-qxl-0.1.2/src/qxl_image.c    2014-07-09 15:46:01.000000000 
+0200
@@ -140,6 +140,7 @@
        struct qxl_bo *image_bo;
        int dest_stride = (width * Bpp + 3) & (~3);
        int h;
+       int chunk_size;
 
        data += y * stride + x * Bpp;
 
@@ -155,9 +156,25 @@
 
        hash = 0;
        h = height;
+
+       chunk_size = MAX (512 * 512, dest_stride);
+
+#ifdef XF86DRM_MODE
+       /* ensure we will not create too many pieces and overflow
+        * the command buffer (MAX_RELOCS).  if so, increase the chunk_size.
+        * each loop creates at least 2 cmd buffer entries, and
+        * we have to leave room when we're done.
+        */
+       if (height / (chunk_size / dest_stride) > (MAX_RELOCS / 4)) {
+               chunk_size = height / (MAX_RELOCS/4) * dest_stride;
+#if 0
+               ErrorF ("adjusted chunk_size to %d\n", chunk_size);
+#endif
+       }
+#endif
+
        while (h)
        {
-           int chunk_size = MAX (512 * 512, dest_stride);
            int n_lines = MIN ((chunk_size / dest_stride), h);
            struct qxl_bo *bo = qxl->bo_funcs->bo_alloc (qxl, sizeof 
(QXLDataChunk) + n_lines * dest_stride, "image data");
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-video-qxl-0.1.1/src/qxl_kms.c 
new/xf86-video-qxl-0.1.2/src/qxl_kms.c
--- old/xf86-video-qxl-0.1.1/src/qxl_kms.c      2013-10-20 16:53:29.000000000 
+0200
+++ new/xf86-video-qxl-0.1.2/src/qxl_kms.c      2014-07-23 10:11:07.000000000 
+0200
@@ -46,6 +46,17 @@
     drmSetVersion sv;
     int err;
 
+#if defined(ODEV_ATTRIB_FD)
+    if (qxl->platform_dev) {
+        qxl->drm_fd = xf86_get_platform_device_int_attrib(qxl->platform_dev,
+                                                          ODEV_ATTRIB_FD, -1);
+        if (qxl->drm_fd != -1) {
+            qxl->drmmode.fd = qxl->drm_fd;
+            return TRUE;
+        }
+    }
+#endif
+
 #if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1,9,99,901,0)
     XNFasprintf(&busid, "pci:%04x:%02x:%02x.%d",
                 dev->domain, dev->bus, dev->dev, dev->func);
@@ -218,11 +229,17 @@
     qxl_screen_t *qxl = pScrn->driverPrivate;
     int ret;
 
-    ret = drmSetMaster(qxl->drm_fd);
-    if (ret) {
-       xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
-                  "drmSetMaster failed: %s\n",
-                  strerror(errno));
+#ifdef XF86_PDEV_SERVER_FD
+    if (!(qxl->platform_dev &&
+            (qxl->platform_dev->flags & XF86_PDEV_SERVER_FD)))
+#endif
+    {
+        ret = drmSetMaster(qxl->drm_fd);
+        if (ret) {
+            xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+                       "drmSetMaster failed: %s\n",
+                       strerror(errno));
+        }
     }
 
     if (!xf86SetDesiredModes(pScrn))
@@ -241,6 +258,11 @@
     xf86_hide_cursors (pScrn);
     //    pScrn->EnableDisableFBAccess (XF86_SCRN_ARG (pScrn), FALSE);
 
+#ifdef XF86_PDEV_SERVER_FD
+    if (qxl->platform_dev && (qxl->platform_dev->flags & XF86_PDEV_SERVER_FD))
+        return;
+#endif
+
     ret = drmDropMaster(qxl->drm_fd);
     if (ret) {
        xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-video-qxl-0.1.1/src/spiceqxl_audio.c 
new/xf86-video-qxl-0.1.2/src/spiceqxl_audio.c
--- old/xf86-video-qxl-0.1.1/src/spiceqxl_audio.c       2013-10-20 
16:53:29.000000000 +0200
+++ new/xf86-video-qxl-0.1.2/src/spiceqxl_audio.c       2014-06-09 
13:32:18.000000000 +0200
@@ -193,12 +193,17 @@
     qxl_screen_t *qxl = p;
     int i;
     struct audio_data data;
+    int freq = SPICE_INTERFACE_PLAYBACK_FREQ;
 
     for (i = 0; i < MAX_FIFOS; ++i)
         data.fifo_fds[i] = -1;
 
     data.valid_bytes = data.fed = 0;
-    data.period_frames = SPICE_INTERFACE_PLAYBACK_FREQ * PERIOD_MS / 1000;
+#if SPICE_INTERFACE_PLAYBACK_MAJOR > 1 || SPICE_INTERFACE_PLAYBACK_MINOR >= 3
+    freq = spice_server_get_best_playback_rate(&qxl->playback_sin);
+#endif
+    data.period_frames = freq * PERIOD_MS / 1000;
+
 
     data.frame_bytes = sizeof(int16_t) * SPICE_INTERFACE_PLAYBACK_CHAN;
 
@@ -330,11 +335,17 @@
     if (ret < 0)
         return errno;
 
+#if SPICE_INTERFACE_PLAYBACK_MAJOR > 1 || SPICE_INTERFACE_PLAYBACK_MINOR >= 3
+    spice_server_set_playback_rate(&qxl->playback_sin,
+            spice_server_get_best_playback_rate(&qxl->playback_sin));
+#else
     /* disable CELT */
     ret = spice_server_set_playback_compression(qxl->spice_server, 0);
     if (ret < 0)
         return errno;
 
+#endif
+
     ret = pthread_create(&qxl->audio_thread, NULL, &audio_thread_main, qxl);
     if (ret < 0)
         return errno;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-video-qxl-0.1.1/src/spiceqxl_spice_server.c 
new/xf86-video-qxl-0.1.2/src/spiceqxl_spice_server.c
--- old/xf86-video-qxl-0.1.1/src/spiceqxl_spice_server.c        2013-10-20 
16:53:29.000000000 +0200
+++ new/xf86-video-qxl-0.1.2/src/spiceqxl_spice_server.c        2013-10-21 
10:57:15.000000000 +0200
@@ -254,9 +254,6 @@
         exit(1);
 #endif
     }
-    if (disable_ticketing) {
-        spice_server_set_noauth(spice_server);
-    }
 
 #if SPICE_SERVER_VERSION >= 0x000801
     /* we still don't actually support agent in xspice, but this
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-video-qxl-0.1.1/src/spiceqxl_uinput.c 
new/xf86-video-qxl-0.1.2/src/spiceqxl_uinput.c
--- old/xf86-video-qxl-0.1.1/src/spiceqxl_uinput.c      2013-10-20 
16:53:29.000000000 +0200
+++ new/xf86-video-qxl-0.1.2/src/spiceqxl_uinput.c      2013-10-21 
17:26:34.000000000 +0200
@@ -13,6 +13,7 @@
 #include <linux/uinput.h>
 
 #include "qxl_option_helpers.h"
+#include "spiceqxl_util.h"
 #include "spiceqxl_inputs.h"
 
 #include "spiceqxl_uinput.h"
@@ -113,6 +114,7 @@
                 uinput_filename, strerror(errno));
         return;
     }
+    spiceqxl_chown_agent_file(qxl, uinput_filename);
     uinput_fd = open(uinput_filename, O_RDONLY | O_NONBLOCK, 0666);
     if (uinput_fd == -1) {
         fprintf(stderr, "spice: failed creating uinput file %s: %s\n",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-video-qxl-0.1.1/src/spiceqxl_util.c 
new/xf86-video-qxl-0.1.2/src/spiceqxl_util.c
--- old/xf86-video-qxl-0.1.1/src/spiceqxl_util.c        1970-01-01 
01:00:00.000000000 +0100
+++ new/xf86-video-qxl-0.1.2/src/spiceqxl_util.c        2013-10-27 
10:50:02.000000000 +0100
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2013 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.
+ */
+
+#include "config.h"
+
+#include <unistd.h>
+#include <string.h>
+#include <errno.h>
+
+#include "qxl_option_helpers.h"
+#include "spiceqxl_util.h"
+
+void spiceqxl_chown_agent_file(qxl_screen_t *qxl, const char *filename)
+{
+    int uid, gid;
+
+    uid = get_int_option(qxl->options, OPTION_SPICE_VDAGENT_UID, 
"XSPICE_VDAGENT_UID");
+    gid = get_int_option(qxl->options, OPTION_SPICE_VDAGENT_GID, 
"XSPICE_VDAGENT_GID");
+    if (uid && gid) {
+        if (chown(filename, uid, gid) != 0) {
+            fprintf(stderr, "spice: failed to chain ownership of '%s' to 
%d/%d: %s\n",
+                    filename, uid, gid, strerror(errno));
+        }
+    }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-video-qxl-0.1.1/src/spiceqxl_util.h 
new/xf86-video-qxl-0.1.2/src/spiceqxl_util.h
--- old/xf86-video-qxl-0.1.1/src/spiceqxl_util.h        1970-01-01 
01:00:00.000000000 +0100
+++ new/xf86-video-qxl-0.1.2/src/spiceqxl_util.h        2013-10-27 
10:50:05.000000000 +0100
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2013 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.
+ */
+
+#ifndef SPICEQXL_UTIL_H
+#define SPICEQXL_UTIL_H
+
+#include "qxl.h"
+
+void spiceqxl_chown_agent_file(qxl_screen_t *qxl, const char *filename);
+
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-video-qxl-0.1.1/src/spiceqxl_vdagent.c 
new/xf86-video-qxl-0.1.2/src/spiceqxl_vdagent.c
--- old/xf86-video-qxl-0.1.1/src/spiceqxl_vdagent.c     2013-10-20 
16:53:29.000000000 +0200
+++ new/xf86-video-qxl-0.1.2/src/spiceqxl_vdagent.c     2013-10-21 
17:26:34.000000000 +0200
@@ -10,6 +10,7 @@
 
 #include "qxl_option_helpers.h"
 
+#include "spiceqxl_util.h"
 #include "spiceqxl_uinput.h"
 #include "spiceqxl_vdagent.h"
 
@@ -156,6 +157,7 @@
                 vdagent_virtio_filename, strerror(errno));
         return;
     }
+    spiceqxl_chown_agent_file(qxl, vdagent_virtio_filename);
     c = listen(virtio_fd, 1);
     if (c != 0) {
         fprintf(stderr, "error listening to unix domain socket: %s\n", 
strerror(errno));

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to