Sync from SUSE:SLFO:Main xorg-x11-server revision e8970d70e50c71600d0eb16a125e56fa
This commit is contained in:
parent
7dad0f4ee8
commit
79854a90fd
@ -1,45 +0,0 @@
|
||||
From 96798fc1967491c80a4d0c8d9e0a80586cb2152b Mon Sep 17 00:00:00 2001
|
||||
From: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
Date: Fri, 22 Mar 2024 18:51:45 -0700
|
||||
Subject: [PATCH 1/4] Xi: ProcXIGetSelectedEvents needs to use unswapped length
|
||||
to send reply
|
||||
|
||||
CVE-2024-31080
|
||||
|
||||
Reported-by: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=69762
|
||||
Fixes: 53e821ab4 ("Xi: add request processing for XIGetSelectedEvents.")
|
||||
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1463>
|
||||
---
|
||||
Xi/xiselectev.c | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Xi/xiselectev.c b/Xi/xiselectev.c
|
||||
index edcb8a0d3..ac1494987 100644
|
||||
--- a/Xi/xiselectev.c
|
||||
+++ b/Xi/xiselectev.c
|
||||
@@ -349,6 +349,7 @@ ProcXIGetSelectedEvents(ClientPtr client)
|
||||
InputClientsPtr others = NULL;
|
||||
xXIEventMask *evmask = NULL;
|
||||
DeviceIntPtr dev;
|
||||
+ uint32_t length;
|
||||
|
||||
REQUEST(xXIGetSelectedEventsReq);
|
||||
REQUEST_SIZE_MATCH(xXIGetSelectedEventsReq);
|
||||
@@ -418,10 +419,12 @@ ProcXIGetSelectedEvents(ClientPtr client)
|
||||
}
|
||||
}
|
||||
|
||||
+ /* save the value before SRepXIGetSelectedEvents swaps it */
|
||||
+ length = reply.length;
|
||||
WriteReplyToClient(client, sizeof(xXIGetSelectedEventsReply), &reply);
|
||||
|
||||
if (reply.num_masks)
|
||||
- WriteToClient(client, reply.length * 4, buffer);
|
||||
+ WriteToClient(client, length * 4, buffer);
|
||||
|
||||
free(buffer);
|
||||
return Success;
|
||||
--
|
||||
2.35.3
|
||||
|
@ -1,43 +0,0 @@
|
||||
From 3e77295f888c67fc7645db5d0c00926a29ffecee Mon Sep 17 00:00:00 2001
|
||||
From: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
Date: Fri, 22 Mar 2024 18:56:27 -0700
|
||||
Subject: [PATCH 2/4] Xi: ProcXIPassiveGrabDevice needs to use unswapped length
|
||||
to send reply
|
||||
|
||||
CVE-2024-31081
|
||||
|
||||
Fixes: d220d6907 ("Xi: add GrabButton and GrabKeysym code.")
|
||||
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1463>
|
||||
---
|
||||
Xi/xipassivegrab.c | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Xi/xipassivegrab.c b/Xi/xipassivegrab.c
|
||||
index c9ac2f855..896233bec 100644
|
||||
--- a/Xi/xipassivegrab.c
|
||||
+++ b/Xi/xipassivegrab.c
|
||||
@@ -93,6 +93,7 @@ ProcXIPassiveGrabDevice(ClientPtr client)
|
||||
GrabParameters param;
|
||||
void *tmp;
|
||||
int mask_len;
|
||||
+ uint32_t length;
|
||||
|
||||
REQUEST(xXIPassiveGrabDeviceReq);
|
||||
REQUEST_FIXED_SIZE(xXIPassiveGrabDeviceReq,
|
||||
@@ -247,9 +248,11 @@ ProcXIPassiveGrabDevice(ClientPtr client)
|
||||
}
|
||||
}
|
||||
|
||||
+ /* save the value before SRepXIPassiveGrabDevice swaps it */
|
||||
+ length = rep.length;
|
||||
WriteReplyToClient(client, sizeof(rep), &rep);
|
||||
if (rep.num_modifiers)
|
||||
- WriteToClient(client, rep.length * 4, modifiers_failed);
|
||||
+ WriteToClient(client, length * 4, modifiers_failed);
|
||||
|
||||
out:
|
||||
free(modifiers_failed);
|
||||
--
|
||||
2.35.3
|
||||
|
@ -1,47 +0,0 @@
|
||||
From 6c684d035c06fd41c727f0ef0744517580864cef Mon Sep 17 00:00:00 2001
|
||||
From: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
Date: Fri, 22 Mar 2024 19:07:34 -0700
|
||||
Subject: [PATCH 3/4] Xquartz: ProcAppleDRICreatePixmap needs to use unswapped
|
||||
length to send reply
|
||||
|
||||
CVE-2024-31082
|
||||
|
||||
Fixes: 14205ade0 ("XQuartz: appledri: Fix byte swapping in replies")
|
||||
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1463>
|
||||
---
|
||||
hw/xquartz/xpr/appledri.c | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/hw/xquartz/xpr/appledri.c b/hw/xquartz/xpr/appledri.c
|
||||
index 77574655b..40422b61a 100644
|
||||
--- a/hw/xquartz/xpr/appledri.c
|
||||
+++ b/hw/xquartz/xpr/appledri.c
|
||||
@@ -272,6 +272,7 @@ ProcAppleDRICreatePixmap(ClientPtr client)
|
||||
xAppleDRICreatePixmapReply rep;
|
||||
int width, height, pitch, bpp;
|
||||
void *ptr;
|
||||
+ CARD32 stringLength;
|
||||
|
||||
REQUEST_SIZE_MATCH(xAppleDRICreatePixmapReq);
|
||||
|
||||
@@ -307,6 +308,7 @@ ProcAppleDRICreatePixmap(ClientPtr client)
|
||||
if (sizeof(rep) != sz_xAppleDRICreatePixmapReply)
|
||||
ErrorF("error sizeof(rep) is %zu\n", sizeof(rep));
|
||||
|
||||
+ stringLength = rep.stringLength; /* save unswapped value */
|
||||
if (client->swapped) {
|
||||
swaps(&rep.sequenceNumber);
|
||||
swapl(&rep.length);
|
||||
@@ -319,7 +321,7 @@ ProcAppleDRICreatePixmap(ClientPtr client)
|
||||
}
|
||||
|
||||
WriteToClient(client, sizeof(rep), &rep);
|
||||
- WriteToClient(client, rep.stringLength, path);
|
||||
+ WriteToClient(client, stringLength, path);
|
||||
|
||||
return Success;
|
||||
}
|
||||
--
|
||||
2.35.3
|
||||
|
@ -1,110 +0,0 @@
|
||||
From bdca6c3d1f5057eeb31609b1280fc93237b00c77 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Date: Tue, 30 Jan 2024 13:13:35 +1000
|
||||
Subject: [PATCH 4/4] render: fix refcounting of glyphs during
|
||||
ProcRenderAddGlyphs
|
||||
|
||||
Previously, AllocateGlyph would return a new glyph with refcount=0 and a
|
||||
re-used glyph would end up not changing the refcount at all. The
|
||||
resulting glyph_new array would thus have multiple entries pointing to
|
||||
the same non-refcounted glyphs.
|
||||
|
||||
AddGlyph may free a glyph, resulting in a UAF when the same glyph
|
||||
pointer is then later used.
|
||||
|
||||
Fix this by returning a refcount of 1 for a new glyph and always
|
||||
incrementing the refcount for a re-used glyph, followed by dropping that
|
||||
refcount back down again when we're done with it.
|
||||
|
||||
CVE-2024-31083, ZDI-CAN-22880
|
||||
|
||||
This vulnerability was discovered by:
|
||||
Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
|
||||
|
||||
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1463>
|
||||
---
|
||||
render/glyph.c | 5 +++--
|
||||
render/glyphstr.h | 1 +
|
||||
render/render.c | 15 +++++++++++----
|
||||
3 files changed, 15 insertions(+), 6 deletions(-)
|
||||
|
||||
Index: xwayland-22.1.5/render/glyph.c
|
||||
===================================================================
|
||||
--- xwayland-22.1.5.orig/render/glyph.c
|
||||
+++ xwayland-22.1.5/render/glyph.c
|
||||
@@ -245,10 +245,11 @@ FreeGlyphPicture(GlyphPtr glyph)
|
||||
}
|
||||
}
|
||||
|
||||
-static void
|
||||
+void
|
||||
FreeGlyph(GlyphPtr glyph, int format)
|
||||
{
|
||||
CheckDuplicates(&globalGlyphs[format], "FreeGlyph");
|
||||
+ BUG_RETURN(glyph->refcnt == 0);
|
||||
if (--glyph->refcnt == 0) {
|
||||
GlyphRefPtr gr;
|
||||
int i;
|
||||
@@ -354,7 +355,7 @@ AllocateGlyph(xGlyphInfo * gi, int fdept
|
||||
glyph = (GlyphPtr) malloc(size);
|
||||
if (!glyph)
|
||||
return 0;
|
||||
- glyph->refcnt = 0;
|
||||
+ glyph->refcnt = 1;
|
||||
glyph->size = size + sizeof(xGlyphInfo);
|
||||
glyph->info = *gi;
|
||||
dixInitPrivates(glyph, (char *) glyph + head_size, PRIVATE_GLYPH);
|
||||
Index: xwayland-22.1.5/render/glyphstr.h
|
||||
===================================================================
|
||||
--- xwayland-22.1.5.orig/render/glyphstr.h
|
||||
+++ xwayland-22.1.5/render/glyphstr.h
|
||||
@@ -109,6 +109,8 @@ extern GlyphPtr FindGlyph(GlyphSetPtr gl
|
||||
|
||||
extern GlyphPtr AllocateGlyph(xGlyphInfo * gi, int format);
|
||||
|
||||
+extern void FreeGlyph(GlyphPtr glyph, int format);
|
||||
+
|
||||
extern Bool
|
||||
ResizeGlyphSet(GlyphSetPtr glyphSet, CARD32 change);
|
||||
|
||||
Index: xwayland-22.1.5/render/render.c
|
||||
===================================================================
|
||||
--- xwayland-22.1.5.orig/render/render.c
|
||||
+++ xwayland-22.1.5/render/render.c
|
||||
@@ -1076,6 +1076,7 @@ ProcRenderAddGlyphs(ClientPtr client)
|
||||
|
||||
if (glyph_new->glyph && glyph_new->glyph != DeletedGlyph) {
|
||||
glyph_new->found = TRUE;
|
||||
+ ++glyph_new->glyph->refcnt;
|
||||
}
|
||||
else {
|
||||
GlyphPtr glyph;
|
||||
@@ -1168,8 +1169,10 @@ ProcRenderAddGlyphs(ClientPtr client)
|
||||
err = BadAlloc;
|
||||
goto bail;
|
||||
}
|
||||
- for (i = 0; i < nglyphs; i++)
|
||||
+ for (i = 0; i < nglyphs; i++) {
|
||||
AddGlyph(glyphSet, glyphs[i].glyph, glyphs[i].id);
|
||||
+ FreeGlyph(glyphs[i].glyph, glyphSet->fdepth);
|
||||
+ }
|
||||
|
||||
if (glyphsBase != glyphsLocal)
|
||||
free(glyphsBase);
|
||||
@@ -1179,9 +1182,13 @@ ProcRenderAddGlyphs(ClientPtr client)
|
||||
FreePicture((void *) pSrc, 0);
|
||||
if (pSrcPix)
|
||||
FreeScratchPixmapHeader(pSrcPix);
|
||||
- for (i = 0; i < nglyphs; i++)
|
||||
- if (glyphs[i].glyph && !glyphs[i].found)
|
||||
- free(glyphs[i].glyph);
|
||||
+ for (i = 0; i < nglyphs; i++) {
|
||||
+ if (glyphs[i].glyph) {
|
||||
+ --glyphs[i].glyph->refcnt;
|
||||
+ if (!glyphs[i].found)
|
||||
+ free(glyphs[i].glyph);
|
||||
+ }
|
||||
+ }
|
||||
if (glyphsBase != glyphsLocal)
|
||||
free(glyphsBase);
|
||||
return err;
|
@ -1,74 +0,0 @@
|
||||
From c3c2218ab797516e4d63a93a078d77c6ce872d03 Mon Sep 17 00:00:00 2001
|
||||
From: Olivier Fourdan <ofourdan@redhat.com>
|
||||
Date: Fri, 5 Apr 2024 15:24:49 +0200
|
||||
Subject: [PATCH] render: Avoid possible double-free in ProcRenderAddGlyphs()
|
||||
|
||||
ProcRenderAddGlyphs() adds the glyph to the glyphset using AddGlyph() and
|
||||
then frees it using FreeGlyph() to decrease the reference count, after
|
||||
AddGlyph() has increased it.
|
||||
|
||||
AddGlyph() however may chose to reuse an existing glyph if it's already
|
||||
in the glyphSet, and free the glyph that was given, in which case the
|
||||
caller function, ProcRenderAddGlyphs() will call FreeGlyph() on an
|
||||
already freed glyph, as reported by ASan:
|
||||
|
||||
READ of size 4 thread T0
|
||||
#0 in FreeGlyph xserver/render/glyph.c:252
|
||||
#1 in ProcRenderAddGlyphs xserver/render/render.c:1174
|
||||
#2 in Dispatch xserver/dix/dispatch.c:546
|
||||
#3 in dix_main xserver/dix/main.c:271
|
||||
#4 in main xserver/dix/stubmain.c:34
|
||||
#5 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
|
||||
#6 in __libc_start_main_impl ../csu/libc-start.c:360
|
||||
#7 (/usr/bin/Xwayland+0x44fe4)
|
||||
Address is located 0 bytes inside of 64-byte region
|
||||
freed by thread T0 here:
|
||||
#0 in __interceptor_free libsanitizer/asan/asan_malloc_linux.cpp:52
|
||||
#1 in _dixFreeObjectWithPrivates xserver/dix/privates.c:538
|
||||
#2 in AddGlyph xserver/render/glyph.c:295
|
||||
#3 in ProcRenderAddGlyphs xserver/render/render.c:1173
|
||||
#4 in Dispatch xserver/dix/dispatch.c:546
|
||||
#5 in dix_main xserver/dix/main.c:271
|
||||
#6 in main xserver/dix/stubmain.c:34
|
||||
#7 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
|
||||
previously allocated by thread T0 here:
|
||||
#0 in __interceptor_malloc libsanitizer/asan/asan_malloc_linux.cpp:69
|
||||
#1 in AllocateGlyph xserver/render/glyph.c:355
|
||||
#2 in ProcRenderAddGlyphs xserver/render/render.c:1085
|
||||
#3 in Dispatch xserver/dix/dispatch.c:546
|
||||
#4 in dix_main xserver/dix/main.c:271
|
||||
#5 in main xserver/dix/stubmain.c:34
|
||||
#6 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
|
||||
SUMMARY: AddressSanitizer: heap-use-after-free xserver/render/glyph.c:252 in FreeGlyph
|
||||
|
||||
To avoid that, make sure not to free the given glyph in AddGlyph().
|
||||
|
||||
v2: Simplify the test using the boolean returned from AddGlyph() (Michel)
|
||||
v3: Simplify even more by not freeing the glyph in AddGlyph() (Peter)
|
||||
|
||||
Fixes: bdca6c3d1 - render: fix refcounting of glyphs during ProcRenderAddGlyphs
|
||||
Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1659
|
||||
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
|
||||
(cherry picked from commit 337d8d48b618d4fc0168a7b978be4c3447650b04)
|
||||
|
||||
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1478>
|
||||
---
|
||||
render/glyph.c | 2 --
|
||||
1 file changed, 2 deletions(-)
|
||||
|
||||
diff --git a/render/glyph.c b/render/glyph.c
|
||||
index d5fc5f3c9..f5069d42f 100644
|
||||
--- a/render/glyph.c
|
||||
+++ b/render/glyph.c
|
||||
@@ -291,8 +291,6 @@ AddGlyph(GlyphSetPtr glyphSet, GlyphPtr glyph, Glyph id)
|
||||
gr = FindGlyphRef(&globalGlyphs[glyphSet->fdepth], signature,
|
||||
TRUE, glyph->sha1);
|
||||
if (gr->glyph && gr->glyph != DeletedGlyph && gr->glyph != glyph) {
|
||||
- FreeGlyphPicture(glyph);
|
||||
- dixFreeObjectWithPrivates(glyph, PRIVATE_GLYPH);
|
||||
glyph = gr->glyph;
|
||||
}
|
||||
else if (gr->glyph != glyph) {
|
||||
--
|
||||
2.35.3
|
||||
|
@ -1,25 +0,0 @@
|
||||
@@ -, +, @@
|
||||
---
|
||||
xkb/xkb.c | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
--- a/xkb/xkb.c
|
||||
+++ a/xkb/xkb.c
|
||||
@@ -2991,13 +2991,13 @@ _XkbSetCompatMap(ClientPtr client, DeviceIntPtr dev,
|
||||
XkbSymInterpretPtr sym;
|
||||
unsigned int skipped = 0;
|
||||
|
||||
- if ((unsigned) (req->firstSI + req->nSI) > compat->num_si) {
|
||||
- compat->num_si = req->firstSI + req->nSI;
|
||||
+ if ((unsigned) (req->firstSI + req->nSI) > compat->size_si) {
|
||||
+ compat->num_si = compat->size_si = req->firstSI + req->nSI;
|
||||
compat->sym_interpret = reallocarray(compat->sym_interpret,
|
||||
- compat->num_si,
|
||||
+ compat->size_si,
|
||||
sizeof(XkbSymInterpretRec));
|
||||
if (!compat->sym_interpret) {
|
||||
- compat->num_si = 0;
|
||||
+ compat->num_si = compat->size_si = 0;
|
||||
return BadAlloc;
|
||||
}
|
||||
}
|
||||
--
|
@ -1,345 +0,0 @@
|
||||
From 3216e0c618cc330f053ed36a749c8d8cfeb87a2f Mon Sep 17 00:00:00 2001
|
||||
From: Dave Airlie <airlied@redhat.com>
|
||||
Date: Fri, 17 Aug 2012 09:49:24 +1000
|
||||
Subject: [PATCH] autobind GPUs to the screen, (v5)
|
||||
|
||||
this is racy and really not what we want for hotplug going forward,
|
||||
but until DE support is in GNOME its probably for the best.
|
||||
|
||||
v2: fix if config or slave config is NULL
|
||||
v3: fix multi useful slaves
|
||||
|
||||
v4: do not unbound GPUs before attaching them
|
||||
compatibility fix for 5c7af02b10
|
||||
-- Michal Srb <msrb@suse.com>
|
||||
|
||||
v5: Do not use xf86CrtcConfig, it is not filled by nvidia proprietary driver,
|
||||
only use randr structures.
|
||||
Auto configure outputs of additional GPUs on start, just like the outputs
|
||||
of the main GPU are configured.
|
||||
-- Michal Srb <msrb@suse.com>
|
||||
|
||||
DO NOT UPSTREAM.
|
||||
|
||||
Signed-off-by: Dave Airlie <airlied@gmail.com>
|
||||
---
|
||||
hw/xfree86/common/xf86Init.c | 12 ++++++++++++
|
||||
hw/xfree86/common/xf86platformBus.c | 3 +++
|
||||
hw/xfree86/modes/xf86Crtc.c | 32 ++++++++++++++++++++++++++++++++
|
||||
3 files changed, 47 insertions(+)
|
||||
|
||||
Index: xorg-server-1.20.5/dix/main.c
|
||||
===================================================================
|
||||
--- xorg-server-1.20.5.orig/dix/main.c
|
||||
+++ xorg-server-1.20.5/dix/main.c
|
||||
@@ -122,6 +122,8 @@ extern void Dispatch(void);
|
||||
|
||||
CallbackListPtr RootWindowFinalizeCallback = NULL;
|
||||
|
||||
+CallbackListPtr RootWindowInitialized = NULL;
|
||||
+
|
||||
int
|
||||
dix_main(int argc, char *argv[], char *envp[])
|
||||
{
|
||||
@@ -246,6 +248,8 @@ dix_main(int argc, char *argv[], char *e
|
||||
for (i = 0; i < screenInfo.numScreens; i++)
|
||||
InitRootWindow(screenInfo.screens[i]->root);
|
||||
|
||||
+ CallCallbacks(&RootWindowInitialized, NULL);
|
||||
+
|
||||
InitCoreDevices();
|
||||
InitInput(argc, argv);
|
||||
InitAndStartDevices();
|
||||
Index: xorg-server-1.20.5/hw/xfree86/common/xf86Init.c
|
||||
===================================================================
|
||||
--- xorg-server-1.20.5.orig/hw/xfree86/common/xf86Init.c
|
||||
+++ xorg-server-1.20.5/hw/xfree86/common/xf86Init.c
|
||||
@@ -76,6 +76,7 @@
|
||||
#include "xf86DDC.h"
|
||||
#include "xf86Xinput.h"
|
||||
#include "xf86InPriv.h"
|
||||
+#include "xf86Crtc.h"
|
||||
#include "picturestr.h"
|
||||
#include "randrstr.h"
|
||||
#include "glxvndabi.h"
|
||||
@@ -294,6 +295,237 @@ AddVTAtoms(CallbackListPtr *pcbl, void *
|
||||
"Failed to register VT properties\n");
|
||||
}
|
||||
|
||||
+/*
|
||||
+ * This function activates all outputs of all GPU screens associated with the
|
||||
+ * given master screen and sets them to their preferred resolution next to
|
||||
+ * each other left-to-right.
|
||||
+ */
|
||||
+static void
|
||||
+xf86AutoConfigureProviderOutputsForMaster(ScreenPtr pMasterScreen)
|
||||
+{
|
||||
+ ScreenPtr pScreen;
|
||||
+ rrScrPrivPtr pMasterScrPriv, pScrPriv;
|
||||
+ RROutputPtr pOutput;
|
||||
+ RRCrtcPtr pCrtc;
|
||||
+ RRCrtcPtr *pUsedCrtcs;
|
||||
+ int usedCrtcsCount;
|
||||
+ int screenWidth, screenHeight, screenWidthMM, screenHeightMM;
|
||||
+ int i, j, k, l;
|
||||
+
|
||||
+ struct OutputConfig {
|
||||
+ RROutputPtr pOutput;
|
||||
+ RRCrtcPtr pCrtc;
|
||||
+
|
||||
+ int x;
|
||||
+ int y;
|
||||
+ } *outputConfigs;
|
||||
+ int outputConfigsCount = 0, outputConfigsUsed = 0;
|
||||
+
|
||||
+ if (!dixPrivateKeyRegistered(rrPrivKey))
|
||||
+ return;
|
||||
+
|
||||
+ pMasterScrPriv = rrGetScrPriv(pMasterScreen);
|
||||
+ if (!pMasterScrPriv)
|
||||
+ return;
|
||||
+
|
||||
+ // Count the potential maximum of outputs that we will try to auto configure
|
||||
+ for (i = 0; i < xf86NumGPUScreens; i++) {
|
||||
+ pScreen = xf86GPUScreens[i]->pScreen;
|
||||
+ if (pScreen->current_master != pMasterScreen || !pScreen->is_output_slave)
|
||||
+ continue;
|
||||
+
|
||||
+ pScrPriv = rrGetScrPriv(pScreen);
|
||||
+ if (!pScrPriv)
|
||||
+ continue;
|
||||
+
|
||||
+ outputConfigsCount += pScrPriv->numOutputs;
|
||||
+ }
|
||||
+
|
||||
+ if (outputConfigsCount == 0)
|
||||
+ return;
|
||||
+
|
||||
+ outputConfigs = calloc(outputConfigsCount, sizeof(*outputConfigs));
|
||||
+
|
||||
+ screenWidth = 0;
|
||||
+ screenHeight = 0;
|
||||
+
|
||||
+ // Consider the master's own outputs/crtcs that were already configured
|
||||
+ for (i = 0; i < pMasterScrPriv->numCrtcs; i++) {
|
||||
+ if (!pMasterScrPriv->crtcs[i]->mode)
|
||||
+ continue;
|
||||
+
|
||||
+ screenWidth = max(screenWidth, pMasterScrPriv->crtcs[i]->x + pMasterScrPriv->crtcs[i]->mode->mode.width);
|
||||
+ screenHeight = max(screenHeight, pMasterScrPriv->crtcs[i]->y + pMasterScrPriv->crtcs[i]->mode->mode.height);
|
||||
+ }
|
||||
+
|
||||
+ // Now add as many outputs from slave GPUs as we can next to it
|
||||
+ for (i = 0; i < xf86NumGPUScreens; i++) {
|
||||
+ pScreen = xf86GPUScreens[i]->pScreen;
|
||||
+ if (pScreen->current_master != pMasterScreen || !pScreen->is_output_slave)
|
||||
+ continue;
|
||||
+
|
||||
+ pScrPriv = rrGetScrPriv(pScreen);
|
||||
+ if (!pScrPriv)
|
||||
+ continue;
|
||||
+
|
||||
+ pUsedCrtcs = calloc(pScrPriv->numCrtcs, sizeof(*pUsedCrtcs));
|
||||
+ if (!pUsedCrtcs)
|
||||
+ continue;
|
||||
+
|
||||
+ usedCrtcsCount = 0;
|
||||
+
|
||||
+ for (j = 0; j < pScrPriv->numOutputs; j++) {
|
||||
+ pOutput = pScrPriv->outputs[j];
|
||||
+
|
||||
+ if (pOutput->connection != RR_Connected ||
|
||||
+ pOutput->nonDesktop ||
|
||||
+ pOutput->numModes == 0 ||
|
||||
+ pOutput->numCrtcs == 0)
|
||||
+ continue;
|
||||
+
|
||||
+ if (screenWidth + pOutput->modes[0]->mode.width > pMasterScrPriv->maxWidth ||
|
||||
+ screenHeight + pOutput->modes[0]->mode.height > pMasterScrPriv->maxHeight)
|
||||
+ {
|
||||
+ // It can't fit into the maximal size, skip
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
+ for (k = 0; k < pOutput->numCrtcs; k++) {
|
||||
+ pCrtc = pOutput->crtcs[k];
|
||||
+ for (l = 0; l < usedCrtcsCount; l++) {
|
||||
+ if (pCrtc == pUsedCrtcs[l]) {
|
||||
+ pCrtc = NULL;
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ if (pCrtc) {
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (!pCrtc) {
|
||||
+ // No more free CRTCs to setup this output, skip
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
+ pUsedCrtcs[usedCrtcsCount] = pCrtc;
|
||||
+ usedCrtcsCount++;
|
||||
+
|
||||
+ assert(outputConfigsUsed < outputConfigsCount);
|
||||
+ outputConfigs[outputConfigsUsed].pOutput = pOutput;
|
||||
+ outputConfigs[outputConfigsUsed].pCrtc = pCrtc;
|
||||
+ outputConfigs[outputConfigsUsed].x = screenWidth;
|
||||
+ outputConfigs[outputConfigsUsed].y = 0;
|
||||
+ outputConfigsUsed++;
|
||||
+
|
||||
+ screenWidth += pOutput->modes[0]->mode.width;
|
||||
+ screenHeight += pOutput->modes[0]->mode.height;
|
||||
+ }
|
||||
+
|
||||
+ free(pUsedCrtcs);
|
||||
+ }
|
||||
+
|
||||
+ if (outputConfigsUsed == 0)
|
||||
+ goto out;
|
||||
+
|
||||
+ if (screenWidth < pMasterScrPriv->minWidth)
|
||||
+ screenWidth = pMasterScrPriv->minWidth;
|
||||
+ if (screenHeight < pMasterScrPriv->minHeight)
|
||||
+ screenHeight = pMasterScrPriv->minHeight;
|
||||
+
|
||||
+ if (pMasterScrPriv->mmWidth > 0 &&
|
||||
+ pMasterScrPriv->mmHeight > 0 &&
|
||||
+ pMasterScrPriv->width > 0 &&
|
||||
+ pMasterScrPriv->height > 0)
|
||||
+ {
|
||||
+ // If the master screen already has some DPI, keep it
|
||||
+ screenWidthMM = pMasterScrPriv->mmWidth * screenWidth / pMasterScreen->width;
|
||||
+ screenHeightMM = pMasterScrPriv->mmHeight * screenHeight / pMasterScreen->height;
|
||||
+ } else {
|
||||
+ assert(outputConfigsUsed > 0);
|
||||
+ // Otherwise use DPI of the first output
|
||||
+ screenWidthMM = outputConfigs[0].pOutput->mmWidth * screenWidth / outputConfigs[0].pOutput->modes[0]->mode.width;
|
||||
+ screenHeightMM = outputConfigs[0].pOutput->mmHeight * screenHeight / outputConfigs[0].pOutput->modes[0]->mode.height;
|
||||
+ }
|
||||
+
|
||||
+ if (!RRScreenSizeSet(pMasterScreen, screenWidth, screenHeight, screenWidthMM, screenHeightMM))
|
||||
+ goto out;
|
||||
+
|
||||
+ for (i = 0; i < outputConfigsUsed; i++) {
|
||||
+ RRCrtcSet(
|
||||
+ outputConfigs[i].pCrtc,
|
||||
+ outputConfigs[i].pOutput->modes[0],
|
||||
+ outputConfigs[i].x,
|
||||
+ outputConfigs[i].y,
|
||||
+ RR_Rotate_0,
|
||||
+ 1,
|
||||
+ &outputConfigs[i].pOutput
|
||||
+ );
|
||||
+ }
|
||||
+
|
||||
+out:
|
||||
+ free(outputConfigs);
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+xf86AutoConfigProviderOutputs(CallbackListPtr *pcbl, void *data, void *call_data)
|
||||
+{
|
||||
+ int i;
|
||||
+
|
||||
+ for (i = 0; i < xf86NumScreens; i++) {
|
||||
+ xf86AutoConfigureProviderOutputsForMaster(xf86Screens[i]->pScreen);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+void
|
||||
+xf86AutoConfigOutputDevice(ScreenPtr slave, ScreenPtr master)
|
||||
+{
|
||||
+ RRProviderPtr master_provider;
|
||||
+ RRProviderPtr slave_provider;
|
||||
+ rrScrPrivPtr master_rp;
|
||||
+ rrScrPrivPtr slave_rp;
|
||||
+
|
||||
+ if (!dixPrivateKeyRegistered(rrPrivKey))
|
||||
+ return;
|
||||
+
|
||||
+ master_rp = rrGetScrPriv(master);
|
||||
+ slave_rp = rrGetScrPriv(slave);
|
||||
+
|
||||
+ if (!master_rp || !slave_rp)
|
||||
+ return;
|
||||
+
|
||||
+ master_provider = master_rp->provider;
|
||||
+ slave_provider = slave_rp->provider;
|
||||
+
|
||||
+ if (!master_provider || !slave_provider)
|
||||
+ return;
|
||||
+
|
||||
+ if ((master_provider->capabilities & RR_Capability_SinkOffload) &&
|
||||
+ (slave_provider->capabilities & RR_Capability_SourceOffload)) {
|
||||
+ /* source offload */
|
||||
+ AttachOffloadGPU(master, slave);
|
||||
+ slave_provider->offload_sink = master_provider;
|
||||
+ }
|
||||
+ if ((master_provider->capabilities & RR_Capability_SourceOutput) &&
|
||||
+ (slave_provider->capabilities & RR_Capability_SinkOutput)) {
|
||||
+ /* sink offload */
|
||||
+ AttachOutputGPU(master, slave);
|
||||
+ slave_provider->output_source = master_provider;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+xf86AutoConfigOutputDevices(void)
|
||||
+{
|
||||
+ int i;
|
||||
+
|
||||
+ for (i = 0; i < xf86NumGPUScreens; i++) {
|
||||
+ xf86AutoConfigOutputDevice(xf86GPUScreens[i]->pScreen, xf86Screens[0]->pScreen);
|
||||
+ }
|
||||
+
|
||||
+ AddCallback(&RootWindowInitialized, xf86AutoConfigProviderOutputs, NULL);
|
||||
+}
|
||||
+
|
||||
static Bool
|
||||
xf86ScreenInit(ScreenPtr pScreen, int argc, char **argv)
|
||||
{
|
||||
@@ -770,6 +996,8 @@ InitOutput(ScreenInfo * pScreenInfo, int
|
||||
for (i = 0; i < xf86NumGPUScreens; i++)
|
||||
AttachUnboundGPU(xf86Screens[0]->pScreen, xf86GPUScreens[i]->pScreen);
|
||||
|
||||
+ xf86AutoConfigOutputDevices();
|
||||
+
|
||||
xf86VGAarbiterWrapFunctions();
|
||||
if (sigio_blocked)
|
||||
input_unlock();
|
||||
Index: xorg-server-1.20.5/hw/xfree86/common/xf86platformBus.c
|
||||
===================================================================
|
||||
--- xorg-server-1.20.5.orig/hw/xfree86/common/xf86platformBus.c
|
||||
+++ xorg-server-1.20.5/hw/xfree86/common/xf86platformBus.c
|
||||
@@ -594,6 +594,8 @@ xf86platformAddGPUDevices(DriverPtr drvp
|
||||
return foundScreen;
|
||||
}
|
||||
|
||||
+extern void xf86AutoConfigOutputDevice(ScreenPtr slave, ScreenPtr master);
|
||||
+
|
||||
int
|
||||
xf86platformAddDevice(int index)
|
||||
{
|
||||
@@ -665,6 +667,7 @@ xf86platformAddDevice(int index)
|
||||
}
|
||||
/* attach unbound to 0 protocol screen */
|
||||
AttachUnboundGPU(xf86Screens[0]->pScreen, xf86GPUScreens[i]->pScreen);
|
||||
+ xf86AutoConfigOutputDevice(xf86GPUScreens[i]->pScreen, xf86Screens[0]->pScreen);
|
||||
|
||||
RRResourcesChanged(xf86Screens[0]->pScreen);
|
||||
RRTellChanged(xf86Screens[0]->pScreen);
|
||||
Index: xorg-server-1.20.5/include/dix.h
|
||||
===================================================================
|
||||
--- xorg-server-1.20.5.orig/include/dix.h
|
||||
+++ xorg-server-1.20.5/include/dix.h
|
||||
@@ -599,6 +599,8 @@ typedef struct {
|
||||
|
||||
extern _X_EXPORT CallbackListPtr RootWindowFinalizeCallback;
|
||||
|
||||
+extern _X_EXPORT CallbackListPtr RootWindowInitialized;
|
||||
+
|
||||
extern int
|
||||
XItoCoreType(int xi_type);
|
||||
extern Bool
|
45
u_fbdevhw_kernel6.9_break_fbdev_open.patch
Normal file
45
u_fbdevhw_kernel6.9_break_fbdev_open.patch
Normal file
@ -0,0 +1,45 @@
|
||||
Linux kernel v6.9 has changed the symlink to point to the parent device.
|
||||
This breaks fbdev_open() detection logic. Change it to use the subsystem
|
||||
symlink instead which will remain stable.
|
||||
|
||||
Kernel v6.8:
|
||||
|
||||
[ 14.067] (II) fbdev_open() sysfs_path=/sys/class/graphics/fb0
|
||||
[ 14.067] (II) fbdev_open() buf=../../devices/platform/vesa-framebuffer.0/graphics/fb0
|
||||
|
||||
Kernel v6.9:
|
||||
|
||||
[ 15.609] (II) fbdev_open() sysfs_path=/sys/class/graphics/fb0
|
||||
[ 15.609] (II) fbdev_open() buf=../../devices/pci0000:00/0000:00:01.0/vesa-framebuffer.0/graphics/fb0
|
||||
|
||||
Originally found in automated Debian ISO QA testing [0] and confirmed in Linux [1].
|
||||
|
||||
Tested on kernels v6.9.7 and v6.8.12
|
||||
|
||||
[0] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D1075713
|
||||
[1] https://lore.kernel.org/lkml/lLyvPFC_APGHNfyGNHRpQy5izBikkaTPOpHooZIT3f=
|
||||
FAoJPquSI31ZMueA99XTdr8ysir3X7O7IMdc6za-0m79vr_claeparHhoRouVgHOI=3D@proton=
|
||||
.me/
|
||||
|
||||
Fixes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1714
|
||||
Signed-off-by: Tj <tj.iam.tj@proton.me>
|
||||
---
|
||||
hw/xfree86/fbdevhw/fbdevhw.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: xorg-server-21.1.12/hw/xfree86/fbdevhw/fbdevhw.c
|
||||
===================================================================
|
||||
--- xorg-server-21.1.12.orig/hw/xfree86/fbdevhw/fbdevhw.c
|
||||
+++ xorg-server-21.1.12/hw/xfree86/fbdevhw/fbdevhw.c
|
||||
@@ -335,9 +335,9 @@ fbdev_open(int scrnIndex, const char *de
|
||||
char *sysfs_path = NULL;
|
||||
char *node = strrchr(dev, '/') + 1;
|
||||
|
||||
- if (asprintf(&sysfs_path, "/sys/class/graphics/%s", node) < 0 ||
|
||||
+ if (asprintf(&sysfs_path, "/sys/class/graphics/%s/device/subsystem", node) < 0 ||
|
||||
readlink(sysfs_path, buf, sizeof(buf) - 1) < 0 ||
|
||||
- strstr(buf, "devices/pci")) {
|
||||
+ strstr(buf, "bus/pci")) {
|
||||
free(sysfs_path);
|
||||
close(fd);
|
||||
return -1;
|
BIN
xorg-server-21.1.11.tar.gz
(Stored with Git LFS)
BIN
xorg-server-21.1.11.tar.gz
(Stored with Git LFS)
Binary file not shown.
Binary file not shown.
BIN
xorg-server-21.1.14.tar.xz
(Stored with Git LFS)
Normal file
BIN
xorg-server-21.1.14.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
xorg-server-21.1.14.tar.xz.sig
Normal file
BIN
xorg-server-21.1.14.tar.xz.sig
Normal file
Binary file not shown.
@ -1,32 +1,115 @@
|
||||
-------------------------------------------------------------------
|
||||
Sat Oct 19 22:17:53 UTC 2024 - Stefan Dirsch <sndirsch@suse.com>
|
||||
Sun Dec 8 19:01:08 UTC 2024 - Stefan Dirsch <sndirsch@suse.com>
|
||||
|
||||
- U_xkb-Fix-buffer-overflow-in-_XkbSetCompatMap.patch
|
||||
* Heap-based buffer overflow privilege escalation in _XkbSetCompatMap
|
||||
(CVE-2024-9632, bsc#1231565)
|
||||
- re-added and re-enabled u_xfree86-activate-GPU-screens-on-autobind.patch
|
||||
in order to fix the regression of a black screen in login screen
|
||||
(SDDM) on some hybrid graphics Laptop (Intel Meteor Lake-P/
|
||||
NVIDIA GeForce RTX 4060) (boo#1234301)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 10 14:09:31 UTC 2024 - Stefan Dirsch <sndirsch@suse.com>
|
||||
Wed Dec 4 12:41:37 UTC 2024 - Stefan Dirsch <sndirsch@suse.com>
|
||||
|
||||
- no longer apply and remove
|
||||
u_xfree86-activate-GPU-screens-on-autobind.patch since it's
|
||||
no longer needed and might be harmful even ... (tested
|
||||
successfully on Thinkpad P16 with Intel/NVIDIA hybrid graphics)
|
||||
- remove no longer applied and no longer needed patch
|
||||
n_xserver-optimus-autoconfig-hack.patch (feature implemented
|
||||
upstream)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Oct 29 19:08:32 UTC 2024 - Stefan Dirsch <sndirsch@suse.com>
|
||||
|
||||
- 21.1.14 covers also
|
||||
* CVE-2024-31080 (bsc#1222309)
|
||||
* CVE-2024-31081 (bsc#1222310)
|
||||
* CVE-2024-31082 (bsc#1222311)
|
||||
* CVE-2024-31083 (bsc#1222312)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Oct 29 19:00:06 UTC 2024 - Stefan Dirsch <sndirsch@suse.com>
|
||||
|
||||
- Security update 21.1.14
|
||||
This release addresses the following security issue
|
||||
* CVE-2024-9632: Heap-based buffer overflow privilege escalation
|
||||
in _XkbSetCompatMap (bsc#1231565)
|
||||
- supersedes U_render-Avoid-possible-double-free-in-ProcRenderAddGl.patch
|
||||
- supersedes U_xorg-xserver-e89edec497ba.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Sep 24 11:20:23 UTC 2024 - Stefan Dirsch <sndirsch@suse.com>
|
||||
|
||||
- added conflicts to patterns-wsl-tmpfiles to Xserver packages
|
||||
as this patterns package creates a symlink from /tmp/.X11-unix to
|
||||
/mnt/wslg/.X11-unix and therefore prevents Xservers from creating
|
||||
this needed directory (bsc#1230755)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jul 25 16:04:30 UTC 2024 - Martin Jambor <mjambor@suse.com>
|
||||
|
||||
- Added U_xorg-xserver-e89edec497ba.patch to fix incompatible pointer
|
||||
type error with GCC 14.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jul 18 10:44:59 UTC 2024 - Stefan Dirsch <sndirsch@suse.com>
|
||||
|
||||
- u_fbdevhw_kernel6.9_break_fbdev_open.patch
|
||||
* Linux kernel v6.9 has changed the symlink to point to the
|
||||
parent device. This breaks fbdev_open() detection logic.
|
||||
Change it to use the subsystem symlink instead which will
|
||||
remain stable (gitlab xserver issue#1714)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jun 12 09:08:15 UTC 2024 - Daniel Garcia <daniel.garcia@suse.com>
|
||||
|
||||
- Fix python3 shebang in source python script to use specific python
|
||||
interpreter and remove dependency on /usr/bin/python3
|
||||
(bsc#1212476)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 10 13:20:43 UTC 2024 - Stefan Dirsch <sndirsch@suse.com>
|
||||
|
||||
- U_render-Avoid-possible-double-free-in-ProcRenderAddGl.patch
|
||||
* fixes regression for security fix for CVE-2024-31083 (bsc#1222312,
|
||||
boo#1222442, gitlab xserver issue #1659)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Apr 5 02:23:52 UTC 2024 - Stefan Dirsch <sndirsch@suse.com>
|
||||
Thu Apr 4 08:13:19 UTC 2024 - Stefan Dirsch <sndirsch@suse.com>
|
||||
|
||||
- U_CVE-2024-31080-Xi-ProcXIGetSelectedEvents-needs-to-use-unswapped-le.patch
|
||||
* Xi: ProcXIGetSelectedEvents needs to use unswapped length
|
||||
(CVE-2024-31080, bsc#1222309)
|
||||
- U_CVE-2024-31081-Xi-ProcXIPassiveGrabDevice-needs-to-use-unswapped-le.patch
|
||||
* Xi: ProcXIPassiveGrabDevice needs to use unswapped length to send reply
|
||||
(CVE-2024-31081, bsc#1222310)
|
||||
- U_CVE-2024-31082-Xquartz-ProcAppleDRICreatePixmap-needs-to-use-unswap.patch
|
||||
* Xquartz: ProcAppleDRICreatePixmap needs to use unswapped length to send reply
|
||||
(CVE-2024-31082, bsc#1222311)
|
||||
- U_CVE-2024-31083-render-fix-refcounting-of-glyphs-during-ProcRenderAd.patch
|
||||
* render: fix refcounting of glyphs during ProcRenderAddGlyphs
|
||||
(CVE-2024-31083, bsc#1222312)
|
||||
- Security update 21.1.12
|
||||
This release addresses the following 4 security issues:
|
||||
* CVE-2024-31080
|
||||
* CVE-2024-31081
|
||||
* CVE-2024-31082
|
||||
* CVE-2024-31083
|
||||
Additionally it provides a way to disable byte-swapped clients either by
|
||||
command line flag or config option. This allows to turn off byte swapping
|
||||
code that has been a source of security problems lately.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 26 12:16:26 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
|
||||
|
||||
- Use %patch -P N instead of deprecated %patchN.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Feb 20 20:36:19 UTC 2024 - Stefan Dirsch <sndirsch@suse.com>
|
||||
|
||||
- fix permissions of files in xorg-x11-server-source for tigervnc
|
||||
build later (needed since latest autoconf)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Feb 15 17:08:16 UTC 2024 - Joan Torres <joan.torres@suse.com>
|
||||
|
||||
- Provide again xorg-x11-server-source
|
||||
* xwayland sources are not meant for a generic server.
|
||||
* https://github.com/TigerVNC/tigervnc/issues/1728
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Feb 15 10:46:29 UTC 2024 - Joan Torres <joan.torres@suse.com>
|
||||
|
||||
- Stop providing xorg-x11-server-source from xorg-x11-server
|
||||
* Now the sources are provided by xwayland because it is more updated.
|
||||
* Fixes bsc#1219892.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 12 09:58:50 UTC 2024 - Stefan Dirsch <sndirsch@suse.com>
|
||||
|
@ -202,3 +202,42 @@ BQkaVB2nAAoJEBRwbb4eS0VA5e0AoO/nFK4k4fsAgsLMs02kk3plifoAAJ4iK85P
|
||||
ugQAoOlJ2NPM8mRqRCA2ZKXPqz7TGm64AKCTLcYRDmqX4aZcgK4yRBbe8GXhDA==
|
||||
=rEW/
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Comment: FD00 04A2 6EAD FE43 A4C3 F249 C6F7 AE20 0374 452D
|
||||
Comment: Povilas Kanapickas <povilas@radix.lt>
|
||||
|
||||
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
|
||||
=h52C
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
|
@ -36,14 +36,14 @@
|
||||
%endif
|
||||
|
||||
Name: xorg-x11-server
|
||||
Version: 21.1.11
|
||||
Version: 21.1.14
|
||||
Release: 0
|
||||
URL: http://xorg.freedesktop.org/
|
||||
Summary: X
|
||||
License: MIT
|
||||
Group: System/X11/Servers/XF86_4
|
||||
Source0: https://xorg.freedesktop.org/archive/individual/xserver/xorg-server-%{version}.tar.gz
|
||||
Source10: https://xorg.freedesktop.org/archive/individual/xserver/xorg-server-%{version}.tar.gz.sig
|
||||
Source0: https://xorg.freedesktop.org/archive/individual/xserver/xorg-server-%{version}.tar.xz
|
||||
Source10: https://xorg.freedesktop.org/archive/individual/xserver/xorg-server-%{version}.tar.xz.sig
|
||||
Source11: xorg-x11-server.keyring
|
||||
Source1: sysconfig.displaymanager.template
|
||||
Source2: README.updates
|
||||
@ -57,11 +57,12 @@ Source90: xorg-x11-server.macros.in
|
||||
# Source91 and Source99 are used to ensure proper ABI provides.
|
||||
Source91: xorg-server-provides
|
||||
Source92: pre_checkin.sh
|
||||
Patch1231565: U_xkb-Fix-buffer-overflow-in-_XkbSetCompatMap.patch
|
||||
|
||||
BuildRequires: bison
|
||||
BuildRequires: flex
|
||||
BuildRequires: libtool
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: python-rpm-macros
|
||||
BuildRequires: systemd-rpm-macros
|
||||
BuildRequires: pkgconfig(bigreqsproto) >= 1.1.0
|
||||
BuildRequires: pkgconfig(compositeproto)
|
||||
@ -190,6 +191,7 @@ Requires: xkeyboard-config
|
||||
# Unfortunately we need a requires here due to OBS not installing 'recommended'
|
||||
# packages :-(
|
||||
Requires: xorg-x11-server-Xvfb
|
||||
Conflicts: patterns-wsl-tmpfiles
|
||||
|
||||
# PATCH-FEATURE-OPENSUSE n_xorg-x11-server-rpmmacros.patch dimstar@opensuse.org -- Provide RPM macros to require correct ABI Versions.
|
||||
Patch1: N_default-module-path.diff
|
||||
@ -218,8 +220,6 @@ Patch210: u_os-connections-Check-for-stale-FDs.patch
|
||||
|
||||
Patch215: u_Use-better-fallbacks-to-generate-cookies-if-arc4rand.patch
|
||||
|
||||
Patch1000: n_xserver-optimus-autoconfig-hack.patch
|
||||
|
||||
Patch1162: b_cache-xkbcomp-output-for-fast-start-up.patch
|
||||
Patch1211: b_0001-Prevent-XSync-Alarms-from-senslessly-calling-CheckTr.patch
|
||||
Patch1222: b_sync-fix.patch
|
||||
@ -239,13 +239,9 @@ Patch1930: u_xfree86-activate-GPU-screens-on-autobind.patch
|
||||
|
||||
Patch1960: u_sync-pci-ids-with-Mesa.patch
|
||||
|
||||
Patch1218176: u_miCloseScreen_check_for_null_pScreen_dev_private.patch
|
||||
Patch2000: u_fbdevhw_kernel6.9_break_fbdev_open.patch
|
||||
|
||||
Patch1222309: U_CVE-2024-31080-Xi-ProcXIGetSelectedEvents-needs-to-use-unswapped-le.patch
|
||||
Patch1222310: U_CVE-2024-31081-Xi-ProcXIPassiveGrabDevice-needs-to-use-unswapped-le.patch
|
||||
Patch1222311: U_CVE-2024-31082-Xquartz-ProcAppleDRICreatePixmap-needs-to-use-unswap.patch
|
||||
Patch1222312: U_CVE-2024-31083-render-fix-refcounting-of-glyphs-during-ProcRenderAd.patch
|
||||
Patch1222442: U_render-Avoid-possible-double-free-in-ProcRenderAddGl.patch
|
||||
Patch1218176: u_miCloseScreen_check_for_null_pScreen_dev_private.patch
|
||||
|
||||
%description
|
||||
This package contains the X.Org Server.
|
||||
@ -259,6 +255,7 @@ Requires: xkeyboard-config
|
||||
Recommends: xorg-x11-fonts-core
|
||||
Provides: xorg-x11-Xnest
|
||||
Obsoletes: xorg-x11-Xnest
|
||||
Conflicts: patterns-wsl-tmpfiles
|
||||
|
||||
%description extra
|
||||
This package contains additional Xservers (Xephyr, Xnest).
|
||||
@ -274,6 +271,7 @@ Recommends: xorg-x11-fonts-core
|
||||
Provides: xorg-x11-Xvfb
|
||||
Provides: xorg-x11-server:/usr/bin/Xvfb
|
||||
Obsoletes: xorg-x11-Xvfb
|
||||
Conflicts: patterns-wsl-tmpfiles
|
||||
|
||||
%description Xvfb
|
||||
This package contains the virtual Xserver Xvfb.
|
||||
@ -355,61 +353,47 @@ This package contains patched sources of X.Org Server.
|
||||
sh %{SOURCE92} --verify . %{SOURCE91}
|
||||
|
||||
%if 0%{?suse_version} < 1315
|
||||
%patch1
|
||||
%patch -P 1
|
||||
%endif
|
||||
%patch2 -p1
|
||||
%patch3 -p0
|
||||
%patch4 -p0
|
||||
%patch5 -p1
|
||||
%patch6 -p0
|
||||
%patch7 -p1
|
||||
%patch8 -p1
|
||||
%patch9 -p1
|
||||
%patch10 -p1
|
||||
%patch11 -p1
|
||||
%patch12 -p1
|
||||
%patch -P 2 -p1
|
||||
%patch -P 3 -p0
|
||||
%patch -P 4 -p0
|
||||
%patch -P 5 -p1
|
||||
%patch -P 6 -p0
|
||||
%patch -P 7 -p1
|
||||
%patch -P 8 -p1
|
||||
%patch -P 9 -p1
|
||||
%patch -P 10 -p1
|
||||
%patch -P 11 -p1
|
||||
%patch -P 12 -p1
|
||||
#
|
||||
%patch100 -p1
|
||||
#%patch101 -p1
|
||||
%patch104 -p1
|
||||
%patch117 -p1
|
||||
%patch160 -p1
|
||||
%patch208 -p1
|
||||
%patch209 -p1
|
||||
%patch -P 100 -p1
|
||||
#%patch -P 101 -p1
|
||||
%patch -P 104 -p1
|
||||
%patch -P 117 -p1
|
||||
%patch -P 160 -p1
|
||||
%patch -P 208 -p1
|
||||
%patch -P 209 -p1
|
||||
### not applicable anymore
|
||||
#%patch210 -p1
|
||||
%patch215 -p1
|
||||
### apparently supersed by upstream
|
||||
### commit 078277e4d92f05a90c4715d61b89b9d9d38d68ea
|
||||
### Author: Dave Airlie <airlied@redhat.com>
|
||||
### Date: Fri Aug 17 09:49:24 2012 +1000
|
||||
###
|
||||
### xf86: autobind GPUs to the screen
|
||||
#%patch1000 -p1
|
||||
|
||||
#%patch -P 210 -p1
|
||||
%patch -P 215 -p1
|
||||
### disabled for now
|
||||
#%patch1162 -p1
|
||||
#%patch -P 1162 -p1
|
||||
### disabled for now
|
||||
#%patch1211 -p1
|
||||
#%patch -P 1211 -p1
|
||||
### patch222 might not be applicable anymore
|
||||
#%patch1222 -p1
|
||||
%patch1401 -p1
|
||||
%patch1503 -p1
|
||||
%patch1900 -p1
|
||||
%patch1910 -p1
|
||||
%patch1920 -p1
|
||||
%patch1921 -p1
|
||||
%patch1930 -p1
|
||||
%patch1960 -p1
|
||||
#%patch -P 1222 -p1
|
||||
%patch -P 1401 -p1
|
||||
%patch -P 1503 -p1
|
||||
%patch -P 1900 -p1
|
||||
%patch -P 1910 -p1
|
||||
%patch -P 1920 -p1
|
||||
%patch -P 1921 -p1
|
||||
%patch -P 1930 -p1
|
||||
%patch -P 1960 -p1
|
||||
%patch -P 2000 -p1
|
||||
|
||||
%patch1218176 -p1
|
||||
|
||||
%patch1222309 -p1
|
||||
%patch1222310 -p1
|
||||
%patch1222311 -p1
|
||||
%patch1222312 -p1
|
||||
%patch1222442 -p1
|
||||
%patch1231565 -p1
|
||||
%patch -P 1218176 -p1
|
||||
|
||||
%build
|
||||
# We have some -z now related errors during X default startup (boo#1197994):
|
||||
@ -531,6 +515,12 @@ mkdir -p %{buildroot}/usr/src/xserver
|
||||
xargs cp --parents --target-directory=%{buildroot}/usr/src/xserver < source-file-list
|
||||
# unneeded python2 script; simply remove it (boo#1179591)
|
||||
rm -f %{buildroot}/usr/src/xserver/config/fdi2iclass.py
|
||||
# fix permissions for tigervnc build later (needed since latest autoconf)
|
||||
chmod 0755 %{buildroot}/usr/src/xserver/config.guess
|
||||
chmod 0755 %{buildroot}/usr/src/xserver/config.sub
|
||||
chmod 0755 %{buildroot}/usr/src/xserver/install-sh
|
||||
# Fix python shebang, use specific python version to do not depend on /usr/bin/python3
|
||||
%{?python3_fix_shebang_path:%python3_fix_shebang_path %{buildroot}/usr/src/xserver/hw/xwin/glx/gen_gl_wrappers.py}
|
||||
|
||||
%post
|
||||
%tmpfiles_create xkb.conf
|
||||
|
Loading…
x
Reference in New Issue
Block a user