summaryrefslogtreecommitdiff
path: root/source/x/x11/patch
diff options
context:
space:
mode:
authorPatrick J Volkerding <volkerdi@slackware.com>2013-11-04 17:08:47 +0000
committerEric Hameleers <alien@slackware.com>2018-05-31 22:57:36 +0200
commit76fc4757ac91ac7947a01fb7b53dddf9a78a01d1 (patch)
tree9b98e6e193c7870cb27ac861394c1c4592850922 /source/x/x11/patch
parent9664bee729d487bcc0a0bc35859f8e13d5421c75 (diff)
downloadcurrent-76fc4757ac91ac7947a01fb7b53dddf9a78a01d1.tar.gz
Slackware 14.1slackware-14.1
Mon Nov 4 17:08:47 UTC 2013 Slackware 14.1 x86_64 stable is released! It's been another interesting release cycle here at Slackware bringing new features like support for UEFI machines, updated compilers and development tools, the switch from MySQL to MariaDB, and many more improvements throughout the system. Thanks to the team, the upstream developers, the dedicated Slackware community, and everyone else who pitched in to help make this release a reality. The ISOs are off to be replicated, a 6 CD-ROM 32-bit set and a dual-sided 32-bit/64-bit x86/x86_64 DVD. Please consider supporting the Slackware project by picking up a copy from store.slackware.com. We're taking pre-orders now, and offer a discount if you sign up for a subscription. Have fun! :-)
Diffstat (limited to 'source/x/x11/patch')
-rw-r--r--source/x/x11/patch/xcompmgr.patch2
-rw-r--r--source/x/x11/patch/xcompmgr/patch-XFixesSetPictureClipRegion-shadow-fix-xcompmgr.c.diff28
-rw-r--r--source/x/x11/patch/xdm.patch1
-rw-r--r--source/x/x11/patch/xdm/xdm.glibc.crypt.diff42
-rw-r--r--source/x/x11/patch/xf86-video-apm.patch7
-rw-r--r--source/x/x11/patch/xf86-video-ark.patch7
-rw-r--r--source/x/x11/patch/xf86-video-ast.patch7
-rw-r--r--source/x/x11/patch/xf86-video-chips.patch27
-rw-r--r--source/x/x11/patch/xf86-video-chips/0001-chips-gut-the-overlay-8-16-support-from-driver.patch588
-rw-r--r--source/x/x11/patch/xf86-video-chips/0002-PciTag-is-unused-when-using-libpciaccess.patch29
-rw-r--r--source/x/x11/patch/xf86-video-chips/0003-Use-malloc-calloc-realloc-free-directly.patch50
-rw-r--r--source/x/x11/patch/xf86-video-chips/0004-configure.ac-Remove-AM_PROG_CC_C_O.patch27
-rw-r--r--source/x/x11/patch/xf86-video-chips/0005-util-Consolidate-common-macros.patch283
-rw-r--r--source/x/x11/patch/xf86-video-chips/0006-Fix-implicit-declaration-of-iopl.patch35
-rw-r--r--source/x/x11/patch/xf86-video-chips/0007-Build-fix-for-ABI-Version-12.patch51
-rw-r--r--source/x/x11/patch/xf86-video-chips/0008-Fall-back-to-shadowfb-if-XAA-is-unavailable.patch31
-rw-r--r--source/x/x11/patch/xf86-video-chips/0009-Fix-for-new-vgaHW-ABI.patch25
-rw-r--r--source/x/x11/patch/xf86-video-chips/iopl.h60
-rw-r--r--source/x/x11/patch/xf86-video-dummy.patch7
-rw-r--r--source/x/x11/patch/xf86-video-geode.patch7
-rw-r--r--source/x/x11/patch/xf86-video-glint.patch7
-rw-r--r--source/x/x11/patch/xf86-video-i128.patch7
-rw-r--r--source/x/x11/patch/xf86-video-i740.patch7
-rw-r--r--source/x/x11/patch/xf86-video-neomagic.patch7
-rw-r--r--source/x/x11/patch/xf86-video-nv.patch10
-rw-r--r--source/x/x11/patch/xf86-video-r128.patch7
-rw-r--r--source/x/x11/patch/xf86-video-rendition.patch7
-rw-r--r--source/x/x11/patch/xf86-video-s3.patch7
-rw-r--r--source/x/x11/patch/xf86-video-s3virge.patch7
-rw-r--r--source/x/x11/patch/xf86-video-savage.patch7
-rw-r--r--source/x/x11/patch/xf86-video-siliconmotion.patch7
-rw-r--r--source/x/x11/patch/xf86-video-sis.patch2
-rw-r--r--source/x/x11/patch/xf86-video-sis/sis-0.10.7-git.patch121
-rw-r--r--source/x/x11/patch/xf86-video-sisusb.patch7
-rw-r--r--source/x/x11/patch/xf86-video-tdfx.patch7
-rw-r--r--source/x/x11/patch/xf86-video-tga.patch7
-rw-r--r--source/x/x11/patch/xf86-video-trident.patch7
-rw-r--r--source/x/x11/patch/xf86-video-tseng.patch7
-rw-r--r--source/x/x11/patch/xf86-video-vesa.patch7
-rw-r--r--source/x/x11/patch/xf86-video-vmware.patch7
-rw-r--r--source/x/x11/patch/xf86-video-voodoo.patch7
-rw-r--r--source/x/x11/patch/xf86-video-xgi.patch7
-rw-r--r--source/x/x11/patch/xf86-video-xgixp.patch7
-rw-r--r--source/x/x11/patch/xorg-server.patch1
-rw-r--r--source/x/x11/patch/xorg-server/xorg-server.CVE-2013-4396.diff73
45 files changed, 539 insertions, 1122 deletions
diff --git a/source/x/x11/patch/xcompmgr.patch b/source/x/x11/patch/xcompmgr.patch
index 6097b12a..33c43a52 100644
--- a/source/x/x11/patch/xcompmgr.patch
+++ b/source/x/x11/patch/xcompmgr.patch
@@ -1,2 +1,4 @@
zcat $CWD/patch/xcompmgr/xcompmgr-follow-icccm-spec.diff.gz | patch -p1 --verbose \
|| { touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
+zcat $CWD/patch/xcompmgr/patch-XFixesSetPictureClipRegion-shadow-fix-xcompmgr.c.diff.gz | patch -p0 --verbose \
+ || { touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
diff --git a/source/x/x11/patch/xcompmgr/patch-XFixesSetPictureClipRegion-shadow-fix-xcompmgr.c.diff b/source/x/x11/patch/xcompmgr/patch-XFixesSetPictureClipRegion-shadow-fix-xcompmgr.c.diff
new file mode 100644
index 00000000..39b8ac72
--- /dev/null
+++ b/source/x/x11/patch/xcompmgr/patch-XFixesSetPictureClipRegion-shadow-fix-xcompmgr.c.diff
@@ -0,0 +1,28 @@
+--- xcompmgr.c 2011-11-19 01:49:52.000000000 -0600
++++ xcompmgr.c 2012-08-11 21:58:58.000000000 -0500
+@@ -1028,7 +1028,6 @@
+ {
+ w->borderClip = XFixesCreateRegion (dpy, NULL, 0);
+ XFixesCopyRegion (dpy, w->borderClip, region);
+- XFixesIntersectRegion(dpy, w->borderClip, w->borderClip, w->borderSize);
+ }
+ w->prev_trans = t;
+ t = w;
+@@ -1080,6 +1079,8 @@
+ if (w->mode == WINDOW_TRANS)
+ {
+ int x, y, wid, hei;
++ XFixesIntersectRegion(dpy, w->borderClip, w->borderClip, w->borderSize);
++ XFixesSetPictureClipRegion(dpy, rootBuffer, 0, 0, w->borderClip);
+ #if HAS_NAME_WINDOW_PIXMAP
+ x = w->a.x;
+ y = w->a.y;
+@@ -1099,6 +1100,8 @@
+ else if (w->mode == WINDOW_ARGB)
+ {
+ int x, y, wid, hei;
++ XFixesIntersectRegion(dpy, w->borderClip, w->borderClip, w->borderSize);
++ XFixesSetPictureClipRegion(dpy, rootBuffer, 0, 0, w->borderClip);
+ #if HAS_NAME_WINDOW_PIXMAP
+ x = w->a.x;
+ y = w->a.y;
diff --git a/source/x/x11/patch/xdm.patch b/source/x/x11/patch/xdm.patch
new file mode 100644
index 00000000..75e0dcb9
--- /dev/null
+++ b/source/x/x11/patch/xdm.patch
@@ -0,0 +1 @@
+zcat $CWD/patch/xdm/xdm.glibc.crypt.diff.gz | patch -p1 --verbose || { touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
diff --git a/source/x/x11/patch/xdm/xdm.glibc.crypt.diff b/source/x/x11/patch/xdm/xdm.glibc.crypt.diff
new file mode 100644
index 00000000..076df37d
--- /dev/null
+++ b/source/x/x11/patch/xdm/xdm.glibc.crypt.diff
@@ -0,0 +1,42 @@
+From 8d1eb5c74413e4c9a21f689fc106949b121c0117 Mon Sep 17 00:00:00 2001
+From: mancha <mancha1@hush.com>
+Date: Wed, 22 May 2013 14:20:26 +0000
+Subject: Handle NULL returns from glibc 2.17+ crypt().
+
+Starting with glibc 2.17 (eglibc 2.17), crypt() fails with EINVAL
+(w/ NULL return) if the salt violates specifications. Additionally,
+on FIPS-140 enabled Linux systems, DES/MD5-encrypted passwords
+passed to crypt() fail with EPERM (w/ NULL return).
+
+If using glibc's crypt(), check return value to avoid a possible
+NULL pointer dereference.
+
+Reviewed-by: Matthieu Herrb <matthieu@herrb.eu>
+Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+---
+diff --git a/greeter/verify.c b/greeter/verify.c
+index db3cb7d..b009e2b 100644
+--- a/greeter/verify.c
++++ b/greeter/verify.c
+@@ -329,6 +329,7 @@ Verify (struct display *d, struct greet_info *greet, struct verify_info *verify)
+ struct spwd *sp;
+ # endif
+ char *user_pass = NULL;
++ char *crypted_pass = NULL;
+ # endif
+ # ifdef __OpenBSD__
+ char *s;
+@@ -464,7 +465,9 @@ Verify (struct display *d, struct greet_info *greet, struct verify_info *verify)
+ # if defined(ultrix) || defined(__ultrix__)
+ if (authenticate_user(p, greet->password, NULL) < 0)
+ # else
+- if (strcmp (crypt (greet->password, user_pass), user_pass))
++ crypted_pass = crypt (greet->password, user_pass);
++ if ((crypted_pass == NULL)
++ || (strcmp (crypted_pass, user_pass)))
+ # endif
+ {
+ if(!greet->allow_null_passwd || strlen(p->pw_passwd) > 0) {
+--
+cgit v0.9.0.2-2-gbebe
+
diff --git a/source/x/x11/patch/xf86-video-apm.patch b/source/x/x11/patch/xf86-video-apm.patch
new file mode 100644
index 00000000..17d7e829
--- /dev/null
+++ b/source/x/x11/patch/xf86-video-apm.patch
@@ -0,0 +1,7 @@
+# Remove obsolete references to mibstore.h and miInitializeBackingStore():
+grep -r -l '#include "mibstore.h"' * | while read file ; do
+ sed -i "s/#include \"mibstore.h\"//g" $file
+done
+grep -r -l 'miInitializeBackingStore(pScreen);' | while read file ; do
+ sed -i "s/miInitializeBackingStore(pScreen);//g" $file
+done
diff --git a/source/x/x11/patch/xf86-video-ark.patch b/source/x/x11/patch/xf86-video-ark.patch
new file mode 100644
index 00000000..17d7e829
--- /dev/null
+++ b/source/x/x11/patch/xf86-video-ark.patch
@@ -0,0 +1,7 @@
+# Remove obsolete references to mibstore.h and miInitializeBackingStore():
+grep -r -l '#include "mibstore.h"' * | while read file ; do
+ sed -i "s/#include \"mibstore.h\"//g" $file
+done
+grep -r -l 'miInitializeBackingStore(pScreen);' | while read file ; do
+ sed -i "s/miInitializeBackingStore(pScreen);//g" $file
+done
diff --git a/source/x/x11/patch/xf86-video-ast.patch b/source/x/x11/patch/xf86-video-ast.patch
new file mode 100644
index 00000000..17d7e829
--- /dev/null
+++ b/source/x/x11/patch/xf86-video-ast.patch
@@ -0,0 +1,7 @@
+# Remove obsolete references to mibstore.h and miInitializeBackingStore():
+grep -r -l '#include "mibstore.h"' * | while read file ; do
+ sed -i "s/#include \"mibstore.h\"//g" $file
+done
+grep -r -l 'miInitializeBackingStore(pScreen);' | while read file ; do
+ sed -i "s/miInitializeBackingStore(pScreen);//g" $file
+done
diff --git a/source/x/x11/patch/xf86-video-chips.patch b/source/x/x11/patch/xf86-video-chips.patch
index a5a54ac0..a9ddcaa4 100644
--- a/source/x/x11/patch/xf86-video-chips.patch
+++ b/source/x/x11/patch/xf86-video-chips.patch
@@ -1,4 +1,25 @@
-for patchfile in $CWD/patch/xf86-video-chips/*.patch ; do
- cat $patchfile | patch -p1 --verbose \
- || { touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed ; continue ; } ;
+# Rationale for this is here:
+
+# commit bde65934fe8b40a5fdc8a469d0355caca59e81b5
+# Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+# Date: Sat Jul 21 09:27:10 2012 -0700
+#
+# Add iopl.h to source lists in util/Makefile.am so it gets packaged
+#
+# Was missed when it was created in commit c421f2477c9999, since
+# "make distcheck" passes due to configure determining it can't
+# build the utils without the header and moving on.
+#
+# Reported-by: Andreas Radke <a.radke@arcor.de>
+# Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+# iopl.h obtained from git repo
+cp $CWD/patch/xf86-video-chips/iopl.h util/ \
+ || { touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
+# Remove obsolete references to mibstore.h and miInitializeBackingStore():
+grep -r -l '#include "mibstore.h"' * | while read file ; do
+ sed -i "s/#include \"mibstore.h\"//g" $file
+done
+grep -r -l 'miInitializeBackingStore(pScreen);' | while read file ; do
+ sed -i "s/miInitializeBackingStore(pScreen);//g" $file
done
diff --git a/source/x/x11/patch/xf86-video-chips/0001-chips-gut-the-overlay-8-16-support-from-driver.patch b/source/x/x11/patch/xf86-video-chips/0001-chips-gut-the-overlay-8-16-support-from-driver.patch
deleted file mode 100644
index a52e4103..00000000
--- a/source/x/x11/patch/xf86-video-chips/0001-chips-gut-the-overlay-8-16-support-from-driver.patch
+++ /dev/null
@@ -1,588 +0,0 @@
-From e4bd864898fd276a62dac05cdfff394e98434f02 Mon Sep 17 00:00:00 2001
-From: Dave Airlie <airlied@redhat.com>
-Date: Tue, 29 Mar 2011 13:53:31 +1000
-Subject: [PATCH 1/9] chips: gut the overlay 8/16 support from driver.
-
-This driver is for chips that were bought by Intel in 1997,
-this feature means maintaining a lot of code in the X server
-for little gain.
-
-Drop it like its hot.
-
-Signed-off-by: Dave Airlie <airlied@redhat.com>
-Reviewed-by: Adam Jackson <ajax@redhat.com>
----
- man/chips.man | 3 -
- src/ct_accel.c | 46 ++---------
- src/ct_driver.c | 234 ++++++-------------------------------------------------
- src/ct_driver.h | 1 -
- src/ct_video.c | 3 +-
- 5 files changed, 28 insertions(+), 259 deletions(-)
-
-diff --git a/man/chips.man b/man/chips.man
-index 740af38..0c022ee 100644
---- a/man/chips.man
-+++ b/man/chips.man
-@@ -165,9 +165,6 @@ Force the use of memory mapped IO where it can be used. Default: off
- Force driver to leave centering and stretching registers alone. This
- can fix some laptop suspend/resume problems. Default: off
- .TP
--.BI "Option \*qOverlay\*q"
--Enable 8+24 overlay mode. Only appropriate for depth 24. Default: off.
--.TP
- .BI "Option \*qColorKey\*q \*q" integer \*q
- Set the colormap index used for the transparency key for the depth 8 plane
- when operating in 8+16 overlay mode. The value must be in the range
-diff --git a/src/ct_accel.c b/src/ct_accel.c
-index 3920b0a..4b5776a 100644
---- a/src/ct_accel.c
-+++ b/src/ct_accel.c
-@@ -428,19 +428,7 @@ chips_imagewrite:
- infoPtr->ImageWriteFlags |= NO_PLANEMASK;
- #endif
-
--
--#ifdef CHIPS_HIQV
-- if (XAAInit(pScreen, infoPtr)) {
-- if (cPtr->Flags & ChipsOverlay8plus16)
-- return(XAAInitDualFramebufferOverlay(pScreen,
-- CTNAME(DepthChange)));
-- else
-- return TRUE;
-- } else
-- return FALSE;
--#else
- return(XAAInit(pScreen, infoPtr));
--#endif
- }
-
- #ifdef CHIPS_HIQV
-@@ -1243,11 +1231,6 @@ CTNAME(SubsequentScreenToScreenColorExpandFill)(ScrnInfoPtr pScrn,
- #endif
- w *= cAcl->BytesPerPixel;
- ctBLTWAIT;
--#ifdef CHIPS_HIQV
-- if ((y >= pScrn->virtualY) && (cPtr->Flags & ChipsOverlay8plus16) &&
-- (pScrn->depth == 8))
-- ctSETPITCH(cAcl->PitchInBytes << 1, cAcl->PitchInBytes);
--#endif
- ctSETSRCADDR(srcaddr);
- ctSETDSTADDR(destaddr);
- #ifdef CHIPS_HIQV
-@@ -1271,10 +1254,6 @@ CTNAME(SetupForColor8x8PatternFill)(ScrnInfoPtr pScrn, int patx, int paty,
- patternaddr = (paty * pScrn->displayWidth +
- (patx & ~0x3F)) * cAcl->BytesPerPixel;
- cAcl->patternyrot = (patx & 0x3F) >> 3;
--#ifdef CHIPS_HIQV
-- if (cPtr->Flags & ChipsOverlay8plus16)
-- patternaddr += cPtr->FbOffset16;
--#endif
-
- ctBLTWAIT;
- ctSETPATSRCADDR(patternaddr);
-@@ -1338,10 +1317,7 @@ CTNAME(SetupForMono8x8PatternFill)(ScrnInfoPtr pScrn, int patx, int paty,
-
- #ifdef CHIPS_HIQV
- patternaddr = paty * pScrn->displayWidth + patx;
-- if (cPtr->Flags & ChipsOverlay8plus16)
-- patternaddr = patternaddr * 2 + cPtr->FbOffset16;
-- else
-- patternaddr *= cAcl->BytesPerPixel;
-+ patternaddr *= cAcl->BytesPerPixel;
- #else
- patternaddr = (paty * pScrn->displayWidth + patx) * cAcl->BytesPerPixel;
- #endif
-@@ -1593,10 +1569,7 @@ CTNAME(WritePixmap)(ScrnInfoPtr pScrn, int x, int y, int w, int h,
- dwords = (((skipleft + bytesPerLine + 0x7) & ~0x7)) >> 2;
- destaddr = (y * pScrn->displayWidth + x) * (bpp >> 3);
- destpitch = pScrn->displayWidth * (bpp >> 3);
-- if ((y >= pScrn->virtualY) && (cPtr->Flags & ChipsOverlay8plus16))
-- destaddr += cPtr->FbOffset16;
-- else
-- destaddr += cAcl->FbOffset;
-+ destaddr += cAcl->FbOffset;
-
- ctBLTWAIT;
-
-@@ -1681,10 +1654,7 @@ CTNAME(WritePixmap)(ScrnInfoPtr pScrn, int x, int y, int w, int h,
- y++;
-
- destaddr = (y * pScrn->displayWidth + x) * (bpp >> 3);
-- if ((y >= pScrn->virtualY) && (cPtr->Flags & ChipsOverlay8plus16))
-- destaddr += cPtr->FbOffset16;
-- else
-- destaddr += cAcl->FbOffset;
-+ destaddr += cAcl->FbOffset;
-
- ctBLTWAIT;
- ctSETDSTADDR(destaddr);
-@@ -1717,10 +1687,7 @@ CTNAME(ReadPixmap)(ScrnInfoPtr pScrn, int x, int y, int w, int h,
- dwords = (((bytesPerLine + 0x7) & ~0x7)) >> 2;
- srcaddr = (y * pScrn->displayWidth + x) * (bpp >> 3);
- srcpitch = pScrn->displayWidth * (bpp >> 3);
-- if ((y >= pScrn->virtualY) && (cPtr->Flags & ChipsOverlay8plus16))
-- srcaddr += cPtr->FbOffset16;
-- else
-- srcaddr += cAcl->FbOffset;
-+ srcaddr += cAcl->FbOffset;
-
- ctBLTWAIT;
- ctSETROP( ctDSTSYSTEM | ctLEFT2RIGHT | ctTOP2BOTTOM |
-@@ -1755,10 +1722,7 @@ CTNAME(ReadPixmap)(ScrnInfoPtr pScrn, int x, int y, int w, int h,
- dst += dstwidth;
- y++;
- srcaddr = (y * pScrn->displayWidth + x) * (bpp >> 3);
-- if ((y >= pScrn->virtualY) && (cPtr->Flags & ChipsOverlay8plus16))
-- srcaddr += cPtr->FbOffset16;
-- else
-- srcaddr += cAcl->FbOffset;
-+ srcaddr += cAcl->FbOffset;
- ctBLTWAIT;
- ctSETSRCADDR(srcaddr);
- ctSETHEIGHTWIDTHGO(h, bytesPerLine);
-diff --git a/src/ct_driver.c b/src/ct_driver.c
-index 6624b79..08df050 100644
---- a/src/ct_driver.c
-+++ b/src/ct_driver.c
-@@ -1639,55 +1639,15 @@ chipsPreInitHiQV(ScrnInfoPtr pScrn, int flags)
- }
- }
-
-- if ((s = xf86GetOptValString(cPtr->Options, OPTION_OVERLAY))) {
-- if (!*s || !xf86NameCmp(s, "8,16") || !xf86NameCmp(s, "16,8")) {
-- if (pScrn->bitsPerPixel == 16) {
-- if (cPtr->Flags & ChipsLinearSupport) {
-- cPtr->Flags |= ChipsOverlay8plus16;
-- if(!xf86GetOptValInteger(
-- cPtr->Options, OPTION_COLOR_KEY, &(pScrn->colorKey)))
-- pScrn->colorKey = TRANSPARENCY_KEY;
-- pScrn->overlayFlags = OVERLAY_8_16_DUALFB;
-- xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
-- "PseudoColor overlay enabled.\n");
-- if (!xf86IsOptionSet(cPtr->Options, OPTION_LCD_STRETCH))
-- xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
-- " - Forcing option \"Stretch\" \"ON\".\n");
-- if (!xf86IsOptionSet(cPtr->Options, OPTION_LCD_CENTER))
-- xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
-- " - Forcing option \"LcdCenter\" \"OFF\".\n");
-- if (cPtr->Flags & ChipsShadowFB) {
-- xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
-- " - Disabling \"Shadow Framebuffer\".\n");
-- xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
-- " Not support with option \"8Plus16\".\n");
-- cPtr->Flags &= ~ChipsShadowFB;
-- cPtr->Rotate = 0;
-- }
-- } else {
-- xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "Option \"Overlay\" ignored. Not supported without linear addressing\n");
-- }
-- } else {
-- xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
-- "Option \"Overlay\" is not supported in this configuration\n");
-- }
-- } else {
-- xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
-- "\"%s\" is not a valid value for Option \"Overlay\"\n", s);
-- }
-- }
--
-- if (!(cPtr->Flags & ChipsOverlay8plus16)) {
-- if(xf86GetOptValInteger(cPtr->Options, OPTION_VIDEO_KEY,
-- &(cPtr->videoKey))) {
-- xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "video key set to 0x%x\n",
-+ if(xf86GetOptValInteger(cPtr->Options, OPTION_VIDEO_KEY,
-+ &(cPtr->videoKey))) {
-+ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "video key set to 0x%x\n",
- cPtr->videoKey);
-- } else {
-- cPtr->videoKey = (1 << pScrn->offset.red) |
-+ } else {
-+ cPtr->videoKey = (1 << pScrn->offset.red) |
- (1 << pScrn->offset.green) |
- (((pScrn->mask.blue >> pScrn->offset.blue) - 1)
- << pScrn->offset.blue);
-- }
- }
-
- if (cPtr->Flags & ChipsShadowFB) {
-@@ -2335,28 +2295,16 @@ chipsPreInitHiQV(ScrnInfoPtr pScrn, int flags)
- /* and 32bits on the others. Thus multiply by a suitable factor */
- if (cPtr->Flags & Chips64BitMemory) {
- if (cPtr->FrameBufferSize && (cPtr->PanelType & ChipsLCD))
-- if (cPtr->Flags & ChipsOverlay8plus16 )
-- cPtr->MaxClock = min(cPtr->MaxClock, MemClk->Clk * 8 * 0.7 / 4);
-- else
- cPtr->MaxClock = min(cPtr->MaxClock,
- MemClk->Clk * 8 * 0.7 / (bytesPerPixel + 1));
- else
-- if (cPtr->Flags & ChipsOverlay8plus16)
-- cPtr->MaxClock = min(cPtr->MaxClock, MemClk->Clk * 8 * 0.7 / 3);
-- else
- cPtr->MaxClock = min(cPtr->MaxClock,
- MemClk->Clk * 8 * 0.7 / bytesPerPixel);
- } else {
- if (cPtr->FrameBufferSize && (cPtr->PanelType & ChipsLCD))
-- if (cPtr->Flags & ChipsOverlay8plus16 )
-- cPtr->MaxClock = min(cPtr->MaxClock, MemClk->Clk * 4 * 0.7 / 4);
-- else
- cPtr->MaxClock = min(cPtr->MaxClock,
- MemClk->Clk * 4 * 0.7 / (bytesPerPixel + 1));
- else
-- if (cPtr->Flags & ChipsOverlay8plus16)
-- cPtr->MaxClock = min(cPtr->MaxClock, MemClk->Clk * 4 * 0.7 / 3);
-- else
- cPtr->MaxClock = min(cPtr->MaxClock,
- MemClk->Clk * 4 * 0.7 / bytesPerPixel);
- }
-@@ -3736,8 +3684,7 @@ CHIPSEnterVT(int scrnIndex, int flags)
- /* Should we re-save the text mode on each VT enter? */
- if(!chipsModeInit(pScrn, pScrn->currentMode))
- return FALSE;
-- if ((!(cPtr->Flags & ChipsOverlay8plus16))
-- && (cPtr->Flags & ChipsVideoSupport)
-+ if ((cPtr->Flags & ChipsVideoSupport)
- && (cPtr->Flags & ChipsLinearSupport))
- CHIPSResetVideo(pScrn);
-
-@@ -3788,8 +3735,7 @@ chipsLoadPalette(ScrnInfoPtr pScrn, int numColors, int *indices, LOCO *colors,
- int i, index, shift ;
- CHIPSEntPtr cPtrEnt;
-
-- shift = ((pScrn->depth == 15) &&
-- (!(cPtr->Flags & ChipsOverlay8plus16))) ? 3 : 0;
-+ shift = (pScrn->depth == 15) ? 3 : 0;
-
- if (cPtr->UseDualChannel) {
- cPtrEnt = xf86GetEntityPrivate(pScrn->entityList[0],
-@@ -3895,18 +3841,6 @@ chipsLoadPalette16(ScrnInfoPtr pScrn, int numColors, int *indices,
- hwp->disablePalette(hwp);
- }
-
--static Bool
--cfb8_16ScreenInit(ScreenPtr pScreen, pointer pbits16, pointer pbits8,
-- int xsize, int ysize, int dpix, int dpiy,
-- int width16, int width8)
--{
-- return
-- (fbOverlaySetupScreen(pScreen, pbits16, pbits8, xsize, ysize,
-- dpix, dpiy, width16, width8, 16, 8) &&
-- fbOverlayFinishScreenInit(pScreen, pbits16, pbits8, xsize, ysize,
-- dpix, dpiy, width16, width8, 16, 8, 16, 8));
--}
--
- /* Mandatory */
- static Bool
- CHIPSScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
-@@ -3947,22 +3881,6 @@ CHIPSScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
- if (!chipsMapMem(pScrn))
- return FALSE;
-
-- /* Setup a pointer to the overlay if needed */
-- if (cPtr->Flags & ChipsOverlay8plus16) {
-- cPtr->FbOffset16 = pScrn->displayWidth * pScrn->virtualY;
-- cPtr->FbSize16 = (pScrn->displayWidth << 1) * pScrn->virtualY;
-- if (cPtr->FbSize16 > (cPtr->FbMapSize - cPtr->FrameBufferSize)) {
-- xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
-- "Too little memory for overlay. Disabling.\n");
-- cPtr->Flags &= ~ChipsOverlay8plus16;
-- }
-- if ((pScrn->displayWidth > 1024) || (pScrn->virtualY > 1024)) {
-- xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
-- "Max overlay Width/Height 1024 pixels. Disabling.\n");
-- cPtr->Flags &= ~ChipsOverlay8plus16;
-- }
-- }
--
- /* Setup the MMIO register access functions if need */
- if (cPtr->UseFullMMIO && cPtr->MMIOBaseVGA) {
- CHIPSSetMmioExtFuncs(cPtr);
-@@ -4035,18 +3953,10 @@ CHIPSScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
- miClearVisualTypes();
-
- /* Setup the visuals we support. */
-- if ((pScrn->bitsPerPixel == 16) && (cPtr->Flags & ChipsOverlay8plus16)){
-- if (!miSetVisualTypes(8, PseudoColorMask | GrayScaleMask,
-- pScrn->rgbBits, PseudoColor))
-- return FALSE;
-- if (!miSetVisualTypes(16, TrueColorMask, pScrn->rgbBits, TrueColor))
-- return FALSE;
-- } else {
-- if (!miSetVisualTypes(pScrn->depth,
-+ if (!miSetVisualTypes(pScrn->depth,
- miGetDefaultVisualMask(pScrn->depth),
- pScrn->rgbBits, pScrn->defaultVisual))
-- return FALSE;
-- }
-+ return FALSE;
- miSetPixmapDepths ();
-
- /*
-@@ -4090,13 +4000,6 @@ CHIPSScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
- break;
- #endif
- case 16:
-- if (cPtr->Flags & ChipsOverlay8plus16) {
-- ret = cfb8_16ScreenInit(pScreen, (unsigned char *)FBStart +
-- cPtr->FbOffset16, FBStart, width,
-- height, pScrn->xDpi, pScrn->yDpi,
-- displayWidth, displayWidth);
-- break;
-- }
- default:
- ret = fbScreenInit(pScreen, FBStart,
- width,height,
-@@ -4244,9 +4147,6 @@ CHIPSScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
- if (pScrn->bitsPerPixel < 8)
- freespace = allocatebase - pScrn->displayWidth *
- pScrn->virtualY / 2;
-- else if ((pScrn->bitsPerPixel == 16) && (cPtr->Flags & ChipsOverlay8plus16))
-- freespace = allocatebase - pScrn->displayWidth *
-- pScrn->virtualY - cPtr->FbSize16;
- else
- freespace = allocatebase - pScrn->displayWidth *
- pScrn->virtualY * (pScrn->bitsPerPixel >> 3);
-@@ -4369,9 +4269,7 @@ CHIPSScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
- AvailFBArea.y2 = cAcl->CacheEnd /
- (pScrn->displayWidth * (pScrn->bitsPerPixel >> 3));
-
-- if (!(cPtr->Flags & ChipsOverlay8plus16)) {
-- xf86InitFBManager(pScreen, &AvailFBArea);
-- }
-+ xf86InitFBManager(pScreen, &AvailFBArea);
- }
- if (cPtr->Flags & ChipsAccelSupport) {
- if (IS_HiQV(cPtr)) {
-@@ -4425,16 +4323,10 @@ CHIPSScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
- if (!miCreateDefColormap(pScreen))
- return FALSE;
-
-- if ((cPtr->Flags & ChipsOverlay8plus16) && (pScrn->bitsPerPixel == 16)) {
-- if(!xf86HandleColormaps(pScreen, 256, pScrn->rgbBits, chipsLoadPalette,
-- NULL, CMAP_RELOAD_ON_MODE_SWITCH))
-- return FALSE;
-- } else {
-- if(!xf86HandleColormaps(pScreen, 256, pScrn->rgbBits,
-+ if(!xf86HandleColormaps(pScreen, 256, pScrn->rgbBits,
- (pScrn->depth == 16 ? chipsLoadPalette16 : chipsLoadPalette),
- NULL, CMAP_RELOAD_ON_MODE_SWITCH | CMAP_PALETTED_TRUECOLOR))
-- return FALSE;
-- }
-+ return FALSE;
-
- #ifndef XSERVER_LIBPCIACCESS
- racflag = RAC_COLORMAP;
-@@ -4448,8 +4340,7 @@ CHIPSScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
- xf86SetSilkenMouse(pScreen);
- #endif
-
-- if ((!(cPtr->Flags & ChipsOverlay8plus16))
-- && (cPtr->Flags & ChipsVideoSupport)
-+ if ((cPtr->Flags & ChipsVideoSupport)
- && (cPtr->Flags & ChipsLinearSupport)) {
- CHIPSInitVideo(pScreen);
- }
-@@ -4522,10 +4413,7 @@ CHIPSAdjustFrame(int scrnIndex, int x, int y, int flags)
- Base >>= 3;
- break;
- case 16:
-- if (!(cPtr->Flags & ChipsOverlay8plus16))
-- Base >>= 1;
-- else
-- Base >>= 2;
-+ Base >>= 1;
- break;
- case 24:
- if (!IS_HiQV(cPtr))
-@@ -4581,14 +4469,6 @@ CHIPSAdjustFrame(int scrnIndex, int x, int y, int flags)
- cPtr->writeMSS(cPtr, hwp, MSS);
- }
-
-- if (cPtr->Flags & ChipsOverlay8plus16) {
-- Base = (Base << 3) & ~(unsigned long)0xF;
--
-- cPtr->writeMR(cPtr, 0x22, (cPtr->FbOffset16 + Base) & 0xF8);
-- cPtr->writeMR(cPtr, 0x23, ((cPtr->FbOffset16 + Base) >> 8) & 0xFF);
-- cPtr->writeMR(cPtr, 0x24, ((cPtr->FbOffset16 + Base) >> 16) & 0xFF);
-- }
--
- }
-
- /* Mandatory */
-@@ -4652,13 +4532,6 @@ CHIPSValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags)
- ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
- CHIPSPtr cPtr = CHIPSPTR(pScrn);
-
-- if (flags & MODECHECK_FINAL) {
-- /* Don't subtract FrambufferSize here as it should be subtracted already */
-- if ((cPtr->Flags & ChipsOverlay8plus16)
-- && ((pScrn->videoRam<<10) - pScrn->displayWidth * 3 * pScrn->virtualY
-- < 0))
-- return MODE_MEM;
-- }
- /* The tests here need to be expanded */
- if ((mode->Flags & V_INTERLACE) && (cPtr->PanelType & ChipsLCD))
- return MODE_NO_INTERLACE;
-@@ -5544,12 +5417,7 @@ chipsModeInitHiQV(ScrnInfoPtr pScrn, DisplayModePtr mode)
- } else {
- ChipsStd->Attribute[0x10] = 0x01; /* mode */
- }
-- if ((pScrn->bitsPerPixel == 16) && (cPtr->Flags & ChipsOverlay8plus16)) {
-- /* Make sure that the overlay isn't visible in the overscan region */
-- if (ChipsStd->Attribute[0x11] == pScrn->colorKey)
-- ChipsStd->Attribute[0x11] = pScrn->colorKey - 1;
-- } else
-- ChipsStd->Attribute[0x11] = 0x00; /* overscan (border) color */
-+ ChipsStd->Attribute[0x11] = 0x00; /* overscan (border) color */
- ChipsStd->Attribute[0x12] = 0x0F; /* enable all color planes */
- ChipsStd->Attribute[0x13] = 0x00; /* horiz pixel panning 0 */
-
-@@ -5558,8 +5426,7 @@ chipsModeInitHiQV(ScrnInfoPtr pScrn, DisplayModePtr mode)
- /* set virtual screen width */
- tmp = pScrn->displayWidth >> 3;
- if (pScrn->bitsPerPixel == 16) {
-- if (!(cPtr->Flags & ChipsOverlay8plus16))
-- tmp <<= 1; /* double the width of the buffer */
-+ tmp <<= 1; /* double the width of the buffer */
- } else if (pScrn->bitsPerPixel == 24) {
- tmp += tmp << 1;
- } else if (pScrn->bitsPerPixel == 32) {
-@@ -5688,8 +5555,7 @@ chipsModeInitHiQV(ScrnInfoPtr pScrn, DisplayModePtr mode)
-
- /* centering/stretching */
- if (!xf86ReturnOptValBool(cPtr->Options, OPTION_SUSPEND_HACK, FALSE)) {
-- if (!xf86ReturnOptValBool(cPtr->Options, OPTION_LCD_STRETCH, FALSE) ||
-- (cPtr->Flags & ChipsOverlay8plus16)) {
-+ if (!xf86ReturnOptValBool(cPtr->Options, OPTION_LCD_STRETCH, FALSE)) {
- ChipsNew->FR[0x40] &= 0xDF; /* Disable Horizontal stretching */
- ChipsNew->FR[0x48] &= 0xFB; /* Disable vertical stretching */
- ChipsNew->XR[0xA0] = 0x10; /* Disable cursor stretching */
-@@ -5709,8 +5575,7 @@ chipsModeInitHiQV(ScrnInfoPtr pScrn, DisplayModePtr mode)
- }
- }
-
-- if ((xf86ReturnOptValBool(cPtr->Options, OPTION_LCD_CENTER, TRUE))
-- || (cPtr->Flags & ChipsOverlay8plus16)) {
-+ if (xf86ReturnOptValBool(cPtr->Options, OPTION_LCD_CENTER, TRUE)) {
- ChipsNew->FR[0x40] |= 0x3; /* Enable Horizontal centering */
- ChipsNew->FR[0x48] |= 0x3; /* Enable Vertical centering */
- } else {
-@@ -5723,8 +5588,7 @@ chipsModeInitHiQV(ScrnInfoPtr pScrn, DisplayModePtr mode)
- ChipsNew->XR[0x82] |=0x02;
-
- /* software mode flag */
-- ChipsNew->XR[0xE2] = chipsVideoMode(((cPtr->Flags & ChipsOverlay8plus16) ?
-- 8 : pScrn->depth), (cPtr->PanelType & ChipsLCD) ?
-+ ChipsNew->XR[0xE2] = chipsVideoMode((pScrn->depth), (cPtr->PanelType & ChipsLCD) ?
- min(mode->CrtcHDisplay, cPtr->PanelSize.HDisplay) :
- mode->CrtcHDisplay, mode->CrtcVDisplay);
- #ifdef DEBUG
-@@ -5762,7 +5626,7 @@ chipsModeInitHiQV(ScrnInfoPtr pScrn, DisplayModePtr mode)
- }
- }
- /* bpp depend */
-- if ((pScrn->bitsPerPixel == 16) && (!(cPtr->Flags & ChipsOverlay8plus16))) {
-+ if (pScrn->bitsPerPixel == 16) {
- ChipsNew->XR[0x81] = (ChipsNew->XR[0x81] & 0xF0) | 0x4;
- if (cPtr->Flags & ChipsGammaSupport)
- ChipsNew->XR[0x82] |= 0x0C;
-@@ -5915,60 +5779,7 @@ chipsModeInitHiQV(ScrnInfoPtr pScrn, DisplayModePtr mode)
- /* Turn off multimedia by default as it degrades performance */
- ChipsNew->XR[0xD0] &= 0x0f;
-
-- /* Setup the video/overlay */
-- if (cPtr->Flags & ChipsOverlay8plus16) {
-- ChipsNew->XR[0xD0] |= 0x10; /* Force the Multimedia engine on */
--#ifdef SAR04
-- ChipsNew->XR[0x4F] = 0x2A; /* SAR04 >352 pixel overlay width */
--#endif
-- ChipsNew->MR[0x1E] &= 0xE0; /* Set Zoom and Direction */
-- if ((!(cPtr->PanelType & ChipsLCD)) && (mode->Flags & V_INTERLACE))
-- ChipsNew->MR[0x1E] |= 0x10; /* Interlace */
-- ChipsNew->MR[0x1F] &= 0x14; /* Mask reserved bits */
-- ChipsNew->MR[0x1F] |= 0x08; /* RGB 16bpp */
-- if (pScrn->weight.green == 5)
-- ChipsNew->MR[0x1F] |= 0x01; /* RGB 15bpp */
--
-- ChipsNew->MR[0x20] &= 0x03; /* Mask reserved bits */
-- ChipsNew->MR[0x20] |= 0x80; /* Auto Centre, Use mem ptr1 */
-- ChipsNew->MR[0x22] = cPtr->FbOffset16 & 0xF8; /* Setup Pointer 1 */
-- ChipsNew->MR[0x23] = (cPtr->FbOffset16 >> 8) & 0xFF;
-- ChipsNew->MR[0x24] = (cPtr->FbOffset16 >> 16) & 0xFF;
-- ChipsNew->MR[0x25] = cPtr->FbOffset16 & 0xF8; /* Setup Pointer 2 */
-- ChipsNew->MR[0x26] = (cPtr->FbOffset16 >> 8) & 0xFF;
-- ChipsNew->MR[0x27] = (cPtr->FbOffset16 >> 16) & 0xFF;
-- ChipsNew->MR[0x28] = (pScrn->displayWidth >> 2) - 1; /* Width */
-- ChipsNew->MR[0x34] = (pScrn->displayWidth >> 2) - 1;
--
-- /* Left Edge of Overlay */
-- ChipsNew->MR[0x2A] = cPtr->OverlaySkewX;
-- ChipsNew->MR[0x2B] &= 0xF8; /* Mask reserved bits */
-- ChipsNew->MR[0x2B] |= ((cPtr->OverlaySkewX >> 8) & 0x7);
-- /* Right Edge of Overlay */
-- ChipsNew->MR[0x2C] = (cPtr->OverlaySkewX + pScrn->displayWidth -
-- 1) & 0xFF;
-- ChipsNew->MR[0x2D] &= 0xF8; /* Mask reserved bits */
-- ChipsNew->MR[0x2D] |= ((cPtr->OverlaySkewX + pScrn->displayWidth -
-- 1) >> 8) & 0x07;
-- /* Top Edge of Overlay */
-- ChipsNew->MR[0x2E] = cPtr->OverlaySkewY;
-- ChipsNew->MR[0x2F] &= 0xF8;
-- ChipsNew->MR[0x2F] |= ((cPtr->OverlaySkewY >> 8) & 0x7);
-- /* Bottom Edge of Overlay*/
-- ChipsNew->MR[0x30] = (cPtr->OverlaySkewY + pScrn->virtualY - 1 )& 0xFF;
-- ChipsNew->MR[0x31] &= 0xF8; /* Mask reserved bits */
-- ChipsNew->MR[0x31] |= ((cPtr->OverlaySkewY + pScrn->virtualY -
-- 1 ) >> 8) & 0x07;
--
-- ChipsNew->MR[0x3C] &= 0x18; /* Mask reserved bits */
-- ChipsNew->MR[0x3C] |= 0x07; /* Enable keyed overlay window */
-- ChipsNew->MR[0x3D] = 0x00;
-- ChipsNew->MR[0x3E] = 0x00;
-- ChipsNew->MR[0x3F] = pScrn->colorKey; /* 8bpp transparency key */
-- ChipsNew->MR[0x40] = 0xFF;
-- ChipsNew->MR[0x41] = 0xFF;
-- ChipsNew->MR[0x42] = 0x00;
-- } else if (cPtr->Flags & ChipsVideoSupport) {
-+ if (cPtr->Flags & ChipsVideoSupport) {
- #if 0 /* if we do this even though video isn't playing we kill performance */
- ChipsNew->XR[0xD0] |= 0x10; /* Force the Multimedia engine on */
- #endif
-@@ -6877,8 +6688,7 @@ chipsRestoreExtendedRegs(ScrnInfoPtr pScrn, CHIPSRegPtr Regs)
- }
-
- /* Set SAR04 multimedia register correctly */
-- if ((cPtr->Flags & ChipsOverlay8plus16)
-- || (cPtr->Flags & ChipsVideoSupport)) {
-+ if ((cPtr->Flags & ChipsVideoSupport)) {
- #ifdef SAR04
- cPtr->writeXR(cPtr, 0x4E, 0x04);
- if (cPtr->readXR(cPtr, 0x4F) != Regs->XR[0x4F])
-diff --git a/src/ct_driver.h b/src/ct_driver.h
-index d8ce228..10a24d4 100644
---- a/src/ct_driver.h
-+++ b/src/ct_driver.h
-@@ -114,7 +114,6 @@ typedef struct {
- /* Options flags for the C&T chipsets */
- #define ChipsHWCursor 0x00001000
- #define ChipsShadowFB 0x00002000
--#define ChipsOverlay8plus16 0x00004000
- #define ChipsUseNewFB 0x00008000
-
- /* Architecture type flags */
-diff --git a/src/ct_video.c b/src/ct_video.c
-index a68acb9..c9e5bb4 100644
---- a/src/ct_video.c
-+++ b/src/ct_video.c
-@@ -56,8 +56,7 @@ CHIPSInitVideo(ScreenPtr pScreen)
- CHIPSPtr cPtr = CHIPSPTR(pScrn);
- int num_adaptors;
-
-- if (!(cPtr->Flags & ChipsOverlay8plus16) &&
-- (cPtr->Flags & ChipsVideoSupport)) {
-+ if ((cPtr->Flags & ChipsVideoSupport)) {
- newAdaptor = CHIPSSetupImageVideo(pScreen);
- CHIPSInitOffscreenImages(pScreen);
- }
---
-1.7.9.4
-
diff --git a/source/x/x11/patch/xf86-video-chips/0002-PciTag-is-unused-when-using-libpciaccess.patch b/source/x/x11/patch/xf86-video-chips/0002-PciTag-is-unused-when-using-libpciaccess.patch
deleted file mode 100644
index 6caaa210..00000000
--- a/source/x/x11/patch/xf86-video-chips/0002-PciTag-is-unused-when-using-libpciaccess.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 5f8a7320123255408b393eab9ecfae783920622a Mon Sep 17 00:00:00 2001
-From: Mark Kettenis <kettenis@openbsd.org>
-Date: Mon, 26 Sep 2011 21:26:26 +0200
-Subject: [PATCH 2/9] PciTag is unused when using libpciaccess
-
-Signed-off-by: Mark Kettenis <kettenis@openbsd.org>
-Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
-Reviewed-by: Julien Cristau <jcristau@debian.org>
----
- src/ct_driver.h | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/src/ct_driver.h b/src/ct_driver.h
-index 10a24d4..39eeb6e 100644
---- a/src/ct_driver.h
-+++ b/src/ct_driver.h
-@@ -271,7 +271,9 @@ typedef struct {
-
- typedef struct _CHIPSRec {
- pciVideoPtr PciInfo;
-+#ifndef XSERVER_LIBPCIACCESS
- PCITAG PciTag;
-+#endif
- int Chipset;
- EntityInfoPtr pEnt;
- IOADDRESS PIOBase;
---
-1.7.9.4
-
diff --git a/source/x/x11/patch/xf86-video-chips/0003-Use-malloc-calloc-realloc-free-directly.patch b/source/x/x11/patch/xf86-video-chips/0003-Use-malloc-calloc-realloc-free-directly.patch
deleted file mode 100644
index de379e4d..00000000
--- a/source/x/x11/patch/xf86-video-chips/0003-Use-malloc-calloc-realloc-free-directly.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 7ca1840f39d0216e44fe1ca938cfc3ced048da1d Mon Sep 17 00:00:00 2001
-From: Jeremy Huddleston <jeremyhu@apple.com>
-Date: Tue, 18 Oct 2011 22:24:54 -0700
-Subject: [PATCH 3/9] Use malloc/calloc/realloc/free directly
-
-Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
----
- src/ct_driver.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/src/ct_driver.c b/src/ct_driver.c
-index 08df050..e6538c6 100644
---- a/src/ct_driver.c
-+++ b/src/ct_driver.c
-@@ -949,7 +949,7 @@ CHIPSProbe(DriverPtr drv, int flags)
- }
-
- }
-- xfree(usedChips);
-+ free(usedChips);
- }
- }
-
-@@ -981,12 +981,12 @@ CHIPSProbe(DriverPtr drv, int flags)
- pScrn->ValidMode = CHIPSValidMode;
- foundScreen = TRUE;
- }
-- xfree(usedChips);
-+ free(usedChips);
- }
- }
- #endif
-
-- xfree(devSections);
-+ free(devSections);
- return foundScreen;
- }
- #endif
-@@ -4126,7 +4126,7 @@ CHIPSScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
- }
- if (!miInitializeBanking(pScreen, pScrn->virtualX, pScrn->virtualY,
- pScrn->displayWidth, pBankInfo)) {
-- xfree(pBankInfo);
-+ free(pBankInfo);
- pBankInfo = NULL;
- return FALSE;
- }
---
-1.7.9.4
-
diff --git a/source/x/x11/patch/xf86-video-chips/0004-configure.ac-Remove-AM_PROG_CC_C_O.patch b/source/x/x11/patch/xf86-video-chips/0004-configure.ac-Remove-AM_PROG_CC_C_O.patch
deleted file mode 100644
index bcf6355a..00000000
--- a/source/x/x11/patch/xf86-video-chips/0004-configure.ac-Remove-AM_PROG_CC_C_O.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From f5191838b70d67e991bef3491d2a60915988079c Mon Sep 17 00:00:00 2001
-From: Jeremy Huddleston <jeremyhu@apple.com>
-Date: Tue, 18 Oct 2011 22:37:00 -0700
-Subject: [PATCH 4/9] configure.ac: Remove AM_PROG_CC_C_O
-
-Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
----
- configure.ac | 3 ---
- 1 file changed, 3 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 225e516..c0ed508 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -44,9 +44,6 @@ XORG_DEFAULT_OPTIONS
- AC_DISABLE_STATIC
- AC_PROG_LIBTOOL
-
--# Checks for programs.
--AM_PROG_CC_C_O
--
- AH_TOP([#include "xorg-server.h"])
-
- # Define a configure option for an alternate module directory
---
-1.7.9.4
-
diff --git a/source/x/x11/patch/xf86-video-chips/0005-util-Consolidate-common-macros.patch b/source/x/x11/patch/xf86-video-chips/0005-util-Consolidate-common-macros.patch
deleted file mode 100644
index 77d0d5bc..00000000
--- a/source/x/x11/patch/xf86-video-chips/0005-util-Consolidate-common-macros.patch
+++ /dev/null
@@ -1,283 +0,0 @@
-From 94a8b34528b42a4fe6f81c8b8bd1ddb6bebaeea9 Mon Sep 17 00:00:00 2001
-From: Jeremy Huddleston <jeremyhu@apple.com>
-Date: Tue, 18 Oct 2011 23:04:32 -0700
-Subject: [PATCH 5/9] util: Consolidate common macros
-
-Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
----
- util/dRegs.c | 57 +------------------------------------------------------
- util/iopl.h | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++
- util/mRegs.c | 57 +------------------------------------------------------
- util/modClock.c | 53 ++-------------------------------------------------
- 4 files changed, 58 insertions(+), 163 deletions(-)
- create mode 100644 util/iopl.h
-
-diff --git a/util/dRegs.c b/util/dRegs.c
-index b7edc8f..0d2f0cb 100644
---- a/util/dRegs.c
-+++ b/util/dRegs.c
-@@ -1,63 +1,8 @@
--
--
--
--
--
--
--#ifdef __NetBSD__
--# include <sys/types.h>
--# include <machine/pio.h>
--# include <machine/sysarch.h>
--#else
--# if defined(SVR4) && defined(i386)
--# include <sys/types.h>
--# ifdef NCR
-- /* broken NCR <sys/sysi86.h> */
--# define __STDC
--# include <sys/sysi86.h>
--# undef __STDC
--# else
--# include <sys/sysi86.h>
--# endif
--# ifdef SVR4
--# if !defined(sun)
--# include <sys/seg.h>
--# endif
--# endif
--# include <sys/v86.h>
--# if defined(sun)
--# include <sys/psw.h>
--# endif
--# endif
--# include "AsmMacros.h"
--#endif /* NetBSD */
--
- #include <unistd.h>
- #include <stdio.h>
- #include <stdlib.h>
-
--#ifdef __NetBSD__
--# define SET_IOPL() i386_iopl(3)
--# define RESET_IOPL() i386_iopl(0)
--#else
--# if defined(SVR4) && defined(i386)
--# ifndef SI86IOPL
--# define SET_IOPL() sysi86(SI86V86,V86SC_IOPL,PS_IOPL)
--# define RESET_IOPL() sysi86(SI86V86,V86SC_IOPL,0)
--# else
--# define SET_IOPL() sysi86(SI86IOPL,3)
--# define RESET_IOPL() sysi86(SI86IOPL,0)
--# endif
--# else
--# ifdef linux
--# define SET_IOPL() iopl(3)
--# define RESET_IOPL() iopl(0)
--# else
--# define SET_IOPL() (void)0
--# define RESET_IOPL() (void)0
--# endif
--# endif
--#endif
-+#include "iopl.h"
-
- int main(void)
- {
-diff --git a/util/iopl.h b/util/iopl.h
-new file mode 100644
-index 0000000..d7890b3
---- /dev/null
-+++ b/util/iopl.h
-@@ -0,0 +1,54 @@
-+#ifdef __NetBSD__
-+# include <sys/types.h>
-+# include <machine/pio.h>
-+# include <machine/sysarch.h>
-+#else
-+# if defined(SVR4) && defined(i386)
-+# include <sys/types.h>
-+# ifdef NCR
-+ /* broken NCR <sys/sysi86.h> */
-+# define __STDC
-+# include <sys/sysi86.h>
-+# undef __STDC
-+# else
-+# include <sys/sysi86.h>
-+# endif
-+# ifdef SVR4
-+# if !defined(sun)
-+# include <sys/seg.h>
-+# endif
-+# endif
-+# include <sys/v86.h>
-+# if defined(sun)
-+# include <sys/psw.h>
-+# endif
-+# endif
-+# include "AsmMacros.h"
-+#endif /* NetBSD */
-+
-+#include <unistd.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+
-+#ifdef __NetBSD__
-+# define SET_IOPL() i386_iopl(3)
-+# define RESET_IOPL() i386_iopl(0)
-+#else
-+# if defined(SVR4) && defined(i386)
-+# ifndef SI86IOPL
-+# define SET_IOPL() sysi86(SI86V86,V86SC_IOPL,PS_IOPL)
-+# define RESET_IOPL() sysi86(SI86V86,V86SC_IOPL,0)
-+# else
-+# define SET_IOPL() sysi86(SI86IOPL,3)
-+# define RESET_IOPL() sysi86(SI86IOPL,0)
-+# endif
-+# else
-+# ifdef linux
-+# define SET_IOPL() iopl(3)
-+# define RESET_IOPL() iopl(0)
-+# else
-+# define SET_IOPL() (void)0
-+# define RESET_IOPL() (void)0
-+# endif
-+# endif
-+#endif
-diff --git a/util/mRegs.c b/util/mRegs.c
-index f359738..843d01d 100644
---- a/util/mRegs.c
-+++ b/util/mRegs.c
-@@ -1,63 +1,8 @@
--
--
--
--
--
--
--#ifdef __NetBSD__
--# include <sys/types.h>
--# include <machine/pio.h>
--# include <machine/sysarch.h>
--#else
--# if defined(SVR4) && defined(i386)
--# include <sys/types.h>
--# ifdef NCR
-- /* broken NCR <sys/sysi86.h> */
--# define __STDC
--# include <sys/sysi86.h>
--# undef __STDC
--# else
--# include <sys/sysi86.h>
--# endif
--# ifdef SVR4
--# if !defined(sun)
--# include <sys/seg.h>
--# endif
--# endif
--# include <sys/v86.h>
--# if defined(sun)
--# include <sys/psw.h>
--# endif
--# endif
--# include "AsmMacros.h"
--#endif /* NetBSD */
--
- #include <unistd.h>
- #include <stdio.h>
- #include <stdlib.h>
-
--#ifdef __NetBSD__
--# define SET_IOPL() i386_iopl(3)
--# define RESET_IOPL() i386_iopl(0)
--#else
--# if defined(SVR4) && defined(i386)
--# ifndef SI86IOPL
--# define SET_IOPL() sysi86(SI86V86,V86SC_IOPL,PS_IOPL)
--# define RESET_IOPL() sysi86(SI86V86,V86SC_IOPL,0)
--# else
--# define SET_IOPL() sysi86(SI86IOPL,3)
--# define RESET_IOPL() sysi86(SI86IOPL,0)
--# endif
--# else
--# ifdef linux
--# define SET_IOPL() iopl(3)
--# define RESET_IOPL() iopl(0)
--# else
--# define SET_IOPL() (void)0
--# define RESET_IOPL() (void)0
--# endif
--# endif
--#endif
-+#include "iopl.h"
-
- int hex2int(char* str);
-
-diff --git a/util/modClock.c b/util/modClock.c
-index 89a291a..45af19b 100644
---- a/util/modClock.c
-+++ b/util/modClock.c
-@@ -1,61 +1,12 @@
--
--#ifdef __NetBSD__
--# include <sys/types.h>
--# include <machine/pio.h>
--# include <machine/sysarch.h>
--#else
--# if defined(SVR4) && defined(i386)
--# include <sys/types.h>
--# ifdef NCR
-- /* broken NCR <sys/sysi86.h> */
--# define __STDC
--# include <sys/sysi86.h>
--# undef __STDC
--# else
--# include <sys/sysi86.h>
--# endif
--# ifdef SVR4
--# if !defined(sun)
--# include <sys/seg.h>
--# endif
--# endif
--# include <sys/v86.h>
--# if defined(sun)
--# include <sys/psw.h>
--# endif
--# endif
--# include "AsmMacros.h"
--#endif /* NetBSD */
--
- #include <unistd.h>
- #include <stdio.h>
- #include <stdlib.h>
-+
- #ifndef Lynx
- #include <fnmatch.h>
- #endif
-
--#ifdef __NetBSD__
--# define SET_IOPL() i386_iopl(3)
--# define RESET_IOPL() i386_iopl(0)
--#else
--# if defined(SVR4) && defined(i386)
--# ifndef SI86IOPL
--# define SET_IOPL() sysi86(SI86V86,V86SC_IOPL,PS_IOPL)
--# define RESET_IOPL() sysi86(SI86V86,V86SC_IOPL,0)
--# else
--# define SET_IOPL() sysi86(SI86IOPL,3)
--# define RESET_IOPL() sysi86(SI86IOPL,0)
--# endif
--# else
--# ifdef linux
--# define SET_IOPL() iopl(3)
--# define RESET_IOPL() iopl(0)
--# else
--# define SET_IOPL() (void)0
--# define RESET_IOPL() (void)0
--# endif
--# endif
--#endif
-+#include "iopl.h"
-
- #define tolerance 0.01 /* +/- 1% */
-
---
-1.7.9.4
-
diff --git a/source/x/x11/patch/xf86-video-chips/0006-Fix-implicit-declaration-of-iopl.patch b/source/x/x11/patch/xf86-video-chips/0006-Fix-implicit-declaration-of-iopl.patch
deleted file mode 100644
index a0b4bb4b..00000000
--- a/source/x/x11/patch/xf86-video-chips/0006-Fix-implicit-declaration-of-iopl.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From c421f2477c99990d0dc712d6aece981fa6c961e5 Mon Sep 17 00:00:00 2001
-From: Jeremy Huddleston <jeremyhu@apple.com>
-Date: Tue, 18 Oct 2011 23:09:09 -0700
-Subject: [PATCH 6/9] Fix implicit declaration of iopl
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-warning: implicit declaration of function ‘iopl’ [-Wimplicit-function-declaration]
-
-Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
----
- util/iopl.h | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/util/iopl.h b/util/iopl.h
-index d7890b3..e08207c 100644
---- a/util/iopl.h
-+++ b/util/iopl.h
-@@ -3,6 +3,12 @@
- # include <machine/pio.h>
- # include <machine/sysarch.h>
- #else
-+# if defined(__linux__)
-+/* Can't because <sys/iopl.h> provides conflicting inb, outb, etc
-+ * # include <sys/io.h>
-+ */
-+int iopl(int level);
-+# endif
- # if defined(SVR4) && defined(i386)
- # include <sys/types.h>
- # ifdef NCR
---
-1.7.9.4
-
diff --git a/source/x/x11/patch/xf86-video-chips/0007-Build-fix-for-ABI-Version-12.patch b/source/x/x11/patch/xf86-video-chips/0007-Build-fix-for-ABI-Version-12.patch
deleted file mode 100644
index 12dc5131..00000000
--- a/source/x/x11/patch/xf86-video-chips/0007-Build-fix-for-ABI-Version-12.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 8a5ea07f30cc71ecc413fad0713facff72f77472 Mon Sep 17 00:00:00 2001
-From: Jeremy Huddleston <jeremyhu@apple.com>
-Date: Tue, 18 Oct 2011 23:21:33 -0700
-Subject: [PATCH 7/9] Build fix for ABI Version 12
-
-ABI Version 12 removes support for multiple PCI domains. If you need to
-use this driver on a system with more than one PCI domain, you should
-either port this driver to using libpciaccess directly or stick with an
-older server.
-
-Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
----
- src/ct_driver.c | 5 +++++
- src/ct_driver.h | 4 ++--
- 2 files changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/src/ct_driver.c b/src/ct_driver.c
-index e6538c6..a2e5c94 100644
---- a/src/ct_driver.c
-+++ b/src/ct_driver.c
-@@ -1446,7 +1446,12 @@ chipsPreInitHiQV(ScrnInfoPtr pScrn, int flags)
-
- hwp = VGAHWPTR(pScrn);
- vgaHWGetIOBase(hwp);
-+#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 12
- cPtr->PIOBase = hwp->PIOOffset;
-+#else
-+ cPtr->PIOBase = 0;
-+#endif
-+
- /*
- * Must allow ensure that storage for the 2nd set of vga registers is
- * allocated for dual channel cards
-diff --git a/src/ct_driver.h b/src/ct_driver.h
-index 39eeb6e..9033867 100644
---- a/src/ct_driver.h
-+++ b/src/ct_driver.h
-@@ -276,8 +276,8 @@ typedef struct _CHIPSRec {
- #endif
- int Chipset;
- EntityInfoPtr pEnt;
-- IOADDRESS PIOBase;
-- CARD32 IOAddress;
-+ unsigned long PIOBase;
-+ unsigned long IOAddress;
- unsigned long FbAddress;
- unsigned int IOBase;
- unsigned char * FbBase;
---
-1.7.9.4
-
diff --git a/source/x/x11/patch/xf86-video-chips/0008-Fall-back-to-shadowfb-if-XAA-is-unavailable.patch b/source/x/x11/patch/xf86-video-chips/0008-Fall-back-to-shadowfb-if-XAA-is-unavailable.patch
deleted file mode 100644
index 3478fa34..00000000
--- a/source/x/x11/patch/xf86-video-chips/0008-Fall-back-to-shadowfb-if-XAA-is-unavailable.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 5d5753551609f1483801e5edd8d42b11713c981e Mon Sep 17 00:00:00 2001
-From: Adam Jackson <ajax@redhat.com>
-Date: Mon, 19 Dec 2011 16:18:34 -0500
-Subject: [PATCH 8/9] Fall back to shadowfb if XAA is unavailable
-
-Signed-off-by: Adam Jackson <ajax@redhat.com>
----
- src/ct_driver.c | 7 +++----
- 1 file changed, 3 insertions(+), 4 deletions(-)
-
-diff --git a/src/ct_driver.c b/src/ct_driver.c
-index a2e5c94..95092a2 100644
---- a/src/ct_driver.c
-+++ b/src/ct_driver.c
-@@ -1345,10 +1345,9 @@ CHIPSPreInit(ScrnInfoPtr pScrn, int flags)
-
- if (cPtr->Flags & ChipsAccelSupport) {
- if (!xf86LoadSubModule(pScrn, "xaa")) {
-- vbeFree(cPtr->pVbe);
-- cPtr->pVbe = NULL;
-- CHIPSFreeRec(pScrn);
-- return FALSE;
-+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Falling back to shadowfb\n");
-+ cPtr->Flags &= ~(ChipsAccelSupport);
-+ cPtr->Flags |= ChipsShadowFB;
- }
- }
-
---
-1.7.9.4
-
diff --git a/source/x/x11/patch/xf86-video-chips/0009-Fix-for-new-vgaHW-ABI.patch b/source/x/x11/patch/xf86-video-chips/0009-Fix-for-new-vgaHW-ABI.patch
deleted file mode 100644
index 74ec3722..00000000
--- a/source/x/x11/patch/xf86-video-chips/0009-Fix-for-new-vgaHW-ABI.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 989cf4f1fb2ac57f38d363734b71a5cf749db146 Mon Sep 17 00:00:00 2001
-From: Adam Jackson <ajax@redhat.com>
-Date: Mon, 19 Dec 2011 17:45:41 -0500
-Subject: [PATCH 9/9] Fix for new vgaHW ABI
-
-Signed-off-by: Adam Jackson <ajax@redhat.com>
----
- src/ct_driver.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/ct_driver.c b/src/ct_driver.c
-index 95092a2..08ccd72 100644
---- a/src/ct_driver.c
-+++ b/src/ct_driver.c
-@@ -1444,6 +1444,7 @@ chipsPreInitHiQV(ScrnInfoPtr pScrn, int flags)
- return FALSE;
-
- hwp = VGAHWPTR(pScrn);
-+ vgaHWSetStdFuncs(hwp);
- vgaHWGetIOBase(hwp);
- #if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 12
- cPtr->PIOBase = hwp->PIOOffset;
---
-1.7.9.4
-
diff --git a/source/x/x11/patch/xf86-video-chips/iopl.h b/source/x/x11/patch/xf86-video-chips/iopl.h
new file mode 100644
index 00000000..e08207c7
--- /dev/null
+++ b/source/x/x11/patch/xf86-video-chips/iopl.h
@@ -0,0 +1,60 @@
+#ifdef __NetBSD__
+# include <sys/types.h>
+# include <machine/pio.h>
+# include <machine/sysarch.h>
+#else
+# if defined(__linux__)
+/* Can't because <sys/iopl.h> provides conflicting inb, outb, etc
+ * # include <sys/io.h>
+ */
+int iopl(int level);
+# endif
+# if defined(SVR4) && defined(i386)
+# include <sys/types.h>
+# ifdef NCR
+ /* broken NCR <sys/sysi86.h> */
+# define __STDC
+# include <sys/sysi86.h>
+# undef __STDC
+# else
+# include <sys/sysi86.h>
+# endif
+# ifdef SVR4
+# if !defined(sun)
+# include <sys/seg.h>
+# endif
+# endif
+# include <sys/v86.h>
+# if defined(sun)
+# include <sys/psw.h>
+# endif
+# endif
+# include "AsmMacros.h"
+#endif /* NetBSD */
+
+#include <unistd.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#ifdef __NetBSD__
+# define SET_IOPL() i386_iopl(3)
+# define RESET_IOPL() i386_iopl(0)
+#else
+# if defined(SVR4) && defined(i386)
+# ifndef SI86IOPL
+# define SET_IOPL() sysi86(SI86V86,V86SC_IOPL,PS_IOPL)
+# define RESET_IOPL() sysi86(SI86V86,V86SC_IOPL,0)
+# else
+# define SET_IOPL() sysi86(SI86IOPL,3)
+# define RESET_IOPL() sysi86(SI86IOPL,0)
+# endif
+# else
+# ifdef linux
+# define SET_IOPL() iopl(3)
+# define RESET_IOPL() iopl(0)
+# else
+# define SET_IOPL() (void)0
+# define RESET_IOPL() (void)0
+# endif
+# endif
+#endif
diff --git a/source/x/x11/patch/xf86-video-dummy.patch b/source/x/x11/patch/xf86-video-dummy.patch
new file mode 100644
index 00000000..17d7e829
--- /dev/null
+++ b/source/x/x11/patch/xf86-video-dummy.patch
@@ -0,0 +1,7 @@
+# Remove obsolete references to mibstore.h and miInitializeBackingStore():
+grep -r -l '#include "mibstore.h"' * | while read file ; do
+ sed -i "s/#include \"mibstore.h\"//g" $file
+done
+grep -r -l 'miInitializeBackingStore(pScreen);' | while read file ; do
+ sed -i "s/miInitializeBackingStore(pScreen);//g" $file
+done
diff --git a/source/x/x11/patch/xf86-video-geode.patch b/source/x/x11/patch/xf86-video-geode.patch
new file mode 100644
index 00000000..6bbc3b34
--- /dev/null
+++ b/source/x/x11/patch/xf86-video-geode.patch
@@ -0,0 +1,7 @@
+# Remove obsolete references to mibstore.h and miInitializeBackingStore():
+grep -r -l '#include "mibstore.h"' * | while read file ; do
+ sed -i "s/#include \"mibstore.h\"//g" $file
+done
+grep -r -l 'miInitializeBackingStore(pScrn);' | while read file ; do
+ sed -i "s/miInitializeBackingStore(pScrn);//g" $file
+done
diff --git a/source/x/x11/patch/xf86-video-glint.patch b/source/x/x11/patch/xf86-video-glint.patch
new file mode 100644
index 00000000..17d7e829
--- /dev/null
+++ b/source/x/x11/patch/xf86-video-glint.patch
@@ -0,0 +1,7 @@
+# Remove obsolete references to mibstore.h and miInitializeBackingStore():
+grep -r -l '#include "mibstore.h"' * | while read file ; do
+ sed -i "s/#include \"mibstore.h\"//g" $file
+done
+grep -r -l 'miInitializeBackingStore(pScreen);' | while read file ; do
+ sed -i "s/miInitializeBackingStore(pScreen);//g" $file
+done
diff --git a/source/x/x11/patch/xf86-video-i128.patch b/source/x/x11/patch/xf86-video-i128.patch
new file mode 100644
index 00000000..17d7e829
--- /dev/null
+++ b/source/x/x11/patch/xf86-video-i128.patch
@@ -0,0 +1,7 @@
+# Remove obsolete references to mibstore.h and miInitializeBackingStore():
+grep -r -l '#include "mibstore.h"' * | while read file ; do
+ sed -i "s/#include \"mibstore.h\"//g" $file
+done
+grep -r -l 'miInitializeBackingStore(pScreen);' | while read file ; do
+ sed -i "s/miInitializeBackingStore(pScreen);//g" $file
+done
diff --git a/source/x/x11/patch/xf86-video-i740.patch b/source/x/x11/patch/xf86-video-i740.patch
new file mode 100644
index 00000000..17d7e829
--- /dev/null
+++ b/source/x/x11/patch/xf86-video-i740.patch
@@ -0,0 +1,7 @@
+# Remove obsolete references to mibstore.h and miInitializeBackingStore():
+grep -r -l '#include "mibstore.h"' * | while read file ; do
+ sed -i "s/#include \"mibstore.h\"//g" $file
+done
+grep -r -l 'miInitializeBackingStore(pScreen);' | while read file ; do
+ sed -i "s/miInitializeBackingStore(pScreen);//g" $file
+done
diff --git a/source/x/x11/patch/xf86-video-neomagic.patch b/source/x/x11/patch/xf86-video-neomagic.patch
new file mode 100644
index 00000000..17d7e829
--- /dev/null
+++ b/source/x/x11/patch/xf86-video-neomagic.patch
@@ -0,0 +1,7 @@
+# Remove obsolete references to mibstore.h and miInitializeBackingStore():
+grep -r -l '#include "mibstore.h"' * | while read file ; do
+ sed -i "s/#include \"mibstore.h\"//g" $file
+done
+grep -r -l 'miInitializeBackingStore(pScreen);' | while read file ; do
+ sed -i "s/miInitializeBackingStore(pScreen);//g" $file
+done
diff --git a/source/x/x11/patch/xf86-video-nv.patch b/source/x/x11/patch/xf86-video-nv.patch
new file mode 100644
index 00000000..5e71368f
--- /dev/null
+++ b/source/x/x11/patch/xf86-video-nv.patch
@@ -0,0 +1,10 @@
+# Remove obsolete references to mibstore.h and miInitializeBackingStore():
+grep -r -l '#include "mibstore.h"' * | while read file ; do
+ sed -i "s/#include \"mibstore.h\"//g" $file
+done
+grep -r -l '#include <mibstore.h>' * | while read file ; do
+ sed -i "s/#include <mibstore.h>//g" $file
+done
+grep -r -l 'miInitializeBackingStore(pScreen);' | while read file ; do
+ sed -i "s/miInitializeBackingStore(pScreen);//g" $file
+done
diff --git a/source/x/x11/patch/xf86-video-r128.patch b/source/x/x11/patch/xf86-video-r128.patch
new file mode 100644
index 00000000..17d7e829
--- /dev/null
+++ b/source/x/x11/patch/xf86-video-r128.patch
@@ -0,0 +1,7 @@
+# Remove obsolete references to mibstore.h and miInitializeBackingStore():
+grep -r -l '#include "mibstore.h"' * | while read file ; do
+ sed -i "s/#include \"mibstore.h\"//g" $file
+done
+grep -r -l 'miInitializeBackingStore(pScreen);' | while read file ; do
+ sed -i "s/miInitializeBackingStore(pScreen);//g" $file
+done
diff --git a/source/x/x11/patch/xf86-video-rendition.patch b/source/x/x11/patch/xf86-video-rendition.patch
new file mode 100644
index 00000000..17d7e829
--- /dev/null
+++ b/source/x/x11/patch/xf86-video-rendition.patch
@@ -0,0 +1,7 @@
+# Remove obsolete references to mibstore.h and miInitializeBackingStore():
+grep -r -l '#include "mibstore.h"' * | while read file ; do
+ sed -i "s/#include \"mibstore.h\"//g" $file
+done
+grep -r -l 'miInitializeBackingStore(pScreen);' | while read file ; do
+ sed -i "s/miInitializeBackingStore(pScreen);//g" $file
+done
diff --git a/source/x/x11/patch/xf86-video-s3.patch b/source/x/x11/patch/xf86-video-s3.patch
new file mode 100644
index 00000000..17d7e829
--- /dev/null
+++ b/source/x/x11/patch/xf86-video-s3.patch
@@ -0,0 +1,7 @@
+# Remove obsolete references to mibstore.h and miInitializeBackingStore():
+grep -r -l '#include "mibstore.h"' * | while read file ; do
+ sed -i "s/#include \"mibstore.h\"//g" $file
+done
+grep -r -l 'miInitializeBackingStore(pScreen);' | while read file ; do
+ sed -i "s/miInitializeBackingStore(pScreen);//g" $file
+done
diff --git a/source/x/x11/patch/xf86-video-s3virge.patch b/source/x/x11/patch/xf86-video-s3virge.patch
new file mode 100644
index 00000000..17d7e829
--- /dev/null
+++ b/source/x/x11/patch/xf86-video-s3virge.patch
@@ -0,0 +1,7 @@
+# Remove obsolete references to mibstore.h and miInitializeBackingStore():
+grep -r -l '#include "mibstore.h"' * | while read file ; do
+ sed -i "s/#include \"mibstore.h\"//g" $file
+done
+grep -r -l 'miInitializeBackingStore(pScreen);' | while read file ; do
+ sed -i "s/miInitializeBackingStore(pScreen);//g" $file
+done
diff --git a/source/x/x11/patch/xf86-video-savage.patch b/source/x/x11/patch/xf86-video-savage.patch
new file mode 100644
index 00000000..17d7e829
--- /dev/null
+++ b/source/x/x11/patch/xf86-video-savage.patch
@@ -0,0 +1,7 @@
+# Remove obsolete references to mibstore.h and miInitializeBackingStore():
+grep -r -l '#include "mibstore.h"' * | while read file ; do
+ sed -i "s/#include \"mibstore.h\"//g" $file
+done
+grep -r -l 'miInitializeBackingStore(pScreen);' | while read file ; do
+ sed -i "s/miInitializeBackingStore(pScreen);//g" $file
+done
diff --git a/source/x/x11/patch/xf86-video-siliconmotion.patch b/source/x/x11/patch/xf86-video-siliconmotion.patch
new file mode 100644
index 00000000..17d7e829
--- /dev/null
+++ b/source/x/x11/patch/xf86-video-siliconmotion.patch
@@ -0,0 +1,7 @@
+# Remove obsolete references to mibstore.h and miInitializeBackingStore():
+grep -r -l '#include "mibstore.h"' * | while read file ; do
+ sed -i "s/#include \"mibstore.h\"//g" $file
+done
+grep -r -l 'miInitializeBackingStore(pScreen);' | while read file ; do
+ sed -i "s/miInitializeBackingStore(pScreen);//g" $file
+done
diff --git a/source/x/x11/patch/xf86-video-sis.patch b/source/x/x11/patch/xf86-video-sis.patch
new file mode 100644
index 00000000..45276b4c
--- /dev/null
+++ b/source/x/x11/patch/xf86-video-sis.patch
@@ -0,0 +1,2 @@
+zcat $CWD/patch/xf86-video-sis/sis-0.10.7-git.patch.gz | patch -p1 --verbose \
+ || { touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
diff --git a/source/x/x11/patch/xf86-video-sis/sis-0.10.7-git.patch b/source/x/x11/patch/xf86-video-sis/sis-0.10.7-git.patch
new file mode 100644
index 00000000..86523755
--- /dev/null
+++ b/source/x/x11/patch/xf86-video-sis/sis-0.10.7-git.patch
@@ -0,0 +1,121 @@
+diff --git a/src/sis.h b/src/sis.h
+index 46fca2a..20e6134 100644
+--- a/src/sis.h
++++ b/src/sis.h
+@@ -75,7 +75,6 @@
+
+ #include "compiler.h"
+ #include "xf86Pci.h"
+-#include "xf86Priv.h"
+ #include "xf86_OSproc.h"
+ #if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 6
+ #include "xf86Resources.h"
+diff --git a/src/sis_driver.c b/src/sis_driver.c
+index 61e8075..0fd83d7 100644
+--- a/src/sis_driver.c
++++ b/src/sis_driver.c
+@@ -57,7 +57,6 @@
+ #include "fb.h"
+ #include "micmap.h"
+ #include "mipointer.h"
+-#include "mibstore.h"
+ #include "edid.h"
+
+ #define SIS_NEED_inSISREG
+@@ -94,6 +93,10 @@
+ #include "dri.h"
+ #endif
+
++#ifndef DEFAULT_DPI
++#define DEFAULT_DPI 96
++#endif
++
+ /*
+ * LookupWindow was removed with video abi 11.
+ */
+@@ -7344,7 +7347,11 @@ SISUnmapMem(ScrnInfoPtr pScrn)
+ if(pSiSEnt->MapCountIOBase) {
+ pSiSEnt->MapCountIOBase--;
+ if((pSiSEnt->MapCountIOBase == 0) || (pSiSEnt->forceUnmapIOBase)) {
++#ifndef XSERVER_LIBPCIACCESS
+ xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pSiSEnt->IOBase, (pSiS->mmioSize * 1024));
++#else
++ pci_device_unmap_range(pSiS->PciInfo, pSiSEnt->IOBase, (pSiS->mmioSize * 1024));
++#endif
+ pSiSEnt->IOBase = NULL;
+ pSiSEnt->MapCountIOBase = 0;
+ pSiSEnt->forceUnmapIOBase = FALSE;
+@@ -7355,7 +7362,11 @@ SISUnmapMem(ScrnInfoPtr pScrn)
+ if(pSiSEnt->MapCountIOBaseDense) {
+ pSiSEnt->MapCountIOBaseDense--;
+ if((pSiSEnt->MapCountIOBaseDense == 0) || (pSiSEnt->forceUnmapIOBaseDense)) {
++#ifndef XSERVER_LIBPCIACCESS
+ xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pSiSEnt->IOBaseDense, (pSiS->mmioSize * 1024));
++#else
++ pci_device_unmap_range(pSiS->PciInfo, (pointer)pSiSEnt->IOBaseDense, (pSiS->mmioSize * 1024));
++#endif
+ pSiSEnt->IOBaseDense = NULL;
+ pSiSEnt->MapCountIOBaseDense = 0;
+ pSiSEnt->forceUnmapIOBaseDense = FALSE;
+@@ -7366,7 +7377,11 @@ SISUnmapMem(ScrnInfoPtr pScrn)
+ if(pSiSEnt->MapCountFbBase) {
+ pSiSEnt->MapCountFbBase--;
+ if((pSiSEnt->MapCountFbBase == 0) || (pSiSEnt->forceUnmapFbBase)) {
++#ifndef XSERVER_LIBPCIACCESS
+ xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pSiSEnt->RealFbBase, pSiS->FbMapSize);
++#else
++ pci_device_unmap_range(pSiS->PciInfo, (pointer)pSiSEnt->RealFbBase, pSiS->FbMapSize);
++#endif
+ pSiSEnt->FbBase = pSiSEnt->RealFbBase = NULL;
+ pSiSEnt->MapCountFbBase = 0;
+ pSiSEnt->forceUnmapFbBase = FALSE;
+@@ -7376,13 +7391,25 @@ SISUnmapMem(ScrnInfoPtr pScrn)
+ }
+ } else {
+ #endif
++#ifndef XSERVER_LIBPCIACCESS
+ xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pSiS->IOBase, (pSiS->mmioSize * 1024));
++#else
++ pci_device_unmap_range(pSiS->PciInfo, (pointer)pSiS->IOBase, (pSiS->mmioSize * 1024));
++#endif
+ pSiS->IOBase = NULL;
+ #ifdef __alpha__
++#ifndef XSERVER_LIBPCIACCESS
+ xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pSiS->IOBaseDense, (pSiS->mmioSize * 1024));
++#else
++ pci_device_unmap_range(pSiS->PciInfo, (pointer)pSiS->IOBaseDense, (pSiS->mmioSize * 1024));
++#endif
+ pSiS->IOBaseDense = NULL;
+ #endif
++#ifndef XSERVER_LIBPCIACCESS
+ xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pSiS->RealFbBase, pSiS->FbMapSize);
++#else
++ pci_device_unmap_range(pSiS->PciInfo, (pointer)pSiS->RealFbBase, pSiS->FbMapSize);
++#endif
+ pSiS->FbBase = pSiS->RealFbBase = NULL;
+ #ifdef SISDUALHEAD
+ }
+@@ -8859,7 +8886,6 @@ SISScreenInit(SCREEN_INIT_ARGS_DECL)
+ }
+ pSiS->SiSFastVidCopyDone = TRUE;
+
+- miInitializeBackingStore(pScreen);
+ xf86SetBackingStore(pScreen);
+ xf86SetSilkenMouse(pScreen);
+
+@@ -9352,7 +9378,14 @@ SISMergedPointerMoved(SCRN_ARG_TYPE arg, int x, int y)
+ }
+ if(doit) {
+ sigstate = xf86BlockSIGIO();
+-#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 15
++#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 18
++ {
++ double dx = x, dy = y;
++ miPointerSetPosition(inputInfo.pointer, Absolute, &dx, &dy, NULL, NULL);
++ x = (int)dx;
++ y = (int)dy;
++ }
++#elif GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 15
+ {
+ double dx = x, dy = y;
+ miPointerSetPosition(inputInfo.pointer, Absolute, &dx, &dy);
diff --git a/source/x/x11/patch/xf86-video-sisusb.patch b/source/x/x11/patch/xf86-video-sisusb.patch
new file mode 100644
index 00000000..17d7e829
--- /dev/null
+++ b/source/x/x11/patch/xf86-video-sisusb.patch
@@ -0,0 +1,7 @@
+# Remove obsolete references to mibstore.h and miInitializeBackingStore():
+grep -r -l '#include "mibstore.h"' * | while read file ; do
+ sed -i "s/#include \"mibstore.h\"//g" $file
+done
+grep -r -l 'miInitializeBackingStore(pScreen);' | while read file ; do
+ sed -i "s/miInitializeBackingStore(pScreen);//g" $file
+done
diff --git a/source/x/x11/patch/xf86-video-tdfx.patch b/source/x/x11/patch/xf86-video-tdfx.patch
new file mode 100644
index 00000000..17d7e829
--- /dev/null
+++ b/source/x/x11/patch/xf86-video-tdfx.patch
@@ -0,0 +1,7 @@
+# Remove obsolete references to mibstore.h and miInitializeBackingStore():
+grep -r -l '#include "mibstore.h"' * | while read file ; do
+ sed -i "s/#include \"mibstore.h\"//g" $file
+done
+grep -r -l 'miInitializeBackingStore(pScreen);' | while read file ; do
+ sed -i "s/miInitializeBackingStore(pScreen);//g" $file
+done
diff --git a/source/x/x11/patch/xf86-video-tga.patch b/source/x/x11/patch/xf86-video-tga.patch
new file mode 100644
index 00000000..17d7e829
--- /dev/null
+++ b/source/x/x11/patch/xf86-video-tga.patch
@@ -0,0 +1,7 @@
+# Remove obsolete references to mibstore.h and miInitializeBackingStore():
+grep -r -l '#include "mibstore.h"' * | while read file ; do
+ sed -i "s/#include \"mibstore.h\"//g" $file
+done
+grep -r -l 'miInitializeBackingStore(pScreen);' | while read file ; do
+ sed -i "s/miInitializeBackingStore(pScreen);//g" $file
+done
diff --git a/source/x/x11/patch/xf86-video-trident.patch b/source/x/x11/patch/xf86-video-trident.patch
new file mode 100644
index 00000000..17d7e829
--- /dev/null
+++ b/source/x/x11/patch/xf86-video-trident.patch
@@ -0,0 +1,7 @@
+# Remove obsolete references to mibstore.h and miInitializeBackingStore():
+grep -r -l '#include "mibstore.h"' * | while read file ; do
+ sed -i "s/#include \"mibstore.h\"//g" $file
+done
+grep -r -l 'miInitializeBackingStore(pScreen);' | while read file ; do
+ sed -i "s/miInitializeBackingStore(pScreen);//g" $file
+done
diff --git a/source/x/x11/patch/xf86-video-tseng.patch b/source/x/x11/patch/xf86-video-tseng.patch
new file mode 100644
index 00000000..17d7e829
--- /dev/null
+++ b/source/x/x11/patch/xf86-video-tseng.patch
@@ -0,0 +1,7 @@
+# Remove obsolete references to mibstore.h and miInitializeBackingStore():
+grep -r -l '#include "mibstore.h"' * | while read file ; do
+ sed -i "s/#include \"mibstore.h\"//g" $file
+done
+grep -r -l 'miInitializeBackingStore(pScreen);' | while read file ; do
+ sed -i "s/miInitializeBackingStore(pScreen);//g" $file
+done
diff --git a/source/x/x11/patch/xf86-video-vesa.patch b/source/x/x11/patch/xf86-video-vesa.patch
new file mode 100644
index 00000000..17d7e829
--- /dev/null
+++ b/source/x/x11/patch/xf86-video-vesa.patch
@@ -0,0 +1,7 @@
+# Remove obsolete references to mibstore.h and miInitializeBackingStore():
+grep -r -l '#include "mibstore.h"' * | while read file ; do
+ sed -i "s/#include \"mibstore.h\"//g" $file
+done
+grep -r -l 'miInitializeBackingStore(pScreen);' | while read file ; do
+ sed -i "s/miInitializeBackingStore(pScreen);//g" $file
+done
diff --git a/source/x/x11/patch/xf86-video-vmware.patch b/source/x/x11/patch/xf86-video-vmware.patch
new file mode 100644
index 00000000..17d7e829
--- /dev/null
+++ b/source/x/x11/patch/xf86-video-vmware.patch
@@ -0,0 +1,7 @@
+# Remove obsolete references to mibstore.h and miInitializeBackingStore():
+grep -r -l '#include "mibstore.h"' * | while read file ; do
+ sed -i "s/#include \"mibstore.h\"//g" $file
+done
+grep -r -l 'miInitializeBackingStore(pScreen);' | while read file ; do
+ sed -i "s/miInitializeBackingStore(pScreen);//g" $file
+done
diff --git a/source/x/x11/patch/xf86-video-voodoo.patch b/source/x/x11/patch/xf86-video-voodoo.patch
new file mode 100644
index 00000000..17d7e829
--- /dev/null
+++ b/source/x/x11/patch/xf86-video-voodoo.patch
@@ -0,0 +1,7 @@
+# Remove obsolete references to mibstore.h and miInitializeBackingStore():
+grep -r -l '#include "mibstore.h"' * | while read file ; do
+ sed -i "s/#include \"mibstore.h\"//g" $file
+done
+grep -r -l 'miInitializeBackingStore(pScreen);' | while read file ; do
+ sed -i "s/miInitializeBackingStore(pScreen);//g" $file
+done
diff --git a/source/x/x11/patch/xf86-video-xgi.patch b/source/x/x11/patch/xf86-video-xgi.patch
new file mode 100644
index 00000000..17d7e829
--- /dev/null
+++ b/source/x/x11/patch/xf86-video-xgi.patch
@@ -0,0 +1,7 @@
+# Remove obsolete references to mibstore.h and miInitializeBackingStore():
+grep -r -l '#include "mibstore.h"' * | while read file ; do
+ sed -i "s/#include \"mibstore.h\"//g" $file
+done
+grep -r -l 'miInitializeBackingStore(pScreen);' | while read file ; do
+ sed -i "s/miInitializeBackingStore(pScreen);//g" $file
+done
diff --git a/source/x/x11/patch/xf86-video-xgixp.patch b/source/x/x11/patch/xf86-video-xgixp.patch
new file mode 100644
index 00000000..17d7e829
--- /dev/null
+++ b/source/x/x11/patch/xf86-video-xgixp.patch
@@ -0,0 +1,7 @@
+# Remove obsolete references to mibstore.h and miInitializeBackingStore():
+grep -r -l '#include "mibstore.h"' * | while read file ; do
+ sed -i "s/#include \"mibstore.h\"//g" $file
+done
+grep -r -l 'miInitializeBackingStore(pScreen);' | while read file ; do
+ sed -i "s/miInitializeBackingStore(pScreen);//g" $file
+done
diff --git a/source/x/x11/patch/xorg-server.patch b/source/x/x11/patch/xorg-server.patch
index 01be43a3..c0c4810f 100644
--- a/source/x/x11/patch/xorg-server.patch
+++ b/source/x/x11/patch/xorg-server.patch
@@ -1 +1,2 @@
zcat $CWD/patch/xorg-server/x11.startwithblackscreen.diff.gz | patch -p1 --verbose || { touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
+zcat $CWD/patch/xorg-server/xorg-server.CVE-2013-4396.diff.gz | patch -p1 --verbose || { touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
diff --git a/source/x/x11/patch/xorg-server/xorg-server.CVE-2013-4396.diff b/source/x/x11/patch/xorg-server/xorg-server.CVE-2013-4396.diff
new file mode 100644
index 00000000..14c31782
--- /dev/null
+++ b/source/x/x11/patch/xorg-server/xorg-server.CVE-2013-4396.diff
@@ -0,0 +1,73 @@
+From 7bddc2ba16a2a15773c2ea8947059afa27727764 Mon Sep 17 00:00:00 2001
+From: Alan Coopersmith <alan.coopersmith at oracle.com>
+Date: Mon, 16 Sep 2013 21:47:16 -0700
+Subject: [PATCH] Avoid use-after-free in dix/dixfonts.c: doImageText()
+ [CVE-2013-4396]
+
+Save a pointer to the passed in closure structure before copying it
+and overwriting the *c pointer to point to our copy instead of the
+original. If we hit an error, once we free(c), reset c to point to
+the original structure before jumping to the cleanup code that
+references *c.
+
+Since one of the errors being checked for is whether the server was
+able to malloc(c->nChars * itemSize), the client can potentially pass
+a number of characters chosen to cause the malloc to fail and the
+error path to be taken, resulting in the read from freed memory.
+
+Since the memory is accessed almost immediately afterwards, and the
+X server is mostly single threaded, the odds of the free memory having
+invalid contents are low with most malloc implementations when not using
+memory debugging features, but some allocators will definitely overwrite
+the memory there, leading to a likely crash.
+
+Reported-by: Pedro Ribeiro <pedrib at gmail.com>
+Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
+Reviewed-by: Julien Cristau <jcristau at debian.org>
+---
+ dix/dixfonts.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/dix/dixfonts.c b/dix/dixfonts.c
+index feb765d..2e34d37 100644
+--- a/dix/dixfonts.c
++++ b/dix/dixfonts.c
+@@ -1425,6 +1425,7 @@ doImageText(ClientPtr client, ITclosurePtr c)
+ GC *pGC;
+ unsigned char *data;
+ ITclosurePtr new_closure;
++ ITclosurePtr old_closure;
+
+ /* We're putting the client to sleep. We need to
+ save some state. Similar problem to that handled
+@@ -1436,12 +1437,14 @@ doImageText(ClientPtr client, ITclosurePtr c)
+ err = BadAlloc;
+ goto bail;
+ }
++ old_closure = c;
+ *new_closure = *c;
+ c = new_closure;
+
+ data = malloc(c->nChars * itemSize);
+ if (!data) {
+ free(c);
++ c = old_closure;
+ err = BadAlloc;
+ goto bail;
+ }
+@@ -1452,6 +1455,7 @@ doImageText(ClientPtr client, ITclosurePtr c)
+ if (!pGC) {
+ free(c->data);
+ free(c);
++ c = old_closure;
+ err = BadAlloc;
+ goto bail;
+ }
+@@ -1464,6 +1468,7 @@ doImageText(ClientPtr client, ITclosurePtr c)
+ FreeScratchGC(pGC);
+ free(c->data);
+ free(c);
++ c = old_closure;
+ err = BadAlloc;
+ goto bail;
+ }