summaryrefslogtreecommitdiff
path: root/repo/xf86-video-qxl
diff options
context:
space:
mode:
Diffstat (limited to 'repo/xf86-video-qxl')
-rw-r--r--repo/xf86-video-qxl/buildfix.patch101
-rw-r--r--repo/xf86-video-qxl/convert-xspice-python3.patch154
-rw-r--r--repo/xf86-video-qxl/xf86-video-qxl.xibuild27
3 files changed, 282 insertions, 0 deletions
diff --git a/repo/xf86-video-qxl/buildfix.patch b/repo/xf86-video-qxl/buildfix.patch
new file mode 100644
index 0000000..d1a8d7e
--- /dev/null
+++ b/repo/xf86-video-qxl/buildfix.patch
@@ -0,0 +1,101 @@
+From 4b083ede3c4a827a84295ff223e34ee3c2e581b2 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Zolt=C3=A1n=20B=C3=B6sz=C3=B6rm=C3=A9nyi?=
+ <zboszor@gmail.com>
+Date: Sat, 28 Aug 2021 15:38:40 +0200
+Subject: [PATCH] Fix a build error with Xorg master
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Use xf86ReturnOptValBool() in get_bool_option() instead of
+options[option_index].value.bool to fix a compiler error with
+current Xorg xserver master branch.
+
+Also use xf86GetOptValInteger() in get_int_option() and
+xf86GetOptValString() in get_str_option() for consistency.
+
+The change causes a slight performance drop during option parsing
+because the passed-in index_value is no longer used as an index
+into the options array.
+
+Instead, it's used as a token now for the standard option getter
+functions which works since the index_value to the get_*_option()
+functions are identical to the value of options[n].token in the
+passed-in OptionInfoRec array.
+
+Also rename "int option_index" to "int token" for clarity in all
+three functions.
+
+Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
+---
+ src/qxl_option_helpers.c | 13 +++++++------
+ src/qxl_option_helpers.h | 6 +++---
+ 2 files changed, 10 insertions(+), 9 deletions(-)
+
+diff --git a/src/qxl_option_helpers.c b/src/qxl_option_helpers.c
+index 2aba677..7707b7c 100644
+--- a/src/qxl_option_helpers.c
++++ b/src/qxl_option_helpers.c
+@@ -10,31 +10,32 @@
+
+ #include "qxl_option_helpers.h"
+
+-int get_int_option(OptionInfoPtr options, int option_index,
++int get_int_option(OptionInfoPtr options, int token,
+ const char *env_name)
+ {
++ int value;
+ if (env_name && getenv(env_name)) {
+ return atoi(getenv(env_name));
+ }
+- return options[option_index].value.num;
++ return xf86GetOptValInteger(options, token, &value) ? value : 0;
+ }
+
+-const char *get_str_option(OptionInfoPtr options, int option_index,
++const char *get_str_option(OptionInfoPtr options, int token,
+ const char *env_name)
+ {
+ if (getenv(env_name)) {
+ return getenv(env_name);
+ }
+- return options[option_index].value.str;
++ return xf86GetOptValString(options, token);
+ }
+
+-int get_bool_option(OptionInfoPtr options, int option_index,
++int get_bool_option(OptionInfoPtr options, int token,
+ const char *env_name)
+ {
+ const char* value = getenv(env_name);
+
+ if (!value) {
+- return options[option_index].value.bool;
++ return xf86ReturnOptValBool(options, token, FALSE);
+ }
+ if (strcmp(value, "0") == 0 ||
+ strcasecmp(value, "off") == 0 ||
+diff --git a/src/qxl_option_helpers.h b/src/qxl_option_helpers.h
+index 7c54c72..66d0a17 100644
+--- a/src/qxl_option_helpers.h
++++ b/src/qxl_option_helpers.h
+@@ -4,13 +4,13 @@
+ #include <xf86Crtc.h>
+ #include <xf86Opt.h>
+
+-int get_int_option(OptionInfoPtr options, int option_index,
++int get_int_option(OptionInfoPtr options, int token,
+ const char *env_name);
+
+-const char *get_str_option(OptionInfoPtr options, int option_index,
++const char *get_str_option(OptionInfoPtr options, int token,
+ const char *env_name);
+
+-int get_bool_option(OptionInfoPtr options, int option_index,
++int get_bool_option(OptionInfoPtr options, int token,
+ const char *env_name);
+
+ #endif // OPTION_HELPERS_H
+--
+GitLab
+
diff --git a/repo/xf86-video-qxl/convert-xspice-python3.patch b/repo/xf86-video-qxl/convert-xspice-python3.patch
new file mode 100644
index 0000000..145d3e3
--- /dev/null
+++ b/repo/xf86-video-qxl/convert-xspice-python3.patch
@@ -0,0 +1,154 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Christophe Fergeau <cfergeau@redhat.com>
+Date: Wed, 8 Feb 2017 15:23:56 +0100
+Subject: [PATCH] Xspice: Use print("") instead of print ""
+
+This allows Xspice to run when using python3 instead of python2
+---
+ scripts/Xspice | 16 ++++++++--------
+ 1 file changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/scripts/Xspice b/scripts/Xspice
+index ada99d1..30d10fa 100755
+--- a/scripts/Xspice
++++ b/scripts/Xspice
+@@ -34,7 +34,7 @@ def which(x):
+ candidate = os.path.join(p, x)
+ if os.path.exists(candidate):
+ return candidate
+- print 'Warning: failed to find executable %s' % x
++ print('Warning: failed to find executable %s' % x)
+ return None
+
+ if 'XSPICE_ENABLE_GDB' in os.environ:
+@@ -128,10 +128,10 @@ args, xorg_args = parser.parse_known_args(sys.argv[1:])
+ def agents_new_enough(args):
+ for f in [args.vdagent_exec, args.vdagentd_exec]:
+ if not f:
+- print 'please specify path to vdagent/vdagentd executables'
++ print('please specify path to vdagent/vdagentd executables')
+ return False
+ if not os.path.exists(f):
+- print 'error: file not found ', f
++ print('error: file not found ', f)
+ return False
+
+ for f in [args.vdagent_exec, args.vdagentd_exec]:
+@@ -169,11 +169,11 @@ def tls_files(args):
+ # and it isn't supplied spice will still abort, and Xorg with it.
+ for key, filename in tls_files(args).items():
+ if not os.path.exists(filename):
+- print "missing %s - %s does not exist" % (key, filename)
++ print("missing %s - %s does not exist" % (key, filename))
+ sys.exit(1)
+
+ def error(msg, exit_code=1):
+- print "Xspice: %s" % msg
++ print("Xspice: %s" % msg)
+ sys.exit(exit_code)
+
+ if not args.xorg:
+@@ -319,7 +319,7 @@ for arg in xorg_args:
+ if arg.startswith(":"):
+ display = arg
+ if not display:
+- print "Error: missing display on line (i.e. :3)"
++ print("Error: missing display on line (i.e. :3)")
+ raise SystemExit
+ os.environ ['DISPLAY'] = display
+
+@@ -343,7 +343,7 @@ time.sleep(2)
+
+ retpid,rc = os.waitpid(xorg.pid, os.WNOHANG)
+ if retpid != 0:
+- print "Error: X server is not running"
++ print("Error: X server is not running")
+ else:
+ if args.vdagent_enabled and args.vdagent_launch:
+ # XXX use systemd --user for this?
+@@ -361,4 +361,4 @@ else:
+ xorg.wait()
+ except KeyboardInterrupt:
+ # Catch Ctrl-C as that is the common way of ending this script
+- print "Keyboard Interrupt"
++ print("Keyboard Interrupt")
+
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Christophe Fergeau <cfergeau@redhat.com>
+Date: Wed, 8 Feb 2017 17:07:39 +0100
+Subject: [PATCH] Xspice: Remove extra space before assignment
+
+---
+ scripts/Xspice | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/scripts/Xspice b/scripts/Xspice
+index 30d10fa..41fd80c 100755
+--- a/scripts/Xspice
++++ b/scripts/Xspice
+@@ -211,7 +211,7 @@ signal.signal(signal.SIGTERM, cleanup)
+ atexit.register(cleanup)
+
+ if args.auto:
+- temp_dir = tempfile.mkdtemp(prefix="Xspice-")
++ temp_dir = tempfile.mkdtemp(prefix="Xspice-")
+ cleanup_dirs.append(temp_dir)
+
+ args.config = temp_dir + "/xorg.conf"
+@@ -275,7 +275,7 @@ if args.vdagent_enabled:
+ os.unlink(f)
+
+ if not temp_dir:
+- temp_dir = tempfile.mkdtemp(prefix="Xspice-")
++ temp_dir = tempfile.mkdtemp(prefix="Xspice-")
+ cleanup_dirs.append(temp_dir)
+
+ # Auto generate temporary files for vdagent
+
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Christophe Fergeau <cfergeau@redhat.com>
+Date: Wed, 8 Feb 2017 17:07:56 +0100
+Subject: [PATCH] Xspice: Fix Python3 str() vs bytes() confusion
+
+With python3, without universal_newlines=True, Popen().stdout.read()
+will return a byte array, while find(str) expects to operate on a
+string.
+I've checked that this still works with python2 as well.
+---
+ scripts/Xspice | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/scripts/Xspice b/scripts/Xspice
+index 41fd80c..927dcb1 100755
+--- a/scripts/Xspice
++++ b/scripts/Xspice
+@@ -135,7 +135,7 @@ def agents_new_enough(args):
+ return False
+
+ for f in [args.vdagent_exec, args.vdagentd_exec]:
+- if Popen(args=[f, '-h'], stdout=PIPE).stdout.read().find('-S') == -1:
++ if Popen(args=[f, '-h'], stdout=PIPE, universal_newlines=True).stdout.read().find('-S') == -1:
+ return False
+ return True
+
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Christophe Fergeau <cfergeau@redhat.com>
+Date: Thu, 17 May 2018 15:31:05 +0200
+Subject: [PATCH] Xspice: Adjust shebang to explicitly mention python3
+
+---
+ scripts/Xspice | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/scripts/Xspice b/scripts/Xspice
+index 927dcb1..78d0794 100755
+--- a/scripts/Xspice
++++ b/scripts/Xspice
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/python3
+
+ """
+ Xspice
+
+
diff --git a/repo/xf86-video-qxl/xf86-video-qxl.xibuild b/repo/xf86-video-qxl/xf86-video-qxl.xibuild
new file mode 100644
index 0000000..f7fd090
--- /dev/null
+++ b/repo/xf86-video-qxl/xf86-video-qxl.xibuild
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+MAKEDEPS="make spice-protocol"
+DEPS="xorg-server"
+
+DESC="X.org qxl video driver"
+
+PKG_VER=0.1.5
+SOURCE=https://www.x.org/pub/individual/driver/xf86-video-qxl-$PKG_VER.tar.bz2
+ADDITIONAL="
+ buildfix.patch
+ convert-xspice-python3.patch
+"
+
+prepare () {
+ apply_patches
+}
+
+build () {
+ ./configure $XORG_CONFIG
+ make
+}
+
+
+package () {
+ make DESTDIR=$PKG_DEST install
+}