From: Nick Bowler Date: Wed, 8 Jun 2011 18:58:08 +0000 (-0400) Subject: xorg-server: Update 9999 ebuild. X-Git-Url: http://git.draconx.ca/gitweb/gentoo-draconx.git/commitdiff_plain/a7bf0702f0468e02bfc88a4cd2b235ed001a4f1f xorg-server: Update 9999 ebuild. This incorporates the lastest from x11-overlay and adds the patches required for Intel's new "SNA" feature. --- diff --git a/x11-base/xorg-server/Manifest b/x11-base/xorg-server/Manifest index 30d84d4..64b3804 100644 --- a/x11-base/xorg-server/Manifest +++ b/x11-base/xorg-server/Manifest @@ -1,11 +1,15 @@ +AUX 0001-xaa-Free-the-scratch-pixmap-header-before-freeing-th.patch 1123 RMD160 7b11ccee412d4de0efc063821dcdd4f7f0c7f006 SHA1 1552b4c356fde066c72e9edbed209af2ec4d5ef7 SHA256 aef87d2307c9f15e152c7f4666272f3a58a938c682c842c3d186440d7a55aa96 AUX 0001-xfree86-Add-DontLie-server-flag.patch 4746 RMD160 87de996ac0eaab5d0bdc7013319ee8b0c7cd1727 SHA1 f5ba61e4a1a08b6d8f35be96d7295599edae0b84 SHA256 904cdde3750fdc23572286cd8d8fb6e6372b8c56021dcb8b1a14a5e1e5101759 +AUX 0002-Remove-the-cacheing-of-the-last-scratch-PixmapRec.patch 8449 RMD160 978b89e43da6d4fea1b4767a2ba599c382ea2f69 SHA1 fa48c334e0064d982ba9938079d1cdcc62e84c27 SHA256 730194ae24f38423daa00726486860c552cdae97e930ec7864e678c90fe36041 +AUX 0003-shm-Replace-open-coded-version-of-GetScratchPixmapHe.patch 1460 RMD160 8a05de2c0ab885c7b4469160aa0f596af3da0791 SHA1 fdee7f6459b9e942ba8cf771836ff3ac58abfa84 SHA256 18e7728c546ba670810e7a0540ec3ea266c2ff2266cfe8a98d015b21ac0947d5 +AUX 0004-shadow-Remove-unused-ModifyPixmapHeader-wrapping.patch 1501 RMD160 7837abca53cc6263ca3afc26a2c173b13af3b9e2 SHA1 56eada8b1c1427dc1d9e701f1a87f307d8bb7149 SHA256 4b5d1c0726fc346675a26c521c00b6fd51b2e5e349f5a22ef80d54e985e9e8af AUX 1.7.5.902-fix-tslib-1.0-check.patch 743 RMD160 139969e7c89ccbb6c86a93b7ea74aad2e942cd55 SHA1 621f3dea75aeb84a30279e5854b0ae256f653113 SHA256 03fced212933eb4502554c4fd629ead92027dc13f178ad5c43cd59b7ce615cea AUX 1.8.0-match-only-sane-devices.patch 1980 RMD160 4fee29076bb30e8fb1b820ef58a1c26f3bd63c73 SHA1 98d4ea8e493a31f141e39f4a468458469ebff58f SHA256 95f6ab36fa1b6b80786ff90fb2ee1f7fe02d964a1d10c90277060b4982d8eace AUX 1.8.0-no-hardcoded-etc.patch 833 RMD160 9e3736556f8c74c1c78561590cf03e9316d28a75 SHA1 0063e0c520f128507e71134571de6dd95a00079c SHA256 2168832548dbb8d6619df7b2a54b22f118de588522b4014dabaa98829331a6b9 AUX xdm-setup.initd-1 339 RMD160 dd3f50da114627d2be776b41a0d7d967ebbff477 SHA1 d86813f810aab72b81a72c298c2d230554d8e82e SHA256 018bc6acc70c708d8e3935617b8da2b84a3f5502a4db4c4731c2eaea7d3f04c0 AUX xdm.confd-3 853 RMD160 363cd18f760650923e16579bf55f661e93dad63b SHA1 0027b98f2aeb5c43219fa4f9b7d81a05101bec6f SHA256 00af0d957ff1b4f31c1aa4701d93a54080408548792deafac5414cbfa13b89ec AUX xdm.initd 5392 RMD160 eec0b0ccefeee366e891afc73d195240b447421f SHA1 d3ce725e86fa3889f77403354b7f69d8184181ae SHA256 0c087c42d46563fd9d63da655753128aab2a0815efb83f906db3f54ba5c886ce -AUX xdm.initd-3 5394 RMD160 7810d9873cd27ab8130bf3bd5dd39a219b18a014 SHA1 52b20375c9e21671081d0dcdf99024fc63b8b2b8 SHA256 f0999a2c7486675e3eb549653e136afaf457400fc7ba17d77f0266a2291ebf42 +AUX xdm.initd-3 5551 RMD160 7af6e239e3e75ea88a0766ef2f4976a8b5c51c95 SHA1 bd30222c7941d50fc0f62c5008a0e3b97e2d00e0 SHA256 8f1d35638559d12ed14e8cc2e26800e0ee9a10f14c7be912c834c73d12913601 AUX xorg-server-1.9-nouveau-default.patch 916 RMD160 0ebdf0fb76364b7fd0c520c3a2f7cc2cc1a83446 SHA1 daddde0f4f4276e12b87354d2e6825ed5c74c6eb SHA256 a7ff421dd928e3025194279f9afb7cc033a896b3417abe339741e9c6ed4b54ea AUX xorg-server-disable-acpi.patch 663 RMD160 7074ca5276369b746ea7606a0795232aafe07c90 SHA1 d300a37dd2e0a8aa3965948c13f6995e6767841d SHA256 5b3cc7c8bea18fe3ba81851d2846d19ffd8fab9cdf5d8f3a274846847e734200 AUX xorg-sets.conf 199 RMD160 33815115b6e8b8360af4f0778b0e2c5fb1a9aaee SHA1 b5a2fd01a97558fa909c67f510d8a59b55e20f57 SHA256 1201d0337ac69d9715f4454a86dfb8a7bd1ae6f4c2578042fc08f283a997597c @@ -15,4 +19,4 @@ DIST xorg-server-1.8.1.tar.bz2 5200978 RMD160 27bd6d1e565e241412f1fb8e18b5b9b194 EBUILD xorg-server-1.7.7.ebuild 7220 RMD160 ed925fe7fccf08ae58ce59314a0c472535f13ec0 SHA1 5d72d32a1b8c9c4f40f88627b42d749ed4223e7b SHA256 f70710b49e1ca43c8cc765fe20ab9819bc5b2793eff0064cee607e4703d73ccc EBUILD xorg-server-1.8.0.ebuild 8221 RMD160 6aa53ec1042a8c12b9aa06c1aee767a50e1c2445 SHA1 d1e770f5108c161fb5d20207c612c568c32cfdc8 SHA256 5e21d8ab052b17774c40b67fb20981847a289ddbad39b8753501d21b50a6d450 EBUILD xorg-server-1.8.1-r1.ebuild 7998 RMD160 c1035725f811ee2b5723a8bdac73cb3eeb3f6dd0 SHA1 08cf52506fb9eb2261b9c3d64dd8807fd95daeb5 SHA256 43b5bc070b8f479c08532f4a5c62b332cf8f579ee5f49614ffb256a1bb746a1a -EBUILD xorg-server-9999.ebuild 7709 RMD160 07d17dd9f7666826cd5914e46135085f140c89cd SHA1 acbc023b5acadcc57c4dc06c537ffcb71ce06ab5 SHA256 016bd9f10f4368379c833593beb48e2de036b744cee54b430dd5f26c095d480b +EBUILD xorg-server-9999.ebuild 6983 RMD160 8e70bf7fa72a84fc82f7682adbe85852262f86b5 SHA1 3ee6e768666fad5ea93738ec56d35c9b79d3cb49 SHA256 6c9c1246cce29638d736fb138321c334b1e2954fe925ab7f0595f7464c0df3ac diff --git a/x11-base/xorg-server/files/0001-xaa-Free-the-scratch-pixmap-header-before-freeing-th.patch b/x11-base/xorg-server/files/0001-xaa-Free-the-scratch-pixmap-header-before-freeing-th.patch new file mode 100644 index 0000000..8ce2673 --- /dev/null +++ b/x11-base/xorg-server/files/0001-xaa-Free-the-scratch-pixmap-header-before-freeing-th.patch @@ -0,0 +1,35 @@ +From 6c51a336f31c63167beb48bf0512cd13feac70a2 Mon Sep 17 00:00:00 2001 +From: Chris Wilson +Date: Mon, 6 Jun 2011 05:36:06 +0000 +Subject: [PATCH 1/4] xaa: Free the scratch pixmap header before freeing the contents + +Some DDX may be sensitive to the ordering and could conceivably continue +to use the memory freed before FreeScratchPixmapHeader is called. + +Signed-off-by: Chris Wilson +--- + hw/xfree86/xaa/xaaOffscreen.c | 5 ++--- + 1 files changed, 2 insertions(+), 3 deletions(-) + +diff --git a/hw/xfree86/xaa/xaaOffscreen.c b/hw/xfree86/xaa/xaaOffscreen.c +index cd0d9a9..8fa5d6d 100644 +--- a/hw/xfree86/xaa/xaaOffscreen.c ++++ b/hw/xfree86/xaa/xaaOffscreen.c +@@ -90,12 +90,11 @@ XAAMoveInOffscreenPixmaps(ScreenPtr pScreen) + (*pGC->ops->CopyArea)((DrawablePtr)tmpPix, (DrawablePtr)pPix, pGC, + 0, 0, pPix->drawable.width, pPix->drawable.height, 0, 0); + +- free(data); +- tmpPix->devPrivate.ptr = NULL; +- + FreeScratchGC(pGC); + FreeScratchPixmapHeader(tmpPix); + ++ free(data); ++ + pPriv->offscreenArea = area; + pLink->area = NULL; + pLink = pLink->next; +-- +1.7.3.4 + diff --git a/x11-base/xorg-server/files/0002-Remove-the-cacheing-of-the-last-scratch-PixmapRec.patch b/x11-base/xorg-server/files/0002-Remove-the-cacheing-of-the-last-scratch-PixmapRec.patch new file mode 100644 index 0000000..8b1ff08 --- /dev/null +++ b/x11-base/xorg-server/files/0002-Remove-the-cacheing-of-the-last-scratch-PixmapRec.patch @@ -0,0 +1,246 @@ +From 3d511ad85744b88158d6dbcaa51eb8860cde8dd4 Mon Sep 17 00:00:00 2001 +From: Chris Wilson +Date: Mon, 6 Jun 2011 05:36:07 +0000 +Subject: [PATCH 2/4] Remove the cacheing of the last scratch PixmapRec + +In order for the driver to be notified of when the resource backing the +scratch pixmap becomes no longer accessible, it needs to be called on +every FreeScratchPixmapHeader(). As we instead maybe cached the +PixmapRec (to avoid the free and malloc overhead), this notification +went astray, and the driver would fail to insert the correct barriers on +the backing resource. That resource would then be reused by the Xserver, +leading to rampant memory corruption as the GPU flushed it write caches +at some point in the future and overwriting random structures. + +In addition we introduce a new hint, CREATE_PIXMAP_USAGE_SCRATCH_HEADER, +so that the driver can be warned during pixmap creation (and lifetime) +if the pixmap points to other data. + +A side-effect of removing the cache is that several members of the +ScreenInfo structure and associated routines become redundant and +deleted as well. So we bump the ABI version as well. + +Signed-off-by: Chris Wilson +--- + dix/dispatch.c | 1 - + dix/main.c | 4 +-- + dix/pixmap.c | 58 ++++++++++++++++------------------------ + fb/fbpixmap.c | 2 +- + hw/xfree86/common/xf86Module.h | 2 +- + include/pixmap.h | 7 +--- + include/scrnintstr.h | 8 +++--- + 7 files changed, 32 insertions(+), 50 deletions(-) + +diff --git a/dix/dispatch.c b/dix/dispatch.c +index 192c8c3..3f73175 100644 +--- a/dix/dispatch.c ++++ b/dix/dispatch.c +@@ -3855,7 +3855,6 @@ AddScreen( + return -1; + } + pScreen->myNum = i; +- pScreen->totalPixmapSize = 0; /* computed in CreateScratchPixmapForScreen */ + pScreen->ClipNotify = 0; /* for R4 ddx compatibility */ + pScreen->CreateScreenResources = 0; + +diff --git a/dix/main.c b/dix/main.c +index 955b7ea..7eadf36 100644 +--- a/dix/main.c ++++ b/dix/main.c +@@ -206,12 +206,11 @@ int main(int argc, char *argv[], char *envp[]) + if (screenInfo.numScreens < 1) + FatalError("no screens found"); + InitExtensions(argc, argv); ++ InitPixmaps(); + + for (i = 0; i < screenInfo.numScreens; i++) + { + ScreenPtr pScreen = screenInfo.screens[i]; +- if (!CreateScratchPixmapsForScreen(i)) +- FatalError("failed to create scratch pixmaps"); + if (pScreen->CreateScreenResources && + !(*pScreen->CreateScreenResources)(pScreen)) + FatalError("failed to create screen resources"); +@@ -321,7 +320,6 @@ int main(int argc, char *argv[], char *envp[]) + + for (i = screenInfo.numScreens - 1; i >= 0; i--) + { +- FreeScratchPixmapsForScreen(i); + FreeGCperDepth(i); + FreeDefaultStipple(i); + (* screenInfo.screens[i]->CloseScreen)(i, screenInfo.screens[i]); +diff --git a/dix/pixmap.c b/dix/pixmap.c +index cbb5e7f..0b43592 100644 +--- a/dix/pixmap.c ++++ b/dix/pixmap.c +@@ -53,20 +53,19 @@ PixmapPtr + GetScratchPixmapHeader(ScreenPtr pScreen, int width, int height, int depth, + int bitsPerPixel, int devKind, pointer pPixData) + { +- PixmapPtr pPixmap = pScreen->pScratchPixmap; ++ PixmapPtr pPixmap; + +- if (pPixmap) +- pScreen->pScratchPixmap = NULL; +- else +- /* width and height of 0 means don't allocate any pixmap data */ +- pPixmap = (*pScreen->CreatePixmap)(pScreen, 0, 0, depth, 0); +- +- if (pPixmap) { +- if ((*pScreen->ModifyPixmapHeader)(pPixmap, width, height, depth, +- bitsPerPixel, devKind, pPixData)) +- return pPixmap; +- (*pScreen->DestroyPixmap)(pPixmap); +- } ++ /* width and height of 0 means don't allocate any pixmap data */ ++ pPixmap = (*pScreen->CreatePixmap)(pScreen, 0, 0, depth, ++ CREATE_PIXMAP_USAGE_SCRATCH_HEADER); ++ if (pPixmap == NullPixmap) ++ return NullPixmap; ++ ++ if ((*pScreen->ModifyPixmapHeader)(pPixmap, width, height, depth, ++ bitsPerPixel, devKind, pPixData)) ++ return pPixmap; ++ ++ (*pScreen->DestroyPixmap)(pPixmap); + return NullPixmap; + } + +@@ -79,33 +78,22 @@ FreeScratchPixmapHeader(PixmapPtr pPixmap) + { + ScreenPtr pScreen = pPixmap->drawable.pScreen; + +- pPixmap->devPrivate.ptr = NULL; /* lest ddx chases bad ptr */ +- if (pScreen->pScratchPixmap) +- (*pScreen->DestroyPixmap)(pPixmap); +- else +- pScreen->pScratchPixmap = pPixmap; ++ if (pPixmap->refcnt != 1) ++ FatalError("Scratch pixmap still in use when finalized, refcnt=%d\n", ++ pPixmap->refcnt); ++ ++ (*pScreen->DestroyPixmap)(pPixmap); + } + } + + +-Bool +-CreateScratchPixmapsForScreen(int scrnum) ++void ++InitPixmaps(void) + { + unsigned int pixmap_size; + + pixmap_size = sizeof(PixmapRec) + dixPrivatesSize(PRIVATE_PIXMAP); +- screenInfo.screens[scrnum]->totalPixmapSize = BitmapBytePad(pixmap_size * 8); +- +- /* let it be created on first use */ +- screenInfo.screens[scrnum]->pScratchPixmap = NULL; +- return TRUE; +-} +- +- +-void +-FreeScratchPixmapsForScreen(int scrnum) +-{ +- FreeScratchPixmapHeader(screenInfo.screens[scrnum]->pScratchPixmap); ++ screenInfo.totalPixmapSize = BitmapBytePad(pixmap_size * 8); + } + + +@@ -115,12 +103,12 @@ AllocatePixmap(ScreenPtr pScreen, int pixDataSize) + { + PixmapPtr pPixmap; + +- assert(pScreen->totalPixmapSize > 0); ++ assert(screenInfo.totalPixmapSize > 0); + +- if (pScreen->totalPixmapSize > ((size_t)-1) - pixDataSize) ++ if (screenInfo.totalPixmapSize > ((size_t)-1) - pixDataSize) + return NullPixmap; + +- pPixmap = malloc(pScreen->totalPixmapSize + pixDataSize); ++ pPixmap = malloc(screenInfo.totalPixmapSize + pixDataSize); + if (!pPixmap) + return NullPixmap; + +diff --git a/fb/fbpixmap.c b/fb/fbpixmap.c +index a356c67..aebdff0 100644 +--- a/fb/fbpixmap.c ++++ b/fb/fbpixmap.c +@@ -42,7 +42,7 @@ fbCreatePixmapBpp (ScreenPtr pScreen, int width, int height, int depth, int bpp, + if (paddedWidth / 4 > 32767 || height > 32767) + return NullPixmap; + datasize = height * paddedWidth; +- base = pScreen->totalPixmapSize; ++ base = screenInfo.totalPixmapSize; + adjust = 0; + if (base & 7) + adjust = 8 - (base & 7); +diff --git a/hw/xfree86/common/xf86Module.h b/hw/xfree86/common/xf86Module.h +index 2a5c805..cf7557e 100644 +--- a/hw/xfree86/common/xf86Module.h ++++ b/hw/xfree86/common/xf86Module.h +@@ -82,7 +82,7 @@ typedef enum { + * mask is 0xFFFF0000. + */ + #define ABI_ANSIC_VERSION SET_ABI_VERSION(0, 4) +-#define ABI_VIDEODRV_VERSION SET_ABI_VERSION(11, 0) ++#define ABI_VIDEODRV_VERSION SET_ABI_VERSION(12, 0) + #define ABI_XINPUT_VERSION SET_ABI_VERSION(13, 0) + #define ABI_EXTENSION_VERSION SET_ABI_VERSION(5, 0) + #define ABI_FONT_VERSION SET_ABI_VERSION(0, 6) +diff --git a/include/pixmap.h b/include/pixmap.h +index 014a111..daab76c 100644 +--- a/include/pixmap.h ++++ b/include/pixmap.h +@@ -103,11 +103,8 @@ extern _X_EXPORT PixmapPtr GetScratchPixmapHeader( + extern _X_EXPORT void FreeScratchPixmapHeader( + PixmapPtr /*pPixmap*/); + +-extern _X_EXPORT Bool CreateScratchPixmapsForScreen( +- int /*scrnum*/); +- +-extern _X_EXPORT void FreeScratchPixmapsForScreen( +- int /*scrnum*/); ++extern _X_EXPORT void InitPixmaps( ++ void); + + extern _X_EXPORT PixmapPtr AllocatePixmap( + ScreenPtr /*pScreen*/, +diff --git a/include/scrnintstr.h b/include/scrnintstr.h +index a9357e8..617eadb 100644 +--- a/include/scrnintstr.h ++++ b/include/scrnintstr.h +@@ -202,6 +202,8 @@ typedef void (* ClipNotifyProcPtr)( + #define CREATE_PIXMAP_USAGE_BACKING_PIXMAP 2 + /* pixmap will contain a glyph */ + #define CREATE_PIXMAP_USAGE_GLYPH_PICTURE 3 ++/* pixmap will only be as a header for transient (e.g. on-stack) pixels */ ++#define CREATE_PIXMAP_USAGE_SCRATCH_HEADER 4 + + typedef PixmapPtr (* CreatePixmapProcPtr)( + ScreenPtr /*pScreen*/, +@@ -518,10 +520,6 @@ typedef struct _Screen { + GetScreenPixmapProcPtr GetScreenPixmap; + SetScreenPixmapProcPtr SetScreenPixmap; + +- PixmapPtr pScratchPixmap; /* scratch pixmap "pool" */ +- +- unsigned int totalPixmapSize; +- + MarkWindowProcPtr MarkWindow; + MarkOverlappedWindowsProcPtr MarkOverlappedWindows; + ConfigNotifyProcPtr ConfigNotify; +@@ -556,6 +554,8 @@ typedef struct _ScreenInfo { + int bitmapScanlineUnit; + int bitmapScanlinePad; + int bitmapBitOrder; ++ unsigned int totalPixmapSize; ++ + int numPixmapFormats; + PixmapFormatRec + formats[MAXFORMATS]; +-- +1.7.3.4 + diff --git a/x11-base/xorg-server/files/0003-shm-Replace-open-coded-version-of-GetScratchPixmapHe.patch b/x11-base/xorg-server/files/0003-shm-Replace-open-coded-version-of-GetScratchPixmapHe.patch new file mode 100644 index 0000000..7cdd931 --- /dev/null +++ b/x11-base/xorg-server/files/0003-shm-Replace-open-coded-version-of-GetScratchPixmapHe.patch @@ -0,0 +1,47 @@ +From 25539d955903f408742bd1b79ce80b559c8f9af9 Mon Sep 17 00:00:00 2001 +From: Chris Wilson +Date: Mon, 6 Jun 2011 05:36:08 +0000 +Subject: [PATCH 3/4] shm: Replace open-coded version of GetScratchPixmapHeader + +fbShmCreatePixmap() was just another variant of wrapping an arbitrary +data pointer within a pixmap, ala GetScratchPixmapHeader(). + +By using the common version, the fbShmCreatePixmap() is also updated to +pass the information that the pixmap contents are not part of the ddx +address space. + +Signed-off-by: Chris Wilson +--- + Xext/shm.c | 16 ++++------------ + 1 files changed, 4 insertions(+), 12 deletions(-) + +diff --git a/Xext/shm.c b/Xext/shm.c +index b08af82..c6a3aee 100644 +--- a/Xext/shm.c ++++ b/Xext/shm.c +@@ -1018,18 +1018,10 @@ static PixmapPtr + fbShmCreatePixmap (ScreenPtr pScreen, + int width, int height, int depth, char *addr) + { +- PixmapPtr pPixmap; +- +- pPixmap = (*pScreen->CreatePixmap)(pScreen, 0, 0, pScreen->rootDepth, 0); +- if (!pPixmap) +- return NullPixmap; +- +- if (!(*pScreen->ModifyPixmapHeader)(pPixmap, width, height, depth, +- BitsPerPixel(depth), PixmapBytePad(width, depth), (pointer)addr)) { +- (*pScreen->DestroyPixmap)(pPixmap); +- return NullPixmap; +- } +- return pPixmap; ++ return GetScratchPixmapHeader(pScreen, width, height, depth, ++ BitsPerPixel(depth), ++ PixmapBytePad(width, depth), ++ addr); + } + + static int +-- +1.7.3.4 + diff --git a/x11-base/xorg-server/files/0004-shadow-Remove-unused-ModifyPixmapHeader-wrapping.patch b/x11-base/xorg-server/files/0004-shadow-Remove-unused-ModifyPixmapHeader-wrapping.patch new file mode 100644 index 0000000..49e6e98 --- /dev/null +++ b/x11-base/xorg-server/files/0004-shadow-Remove-unused-ModifyPixmapHeader-wrapping.patch @@ -0,0 +1,41 @@ +From 64feb8b55d7c213b6730cd104ceaf232198c943e Mon Sep 17 00:00:00 2001 +From: Chris Wilson +Date: Mon, 6 Jun 2011 05:36:09 +0000 +Subject: [PATCH 4/4] shadow: Remove unused ModifyPixmapHeader wrapping + +Signed-off-by: Chris Wilson +--- + hw/xfree86/shadowfb/shadow.c | 3 --- + 1 files changed, 0 insertions(+), 3 deletions(-) + +diff --git a/hw/xfree86/shadowfb/shadow.c b/hw/xfree86/shadowfb/shadow.c +index 5cc476a..46d481b 100644 +--- a/hw/xfree86/shadowfb/shadow.c ++++ b/hw/xfree86/shadowfb/shadow.c +@@ -63,7 +63,6 @@ typedef struct { + CloseScreenProcPtr CloseScreen; + CopyWindowProcPtr CopyWindow; + CreateGCProcPtr CreateGC; +- ModifyPixmapHeaderProcPtr ModifyPixmapHeader; + CompositeProcPtr Composite; + Bool (*EnterVT)(int, int); + void (*LeaveVT)(int, int); +@@ -172,7 +171,6 @@ ShadowFBInit2 ( + pPriv->CloseScreen = pScreen->CloseScreen; + pPriv->CopyWindow = pScreen->CopyWindow; + pPriv->CreateGC = pScreen->CreateGC; +- pPriv->ModifyPixmapHeader = pScreen->ModifyPixmapHeader; + + pPriv->EnterVT = pScrn->EnterVT; + pPriv->LeaveVT = pScrn->LeaveVT; +@@ -248,7 +246,6 @@ ShadowCloseScreen (int i, ScreenPtr pScreen) + pScreen->CloseScreen = pPriv->CloseScreen; + pScreen->CopyWindow = pPriv->CopyWindow; + pScreen->CreateGC = pPriv->CreateGC; +- pScreen->ModifyPixmapHeader = pPriv->ModifyPixmapHeader; + + pScrn->EnterVT = pPriv->EnterVT; + pScrn->LeaveVT = pPriv->LeaveVT; +-- +1.7.3.4 + diff --git a/x11-base/xorg-server/files/xdm.initd-3 b/x11-base/xorg-server/files/xdm.initd-3 index 3471977..993af2f 100755 --- a/x11-base/xorg-server/files/xdm.initd-3 +++ b/x11-base/xorg-server/files/xdm.initd-3 @@ -1,7 +1,7 @@ #!/sbin/runscript -# Copyright 1999-2004 Gentoo Foundation +# Copyright 1999-2011 Gentoo Foundation # Distributed under the terms of the GNU General Public License, v2 -# $Header: /var/cvsroot/gentoo-x86/x11-base/xorg-server/files/xdm.initd,v 1.1 2010/04/13 10:07:39 scarabeus Exp $ +# $Header: /var/cvsroot/gentoo-x86/x11-base/xorg-server/files/xdm.initd-3,v 1.2 2011/01/22 15:30:07 lxnay Exp $ # This is here to serve as a note to myself, and future developers. # @@ -90,6 +90,11 @@ setup_dm() { EXE=/usr/bin/gpe-dm PIDFILE=/var/run/gpe-dm.pid ;; + lxdm) + EXE=/usr/sbin/lxdm-binary + PIDFILE=/var/run/lxdm.pid + START_STOP_ARGS="--background" + ;; *) # first find out if there is such executable EXE="$(which ${MY_XDM} 2>/dev/null)" @@ -141,6 +146,7 @@ start() { save_options "service" "${EXE}" save_options "name" "${NAME}" save_options "pidfile" "${PIDFILE}" + save_options "start_stop_args" "${START_STOP_ARGS}" if [ -n "${CHECKVT-y}" ] ; then if vtstatic "${CHECKVT:-7}" ; then diff --git a/x11-base/xorg-server/xorg-server-9999.ebuild b/x11-base/xorg-server/xorg-server-9999.ebuild index b059c99..64650f6 100644 --- a/x11-base/xorg-server/xorg-server-9999.ebuild +++ b/x11-base/xorg-server/xorg-server-9999.ebuild @@ -1,19 +1,19 @@ -# Copyright 1999-2010 Gentoo Foundation +# Copyright 1999-2011 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/x11-base/xorg-server/xorg-server-1.9.0.ebuild,v 1.1 2010/09/12 18:41:36 chithanh Exp $ +# $Header: $ -EAPI=3 -inherit xorg-2 multilib versionator +EAPI=4 +XORG_DOC=doc +inherit xorg-2 multilib versionator EGIT_REPO_URI="git://anongit.freedesktop.org/git/xorg/xserver" -OPENGL_DIR="xorg-x11" - DESCRIPTION="X.Org X servers" KEYWORDS="" IUSE_SERVERS="dmx kdrive xorg" -IUSE="${IUSE_SERVERS} doc ipv6 minimal nptl tslib +udev" +IUSE="${IUSE_SERVERS} ipv6 minimal nptl tslib +udev" + RDEPEND=">=app-admin/eselect-opengl-1.0.8 dev-libs/openssl media-libs/freetype @@ -26,7 +26,7 @@ RDEPEND=">=app-admin/eselect-opengl-1.0.8 >=x11-libs/libXdmcp-1.0.2 >=x11-libs/libXfont-1.4.2 >=x11-libs/libxkbfile-1.0.4 - >=x11-libs/pixman-0.15.20 + >=x11-libs/pixman-0.21.8 >=x11-libs/xtrans-1.2.2 >=x11-misc/xbitmaps-1.0.1 >=x11-misc/xkeyboard-config-1.4 @@ -35,12 +35,12 @@ RDEPEND=">=app-admin/eselect-opengl-1.0.8 >=x11-libs/libdmx-1.0.99.1 >=x11-libs/libX11-1.1.5 >=x11-libs/libXaw-1.0.4 - >=x11-libs/libXext-1.0.5 + >=x11-libs/libXext-1.0.99.4 >=x11-libs/libXfixes-4.0.3 >=x11-libs/libXi-1.2.99.1 >=x11-libs/libXmu-1.0.3 >=x11-libs/libXres-1.0.3 - >=x11-libs/libXtst-1.0.3 + >=x11-libs/libXtst-1.0.99.2 ) kdrive? ( >=x11-libs/libXext-1.0.5 @@ -52,7 +52,8 @@ RDEPEND=">=app-admin/eselect-opengl-1.0.8 >=media-libs/mesa-7.8_rc[nptl=] ) tslib? ( >=x11-libs/tslib-1.0 x11-proto/xcalibrateproto ) - udev? ( >=sys-fs/udev-150 )" + udev? ( >=sys-fs/udev-150 ) + >=x11-apps/xinit-1.3" DEPEND="${RDEPEND} sys-devel/flex @@ -72,17 +73,13 @@ DEPEND="${RDEPEND} >=x11-proto/trapproto-3.4.3 >=x11-proto/videoproto-2.2.2 >=x11-proto/xcmiscproto-1.2.0 - >=x11-proto/xextproto-7.0.99.3 + >=x11-proto/xextproto-7.1.99 >=x11-proto/xf86dgaproto-2.0.99.1 >=x11-proto/xf86rushproto-1.1.2 >=x11-proto/xf86vidmodeproto-2.2.99.1 >=x11-proto/xineramaproto-1.1.3 >=x11-proto/xproto-7.0.17 dmx? ( >=x11-proto/dmxproto-2.2.99.1 ) - doc? ( - >=app-doc/doxygen-1.6.1 - app-text/xmlto - ) !minimal? ( >=x11-proto/xf86driproto-2.1.0 >=x11-proto/dri2proto-2.3 @@ -90,36 +87,42 @@ DEPEND="${RDEPEND} )" PDEPEND=" - >=x11-apps/xinit-1.2.1-r1 xorg? ( x11-base/xorg-drivers )" -EPATCH_FORCE="yes" -EPATCH_SUFFIX="patch" +REQUIRED_USE="!minimal? ( + || ( ${IUSE_SERVERS} ) + )" -# These have been sent upstream #UPSTREAMED_PATCHES=( # "${WORKDIR}/patches/" -# ) +#) PATCHES=( "${UPSTREAMED_PATCHES[@]}" "${FILESDIR}"/${PN}-disable-acpi.patch "${FILESDIR}"/${PN}-1.9-nouveau-default.patch - "${FILESDIR}"/1.7.5.902-fix-tslib-1.0-check.patch - ) + "${FILESDIR}"/0001-xaa-Free-the-scratch-pixmap-header-before-freeing-th.patch + "${FILESDIR}"/0002-Remove-the-cacheing-of-the-last-scratch-PixmapRec.patch + "${FILESDIR}"/0003-shm-Replace-open-coded-version-of-GetScratchPixmapHe.patch + "${FILESDIR}"/0004-shadow-Remove-unused-ModifyPixmapHeader-wrapping.patch +) + +pkg_pretend() { + # older gcc is not supported + [[ $(gcc-major-version) -lt 4 ]] && \ + die "Sorry, but gcc earlier than 4.0 wont work for xorg-server." +} pkg_setup() { xorg-2_pkg_setup - use minimal || ensure_a_server_is_building - # localstatedir is used for the log location; we need to override the default # from ebuild.sh # sysconfdir is used for the xorg.conf location; same applies # --enable-install-setuid needed because sparcs default off # NOTE: fop is used for doc generating ; and i have no idea if gentoo # package it somewhere - CONFIGURE_OPTIONS=" + XORG_CONFIGURE_OPTIONS=( $(use_enable ipv6) $(use_enable dmx) $(use_enable kdrive) @@ -150,11 +153,10 @@ pkg_setup() { --without-dtrace --without-fop --with-os-vendor=Gentoo - ${conf_opts}" + ) # Xorg-server requires includes from OS mesa which are not visible for # users of binary drivers. - # Due to the limitations of CONFIGURE_OPTIONS, we have to export this mkdir -p "${T}/mesa-symlinks/GL" for i in gl glx glxmd glxproto glxtokens; do ln -s "${EROOT}usr/$(get_libdir)/opengl/xorg-x11/include/$i.h" "${T}/mesa-symlinks/GL/$i.h" || die @@ -163,28 +165,6 @@ pkg_setup() { ln -s "${EROOT}usr/$(get_libdir)/opengl/global/include/$i.h" "${T}/mesa-symlinks/GL/$i.h" || die done append-cppflags "-I${T}/mesa-symlinks" - - # (#121394) Causes window corruption - filter-flags -fweb - - # Incompatible with GCC 3.x SSP on x86, bug #244352 - if use x86 ; then - if [[ $(gcc-major-version) -lt 4 ]]; then - filter-flags -fstack-protector - fi - fi - - # Incompatible with GCC 3.x CPP, bug #314615 - if [[ $(gcc-major-version) -lt 4 ]]; then - ewarn "GCC 3.x C preprocessor may cause build failures. Use GCC 4.x" - ewarn "or set CPP=cpp-4.3.4 (replace with the actual installed version)" - fi - - # detect if we should inform user about ebuild breakage - if ! has_version "x11-base/xorg-server" || - has_version "