diff --git a/U_CVE-2024-31080-Xi-ProcXIGetSelectedEvents-needs-to-use-unswapped-le.patch b/U_CVE-2024-31080-Xi-ProcXIGetSelectedEvents-needs-to-use-unswapped-le.patch deleted file mode 100644 index 4c94aca..0000000 --- a/U_CVE-2024-31080-Xi-ProcXIGetSelectedEvents-needs-to-use-unswapped-le.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 96798fc1967491c80a4d0c8d9e0a80586cb2152b Mon Sep 17 00:00:00 2001 -From: Alan Coopersmith -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 -Part-of: ---- - 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 - diff --git a/U_CVE-2024-31081-Xi-ProcXIPassiveGrabDevice-needs-to-use-unswapped-le.patch b/U_CVE-2024-31081-Xi-ProcXIPassiveGrabDevice-needs-to-use-unswapped-le.patch deleted file mode 100644 index 0e4c5d9..0000000 --- a/U_CVE-2024-31081-Xi-ProcXIPassiveGrabDevice-needs-to-use-unswapped-le.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 3e77295f888c67fc7645db5d0c00926a29ffecee Mon Sep 17 00:00:00 2001 -From: Alan Coopersmith -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 -Part-of: ---- - 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 - diff --git a/U_CVE-2024-31082-Xquartz-ProcAppleDRICreatePixmap-needs-to-use-unswap.patch b/U_CVE-2024-31082-Xquartz-ProcAppleDRICreatePixmap-needs-to-use-unswap.patch deleted file mode 100644 index 5febf9e..0000000 --- a/U_CVE-2024-31082-Xquartz-ProcAppleDRICreatePixmap-needs-to-use-unswap.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 6c684d035c06fd41c727f0ef0744517580864cef Mon Sep 17 00:00:00 2001 -From: Alan Coopersmith -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 -Part-of: ---- - 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 - diff --git a/U_CVE-2024-31083-render-fix-refcounting-of-glyphs-during-ProcRenderAd.patch b/U_CVE-2024-31083-render-fix-refcounting-of-glyphs-during-ProcRenderAd.patch deleted file mode 100644 index 4d8e79b..0000000 --- a/U_CVE-2024-31083-render-fix-refcounting-of-glyphs-during-ProcRenderAd.patch +++ /dev/null @@ -1,110 +0,0 @@ -From bdca6c3d1f5057eeb31609b1280fc93237b00c77 Mon Sep 17 00:00:00 2001 -From: Peter Hutterer -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: ---- - 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; diff --git a/U_render-Avoid-possible-double-free-in-ProcRenderAddGl.patch b/U_render-Avoid-possible-double-free-in-ProcRenderAddGl.patch deleted file mode 100644 index 0c1dda5..0000000 --- a/U_render-Avoid-possible-double-free-in-ProcRenderAddGl.patch +++ /dev/null @@ -1,74 +0,0 @@ -From c3c2218ab797516e4d63a93a078d77c6ce872d03 Mon Sep 17 00:00:00 2001 -From: Olivier Fourdan -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 -(cherry picked from commit 337d8d48b618d4fc0168a7b978be4c3447650b04) - -Part-of: ---- - 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 - diff --git a/U_xkb-Fix-buffer-overflow-in-_XkbSetCompatMap.patch b/U_xkb-Fix-buffer-overflow-in-_XkbSetCompatMap.patch deleted file mode 100644 index dd93aec..0000000 --- a/U_xkb-Fix-buffer-overflow-in-_XkbSetCompatMap.patch +++ /dev/null @@ -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; - } - } --- diff --git a/n_xserver-optimus-autoconfig-hack.patch b/n_xserver-optimus-autoconfig-hack.patch deleted file mode 100644 index 2ec00f3..0000000 --- a/n_xserver-optimus-autoconfig-hack.patch +++ /dev/null @@ -1,345 +0,0 @@ -From 3216e0c618cc330f053ed36a749c8d8cfeb87a2f Mon Sep 17 00:00:00 2001 -From: Dave Airlie -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 - -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 - -DO NOT UPSTREAM. - -Signed-off-by: Dave Airlie ---- - 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 diff --git a/u_fbdevhw_kernel6.9_break_fbdev_open.patch b/u_fbdevhw_kernel6.9_break_fbdev_open.patch new file mode 100644 index 0000000..a12611d --- /dev/null +++ b/u_fbdevhw_kernel6.9_break_fbdev_open.patch @@ -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 +--- + 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; diff --git a/xorg-server-21.1.11.tar.gz b/xorg-server-21.1.11.tar.gz deleted file mode 100644 index a281588..0000000 --- a/xorg-server-21.1.11.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1aa0ee1adad0b2db7f291f3823a4ab240c7f4aea710e89f5ef4aa232b6833403 -size 8988626 diff --git a/xorg-server-21.1.11.tar.gz.sig b/xorg-server-21.1.11.tar.gz.sig deleted file mode 100644 index 535d10d..0000000 Binary files a/xorg-server-21.1.11.tar.gz.sig and /dev/null differ diff --git a/xorg-server-21.1.14.tar.xz b/xorg-server-21.1.14.tar.xz new file mode 100644 index 0000000..ee1d782 --- /dev/null +++ b/xorg-server-21.1.14.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8f2102cebdc4747d1656c1099ef610f5063c7422c24a177e300de569b354ee35 +size 5016608 diff --git a/xorg-server-21.1.14.tar.xz.sig b/xorg-server-21.1.14.tar.xz.sig new file mode 100644 index 0000000..36b8718 Binary files /dev/null and b/xorg-server-21.1.14.tar.xz.sig differ diff --git a/xorg-x11-server.changes b/xorg-x11-server.changes index 9f7764b..a3064f0 100644 --- a/xorg-x11-server.changes +++ b/xorg-x11-server.changes @@ -1,32 +1,115 @@ ------------------------------------------------------------------- -Sat Oct 19 22:17:53 UTC 2024 - Stefan Dirsch +Sun Dec 8 19:01:08 UTC 2024 - Stefan Dirsch -- 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 +Wed Dec 4 12:41:37 UTC 2024 - Stefan Dirsch + +- 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 + +- 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 + +- 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 + +- 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 + +- 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 + +- 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 + +- 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 - 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 +Thu Apr 4 08:13:19 UTC 2024 - Stefan Dirsch -- 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 + +- Use %patch -P N instead of deprecated %patchN. + +------------------------------------------------------------------- +Tue Feb 20 20:36:19 UTC 2024 - Stefan Dirsch + +- 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 + +- 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 + +- 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 diff --git a/xorg-x11-server.keyring b/xorg-x11-server.keyring index f511049..6184134 100644 --- a/xorg-x11-server.keyring +++ b/xorg-x11-server.keyring @@ -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 + +xsBNBE53SRgBCADJBhoKw9dmUYjNm9njQpq0uEDXQb/yBJQ/dJiNbEke8rKF0+eN +XU1bbZzIx6mjywNWsVFiFQV+ty43pO2FoKctD6gPyHYdPM1ZrS6ZlaKv6wXU9HHt +5Wz8znnP5bifwUh+sjkgQ0OETTcv82xmslblFNZWm14EuqKmMbl5jmqAJVpmnX5o +UeWzRG+/eSmg4gV6MQFdNzBX6SaEPShcm4U/qQ+vmxsJtjwjnINHE3UB0nPEQHju +BQAE2FaztYMkm9i3FpVYRfwdz31PGacJxqaTKNPSBUKfHv00dE5nEa9CrJsZpmRa +BRK402zYunFVCI9Sjvijl99P4gfgRClot3WzABEBAAHNJVBvdmlsYXMgS2FuYXBp +Y2thcyA8cG92aWxhc0ByYWRpeC5sdD7CwJIEEwECACUCGwMGCwkIBwMCBhUIAgkK +CwQWAgMBAh4BAheABQJSkk6WAhkBACEJEMb3riADdEUtFiEE/QAEom6t/kOkw/JJ +xveuIAN0RS1BPgf/UAUgwkzHyfX4Byhmr7GfT2cMWZOGGZG675+IBJU0SaIFRwzz +UNHZRqOhib4UDVbWE/eQCIIsqKA71ehuRnQEI/HMfmfp+dQI1rVG2fPm75riLPG8 +6SB6/VecY84grDyhJIa2XhZyWx+KG+ylIM1P2RIG/j48mnp4gFOxp/kplvbSWP+O +n16JEXmMLkMpuP/s+wRFrwToC9YEw0jjeojGwNyRbuIEuiZPM7+dLD94DFo3CzMg +nzfVsAze1psDb1eZOxVhfIUZaj9YQVjOqiz/vPLb6paE7DSojtEmcMbZPJ3SBnNq +z0Xt3WDZs40zvl/QIcGuqS5307B4FhBni5NuwMLAjwQTAQIAIgUCUpJOkwIbAwYL +CQgHAwIGFQgCCQoLBBYCAwECHgECF4AAIQkQxveuIAN0RS0WIQT9AASibq3+Q6TD +8knG964gA3RFLWbxB/9Pxj3uv5oOf9JaLRsw/b9MBDAv+sPVrdbCBpwduurDkjuc +z4FJm7Hb5eIo6Vi9G3MblksKTZ9AhSlNpNtKKpYfqaVK0fGMDzA3Hc35N81wz078 +ayIIyR4uZoN60bVYNR9kMtR65UUoQri8NzecB6xnF3CadBMb6vxwGbwAFTXRkux4 +HBTzFgpQXp+a0Rs74h7fbsS7oYfQWMoOB+C5N3yZzzWukctk9Wxf/phZ7/WaHq03 +uZSAsUi3GNC+DedKwhOHx7W1d9xHXEwpmzlrwohB1Cg+boENzrDdCCjSPtaJG6TV +C1hyXOtCXcywQa+Wzm5QI48SZk0wb3xXsv+wntgizsBNBE53SRgBCACUMb8g27EE +CYN0yh+EKsBVkAjAt9GjVqLW+ZFJjnxVzmpbD8UG0NzgvEaHCG+S0z4UQr58srhu +8Gj5OBDI8Sj2sJIoP2M1ekzmOZUJjiFhv0u0/y25eO2q6T4Akf41p6aelaVMJ1fp +wvD804cIGh3fS7RDzZ9AIUV/7VA8OTxOuNNOulzmmHJbIY1ReKRG+P7+WW59XFmj +CegLGfOA3zcsI+VGk7M5kYt95lwy+Yb+6luFIcpEiJeUHRgeq4qbnkx/F/SFayQN +kyeKQUq8QaFxHBSuUzwu38Lyr9x+i1zN59q0HMPiUc0EsbBlaFLJ7IFge00mlaQB +pmsty/bWIF6pABEBAAHCwHYEGAECAAkFAk53SRgCGwwAIQkQxveuIAN0RS0WIQT9 +AASibq3+Q6TD8knG964gA3RFLVWOB/9gdb6I1pcoVtegYPiGmokwWkA5MNgFMY37 +k71gVARu4kTcJ8w5tyaNTCP2khEyTDUlj2pY5VFsWpsXNVPf0NmAkXQV/j9qta9u +Tlt4f88x9yvITc5pMnF98cUDY09QJPeeV2B5cF3E5JBPfs4bmtsVBwJi/6isvHd9 +6/vkc8HGlpWJfZJic+K9SNo6jxWy0MiCGcEAqs0WXrGdLY7Lvaf8TI/GBuWIbFkf +U/c6Oz90A8HFOMXMG2ffDmtD7hQZIrVCLdhg7hXaq7eXl4MlZGjgKOOZHLTpOrHR +bBqT9FJdOjVocUZKA7KD1+5AQvEh5elDZGKIcyWtgIoiUd1SjKXR +=h52C +-----END PGP PUBLIC KEY BLOCK----- diff --git a/xorg-x11-server.spec b/xorg-x11-server.spec index 3cb82f7..4d45a6a 100644 --- a/xorg-x11-server.spec +++ b/xorg-x11-server.spec @@ -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 -### 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