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]
