summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRemi Cardona <remi@gentoo.org>2009-10-02 14:10:01 +0000
committerRemi Cardona <remi@gentoo.org>2009-10-02 14:10:01 +0000
commit99d36c1126545d3cf66aacb9b9f54eaf3291aa44 (patch)
tree2a1b4c0bc12cc40b82b75a6ccec177e1b492f7c7 /x11-base/xorg-server
parentThis version has some buggy keystrokes (diff)
downloadhistorical-99d36c1126545d3cf66aacb9b9f54eaf3291aa44.tar.gz
historical-99d36c1126545d3cf66aacb9b9f54eaf3291aa44.tar.bz2
historical-99d36c1126545d3cf66aacb9b9f54eaf3291aa44.zip
x11-base/xorg-server: add patch to fix crasher bug #286746
Package-Manager: portage-2.2_rc42/cvs/Linux i686
Diffstat (limited to 'x11-base/xorg-server')
-rw-r--r--x11-base/xorg-server/ChangeLog6
-rw-r--r--x11-base/xorg-server/Manifest5
-rw-r--r--x11-base/xorg-server/files/1.6.4-re-fix-DGA-removal.patch150
-rw-r--r--x11-base/xorg-server/xorg-server-1.6.4.ebuild3
4 files changed, 160 insertions, 4 deletions
diff --git a/x11-base/xorg-server/ChangeLog b/x11-base/xorg-server/ChangeLog
index e6f27b1aa248..f300e8934d20 100644
--- a/x11-base/xorg-server/ChangeLog
+++ b/x11-base/xorg-server/ChangeLog
@@ -1,6 +1,10 @@
# ChangeLog for x11-base/xorg-server
# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-base/xorg-server/ChangeLog,v 1.448 2009/09/30 20:17:56 ssuominen Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-base/xorg-server/ChangeLog,v 1.449 2009/10/02 14:10:00 remi Exp $
+
+ 02 Oct 2009; Rémi Cardona <remi@gentoo.org>
+ +files/1.6.4-re-fix-DGA-removal.patch, xorg-server-1.6.4.ebuild:
+ add patch to fix crasher bug #286746
30 Sep 2009; Samuli Suominen <ssuominen@gentoo.org>
xorg-server-1.6.3.901-r2.ebuild:
diff --git a/x11-base/xorg-server/Manifest b/x11-base/xorg-server/Manifest
index 5b50733da5ef..f08143408933 100644
--- a/x11-base/xorg-server/Manifest
+++ b/x11-base/xorg-server/Manifest
@@ -1,6 +1,7 @@
AUX 1.4-fix-kdrive-automake.patch 382 RMD160 78062824a416a2b452866d50592cc71bf34b13be SHA1 f21a54aed8eae1e718f2f0c262c37c36ccccd152 SHA256 126b67332c902802da506970acf253030004e4f7e17b3b6d2e68dd6b7bb0db81
AUX 1.4-fpic-libxf86config.patch 374 RMD160 614d69f83b7f4d4999efa906f2059b7f287e22c1 SHA1 1f113823c03f69e79b10965908945df629b73474 SHA256 017e7ba2954dcc2281f8626977d47fd8bd037f05e680e51b8e4ae7316455a237
AUX 1.6.3.901-0001-dix-append-built-ins-to-the-font-path-in-SetDefaultF.patch 3303 RMD160 69966b78924cc4f03df8ff0edc1666370a6b9e67 SHA1 a95b2e0ec5f47e91769b596872c4a7700101d730 SHA256 8f24228cf93819a59f016b42d31cd1d4c6d4b014a24d690dd3b5e88e0040563f
+AUX 1.6.4-re-fix-DGA-removal.patch 4991 RMD160 568b6250606e4022182aa36e16a4cd4bf15f293b SHA1 53972ea3a706ea0b117f7f170d4874e3df8313f6 SHA256 d254b01d56fd708c6c3ce863902b28113b5de71a18ece365d4ea59c1e1a1d2b8
DIST xorg-server-1.5.3-gentoo-patches-08.tar.bz2 60521 RMD160 5b6572450dd8379a0a932c7eb4762fbd58874ab1 SHA1 e269009caeb536e35f58e4a2ab7963eb9b5070ec SHA256 3ac1f99e5c9e21ddbcdd08ecd9687ad64dda8916282f951b74fadabb68e4badc
DIST xorg-server-1.5.3.tar.bz2 5622625 RMD160 dc0c552e031963070b7a315ea4499810021d0eed SHA1 177529b6d7191a73df6abf2990cd7708398a8d81 SHA256 a680174f54be7763819e5275c5d5d44fc9e9b6f8e9351dd45c150eb4c182d5bb
DIST xorg-server-1.6.3.901.tar.bz2 4678171 RMD160 45421fdb4524ffd1b247569a1c7dc728bd0cf965 SHA1 09e3d46178701ce76911553ee53309686822bb31 SHA256 1b8b9c40fc3da9268b03143cb4fc518baa9fcf88da73c7645c2d572bf23dbd50
@@ -8,6 +9,6 @@ DIST xorg-server-1.6.4.tar.bz2 4679094 RMD160 96a0b8467749d45827557e7b3e6fce3fec
EBUILD xorg-server-1.5.3-r6.ebuild 15760 RMD160 82e5a893c835ef0b3b9cad8e20cd2f388a4cfa75 SHA1 f0b3fc71cf84b5868756f4240c9e323be1d65010 SHA256 2e1c52b41126b59c5de2e806a2fde726fb7d673956c628af51b47b6841002de8
EBUILD xorg-server-1.5.3-r7.ebuild 15862 RMD160 90ff9fcc140d8578531418669607bdb042af144b SHA1 44d104f7b8f415eb50505ff83c292a087ef34caf SHA256 7762b1b300f0648c479d1e265e9431052a081d641d32ab3541e9e8b44d2498d8
EBUILD xorg-server-1.6.3.901-r2.ebuild 7095 RMD160 c9a18fbd39b3b6f9b234b672f22b474ab1e135dd SHA1 f3e4afbdbd85734e5624d83af15f7d1fb92db0b4 SHA256 17697b795c210248f0e9699c76095497fc28c982aa9e3ab30d74a16d658967d9
-EBUILD xorg-server-1.6.4.ebuild 6862 RMD160 25a70092f9968f92f7bd5b2f96031bb8687f1232 SHA1 7221d00b8e17d63f36ec85f0fdbc8fa10b2925db SHA256 fb49ff35f74880eb1e61890a28e558dc84f7d860bbc0eed477b361b8608490d2
-MISC ChangeLog 104293 RMD160 d9189e74a41551debd536e08609de99c73dd8627 SHA1 bbfae9bc07e100f6072eb73e0161c0b5fe242721 SHA256 ab531e71ffb84c802ff3bf42064f3d59cf2f31a8230855252a3d3af933c54342
+EBUILD xorg-server-1.6.4.ebuild 6908 RMD160 8ae1016f592701b383c37416a55c0eaeaec9a42d SHA1 8e0dc15c81c5cde1a9b980fbba291f96c4906113 SHA256 4b9f18c849e0f9641864668ec362369fa28e4c3f00ba2f16d8b3d1925d3d40c6
+MISC ChangeLog 104442 RMD160 776dd4885f89e7d18e438e342889a969f38b647f SHA1 be832f53e0ea021c0427efa56b4580e2d3c5575e SHA256 dcbccc1c463719e149200795721a8dea32e834d74e3a0ba25b3c5cac7041f462
MISC metadata.xml 439 RMD160 c96c2c91bc0374b9ec854aec534988afa77cd42c SHA1 631c118285d63e25d63c21487ecac7a05a8304f0 SHA256 cc8d98da43263c08185727cdc0848c5182d54145d5f9caa908294b7d4ef4ed7b
diff --git a/x11-base/xorg-server/files/1.6.4-re-fix-DGA-removal.patch b/x11-base/xorg-server/files/1.6.4-re-fix-DGA-removal.patch
new file mode 100644
index 000000000000..877be51f40ee
--- /dev/null
+++ b/x11-base/xorg-server/files/1.6.4-re-fix-DGA-removal.patch
@@ -0,0 +1,150 @@
+From fc31f76b6ff735e4a4006c5454c4d496ee8b154a Mon Sep 17 00:00:00 2001
+From: Keith Packard <keithp@keithp.com>
+Date: Wed, 30 Sep 2009 18:40:19 +0000
+Subject: Re-fix DGA removal.
+
+Removing DGA ended up breaking any drivers calling into the old
+xf86DiDGAInit function as it tried to see if DGA was already enabled
+and ended up crashing if the VT wasn't completely initialized. Oops.
+
+Also, if the driver initializes DGA itself, have the DiDGA
+initialization overwrite that information as the DiDGA code will call
+ReInit on mode detect.
+
+Signed-off-by: Keith Packard <keithp@keithp.com>
+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+(cherry picked from commit db98b26ee145f70e732e2cf4a6ac3de77fdf4adc)
+---
+diff --git a/hw/xfree86/common/xf86DGA.c b/hw/xfree86/common/xf86DGA.c
+index a06f285..3f7deba 100644
+--- a/hw/xfree86/common/xf86DGA.c
++++ b/hw/xfree86/common/xf86DGA.c
+@@ -120,8 +120,22 @@ DGAInit(
+
+ DGAScreenKey = &DGAScreenKeyIndex;
+
+- if(!(pScreenPriv = (DGAScreenPtr)xalloc(sizeof(DGAScreenRec))))
+- return FALSE;
++ pScreenPriv = DGA_GET_SCREEN_PRIV(pScreen);
++
++ if (!pScreenPriv)
++ {
++ if(!(pScreenPriv = (DGAScreenPtr)xalloc(sizeof(DGAScreenRec))))
++ return FALSE;
++ dixSetPrivate(&pScreen->devPrivates, DGAScreenKey, pScreenPriv);
++ pScreenPriv->CloseScreen = pScreen->CloseScreen;
++ pScreen->CloseScreen = DGACloseScreen;
++ pScreenPriv->DestroyColormap = pScreen->DestroyColormap;
++ pScreen->DestroyColormap = DGADestroyColormap;
++ pScreenPriv->InstallColormap = pScreen->InstallColormap;
++ pScreen->InstallColormap = DGAInstallColormap;
++ pScreenPriv->UninstallColormap = pScreen->UninstallColormap;
++ pScreen->UninstallColormap = DGAUninstallColormap;
++ }
+
+ pScreenPriv->pScrn = pScrn;
+ pScreenPriv->numModes = num;
+@@ -146,17 +160,6 @@ DGAInit(
+ modes[i].flags &= ~DGA_PIXMAP_AVAILABLE;
+ #endif
+
+- dixSetPrivate(&pScreen->devPrivates, DGAScreenKey, pScreenPriv);
+- pScreenPriv->CloseScreen = pScreen->CloseScreen;
+- pScreen->CloseScreen = DGACloseScreen;
+- pScreenPriv->DestroyColormap = pScreen->DestroyColormap;
+- pScreen->DestroyColormap = DGADestroyColormap;
+- pScreenPriv->InstallColormap = pScreen->InstallColormap;
+- pScreen->InstallColormap = DGAInstallColormap;
+- pScreenPriv->UninstallColormap = pScreen->UninstallColormap;
+- pScreen->UninstallColormap = DGAUninstallColormap;
+-
+-
+ return TRUE;
+ }
+
+diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
+index 899cea5..2627029 100644
+--- a/hw/xfree86/modes/xf86Crtc.c
++++ b/hw/xfree86/modes/xf86Crtc.c
+@@ -770,7 +770,7 @@ xf86CrtcScreenInit (ScreenPtr screen)
+ screen->CloseScreen = xf86CrtcCloseScreen;
+
+ #ifdef XFreeXDGA
+- xf86DiDGAInit(screen, 0);
++ _xf86_di_dga_init_internal(screen);
+ #endif
+ #ifdef RANDR_13_INTERFACE
+ return RANDR_INTERFACE_VERSION;
+@@ -1887,7 +1887,7 @@ xf86SetScrnInfoModes (ScrnInfoPtr scrn)
+ scrn->currentMode = scrn->modes;
+ #ifdef XFreeXDGA
+ if (scrn->pScreen)
+- xf86DiDGAReInit(scrn->pScreen);
++ _xf86_di_dga_reinit_internal(scrn->pScreen);
+ #endif
+ }
+
+diff --git a/hw/xfree86/modes/xf86Crtc.h b/hw/xfree86/modes/xf86Crtc.h
+index 0a596bc..4fe4150 100644
+--- a/hw/xfree86/modes/xf86Crtc.h
++++ b/hw/xfree86/modes/xf86Crtc.h
+@@ -807,6 +807,10 @@ xf86OutputGetEDID (xf86OutputPtr output, I2CBusPtr pDDCBus);
+ Bool
+ xf86DiDGAInit (ScreenPtr pScreen, unsigned long dga_address);
+
++/* this is the real function, used only internally */
++_X_INTERNAL Bool
++_xf86_di_dga_init_internal (ScreenPtr pScreen);
++
+ /**
+ * Re-initialize dga for this screen (as when the set of modes changes)
+ */
+@@ -814,6 +818,10 @@ xf86DiDGAInit (ScreenPtr pScreen, unsigned long dga_address);
+ Bool
+ xf86DiDGAReInit (ScreenPtr pScreen);
+
++/* This is the real function, used only internally */
++_X_INTERNAL Bool
++_xf86_di_dga_reinit_internal (ScreenPtr pScreen);
++
+ /*
+ * Set the subpixel order reported for the screen using
+ * the information from the outputs
+diff --git a/hw/xfree86/modes/xf86DiDGA.c b/hw/xfree86/modes/xf86DiDGA.c
+index 3992c09..bc59535 100644
+--- a/hw/xfree86/modes/xf86DiDGA.c
++++ b/hw/xfree86/modes/xf86DiDGA.c
+@@ -175,6 +175,12 @@ static DGAFunctionRec xf86_dga_funcs = {
+ _X_EXPORT Bool
+ xf86DiDGAReInit (ScreenPtr pScreen)
+ {
++ return TRUE;
++}
++
++Bool
++_xf86_di_dga_reinit_internal (ScreenPtr pScreen)
++{
+ ScrnInfoPtr scrn = xf86Screens[pScreen->myNum];
+ xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
+
+@@ -190,12 +196,15 @@ xf86DiDGAReInit (ScreenPtr pScreen)
+ _X_EXPORT Bool
+ xf86DiDGAInit (ScreenPtr pScreen, unsigned long dga_address)
+ {
++ return TRUE;
++}
++
++Bool
++_xf86_di_dga_init_internal (ScreenPtr pScreen)
++{
+ ScrnInfoPtr scrn = xf86Screens[pScreen->myNum];
+ xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
+
+- if (DGAAvailable(pScreen->myNum))
+- return TRUE;
+-
+ xf86_config->dga_flags = 0;
+ xf86_config->dga_address = 0;
+ xf86_config->dga_width = 0;
+--
+cgit v0.8.2
diff --git a/x11-base/xorg-server/xorg-server-1.6.4.ebuild b/x11-base/xorg-server/xorg-server-1.6.4.ebuild
index 1fd26e038ca9..44627fd223da 100644
--- a/x11-base/xorg-server/xorg-server-1.6.4.ebuild
+++ b/x11-base/xorg-server/xorg-server-1.6.4.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2009 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.6.4.ebuild,v 1.1 2009/09/28 08:18:37 remi Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-base/xorg-server/xorg-server-1.6.4.ebuild,v 1.2 2009/10/02 14:10:00 remi Exp $
EAPI="2"
@@ -104,6 +104,7 @@ EPATCH_SUFFIX="patch"
# )
PATCHES=(
+ "${FILESDIR}/1.6.4-re-fix-DGA-removal.patch"
"${UPSTREAMED_PATCHES[@]}"
)