mirror of
https://github.com/dguglielmi/sunny-overlay.git
synced 2025-12-06 13:52:40 +01:00
x11-drivers/xf86-video-qxl: remove from overlay
This commit is contained in:
@@ -1,17 +0,0 @@
|
|||||||
AUX xf86-video-qxl-0.1.5-correct-a-long-standing-led-state-bug-in-xspice.patch 1497 BLAKE2B b62207b2675f9c7de950bdd8e81a0fc80623a15dd32411965c0f61d1b64914bc7a0e935eef565b4179c2eb25a1f56d35f2066a212b1ed755de06c240712b913a SHA512 64acbefcb476c64906997434f8ca38bf80e8d3565efd5b4266f1e2793578d0874e389e422dec243842ea89a3486dfa05cddcf7ee54052f7485c61f9dc8b215a6
|
|
||||||
AUX xf86-video-qxl-0.1.5-make-output-name-numbering-1-based.patch 1686 BLAKE2B 89d1c5178737eb86020e17e187b593be7cf808b0ab04d02f093a728cfbfbc2b19cac6f321f7c5a53da03d784caac08165f3a903c99e90fdc02d01a1781ebb4d1 SHA512 33264146fa6b904bbd03c1b740c2f186d5577726ad113a2b96a4126680eeb69bf88acf9f5fbbae8ab795c47279e272df71d010a70e0bde4cdf25f7b505fc5cd3
|
|
||||||
AUX xf86-video-qxl-0.1.5-make-output-names-match-modesetting-driver.patch 1902 BLAKE2B 9bd8f8b66554bfc1b2e5c2cd2fafcde29da0d9ddb0cde71333ba9b2ff89837c2888451b0acd00a6ffb7efa83fc81d3514e85be4b5c84bb7dcbd8083ada9d6a1a SHA512 b2b640e92bdff24a4ae64f4703928711492803b118481e8cc4836aa511e672884f969c57dcffc50bb1d5448e1bc5452890a6a25c5a560dcf37ba138ba29652d3
|
|
||||||
AUX xf86-video-qxl-0.1.5-modesetting-validate-the-atom-for-enum-properties.patch 1159 BLAKE2B 1c642bbb745286f2add32de55b1ec54c6b20f5098252e7554364e41c3d3a3b317a1058c0e3732e938cc8d2f3a70a60e6f1e2fceefd7ce2b055dcf0f1df713d93 SHA512 11cbfc2a616a8eda85f8d81d6a8e06641cffeedc12af9c6567dcb17f743814bf1ac812b5a0b8fc578474050dd42d65369e84c231812affcac0e0f76e173414a3
|
|
||||||
AUX xf86-video-qxl-0.1.5-qxl-call-provider-init.patch 842 BLAKE2B 484bcf33461bd12080b3c886178a84be2a6fd5705d6f3979e9a5434a5b62886cbfb859a656938095ba468335686e4248b0c75d7ec2d0c3cffde07940f080273c SHA512 d2e06fe500b1f60c2af91e1525e3b79c54ddd14f3a4b1112edd2cc183f89791ec7196ba6a95e7ef4916df14337aec0377cda625f411aad8c9bf509997b956491
|
|
||||||
AUX xf86-video-qxl-0.1.5-qxl-include-only-the-dpms-headers-we-need.patch 1314 BLAKE2B f1b31d98bea1bd07270e3ea89ff79529377909950c41112c0bab75debbc5a99e2e894134b1ae711e92b47fcf10095fa978c34f12d64c713bfdb750d284419755 SHA512 935fe680545d8777005fc27f926567e3f62410402ac8c1aa7a6cc7bacd19c5305d779ea2db35a3fc69d0743485d6b17427886d286b5ff5c19ff4697d3965ed72
|
|
||||||
AUX xf86-video-qxl-0.1.5-qxl-initialize-prev-field-while-dup-surface-list.patch 1753 BLAKE2B cf6d4858644ff1c1cb1c2ac77915b0343428b3b5ead7331003296ac4e7e383197e4768725564802eaa5eda6e47802981f776bfde0d066cdb3659b14433a61130 SHA512 e9d967d7bd4106fe4716ea0cf08a17d9ae49341cd4e4f1d08091560d9aacab92fc60c739215aeccb035a6ec0c0370171ae0576e9b8a97e71dc24849264e6b0cf
|
|
||||||
AUX xf86-video-qxl-0.1.5-xspice-adjust-shebang-to-explicitly-mention-python3.patch 489 BLAKE2B 366b628bbe31a1e9f8bc8c23d59bbe407a03313843ea88556510ad4f7a6f8ff870aae7d170c2d40a61b359c136b82055aa2df9a96e85631c359fbf26658e3df2 SHA512 803b32d2f5208fa8c8a3b19a15efc7a7100d60ff785035239147771b19484f6af23395ec3083b7662b1c4b463d2f94bc4ddab5e1fa1290687d405b33f5aa27d6
|
|
||||||
AUX xf86-video-qxl-0.1.5-xspice-fix-python3-str-vs-bytes-confusion.patch 972 BLAKE2B 0d48046084a4ba9d308c4ae2843905a01ac92c2652e3b1c26d3206d270fb7dd75d5ac85c070530e1b4ec69d3d8ccc5d2ee8d59f0cc3ab7c6c1e9452af10340bc SHA512 4a850b955558362e40be4e5076de9f2f4c79366de4cfff10ec0087ac1a8a06e316ff59fea2113a8ece5d7655ad25e7d667d964c1ae89e406dc2e06081482691d
|
|
||||||
AUX xf86-video-qxl-0.1.5-xspice-remove-extra-space-before-assignment.patch 995 BLAKE2B 7f35517440451d28f9d3e35351304fd115a2c65b81de987efb69bae937e0732846f3ad53351627463a68f501d78a1c310e97c3a8b79af1446333a675329b3b12 SHA512 17ad91adb5700bc6b1908083b0e5a1646e726415c0fc0dfca994a92ebdbec7f0140ed2274354ea8e0775148810bd3e22a9afc0c7ccf7c5f687583f48e2e8e8ec
|
|
||||||
AUX xf86-video-qxl-0.1.5-xspice-use-print-instead-of-print.patch 2648 BLAKE2B ae4ba15afd77deeecadb7463593c78e1a72c50ef8e7b197876c3adaa5eeb0282cf7e5cfd96939e564b400c11d2b7a1afa1a850529541955cb64bebc20e779795 SHA512 5b9dd8921d418105f5b764faaaf262121a971baa74578a98cc725233fda30530aa9b3074b9975b3817f67cbd0c0b1b2f7b3ae9906b18572d893ce9d41560d8b6
|
|
||||||
AUX xf86-video-qxl-avoid-crashing-xserver-on-previous-active-vt-when-shutting-down-this-xserver.patch 1670 BLAKE2B 9166cca4add57335b2ca7c1414731b6eea24e6eeb7d34aa282e3bbe7e0b6e34600697776bd6f1738ebb647ee76b4d2296e472bd9668a3dc8b6b6b36c9ce722a5 SHA512 b6b5db8d6d7051ea84416f957a4d9307ecfab3d31c0a9c99b065fed1544c5a8e966fb1d89e9a6f1da638e555a8eb4ee35baaa13fbc1a21864246e88088ccf412
|
|
||||||
AUX xf86-video-qxl-kms-call-leavevt-on-shutdown.patch 861 BLAKE2B 86edd415a7a3bda1a189127f431807d8fb2dd670fe66714330082fa5c3520daf51e8c252832a79ffdf706c79e7c3c9619dc820c7df06b56d6e702b0edc8e6d42 SHA512 1ac5fd877b8677a0642346aeb115ed7b642071e2a335407de094d7987a5f899c948f22194bdf7cd702b20edba8c63011b61f16fcc27746f969baa8beb8364c44
|
|
||||||
AUX xf86-video-qxl-worst-hack-of-all-time-to-qxl-driver.patch 1854 BLAKE2B 2db33a6e491390544601107cfa3d6077c194510facde6523121fbd4f4feaf99b55ef81da02d9cb21779412edca56b179307ea6300999f273147cad1eef17659f SHA512 68d01dcc6963bbe26ba5cb2a6ba464ec01c26eda6ce564303b723fcf77797a32123aa203ec6f5cea137d16c41b4bee250deda2275094b64e411c07a4587c2cfe
|
|
||||||
DIST xf86-video-qxl-0.1.5.tar.bz2 508266 BLAKE2B ca0fd43830a393d9bb1f5a6ba306f26e07a0b90233fa44f3fbe7a5f21026f1bd6960254db9cd75d947b3c42f6cc8cd3b7cfd71afc2c0a74bd84c60eafcf7e150 SHA512 7510b2d037b3e978df6063b29e2406f3d1270695a239f29fdaec9b1dc65a30ab10cb959f15eb336f78e93aa708d41c64c5ea43803958feffc64542229605b782
|
|
||||||
EBUILD xf86-video-qxl-0.1.5.ebuild 1832 BLAKE2B 66305dd2d675ce3118f3a83dbd1325e0be503becc0bcad63af15fd53c12389bc55c367f6f29b62ec50c7c2f7c0c48978bbafc24c91dc1e874c793af87ae135f2 SHA512 5423e403efac90890d25206a2e98c1db4ba70cc8d8624b499133dde700385f3d89c9acbcce054bb803a9decfd92af7480644117775112fddd7e1424b14339aae
|
|
||||||
MISC metadata.xml 292 BLAKE2B def2312773a7e6872be5d2de2184f3bbdd74caaa32bd0a8c1a85955f11e4a56a7a045431fb582eb121c5fbd5aa3f9d59a137af4973870c08c012abd7d45cdf72 SHA512 d09afd5c8c1c5180f73d6b482e84904cd015f8c302a076e059caa504cfd0029049e75a9f70aff5d4cbf1c36cfd8afdd1c4751ad78bd9e21d6aee6c8e574f8078
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
From 922ec516beaae0c0735bbd46d470908f243e3605 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jeremy White <jwhite@codeweavers.com>
|
|
||||||
Date: Fri, 5 Apr 2019 09:38:31 -0500
|
|
||||||
Subject: [PATCH] Correct a long standing led state bug in XSpice.
|
|
||||||
|
|
||||||
The CtrlProc for our keyboard driver incorrectly mapped
|
|
||||||
the device private to a SpiceKbd* intead of to a InputInfoPtr.
|
|
||||||
|
|
||||||
That resulted in led state being written into the driver name
|
|
||||||
for our driver structure, instead of into the led state.
|
|
||||||
|
|
||||||
That, in turn, led to a cool bug where if you pressed caps lock,
|
|
||||||
the two second sync timer in the spice server would cause it to
|
|
||||||
attempt to correct the state by pressing caps lock to get the
|
|
||||||
states to match. Since the states will never match, the caps
|
|
||||||
lock effectively cycles on and off every two seconds.
|
|
||||||
|
|
||||||
Signed-off-by: Jeremy White <jwhite@codeweavers.com>
|
|
||||||
Acked-by: Victor Toso <victortoso@redhat.com>
|
|
||||||
---
|
|
||||||
src/spiceqxl_inputs.c | 4 +++-
|
|
||||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/spiceqxl_inputs.c b/src/spiceqxl_inputs.c
|
|
||||||
index b39eeae..5625309 100644
|
|
||||||
--- a/src/spiceqxl_inputs.c
|
|
||||||
+++ b/src/spiceqxl_inputs.c
|
|
||||||
@@ -138,9 +138,11 @@ static void xspice_keyboard_control(DeviceIntPtr device, KeybdCtrl *ctrl)
|
|
||||||
};
|
|
||||||
|
|
||||||
XSpiceKbd *kbd;
|
|
||||||
+ InputInfoPtr pInfo;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
- kbd = device->public.devicePrivate;
|
|
||||||
+ pInfo = device->public.devicePrivate;
|
|
||||||
+ kbd = pInfo->private;
|
|
||||||
kbd->ledstate = 0;
|
|
||||||
for (i = 0; i < ArrayLength(bits); i++) {
|
|
||||||
if (ctrl->leds & bits[i].xbit) {
|
|
||||||
--
|
|
||||||
2.24.1
|
|
||||||
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
From 505a8bb0cd82e2a50fcf18ed4647788adacef6ee Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jonathon Jongsma <jjongsma@redhat.com>
|
|
||||||
Date: Mon, 12 Nov 2018 14:06:13 -0600
|
|
||||||
Subject: [PATCH] Make output name numbering 1-based
|
|
||||||
|
|
||||||
The QXL driver names its outputs starting at 0 (e.g. Virtual-0,
|
|
||||||
Virtual-1, etc). This code was presumably copy/pasted from a different
|
|
||||||
driver, and is not necessary for the QXL driver. Other drivers simply
|
|
||||||
use the kernel connector_type_id which starts at 1. For example, the
|
|
||||||
modesetting driver changed from 0-based names to 1-based names for the
|
|
||||||
same reason in xserver commit 139e36dd.
|
|
||||||
|
|
||||||
This will help to make it easier to identify which xrandr outputs belong
|
|
||||||
to which drm connector without requiring as many driver-specific
|
|
||||||
special-cases.
|
|
||||||
|
|
||||||
This change might effect custom xorg configurations that references a
|
|
||||||
specific output name. But the same change was made in modesetting driver
|
|
||||||
despite that possibility.
|
|
||||||
|
|
||||||
Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
|
|
||||||
Acked-by: Frediano Ziglio <fziglio@redhat.com>
|
|
||||||
---
|
|
||||||
src/qxl_drmmode.c | 3 +--
|
|
||||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/qxl_drmmode.c b/src/qxl_drmmode.c
|
|
||||||
index a2f84b1..a814859 100644
|
|
||||||
--- a/src/qxl_drmmode.c
|
|
||||||
+++ b/src/qxl_drmmode.c
|
|
||||||
@@ -765,8 +765,7 @@ drmmode_output_init(ScrnInfoPtr pScrn, drmmode_ptr drmmode, int num)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- /* need to do smart conversion here for compat with non-kms ATI driver */
|
|
||||||
- snprintf(name, 32, "%s-%d", output_names[koutput->connector_type], koutput->connector_type_id - 1);
|
|
||||||
+ snprintf(name, 32, "%s-%d", output_names[koutput->connector_type], koutput->connector_type_id);
|
|
||||||
|
|
||||||
|
|
||||||
output = xf86OutputCreate (pScrn, &drmmode_output_funcs, name);
|
|
||||||
--
|
|
||||||
2.24.1
|
|
||||||
|
|
||||||
@@ -1,71 +0,0 @@
|
|||||||
From 64cb597c7f7fa1493aea95aa3656e2cae66728d2 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jonathon Jongsma <jjongsma@redhat.com>
|
|
||||||
Date: Mon, 12 Nov 2018 14:06:14 -0600
|
|
||||||
Subject: [PATCH] Make output names match modesetting driver
|
|
||||||
|
|
||||||
The xrandr output name used by the QXL driver is based on the drm
|
|
||||||
connector type, but the names do not match the kernel names (see
|
|
||||||
/drivers/gpu/drm/drm_connector.c) or the modesetting driver names (see
|
|
||||||
hw/xfree86/drivers/modesetting/drmmode_display.c). Making these more
|
|
||||||
consistent will require less driver-specific special-case code if a user
|
|
||||||
wants to match an xrandr output to a drm connector.
|
|
||||||
|
|
||||||
Note that this patch should not actually change any behavior, since the
|
|
||||||
QXL driver only uses the 'Virtual' connector type, so this is done only
|
|
||||||
for consistency.
|
|
||||||
|
|
||||||
Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
|
|
||||||
Acked-by: Frediano Ziglio <fziglio@redhat.com>
|
|
||||||
---
|
|
||||||
src/qxl_drmmode.c | 35 +++++++++++++++++++----------------
|
|
||||||
1 file changed, 19 insertions(+), 16 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/qxl_drmmode.c b/src/qxl_drmmode.c
|
|
||||||
index a814859..8ebc708 100644
|
|
||||||
--- a/src/qxl_drmmode.c
|
|
||||||
+++ b/src/qxl_drmmode.c
|
|
||||||
@@ -720,22 +720,25 @@ static int subpixel_conv_table[7] = { 0, SubPixelUnknown,
|
|
||||||
SubPixelVerticalBGR,
|
|
||||||
SubPixelNone };
|
|
||||||
|
|
||||||
-const char *output_names[] = { "None",
|
|
||||||
- "VGA",
|
|
||||||
- "DVI",
|
|
||||||
- "DVI",
|
|
||||||
- "DVI",
|
|
||||||
- "Composite",
|
|
||||||
- "S-video",
|
|
||||||
- "LVDS",
|
|
||||||
- "CTV",
|
|
||||||
- "DIN",
|
|
||||||
- "DisplayPort",
|
|
||||||
- "HDMI",
|
|
||||||
- "HDMI",
|
|
||||||
- "TV",
|
|
||||||
- "eDP",
|
|
||||||
- "Virtual"
|
|
||||||
+const char *output_names[] = {
|
|
||||||
+ "None",
|
|
||||||
+ "VGA",
|
|
||||||
+ "DVI-I",
|
|
||||||
+ "DVI-D",
|
|
||||||
+ "DVI-A",
|
|
||||||
+ "Composite",
|
|
||||||
+ "SVIDEO",
|
|
||||||
+ "LVDS",
|
|
||||||
+ "Component",
|
|
||||||
+ "DIN",
|
|
||||||
+ "DP",
|
|
||||||
+ "HDMI",
|
|
||||||
+ "HDMI-B",
|
|
||||||
+ "TV",
|
|
||||||
+ "eDP",
|
|
||||||
+ "Virtual",
|
|
||||||
+ "DSI",
|
|
||||||
+ "DPI",
|
|
||||||
};
|
|
||||||
|
|
||||||
static void
|
|
||||||
--
|
|
||||||
2.24.1
|
|
||||||
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
From 78abd5221f7efd87383aa357590efff083449aa3 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Adam Jackson <ajax@redhat.com>
|
|
||||||
Date: Tue, 13 Jun 2017 09:29:28 -0400
|
|
||||||
Subject: [PATCH] modesetting: Validate the atom for enum properties
|
|
||||||
|
|
||||||
The client could have said anything here, and if what they said doesn't
|
|
||||||
actually name an atom NameForAtom() will return NULL, and strcmp() will
|
|
||||||
be unhappy about that.
|
|
||||||
|
|
||||||
[copied from xserver d4995a3936ae283b9080fdaa0905daa669ebacfc]
|
|
||||||
|
|
||||||
Signed-off-by: Adam Jackson <ajax@redhat.com>
|
|
||||||
---
|
|
||||||
src/qxl_drmmode.c | 3 ++-
|
|
||||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/qxl_drmmode.c b/src/qxl_drmmode.c
|
|
||||||
index 3c288f9..ff164cd 100644
|
|
||||||
--- a/src/qxl_drmmode.c
|
|
||||||
+++ b/src/qxl_drmmode.c
|
|
||||||
@@ -622,7 +622,8 @@ drmmode_output_set_property(xf86OutputPtr output, Atom property,
|
|
||||||
if (value->type != XA_ATOM || value->format != 32 || value->size != 1)
|
|
||||||
return FALSE;
|
|
||||||
memcpy(&atom, value->data, 4);
|
|
||||||
- name = NameForAtom(atom);
|
|
||||||
+ if (!(name = NameForAtom(atom)))
|
|
||||||
+ return FALSE;
|
|
||||||
|
|
||||||
/* search for matching name string, then set its value down */
|
|
||||||
for (j = 0; j < p->mode_prop->count_enums; j++) {
|
|
||||||
--
|
|
||||||
2.24.1
|
|
||||||
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Dave Airlie <airlied@redhat.com>
|
|
||||||
Date: Wed, 8 Mar 2017 10:50:56 +1000
|
|
||||||
Subject: [PATCH] qxl: call provider init
|
|
||||||
|
|
||||||
This prevents crashes when multiple QXL devices are configured in a VM.
|
|
||||||
|
|
||||||
https://bugzilla.redhat.com/show_bug.cgi?id=1428340
|
|
||||||
---
|
|
||||||
src/qxl_drmmode.c | 3 +++
|
|
||||||
1 file changed, 3 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/src/qxl_drmmode.c b/src/qxl_drmmode.c
|
|
||||||
index 3c288f9..41de92f 100644
|
|
||||||
--- a/src/qxl_drmmode.c
|
|
||||||
+++ b/src/qxl_drmmode.c
|
|
||||||
@@ -937,6 +937,9 @@ Bool drmmode_pre_init(ScrnInfoPtr pScrn, drmmode_ptr drmmode, int cpp)
|
|
||||||
for (i = 0; i < drmmode->mode_res->count_connectors; i++)
|
|
||||||
drmmode_output_init(pScrn, drmmode, i);
|
|
||||||
|
|
||||||
+#if XF86_CRTC_VERSION >= 5
|
|
||||||
+ xf86ProviderSetup(pScrn, NULL, "qxl");
|
|
||||||
+#endif
|
|
||||||
xf86InitialConfiguration(pScrn, TRUE);
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
From 52c421c650f8813665b31890df691b31fabc366a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Adam Jackson <ajax@redhat.com>
|
|
||||||
Date: Wed, 5 Feb 2020 12:55:01 -0500
|
|
||||||
Subject: [PATCH] qxl: Include only the dpms headers we need
|
|
||||||
|
|
||||||
dpms.h is provided by libXext, but nothing in our configure.ac is
|
|
||||||
verifying that we have libXext's headers. Fortunately we only need the
|
|
||||||
definitions in dpmsconst.h (which dpms.h included for us), which is in
|
|
||||||
xorgproto and thus implied by having an xserver DDK to build against.
|
|
||||||
|
|
||||||
And we're even trying to include dpmsconst.h when we think we have it,
|
|
||||||
meaning when HAVE_XEXTPROTO_71 is defined, but while many other drivers
|
|
||||||
define that macro in their configure.ac, we for no particularly good
|
|
||||||
reason do not. Oops. But since xextproto is about ten years old by now
|
|
||||||
we can probably just safely include it unconditionally.
|
|
||||||
---
|
|
||||||
src/qxl_drmmode.c | 6 ------
|
|
||||||
1 file changed, 6 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/qxl_drmmode.c b/src/qxl_drmmode.c
|
|
||||||
index 8ebc708..337bbd7 100644
|
|
||||||
--- a/src/qxl_drmmode.c
|
|
||||||
+++ b/src/qxl_drmmode.c
|
|
||||||
@@ -36,13 +36,7 @@
|
|
||||||
#include "qxl_drmmode.h"
|
|
||||||
#include "X11/Xatom.h"
|
|
||||||
#include "xf86DDC.h"
|
|
||||||
-/* DPMS */
|
|
||||||
-#ifdef HAVE_XEXTPROTO_71
|
|
||||||
#include <X11/extensions/dpmsconst.h>
|
|
||||||
-#else
|
|
||||||
-#define DPMS_SERVER
|
|
||||||
-#include <X11/extensions/dpms.h>
|
|
||||||
-#endif
|
|
||||||
#include <cursorstr.h>
|
|
||||||
|
|
||||||
#include "qxl.h"
|
|
||||||
--
|
|
||||||
2.24.1
|
|
||||||
|
|
||||||
@@ -1,53 +0,0 @@
|
|||||||
From cf2254c13497049a8dbc73a3b031f4cd43403ab1 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Victor Toso <me@victortoso.com>
|
|
||||||
Date: Tue, 23 Oct 2018 13:48:58 +0200
|
|
||||||
Subject: [PATCH] qxl: Initialize prev field while dup surface list
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
Otherwise we will can hit a segfault qxl_surface_kill()
|
|
||||||
|
|
||||||
│717 void
|
|
||||||
│718 qxl_surface_kill (qxl_surface_t *surface)
|
|
||||||
│719 {
|
|
||||||
│720 struct evacuated_surface_t *ev = surface->evacuated;
|
|
||||||
│721
|
|
||||||
│722 if (ev)
|
|
||||||
│723 {
|
|
||||||
│724 /* server side surface is already destroyed (via reset), don't
|
|
||||||
│725 * resend a destroy. Just mark surface as not to be recreated */
|
|
||||||
│726 ev->pixmap = NULL;│
|
|
||||||
│727 if (ev->image)│
|
|
||||||
│728 pixman_image_unref (ev->image);
|
|
||||||
│729 if (ev->next)
|
|
||||||
│730 ev->next->prev = ev->prev;
|
|
||||||
│731 if (ev->prev)
|
|
||||||
>│732 ev->prev->next = ev->next;
|
|
||||||
│733 free(ev);
|
|
||||||
│734 surface->evacuated = NULL;
|
|
||||||
│735 return;
|
|
||||||
│736 }
|
|
||||||
|
|
||||||
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1641793
|
|
||||||
|
|
||||||
Signed-off-by: Victor Toso <victortoso@redhat.com>
|
|
||||||
---
|
|
||||||
src/qxl_surface_ums.c | 1 +
|
|
||||||
1 file changed, 1 insertion(+)
|
|
||||||
|
|
||||||
diff --git a/src/qxl_surface_ums.c b/src/qxl_surface_ums.c
|
|
||||||
index 2c16ede..19cbd36 100644
|
|
||||||
--- a/src/qxl_surface_ums.c
|
|
||||||
+++ b/src/qxl_surface_ums.c
|
|
||||||
@@ -792,6 +792,7 @@ qxl_surface_cache_evacuate_all (surface_cache_t *cache)
|
|
||||||
|
|
||||||
unlink_surface (s);
|
|
||||||
|
|
||||||
+ evacuated->prev = NULL;
|
|
||||||
evacuated->next = evacuated_surfaces;
|
|
||||||
if (evacuated_surfaces)
|
|
||||||
evacuated_surfaces->prev = evacuated;
|
|
||||||
--
|
|
||||||
2.24.1
|
|
||||||
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
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
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
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
|
|
||||||
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
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
|
|
||||||
@@ -1,74 +0,0 @@
|
|||||||
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")
|
|
||||||
@@ -1,48 +0,0 @@
|
|||||||
From 542fa8305a2e48956add10df8c13d348713aee95 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Oliver Henshaw <oliver.henshaw@gmail.com>
|
|
||||||
Date: Tue, 29 Nov 2016 15:42:06 +0000
|
|
||||||
Subject: [PATCH] Avoid crashing xserver on previous active VT when shutting
|
|
||||||
down this xserver
|
|
||||||
|
|
||||||
Need to relinquish the DRM master before the xserver calls VT_SETMODE with
|
|
||||||
VT.mode=VT_AUTO. Otherwise no other process may claim the drm master until the
|
|
||||||
xserver process exits. This can cause a crash if xf86CloseConsole switches to
|
|
||||||
the VT that was active when it was started, and a xserver on the old active VT
|
|
||||||
tries to call drmSetMaster.
|
|
||||||
|
|
||||||
(Cargo cult drmDropMaster call from qxl_enter_vt_kms and qxl_leave_vt_kms.
|
|
||||||
|
|
||||||
I don't think there are potential problems from the driver assuming the xserver
|
|
||||||
has ownership of the drm master after qxl_close_screen_kms, but I don't know
|
|
||||||
the code at all. Possibly something needs to be done to make sure no more DRM
|
|
||||||
events are dispatched after this.
|
|
||||||
|
|
||||||
So please look at this with a critical eye.
|
|
||||||
|
|
||||||
The "#ifdef XF86_PDEV_SERVER_FD" code path is completely untested.)
|
|
||||||
---
|
|
||||||
src/qxl_kms.c | 9 +++++++++
|
|
||||||
1 file changed, 9 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/src/qxl_kms.c b/src/qxl_kms.c
|
|
||||||
index c31c62d..5fc27ba 100644
|
|
||||||
--- a/src/qxl_kms.c
|
|
||||||
+++ b/src/qxl_kms.c
|
|
||||||
@@ -106,6 +106,15 @@ qxl_close_screen_kms (CLOSE_SCREEN_ARGS_DECL)
|
|
||||||
Bool result;
|
|
||||||
|
|
||||||
qxl_drmmode_uevent_fini(pScrn, &qxl->drmmode);
|
|
||||||
+
|
|
||||||
+#ifdef XF86_PDEV_SERVER_FD
|
|
||||||
+ if (!(qxl->platform_dev &&
|
|
||||||
+ (qxl->platform_dev->flags & XF86_PDEV_SERVER_FD)))
|
|
||||||
+#endif
|
|
||||||
+ {
|
|
||||||
+ drmDropMaster(qxl->drm_fd);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
pScreen->CloseScreen = qxl->close_screen;
|
|
||||||
|
|
||||||
result = pScreen->CloseScreen (CLOSE_SCREEN_ARGS);
|
|
||||||
--
|
|
||||||
2.6.6
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
From 0f9e801c04f31b0b173ec22725d08122ecbfaea6 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Ray Strode <rstrode@localhost.localdomain>
|
|
||||||
Date: Wed, 3 Oct 2018 09:00:40 -0400
|
|
||||||
Subject: [PATCH] kms: call LeaveVT on shutdown
|
|
||||||
|
|
||||||
It's important that LeaveVT is called on shutdown, since
|
|
||||||
the X server will leave the current vt on shutdown.
|
|
||||||
|
|
||||||
This commit adds the required call, and fixes some confusion
|
|
||||||
when one X server is starting at around the same time another
|
|
||||||
X server is shutting down.
|
|
||||||
---
|
|
||||||
src/qxl_kms.c | 3 +++
|
|
||||||
1 file changed, 3 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/src/qxl_kms.c b/src/qxl_kms.c
|
|
||||||
index 47d7a34..b599908 100644
|
|
||||||
--- a/src/qxl_kms.c
|
|
||||||
+++ b/src/qxl_kms.c
|
|
||||||
@@ -132,6 +132,9 @@ qxl_close_screen_kms (CLOSE_SCREEN_ARGS_DECL)
|
|
||||||
|
|
||||||
result = pScreen->CloseScreen (CLOSE_SCREEN_ARGS);
|
|
||||||
|
|
||||||
+ if (pScrn->vtSema)
|
|
||||||
+ pScrn->LeaveVT (VT_FUNC_ARGS);
|
|
||||||
+
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
--
|
|
||||||
2.24.1
|
|
||||||
|
|
||||||
@@ -1,57 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Dave Airlie <airlied@redhat.com>
|
|
||||||
Date: Tue, 26 Nov 2013 10:45:26 +1000
|
|
||||||
Subject: [PATCH] worst hack of all time to qxl driver
|
|
||||||
|
|
||||||
---
|
|
||||||
src/qxl_surface.c | 30 ++++++++++++++++++++++++++++--
|
|
||||||
1 file changed, 28 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/qxl_surface.c b/src/qxl_surface.c
|
|
||||||
index 6a7e275..bb59f9e 100644
|
|
||||||
--- a/src/qxl_surface.c
|
|
||||||
+++ b/src/qxl_surface.c
|
|
||||||
@@ -770,8 +770,9 @@ qxl_surface_composite (qxl_surface_t *dest,
|
|
||||||
qxl->bo_funcs->bo_decref(qxl, derefs[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
-Bool
|
|
||||||
-qxl_surface_put_image (qxl_surface_t *dest,
|
|
||||||
+
|
|
||||||
+static Bool
|
|
||||||
+qxl_surface_put_image_for_reals (qxl_surface_t *dest,
|
|
||||||
int x, int y, int width, int height,
|
|
||||||
const char *src, int src_pitch)
|
|
||||||
{
|
|
||||||
@@ -814,6 +815,31 @@ qxl_surface_put_image (qxl_surface_t *dest,
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
+#define HACK_THE_PLANET 1
|
|
||||||
+Bool
|
|
||||||
+qxl_surface_put_image (qxl_surface_t *dest,
|
|
||||||
+ int x, int y, int width, int height,
|
|
||||||
+ const char *src, int src_pitch)
|
|
||||||
+{
|
|
||||||
+#ifdef HACK_THE_PLANET
|
|
||||||
+ Bool use_hack = FALSE;
|
|
||||||
+
|
|
||||||
+ /* worst heuristic ever - should really block the gnome-shell issue for now */
|
|
||||||
+ if (width == pixman_image_get_width(dest->host_image) && height < pixman_image_get_height(dest->host_image))
|
|
||||||
+ use_hack = TRUE;
|
|
||||||
+
|
|
||||||
+ if (use_hack) {
|
|
||||||
+ int gross = rand() % height;
|
|
||||||
+ int h2 = height - gross;
|
|
||||||
+ if (gross > 0)
|
|
||||||
+ qxl_surface_put_image_for_reals(dest, x, y, width, gross, src, src_pitch);
|
|
||||||
+ qxl_surface_put_image_for_reals(dest, x, y + gross, width, h2, src + (gross * src_pitch), src_pitch);
|
|
||||||
+ return TRUE;
|
|
||||||
+ } else
|
|
||||||
+#endif
|
|
||||||
+ return qxl_surface_put_image_for_reals(dest, x, y, width, height, src, src_pitch);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
void
|
|
||||||
qxl_get_formats (int bpp, SpiceSurfaceFmt *format, pixman_format_code_t *pformat)
|
|
||||||
{
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
|
||||||
<pkgmetadata>
|
|
||||||
<maintainer type="project">
|
|
||||||
<email>x11@gentoo.org</email>
|
|
||||||
<name>X11</name>
|
|
||||||
</maintainer>
|
|
||||||
<use>
|
|
||||||
<flag name="xspice">Build the xspice driver</flag>
|
|
||||||
</use>
|
|
||||||
</pkgmetadata>
|
|
||||||
@@ -1,48 +0,0 @@
|
|||||||
# Copyright 2020 Gentoo Foundation
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=7
|
|
||||||
|
|
||||||
PYTHON_COMPAT=( python3_{6,7,8} )
|
|
||||||
inherit python-r1 xorg-3
|
|
||||||
|
|
||||||
DESCRIPTION="QEMU QXL paravirt video driver"
|
|
||||||
|
|
||||||
KEYWORDS="~amd64 ~x86"
|
|
||||||
IUSE="xspice"
|
|
||||||
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
|
|
||||||
|
|
||||||
RDEPEND="
|
|
||||||
xspice? (
|
|
||||||
app-emulation/spice
|
|
||||||
${PYTHON_DEPS}
|
|
||||||
)
|
|
||||||
x11-base/xorg-server[-minimal]
|
|
||||||
>=x11-libs/libdrm-2.4.46"
|
|
||||||
DEPEND="${RDEPEND}
|
|
||||||
>=app-emulation/spice-protocol-0.12.0
|
|
||||||
x11-base/xorg-proto"
|
|
||||||
|
|
||||||
PATCHES=(
|
|
||||||
"${FILESDIR}/${PN}-worst-hack-of-all-time-to-qxl-driver.patch" # From Fedora
|
|
||||||
"${FILESDIR}/${P}-xspice-use-print-instead-of-print.patch" # Python 3 support from master
|
|
||||||
"${FILESDIR}/${P}-xspice-remove-extra-space-before-assignment.patch" # Python 3 support from master
|
|
||||||
"${FILESDIR}/${P}-xspice-fix-python3-str-vs-bytes-confusion.patch" # Python 3 support from master
|
|
||||||
"${FILESDIR}/${P}-xspice-adjust-shebang-to-explicitly-mention-python3.patch" # Python 3 support from master
|
|
||||||
"${FILESDIR}/${P}-modesetting-validate-the-atom-for-enum-properties.patch" # From master
|
|
||||||
"${FILESDIR}/${P}-qxl-call-provider-init.patch" # From master
|
|
||||||
"${FILESDIR}/${P}-make-output-name-numbering-1-based.patch" # From master
|
|
||||||
"${FILESDIR}/${P}-make-output-names-match-modesetting-driver.patch" # From master
|
|
||||||
"${FILESDIR}/${P}-qxl-initialize-prev-field-while-dup-surface-list.patch" # From master
|
|
||||||
"${FILESDIR}/${P}-correct-a-long-standing-led-state-bug-in-xspice.patch" # From master
|
|
||||||
"${FILESDIR}/${P}-qxl-include-only-the-dpms-headers-we-need.patch" # From master
|
|
||||||
"${FILESDIR}/${PN}-avoid-crashing-xserver-on-previous-active-vt-when-shutting-down-this-xserver.patch" # Upstream bug 99102
|
|
||||||
"${FILESDIR}/${PN}-kms-call-leavevt-on-shutdown.patch"
|
|
||||||
)
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
XORG_CONFIGURE_OPTIONS=(
|
|
||||||
$(use_enable xspice)
|
|
||||||
)
|
|
||||||
xorg-3_src_configure
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user