summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'x11-base')
-rw-r--r--x11-base/xorg-server/Manifest47
-rw-r--r--x11-base/xorg-server/files/01-no-move-damage.patch33
-rw-r--r--x11-base/xorg-server/files/02-dont-backfill-bg-none.patch21
-rw-r--r--x11-base/xorg-server/files/03-tfp-damage.patch211
-rw-r--r--x11-base/xorg-server/files/04-mesa-copy-sub-buffer.patch361
-rw-r--r--x11-base/xorg-server/files/05-offscreen-pixmaps.patch55
-rw-r--r--x11-base/xorg-server/files/06-aiglx-happy-vt-switch.patch241
-rw-r--r--x11-base/xorg-server/files/1.1.1-dbe-render.diff183
-rw-r--r--x11-base/xorg-server/files/1.1.1-fix-xrandr-zoom-keys.patch186
-rw-r--r--x11-base/xorg-server/files/1.1.1-fix_acpi_tokenize.patch21
-rw-r--r--x11-base/xorg-server/files/1.1.1-fix_big_endian_glx.patch24
-rw-r--r--x11-base/xorg-server/files/1.1.1-fixdualhead.patch28
-rw-r--r--x11-base/xorg-server/files/1.1.1-sparc-includes.patch28
-rw-r--r--x11-base/xorg-server/files/1.1.1-sparc64-ati-lockups.patch18
-rw-r--r--x11-base/xorg-server/files/1.2.0-client-leak.patch11
-rw-r--r--x11-base/xorg-server/files/1.2.0-server-damage-version.patch38
-rw-r--r--x11-base/xorg-server/files/1.2.0-server-randr-version.patch13
-rw-r--r--x11-base/xorg-server/files/1.2.99.0-fix-sysconfdir-references.patch11
-rw-r--r--x11-base/xorg-server/files/1.3-0003-Fix-for-CVE-2007-6427-Xinput-extension-memory-corr.patch244
-rw-r--r--x11-base/xorg-server/files/1.3-0006-Fix-for-CVE-2007-5958-File-existence-disclosure.patch22
-rw-r--r--x11-base/xorg-server/files/1.3.0.0-fix-dual-head-screen-resolutions.patch49
-rw-r--r--x11-base/xorg-server/files/1.3.0.0-fix-randr-resizing.patch58
-rw-r--r--x11-base/xorg-server/files/1.3.0.0-fix-xephyr-amd64-segfault.patch45
-rw-r--r--x11-base/xorg-server/files/1.3.0.0-fix-xkb-openoffice-hangs.patch55
-rw-r--r--x11-base/xorg-server/files/1.3.0.0-ramdac.patch91
-rw-r--r--x11-base/xorg-server/files/1.4-0001-Fix-for-CVE-2007-5760-XFree86-Misc-extension-out-o.patch27
-rw-r--r--x11-base/xorg-server/files/1.4-0002-Fix-for-CVE-2007-6428-TOG-cup-extension-memory-cor.patch26
-rw-r--r--x11-base/xorg-server/files/1.4-0003-Fix-for-CVE-2007-6427-Xinput-extension-memory-corr.patch262
-rw-r--r--x11-base/xorg-server/files/1.4-0004-Fix-for-CVE-2007-6429-MIT-SHM-and-EVI-extensions-i.patch210
-rw-r--r--x11-base/xorg-server/files/1.4-0005-Fix-for-CVE-2008-0006-PCF-Font-parser-buffer-overf.patch30
-rw-r--r--x11-base/xorg-server/files/1.4-0006-Fix-for-CVE-2007-5958-File-existence-disclosure.patch34
-rw-r--r--x11-base/xorg-server/files/1.4-0007-CVE-2007-6429-Don-t-spuriously-reject-8bpp-shm-pix.patch85
-rw-r--r--x11-base/xorg-server/files/1.4-0008-CVE-2007-6429-Always-test-for-size-offset-wrapping.patch44
-rw-r--r--x11-base/xorg-server/files/1.4-0009-Don-t-break-grab-and-focus-state-for-a-window-when-r.patch40
-rw-r--r--x11-base/xorg-server/files/1.4-dont-hang-openoffice.patch71
-rw-r--r--x11-base/xorg-server/files/1.4-fix-kdrive-automake.patch12
-rw-r--r--x11-base/xorg-server/files/1.4.0.90-clean-generated-files.patch19
-rw-r--r--x11-base/xorg-server/files/xorg-conf-example.patch56
-rw-r--r--x11-base/xorg-server/files/xorg-server-1.1.1-install-libxf86config-headers.patch19
-rw-r--r--x11-base/xorg-server/files/xorg-server-1.2.0-loongson.patch51
-rw-r--r--x11-base/xorg-server/files/xorg-server-1.4-loongson.patch51
-rw-r--r--x11-base/xorg-server/files/xorg-x11-server-1.1.1-mesa-6.5.1.patch54
-rw-r--r--x11-base/xorg-server/files/xorg-xserver-1.2.0-xcmisc.diff38
-rw-r--r--x11-base/xorg-server/xorg-server-1.2.0-r1.ebuild530
-rw-r--r--x11-base/xorg-server/xorg-server-1.2.0-r2.ebuild531
-rw-r--r--x11-base/xorg-server/xorg-server-1.3.0.0-r5.ebuild (renamed from x11-base/xorg-server/xorg-server-1.3.0.0.ebuild)100
46 files changed, 1508 insertions, 2876 deletions
diff --git a/x11-base/xorg-server/Manifest b/x11-base/xorg-server/Manifest
index c72aa19..81fc38e 100644
--- a/x11-base/xorg-server/Manifest
+++ b/x11-base/xorg-server/Manifest
@@ -1,55 +1,48 @@
-AUX 01-no-move-damage.patch 1149 RMD160 f40d73e020376e1b9603dfa5ceb2fd0b48b45e31 SHA1 b8adef394d05a8769627d71b8da302f7fc3622d5 SHA256 9396f282e3d62927e86c4aa38b0d6245b83ca8e2ea48624f22c3c6d35751d997
-AUX 02-dont-backfill-bg-none.patch 581 RMD160 b38e5b7c945434e6b60748a5f853d7eb773f3427 SHA1 862c2435249d475dd7fdd229449a89b8e2f2207b SHA256 fe5e71b9b5cb7ea4b484e76015bf364e7e1e307c1d35ed3497dc30c9b75dc7ea
-AUX 03-tfp-damage.patch 5982 RMD160 7b044a9d151bdd573c80b93b7249888184fad782 SHA1 30c64426cb9db4e1fbabbd8bb8af92b3f7ed682d SHA256 dcc6fe0f6d4031b345e8f3a5a0f5bfbbf43db9ce972fb4ca7b58961fb178da59
-AUX 04-mesa-copy-sub-buffer.patch 11609 RMD160 d525afd68510bed628742c28d29eec7c47e0592b SHA1 c9a654962fa930b3cced371ba9737f140c46612e SHA256 daeef79d8bd3ae91f2906f7fa62f15892307bfb5f1650ef832bd490a2d6606f5
-AUX 05-offscreen-pixmaps.patch 1548 RMD160 e0f87c88379861340524847a57bf72119256a610 SHA1 c57a9aafec35b8158098751028a76a2979379625 SHA256 73be09f2f3756021bd6261fc05733eb39084c2190e7ca107bfa01c7d447a34a6
-AUX 06-aiglx-happy-vt-switch.patch 6043 RMD160 fce467afaa3988b511b9796af164f36172bf6b7b SHA1 ad8eaa9c48699501145a15cc22b98e88a2c4a0f2 SHA256 112f1cccc0f3e1af1d76109e845c0e89462b6e95c2fd1cc80ca9370806a617dc
-AUX 1.1.1-dbe-render.diff 5323 RMD160 cbddae4efaa558f3c4ea0b256bd14cc005251493 SHA1 67cfe51fdf314db3cf712cb180bdc7635788ffa3 SHA256 0c0e0c6c8e7f1928d595c90cccfa2dacdcdf52656271b2fea52f202597e5d7ab
-AUX 1.1.1-fix-xrandr-zoom-keys.patch 6332 RMD160 cec1b86e0a6ea88e1e65543046fd1b91ab112b04 SHA1 ebaea3bdff2564d898fe0f1bcacdafcbcfe4b9f6 SHA256 b7bb87d2170f2dd369a8b3a496dae0e93792419ccc7c78449e9affc8f07650ac
-AUX 1.1.1-fix_acpi_tokenize.patch 737 RMD160 23e67ce9e8122c163b9baa78ee517abd382e46a9 SHA1 4c0a41a8dc060442fdfbc35f05e58134bd5c2eb0 SHA256 f3ed429b3b5c36f0efa06c11ddbd1dfbf929f031ec6365c5f47a75f7a182367b
-AUX 1.1.1-fix_big_endian_glx.patch 655 RMD160 aa6377a33c015af994053add2c5571a13bd0658a SHA1 9133c745ebe3b1dd39518b245c4836c9a53f40d6 SHA256 2b9f53f31fe9f4e36db01fcbf74745fddfa70a28e41614da608c53af81993dbf
-AUX 1.1.1-fixdualhead.patch 625 RMD160 2b91d2feb1605c7fb7731e888f391e07ac6d6c67 SHA1 364b7d6ec0bb55547d81ff3ccbd84b41f5b537dd SHA256 e16f498897e470dbefb6ac38f73393b091b9bdd2f306f0441502eaaaa0d3bd61
-AUX 1.1.1-sparc-includes.patch 1216 RMD160 fcfe14696821581f316413564c6a3f787dae3937 SHA1 55270574dbbc95cac7d8102a7a855e5c8800439f SHA256 1b80656cf450f0df3d25cda3e57909ff71834ad489d6033f9d16e2d6d76e34d4
-AUX 1.1.1-sparc64-ati-lockups.patch 652 RMD160 7d642aa1c0153a4c48b8d2338b1afafdbc130852 SHA1 31f3b422d4dc621a7638cf4f9b388ce6a5cccec4 SHA256 0db8886c157b253449057865c938b63aa8a4f11d746e5df4ed2a12b75d718c51
-AUX 1.2.0-client-leak.patch 363 RMD160 788a7468df4305319ee3a05137ce0b90e76b982a SHA1 67ee249858947cea7fcd9a08db3ff3e81cd0036e SHA256 5969bf63e88ab4030c6913237379b76fb55e9e1f249a058eb17487a4b7103b87
AUX 1.2.0-fix-amd-cpu-detection.patch 1715 RMD160 7290fd57dc2a9e2dd8edbe08da5074a30815486c SHA1 b749e5ac35fad295fd7a1f13cfee2e42a2a06035 SHA256 0126a880eb5f21eb8dbbd119a425e7412b37689e1321c2b9ff63c5dc8de47f6a
AUX 1.2.0-properly-free-device-devprivates-memory-leak-fix.patch 1199 RMD160 c55891ff6797d1b161524cd5c3e9a4382ec0bcad SHA1 98e07d5a542bc1e990921234f8f6399120ae5a63 SHA256 ba60d2fbb7944da45344f5ffc1431bf0e812ab861f4455522592ecb0c475138c
-AUX 1.2.0-server-damage-version.patch 1322 RMD160 25ba5ce01bc338d3a906ec959a0f1ad3303c5dd2 SHA1 129565a0151d42b85c43f273da507396111bdc9b SHA256 28a049c39e7995f7768eed34993f12252da416093e2f919c1ae84cb2dfee9f09
-AUX 1.2.0-server-randr-version.patch 444 RMD160 05a4c38c141bf5dddd1f94eb61dba62b79f17658 SHA1 5faef7578c55439433b10731c87d82536db7232b SHA256 226560c2d5c0c76987e2e315c2eef805e96ee9189aa3394148968fa13392f17e
AUX 1.2.0-typo-fix.patch 1321 RMD160 237c072869df15afbc2b35dfd8cc6e5143cb59f9 SHA1 3a22190fde5487b84c0d9a8862421f102bf41c63 SHA256 9dbf526f9cb3bf2596ffdc1795eda16181384db33562daf4fd1ddb359b5a77bd
AUX 1.2.0-zero-out-client-devprivates-on-allocation.patch 1284 RMD160 28bdf0c7b868736a788da69b8f4c6b1e0a88f425 SHA1 0cfd5dcb57c42197e39e5469032833ea932c0b4f SHA256 55cda19958996c484f4713ed022d6d9e80a4ab7e2f2f59ee26019d291a433a34
-AUX 1.2.99.0-fix-sysconfdir-references.patch 421 RMD160 4af58784b1af8c02ebe395530da3e0a3f619c9a9 SHA1 3c836428f18aa6e42a8ab243c59c9693af57100e SHA256 216905a6ac45ae01cbec53c5a8a5ebd53e9c8f647e91d57d926f9109a73cef24
+AUX 1.3-0003-Fix-for-CVE-2007-6427-Xinput-extension-memory-corr.patch 7656 RMD160 2989af909eeec8c2e04126e5eaf34ac5f2b5449d SHA1 1dfe79a470b64f9981982216a3ec52e7b46dddff SHA256 09eeefa3b891fc7d860fff1dce485cc73278eee07a8494751b75df6fbdd66482
+AUX 1.3-0006-Fix-for-CVE-2007-5958-File-existence-disclosure.patch 622 RMD160 e3d8a3f8ad55bf4c9da7736019255d00ecd07836 SHA1 3da82b9a81995b31ad84ccb376a619953837edb5 SHA256 ca0a6dca401ac9dd17d87866dc0d70ca02d8f9a18cfeafe7998af56b75148162
AUX 1.3-alpha-build-fix.patch 1151 RMD160 b7eda6096e95835d998731c97aa70f13ec0c771c SHA1 210ef43db8ad8080db21a86c31f7744dbdb7e439 SHA256 4242b7679c24005c3a06ec1b37d98ce6b339724067876cf43ed05429f8f07186
+AUX 1.3.0.0-fix-dual-head-screen-resolutions.patch 1542 RMD160 b09e29247cc11e94a028596bebd9ee8237cbb490 SHA1 eb416bed3c6eb8323a6305ca0576ca94b667205f SHA256 c944c684fe6cfb115f1c4ce1fb5b291ca82d6f44ce9a5381d711414c72c1ed70
+AUX 1.3.0.0-fix-randr-resizing.patch 1986 RMD160 7fe971a41e5659876596b921d33d316c7a22f6fa SHA1 6f8c41b3f25dbb58a050929d6af03778d0b15c26 SHA256 f9a489027004c9e62a76b431344a6f5936989b8161dc5a51018070e3d59e015e
+AUX 1.3.0.0-fix-xephyr-amd64-segfault.patch 1382 RMD160 03595cb965623383f8429560c551e13f882bf1b9 SHA1 693e64678100480135c3853590481b20342e9eae SHA256 32cd35d353ba2568d98125328574a0d2c021637a367dd3de616e02a2f8fdd4b9
+AUX 1.3.0.0-fix-xkb-openoffice-hangs.patch 1671 RMD160 6fcee07ea40289b40c43bce5bee88b282ae536f4 SHA1 34535d5dc17cf96a4605a82105ec41e27c97c94c SHA256 e9cbb4c9c58689116d09827a5a50f38a7e24e735277dd595d3ffa981c24e6c7d
+AUX 1.3.0.0-ramdac.patch 2736 RMD160 6a57be8c314989c110f1dd82563fa730512b6a5f SHA1 5da7c2caecd8c47e77d10c3967bcc22c481087fe SHA256 29dd3f3de269b1d9d24628dab293246f2deda4e8bd4018f20adf74584d2ca92f
AUX 1.3.0.0-use-proc-instead-of-sys.patch 686 RMD160 26e9bee2d1be197fa456efdd5be16a8087b947cb SHA1 44112c3643d026f318850f2b763f3ca3952bb686 SHA256 12a737b236e90f2ca2a1cdb86ac87caec4a5bc38441dd72bb3628ef950e53f54
AUX 1.3.0.0-xephyr_crash_at_exit.patch 1039 RMD160 595728d2bccd4c254e4ee8074da1fb8dde8f1e2e SHA1 080a7dbd301851b26b2d94c051a4a80b4998c814 SHA256 ed552e77d763b12b7d495ccf3966b4e6982dbf94b9ee508e07a708904a97661d
+AUX 1.4-0001-Fix-for-CVE-2007-5760-XFree86-Misc-extension-out-o.patch 980 RMD160 0e7739e5aa846db9485a2e9c1a19a9b43770995a SHA1 5ffb6b3bcf5e40d3d51c466bf2c077673341793d SHA256 d8f41a4df64818fdc97db3f194e2fece32915f04b824efb96f577cdf31372a64
+AUX 1.4-0002-Fix-for-CVE-2007-6428-TOG-cup-extension-memory-cor.patch 747 RMD160 3e9c54bd0ca801a94540c069a09896538d79697e SHA1 894bce69645b8353e0386b26f594e0e3ccda7c9c SHA256 4fec6a5b20c35ac7a8a34bf9851fc760bedc27e3e83b9de57f0ac6b3c2766e9e
+AUX 1.4-0003-Fix-for-CVE-2007-6427-Xinput-extension-memory-corr.patch 7342 RMD160 cecc6e6cf0dfbdc1aa74149a7df307961fe77250 SHA1 e24460f9477072716083e6483deda46c0034ad8c SHA256 81538f7c1ebb3e002a5777e91aeff4befa51b5e659fcd91c9f23c68d62121336
+AUX 1.4-0004-Fix-for-CVE-2007-6429-MIT-SHM-and-EVI-extensions-i.patch 6830 RMD160 d5573b0af87a1b4fbea7e63fb1a161bfa56b1103 SHA1 8634b48c7a655a3ccd61fda78deaa54090c82ce3 SHA256 7f38a704931f515a68a460abccfd0fed15d51915cbef9f8ed9d1e0ccdd2cf14d
+AUX 1.4-0005-Fix-for-CVE-2008-0006-PCF-Font-parser-buffer-overf.patch 912 RMD160 c931db35d87a94a89db7fdfd9826565b94b8803f SHA1 e258c3f9c03fc92473daf8ae18ee0d0fa47e26ac SHA256 39ec99f6643b73951a5a5ed14c54c227885b7411da76ecec3c923fd8189c6364
+AUX 1.4-0006-Fix-for-CVE-2007-5958-File-existence-disclosure.patch 870 RMD160 adbc9a110c0e7aef884f5ea9c61148688ac441e5 SHA1 a9c8e1bb513073304d465ad0079c1dd452d053d6 SHA256 d1545329c64f492acc9935df68b31d513d3f1ddcfc5f821224a33761cf4b5c81
+AUX 1.4-0007-CVE-2007-6429-Don-t-spuriously-reject-8bpp-shm-pix.patch 2594 RMD160 0197f2ef4e2734e3f82d94fb9aefd6b77b287c8a SHA1 d2d3666ac30bc5b541b8bf30fe5de157dbb79c9a SHA256 69c8eb09cbf978bbdaef1ae9537778bcf40c7c67bbfeab0b5753e5538147a4ce
+AUX 1.4-0008-CVE-2007-6429-Always-test-for-size-offset-wrapping.patch 1332 RMD160 0dc6a97eb653306d4f454707f274644d8564fbf2 SHA1 295bd873f26d01094b458449a99ffa708b5cc45d SHA256 f6c5949c3843f2cda8eb19ec2cd252ee53a3868ab0bc886272b5e95db81d39c2
+AUX 1.4-0009-Don-t-break-grab-and-focus-state-for-a-window-when-r.patch 1353 RMD160 31bc8d452d1959f80580555489007fcc77d8780b SHA1 1a1c33a8097e301623d6ec7abebb23b3ac87c570 SHA256 2641e629e83cfa536cc7e765fdcc79bae217deddf892349bbde17a4fb6c76059
AUX 1.4-document-new-font-catalogs.patch 4540 RMD160 92e450666e840fefb8604dc664ce0276e01c28d7 SHA1 6bf78fde99494b047658836adfa35b5d75224214 SHA256 8a73f0a01235c6cb1acefa09a726f68089fc10c1d68ffdf2e1b57091caafbbfd
+AUX 1.4-dont-hang-openoffice.patch 2235 RMD160 cc208574ad07d806f71fc6be79796594601c0894 SHA1 f82487057211b699bdca0874f5ec9bbec9ccdf40 SHA256 bbd05d1ff0e7f97b7ec11c7ebdd32cdcf8984b69d1dc87b46cc66133895e2644
AUX 1.4-fix-dmx-build.patch 509 RMD160 699daf15f9ff4878a1583acaf5bc7c01afb5904c SHA1 0b627c0d98e50f0d29dacc3fa7e8e9d8b1ad3faf SHA256 4a01681656d09780dd15696804ce8210a4a5324bf63c33a7692e8971fbeb1843
AUX 1.4-fix-dmx-link.patch 363 RMD160 429ce2827b9a5047ea7ad5ca4ec93740e85099af SHA1 41f686ef462e179f6c7e73a1babb7c0f2312d337 SHA256 50fbbe7391a354de2fa321944b921193e1097eaed4d775e343687f4a1a33a002
+AUX 1.4-fix-kdrive-automake.patch 382 RMD160 78062824a416a2b452866d50592cc71bf34b13be SHA1 f21a54aed8eae1e718f2f0c262c37c36ccccd152 SHA256 126b67332c902802da506970acf253030004e4f7e17b3b6d2e68dd6b7bb0db81
AUX 1.4-fix-xephyr-link.patch 850 RMD160 574c9e4b38ceaf5964bfcd9020842b027f22cac1 SHA1 352c55be4b91b29c84b192d806a90834d887fc22 SHA256 89761f041d694db9891a5a72ff0ee1066d08c2d19a5cec448482fb2b427d2c10
AUX 1.4-fix-xprint-build.patch 413 RMD160 79275b83b2a41bd4a7488011a9d2b93d6ec0400f SHA1 e2611665d555d5dc93ede0ab4beb9acb16b6b5aa SHA256 183a6c7d6f506dcd637a10057421811901035ed802c27cdd6bc6869924337d40
AUX 1.4-fix-xprint-link.patch 588 RMD160 4a5ec1cd69047a94917c0bf29f1f557ec05059c6 SHA1 67f057700577562b6260d07a8e82ab2dad117a4c SHA256 f6f7a67c93dce63a6f16ccb2182fbd861c7627d071225251df4a733412eda7f0
AUX 1.4-fpic-libxf86config.patch 374 RMD160 614d69f83b7f4d4999efa906f2059b7f287e22c1 SHA1 1f113823c03f69e79b10965908945df629b73474 SHA256 017e7ba2954dcc2281f8626977d47fd8bd037f05e680e51b8e4ae7316455a237
AUX 1.4-ia64.patch 1872 RMD160 6bc82c87140ee81150c34df486b5b4d9620dde9c SHA1 b43aadafd7ce144790cf9eccf8a9840baf3205bd SHA256 950714ce230791ce9d54e21044961d9435e4eb774f82e5047f9adcd5fd4661ec
+AUX 1.4.0.90-clean-generated-files.patch 595 RMD160 e4044e8c1f1b92db38a7e53b77109ff80fb4d22a SHA1 9eaf182c435946596462106547e9d52f819cb397 SHA256 8a57ddae701218b425bbe59c2d387c81d65af2d29c67ea9f8550c8201841f9a7
AUX avoid-crash-on-minimized-xv-window.patch 1970 RMD160 a41e37359a05b4dc4c796e569b3f00e9dcb210d4 SHA1 54447e96f4f10e2993e0e675091f6026e63b56b6 SHA256 6e1cbe4f588674d70d3564962a79b4b7d271162040f9a2390f29f03cfeac87bd
AUX use-composite-for-unequal-depths.patch 3528 RMD160 be7b5b07e8c890d596c5e2c49152f7df833487ea SHA1 1ade1846c1549c5a7eb3775d86973eb87bdb48ff SHA256 b38c079aaac0d8168cd4b45d2c1b8020338918c96855989dce89324c800622c0
-AUX xorg-conf-example.patch 1924 RMD160 04325d6624ad01ee69702b069be3665b5e96b647 SHA1 2d7b8328c695dc179e4f6e1d0e4609bb449159ee SHA256 ceb0dd0ccc6b02a026b599f1c838fc0a0c3f789f58407e85ee783ddaf9989350
-AUX xorg-server-1.1.1-install-libxf86config-headers.patch 422 RMD160 297df8f5478195a8e0c0589436c9dad457c91539 SHA1 435f5d3c410a7e17b31c27c44a1f36145db626ea SHA256 85de5a76afb5a6c6ab0ac0d0f7d7decad99035cbbc04362e69a1627f04d86269
-AUX xorg-server-1.2.0-loongson.patch 1931 RMD160 cc84def06fdfa7099342411baa037529166f56c0 SHA1 3596b2abaab7f58e78722988f9e4f1ca97bd7cd3 SHA256 e77dad77f9c36053ddc52f2aa6af7fc6c65b24a9d8456ac346382ca2a18b6d90
AUX xorg-server-1.3.0.0-loongson.patch 1931 RMD160 cc84def06fdfa7099342411baa037529166f56c0 SHA1 3596b2abaab7f58e78722988f9e4f1ca97bd7cd3 SHA256 e77dad77f9c36053ddc52f2aa6af7fc6c65b24a9d8456ac346382ca2a18b6d90
-AUX xorg-server-1.4-loongson.patch 2039 RMD160 9ae834b71e29de0fd9698843833dcf967a4385f6 SHA1 828246c5fdd34f6018c3fab8654ce9e095142608 SHA256 c875ede2906969d0c6cb2f9b5548f9002a93f25f174d82e013c8310697265cf5
AUX xorg-server-sam225bw-quirks.patch 380 RMD160 c4f7729a9f042e881feafcb5b0f97b05c80ab667 SHA1 20bae2bbe682b23feec54fdca23dde3598bab423 SHA256 7ad46b36407256b426a22b78f1646ffbc4f0197af49b068fdb5e56455cae2517
AUX xorg-x11-server-1.0.1-fpic-libxf86config.patch 332 RMD160 3981b8fbb19142c7944f59237cf57394337ec952 SHA1 594aa3d30b51f6789d848f819c13737baff442d1 SHA256 65cc7942a8c7357c138c9c19c39a835720b13348e96a82c8925ccda82c1bcfb6
-AUX xorg-x11-server-1.1.1-mesa-6.5.1.patch 1684 RMD160 8a6142a781d0ee626b4569f2324c6884234c7856 SHA1 287d09b104826c0ac852d401457c230fa96f7296 SHA256 8428c09c0bd11e7db9fbf0807754312cfb7c2659b2c203f8ad9741fc35c356c0
-AUX xorg-xserver-1.2.0-xcmisc.diff 981 RMD160 66afbb0d9c6017795c8a7537bd1d8e6000ba67e9 SHA1 3557cbe23be6912106ed7220d95301311fb93a26 SHA256 cc98577740689020020794c322069a5e2520bca8c0998efdab149994773ebba5
AUX xprint.init 598 RMD160 85de6a023912d8ac40cba4f32b5559655e0e281e SHA1 1590a29e11f813bb1353b4cc815708e97bfbb96b SHA256 9474c19d125d9534b93c038cba7c4bdc7c45bf3ed51279ff2e130fe031a15c13
DIST MesaLib-6.5.2.tar.bz2 3295166 RMD160 9a92d69110c066ae6734bcaafb78f222ac2df6d3 SHA1 ba860bb6ee57c02202342dfd5927464a068ea18f SHA256 137f50a30461d51eb9af5aac737bc788d536354cf47b26129b97bde6e41fb85f
DIST MesaLib-7.0.1.tar.bz2 3343538 RMD160 b44fd8ebffd17aa72c3b6cca1c2924e66787aa78 SHA1 deb1002cf377ba8bd9407bd3cf573f8c8be31671 SHA256 5190ffac157882d9129d31f262339512f4a45dcf95ccdad213760a7d54d82de7
-DIST xorg-server-1.2.0.tar.bz2 6014596 RMD160 0bbc5ccb5cbbe7627b4f09f17848b188e8be2a50 SHA1 85fa0e8fa7d6bea6f1a73c66a57488ea68dffa17 SHA256 e3e56b35ee13098f4ee79948beb20bfc9a06d1a7a35fb906405ff1531b92bb85
DIST xorg-server-1.3.0.0.tar.bz2 5968263 RMD160 1a4fecd73aed0d5adabe84066c24ce69dc2c2dc1 SHA1 6f9645fe70da5b6a121f3e8fa6c2fc1e4307390c SHA256 93c656f142f37607c15372dd24c5de9eab82cd79c5d60449174a928d345c2975
DIST xorg-server-1.4.tar.bz2 6179392 RMD160 74a274c880a9508be26b76acdb504a8e88b63a46 SHA1 3aa6327f4def4d33ce2a8d6d7587295db231ab6d SHA256 51b142df328d427143705371f139a08ff3bcd6efe0eab91f4178ca4017c0ebc2
-EBUILD xorg-server-1.2.0-r1.ebuild 16442 RMD160 ac4717116f699a89feb7070b57123cfc7bc2dc07 SHA1 8996dccbdbfe6c1a54122bf8ffc3a22886646c5b SHA256 becbdd3224bc6acc1cd1bf7933000d2a1f99042cb59ab074419b8057ee7f4e13
-EBUILD xorg-server-1.2.0-r2.ebuild 16479 RMD160 3274a5a2bcbb4c650642a692a6b0eb08707c2515 SHA1 2b0b7ce45032e44f6e4bdb699d9ced9839173ca0 SHA256 74009fe505532f613e8c3d609af91c1837822e9b4c1ac114a2c9ca9cf94ff536
-EBUILD xorg-server-1.3.0.0.ebuild 16332 RMD160 96f7260adacacec77d9eff7a1459c87a9b9d5ae8 SHA1 c10e6ea1dcab9e7a2f0231c4372aa065d1ec9fea SHA256 582a8abbfcd8962944b5a751a0ce385add7d33354e905b1ef52e6b55d747c7dc
+EBUILD xorg-server-1.3.0.0-r5.ebuild 18071 RMD160 d89519122beabdbfe5427d0f7569e73d0b5a4e59 SHA1 de021e1ef196fe9d059d2f92fa2fefebbe616b0c SHA256 34c6127edd2ae61f787c738f3a088f82fd68e0c2e56f1f86e0d60ac4c5cb7606
EBUILD xorg-server-1.4-r2.ebuild 17876 RMD160 a83957b141d65c928d1cde23995f3e59f3591b1d SHA1 2e2ac24296c561be801bdba68e76e4c3dcf5a00d SHA256 adf50c200ccf2755ff6ac04a64ac946b75c0bf7a18fd8fd42719d2676450fa06
MISC ChangeLog 46548 RMD160 fd66dad1dc5b8181e294f00b2d867e273f375fed SHA1 c1c264afd91f7d13bd8c4cd5d8d03cc9327e1e14 SHA256 ae56c39d52f287b2e1e0c5be5bffe5207fbc60e0cbf906a15f50f7f849bd69d7
MISC metadata.xml 156 RMD160 c1274bdccf57603d580de0075ba07a35b7509560 SHA1 6f78f604e3d079d39189b40aaaa1ddb06182ad91 SHA256 5101ab0d4cc8c7125eea733c44e86962769bd77acaf53b69223b9cadcdd29055
diff --git a/x11-base/xorg-server/files/01-no-move-damage.patch b/x11-base/xorg-server/files/01-no-move-damage.patch
deleted file mode 100644
index 4278043..0000000
--- a/x11-base/xorg-server/files/01-no-move-damage.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-Disable damage notifications on move for manually redirected windows.
-The automatic compositor needs damage notification on move, but a
-compositing manager doesn't.
-
---- ./composite/compwindow.c.spiffiffity 2006-03-29 12:51:53.000000000 -0500
-+++ ./composite/compwindow.c 2006-04-13 23:18:42.000000000 -0400
-@@ -571,12 +571,15 @@
- }
- else
- {
-+ CompWindowPtr cw = GetCompWindow (pWin);
-+
- ptOldOrg.x -= dx;
- ptOldOrg.y -= dy;
- REGION_TRANSLATE (prgnSrc, prgnSrc,
- pWin->drawable.x - ptOldOrg.x,
- pWin->drawable.y - ptOldOrg.y);
-- DamageDamageRegion (&pWin->drawable, prgnSrc);
-+ if (pWin->redirectDraw && cw->update == CompositeRedirectAutomatic)
-+ DamageDamageRegion (&pWin->drawable, prgnSrc);
- }
- cs->CopyWindow = pScreen->CopyWindow;
- pScreen->CopyWindow = compCopyWindow;
-@@ -655,7 +658,8 @@
- /*
- * Report that as damaged so it will be redrawn
- */
-- DamageDamageRegion (&pWin->drawable, &damage);
-+ if (cw->update == CompositeRedirectAutomatic)
-+ DamageDamageRegion (&pWin->drawable, &damage);
- REGION_UNINIT (pScreen, &damage);
- /*
- * Save the new border clip region
diff --git a/x11-base/xorg-server/files/02-dont-backfill-bg-none.patch b/x11-base/xorg-server/files/02-dont-backfill-bg-none.patch
deleted file mode 100644
index 9a5cacd..0000000
--- a/x11-base/xorg-server/files/02-dont-backfill-bg-none.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Disable backfilling of windows created with bg=none, which otherwise
-would force a framebuffer readback.
-
---- ./composite/compalloc.c.spiffiffity 2006-03-13 16:59:55.000000000 -0500
-+++ ./composite/compalloc.c 2006-04-12 16:37:50.000000000 -0400
-@@ -478,6 +478,7 @@
- * Copy bits from the parent into the new pixmap so that it will
- * have "reasonable" contents in case for background None areas.
- */
-+#if 0
- if (pGC)
- {
- XID val = IncludeInferiors;
-@@ -492,6 +493,7 @@
- w, h, 0, 0);
- FreeScratchGC (pGC);
- }
-+#endif
- return pPixmap;
- }
-
diff --git a/x11-base/xorg-server/files/03-tfp-damage.patch b/x11-base/xorg-server/files/03-tfp-damage.patch
deleted file mode 100644
index 942d44e..0000000
--- a/x11-base/xorg-server/files/03-tfp-damage.patch
+++ /dev/null
@@ -1,211 +0,0 @@
---- ./GL/glx/glxdrawable.h.tfp-damage 2006-03-11 19:11:33.000000000 -0500
-+++ ./GL/glx/glxdrawable.h 2006-06-20 20:33:53.000000000 -0400
-@@ -41,6 +41,8 @@
- **
- */
-
-+#include <damage.h>
-+
- typedef struct {
-
- DrawablePtr pDraw;
-@@ -49,7 +51,7 @@
- ScreenPtr pScreen;
- Bool idExists;
- int refcnt;
--
-+ DamagePtr pDamage;
- } __GLXpixmap;
-
- struct __GLXdrawable {
---- ./GL/glx/glxcmds.c.tfp-damage 2006-05-09 13:44:26.000000000 -0400
-+++ ./GL/glx/glxcmds.c 2006-06-20 20:33:53.000000000 -0400
-@@ -1271,6 +1271,7 @@
- pGlxPixmap->pGlxScreen = pGlxScreen;
- pGlxPixmap->pScreen = pScreen;
- pGlxPixmap->idExists = True;
-+ pGlxPixmap->pDamage = NULL;
- pGlxPixmap->refcnt = 0;
-
- pGlxPixmap->modes = modes;
---- ./GL/glx/glxdri.c.tfp-damage 2006-04-02 21:25:21.000000000 -0400
-+++ ./GL/glx/glxdri.c 2006-06-21 00:39:40.000000000 -0400
-@@ -296,24 +296,18 @@
- }
-
- static void
--glxFillAlphaChannel (PixmapPtr pixmap)
-+glxFillAlphaChannel (PixmapPtr pixmap, int x, int y, int width, int height)
- {
-- int i, j;
-- CARD32 *pixels = (CARD32 *)pixmap->devPrivate.ptr;
-+ int i;
-+ CARD32 *p, *end, *pixels = (CARD32 *)pixmap->devPrivate.ptr;
- CARD32 rowstride = pixmap->devKind / 4;
-- CARD32 x, y;
--
-- x = pixmap->drawable.x;
-- y = pixmap->drawable.y;
-
-- for (i = y; i < pixmap->drawable.height + y; ++i)
-+ for (i = y; i < y + height; i++)
- {
-- for (j = x; j < pixmap->drawable.width + x; ++j)
-- {
-- int index = i * rowstride + j;
--
-- pixels[index] |= 0xFF000000;
-- }
-+ p = &pixels[i * rowstride + x];
-+ end = p + width;
-+ while (p < end)
-+ *p++ |= 0xFF000000;
- }
- }
-
-@@ -326,7 +320,6 @@
- * - No fbconfig handling for TEXTURE_TARGET
- * - No fbconfig exposure of Y inversion state
- * - No GenerateMipmapEXT support (due to no FBO support)
-- * - No damage tracking between binds
- * - No support for anything but 16bpp and 32bpp-sparse pixmaps
- */
-
-@@ -335,38 +328,97 @@
- int buffer,
- __GLXpixmap *glxPixmap)
- {
-+ RegionPtr pRegion;
- PixmapPtr pixmap;
- int bpp;
-- Bool npot;
-+ GLenum target, format, type;
-
- pixmap = (PixmapPtr) glxPixmap->pDraw;
-- bpp = pixmap->drawable.depth >= 24 ? 4 : 2; /* XXX 24bpp packed, 8, etc */
--
-+ if (!glxPixmap->pDamage) {
-+ glxPixmap->pDamage = DamageCreate(NULL, NULL, DamageReportNone,
-+ TRUE, glxPixmap->pScreen, NULL);
-+ if (!glxPixmap->pDamage)
-+ return BadAlloc;
-+
-+ DamageRegister ((DrawablePtr) pixmap, glxPixmap->pDamage);
-+ pRegion = NULL;
-+ } else {
-+ pRegion = DamageRegion(glxPixmap->pDamage);
-+ if (REGION_NIL(pRegion))
-+ return Success;
-+ }
-+
-+ /* XXX 24bpp packed, 8, etc */
-+ if (pixmap->drawable.depth >= 24) {
-+ bpp = 4;
-+ format = GL_BGRA;
-+ type = GL_UNSIGNED_BYTE;
-+ } else {
-+ bpp = 2;
-+ format = GL_RGB;
-+ type = GL_UNSIGNED_SHORT_5_6_5;
-+ }
-+
-+ target = GL_TEXTURE_RECTANGLE_ARB;
-+
- CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH,
-- pixmap->devKind / bpp) );
-- CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS,
-- pixmap->drawable.y) );
-- CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS,
-- pixmap->drawable.x) );
--
-- if (pixmap->drawable.depth == 24)
-- glxFillAlphaChannel(pixmap);
--
-- npot = !(glxCountBits(pixmap->drawable.width) == 1 &&
-- glxCountBits(pixmap->drawable.height) == 1) /* ||
-- strstr(CALL_GetString(GL_EXTENSIONS,
-- "GL_ARB_texture_non_power_of_two")) */ ;
--
-- CALL_TexImage2D( GET_DISPATCH(),
-- ( npot ? GL_TEXTURE_RECTANGLE_ARB : GL_TEXTURE_2D,
-- 0,
-- bpp == 4 ? 4 : 3,
-- pixmap->drawable.width,
-- pixmap->drawable.height,
-- 0,
-- bpp == 4 ? GL_BGRA : GL_RGB,
-- bpp == 4 ? GL_UNSIGNED_BYTE : GL_UNSIGNED_SHORT_5_6_5,
-- pixmap->devPrivate.ptr ) );
-+ pixmap->devKind / bpp) );
-+ if (pRegion == NULL)
-+ {
-+ if (pixmap->drawable.depth == 24)
-+ glxFillAlphaChannel(pixmap,
-+ pixmap->drawable.x,
-+ pixmap->drawable.y,
-+ pixmap->drawable.width,
-+ pixmap->drawable.height);
-+
-+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS,
-+ pixmap->drawable.x) );
-+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS,
-+ pixmap->drawable.y) );
-+
-+ CALL_TexImage2D( GET_DISPATCH(),
-+ (target,
-+ 0,
-+ bpp == 4 ? 4 : 3,
-+ pixmap->drawable.width,
-+ pixmap->drawable.height,
-+ 0,
-+ format,
-+ type,
-+ pixmap->devPrivate.ptr) );
-+ } else {
-+ int i, numRects;
-+ BoxPtr p;
-+
-+ numRects = REGION_NUM_RECTS (pRegion);
-+ p = REGION_RECTS (pRegion);
-+ for (i = 0; i < numRects; i++)
-+ {
-+ if (pixmap->drawable.depth == 24)
-+ glxFillAlphaChannel(pixmap,
-+ pixmap->drawable.x + p[i].x1,
-+ pixmap->drawable.y + p[i].y1,
-+ p[i].x2 - p[i].x1,
-+ p[i].y2 - p[i].y1);
-+
-+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS,
-+ pixmap->drawable.x + p[i].x1) );
-+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS,
-+ pixmap->drawable.y + p[i].y1) );
-+
-+ CALL_TexSubImage2D( GET_DISPATCH(),
-+ (target,
-+ 0,
-+ p[i].x1, p[i].y1,
-+ p[i].x2 - p[i].x1, p[i].y2 - p[i].y1,
-+ format,
-+ type,
-+ pixmap->devPrivate.ptr) );
-+ }
-+ }
-+
-+ DamageEmpty(glxPixmap->pDamage);
-
- return Success;
- }
---- ./GL/glx/glxext.c.tfp-damage 2006-03-16 20:47:25.000000000 -0500
-+++ ./GL/glx/glxext.c 2006-06-20 20:33:53.000000000 -0400
-@@ -141,6 +141,10 @@
-
- pGlxPixmap->idExists = False;
- if (!pGlxPixmap->refcnt) {
-+ if (pGlxPixmap->pDamage) {
-+ DamageUnregister (pGlxPixmap->pDraw, pGlxPixmap->pDamage);
-+ DamageDestroy(pGlxPixmap->pDamage);
-+ }
- /*
- ** The DestroyPixmap routine should decrement the refcount and free
- ** only if it's zero.
diff --git a/x11-base/xorg-server/files/04-mesa-copy-sub-buffer.patch b/x11-base/xorg-server/files/04-mesa-copy-sub-buffer.patch
deleted file mode 100644
index 2b62dad..0000000
--- a/x11-base/xorg-server/files/04-mesa-copy-sub-buffer.patch
+++ /dev/null
@@ -1,361 +0,0 @@
---- ./GL/glx/glxdrawable.h.mesa-copy-sub-buffer 2006-07-06 21:40:41.000000000 -0400
-+++ ./GL/glx/glxdrawable.h 2006-07-06 21:56:33.000000000 -0400
-@@ -58,6 +58,8 @@
- void (*destroy)(__GLXdrawable *private);
- GLboolean (*resize)(__GLXdrawable *private);
- GLboolean (*swapBuffers)(__GLXdrawable *);
-+ void (*copySubBuffer)(__GLXdrawable *drawable,
-+ int x, int y, int w, int h);
-
- /*
- ** list of drawable private structs
---- ./GL/glx/glxcmds.c.mesa-copy-sub-buffer 2006-07-06 21:40:41.000000000 -0400
-+++ ./GL/glx/glxcmds.c 2006-07-06 22:30:01.000000000 -0400
-@@ -1331,21 +1331,14 @@
-
- /*****************************************************************************/
-
--/*
--** NOTE: There is no portable implementation for swap buffers as of
--** this time that is of value. Consequently, this code must be
--** implemented by somebody other than SGI.
--*/
--int __glXSwapBuffers(__GLXclientState *cl, GLbyte *pc)
-+static __GLXdrawable *
-+SyncContextGetDrawable (__GLXclientState *cl, GLXContextTag tag,
-+ XID drawId, int *status)
- {
- ClientPtr client = cl->client;
- DrawablePtr pDraw;
-- xGLXSwapBuffersReq *req = (xGLXSwapBuffersReq *) pc;
-- GLXContextTag tag = req->contextTag;
-- XID drawId = req->drawable;
- __GLXpixmap *pGlxPixmap;
- __GLXcontext *glxc = NULL;
-- int error;
-
- /*
- ** Check that the GLX drawable is valid.
-@@ -1361,11 +1354,11 @@
- ** Drawable is an X pixmap, which is not allowed.
- */
- client->errorValue = drawId;
-- return __glXBadDrawable;
-+ *status = __glXBadDrawable;
-+ return NULL;
- }
- } else {
-- pGlxPixmap = (__GLXpixmap *) LookupIDByType(drawId,
-- __glXPixmapRes);
-+ pGlxPixmap = (__GLXpixmap *) LookupIDByType(drawId, __glXPixmapRes);
- if (pGlxPixmap) {
- /*
- ** Drawable is a GLX pixmap.
-@@ -1375,21 +1368,23 @@
- ** Drawable is neither a X window nor a GLX pixmap.
- */
- client->errorValue = drawId;
-- return __glXBadDrawable;
-+ *status = __glXBadDrawable;
-+ return NULL;
- }
- }
-
- if (tag) {
- glxc = __glXLookupContextByTag(cl, tag);
- if (!glxc) {
-- return __glXBadContextTag;
-+ *status = __glXBadContextTag;
-+ return NULL;
- }
- /*
- ** The calling thread is swapping its current drawable. In this case,
- ** glxSwapBuffers is in both GL and X streams, in terms of
- ** sequentiality.
- */
-- if (__glXForceCurrent(cl, tag, &error)) {
-+ if (__glXForceCurrent(cl, tag, status)) {
- /*
- ** Do whatever is needed to make sure that all preceding requests
- ** in both streams are completed before the swap is executed.
-@@ -1397,33 +1392,53 @@
- CALL_Finish( GET_DISPATCH(), () );
- __GLX_NOTE_FLUSHED_CMDS(glxc);
- } else {
-- return error;
-+ return NULL;
- }
- }
-
-+ *status = Success;
- if (pDraw) {
-- __GLXdrawable *glxPriv;
-+ __GLXdrawable *glxPriv;
-
- if (glxc) {
- glxPriv = __glXGetDrawable(glxc, pDraw, drawId);
- if (glxPriv == NULL) {
-- return __glXBadDrawable;
-+ *status = __glXBadDrawable;
-+ return NULL;
- }
- }
- else {
- glxPriv = __glXFindDrawable(drawId);
- if (glxPriv == NULL) {
- /* This is a window we've never seen before, do nothing */
-- return Success;
-+ return NULL;
- }
- }
-
-- if ((*glxPriv->swapBuffers)(glxPriv) == GL_FALSE) {
-- return __glXBadDrawable;
-- }
-+ return glxPriv;
- }
-
-- return Success;
-+ return NULL;
-+}
-+
-+/*
-+** NOTE: There is no portable implementation for swap buffers as of
-+** this time that is of value. Consequently, this code must be
-+** implemented by somebody other than SGI.
-+*/
-+int __glXSwapBuffers(__GLXclientState *cl, GLbyte *pc)
-+{
-+ xGLXSwapBuffersReq *req = (xGLXSwapBuffersReq *) pc;
-+ GLXContextTag tag = req->contextTag;
-+ __GLXdrawable *glxPriv;
-+ int status;
-+
-+ glxPriv = SyncContextGetDrawable (cl, tag, req->drawable, &status);
-+ if (glxPriv && (*glxPriv->swapBuffers)(glxPriv) == GL_FALSE) {
-+ return __glXBadDrawable;
-+ }
-+
-+ return status;
- }
-
-
-@@ -1544,6 +1559,30 @@
- pGlxPixmap);
- }
-
-+int __glXCopySubBufferMESA(__GLXclientState *cl, GLbyte *pc)
-+{
-+ xGLXVendorPrivateReq *req = (xGLXVendorPrivateReq *) pc;
-+ GLXContextTag tag = req->contextTag;
-+ __GLXdrawable *glxPriv;
-+ GLXDrawable drawId;
-+ int x, y, width, height;
-+ int status;
-+
-+ pc += __GLX_VENDPRIV_HDR_SIZE;
-+
-+ drawId = *((CARD32 *) (pc));
-+ x = *((INT32 *) (pc + 4));
-+ y = *((INT32 *) (pc + 8));
-+ width = *((INT32 *) (pc + 12));
-+ height = *((INT32 *) (pc + 16));
-+
-+ glxPriv = SyncContextGetDrawable (cl, tag, drawId, &status);
-+ if (glxPriv)
-+ (*glxPriv->copySubBuffer)(glxPriv, x, y, width, height);
-+
-+ return status;
-+}
-+
- /*
- ** Get drawable attributes
- */
-@@ -2173,7 +2212,9 @@
- case X_GLXvop_BindTexImageEXT:
- return __glXBindTexImageEXT(cl, pc);
- case X_GLXvop_ReleaseTexImageEXT:
-- return __glXReleaseTexImageEXT(cl, pc);
-+ return __glXReleaseTexImageEXT(cl, pc);
-+ case X_GLXvop_CopySubBufferMESA:
-+ return __glXCopySubBufferMESA(cl, pc);
- }
- #endif
-
---- ./GL/glx/glxdri.c.mesa-copy-sub-buffer 2006-07-06 21:40:41.000000000 -0400
-+++ ./GL/glx/glxdri.c 2006-07-06 21:59:38.000000000 -0400
-@@ -112,12 +112,28 @@
- * months ago. :(
- * 20050727 - Gut all the old interfaces. This breaks compatability with
- * any DRI driver built to any previous version.
-+ * 20060314 - Added support for GLX_MESA_copy_sub_buffer.
- */
-+
- #define INTERNAL_VERSION 20050727
-
- static const char CREATE_NEW_SCREEN_FUNC[] =
- "__driCreateNewScreen_" STRINGIFY (INTERNAL_VERSION);
-
-+/* The DRI driver entry point version wasn't bumped when the
-+ * copySubBuffer functionality was added to the DRI drivers, but the
-+ * functionality is still conditional on the value of the
-+ * internal_api_version passed to __driCreateNewScreen. However, the
-+ * screen constructor doesn't fail for a DRI driver that's older than
-+ * the passed in version number, so there's no way we can know for
-+ * sure that we can actually use the copySubBuffer functionality. But
-+ * since the earliest (and at this point only) released mesa version
-+ * (6.5) that uses the 20050727 entry point does have copySubBuffer,
-+ * we'll just settle for that. We still have to pass in a higher to
-+ * the screen constructor to enable the functionality.
-+ */
-+#define COPY_SUB_BUFFER_INTERNAL_VERSION 20060314
-+
- static void
- __glXDRIleaveServer(void)
- {
-@@ -177,6 +193,27 @@
- return TRUE;
- }
-
-+static void
-+__glXDRIdrawableCopySubBuffer(__GLXdrawable *basePrivate,
-+ int x, int y, int w, int h)
-+{
-+ __GLXDRIdrawable *private = (__GLXDRIdrawable *) basePrivate;
-+ __GLXDRIscreen *screen;
-+
-+ /* FIXME: We're jumping through hoops here to get the DRIdrawable
-+ * which the dri driver tries to keep to it self... cf. FIXME in
-+ * createDrawable. */
-+
-+ screen = (__GLXDRIscreen *) __glXgetActiveScreen(private->base.pDraw->pScreen->myNum);
-+ private->driDrawable = (screen->driScreen.getDrawable)(NULL,
-+ private->base.drawId,
-+ screen->driScreen.private);
-+
-+ (*private->driDrawable->copySubBuffer)(NULL,
-+ private->driDrawable->private,
-+ x, y, w, h);
-+}
-+
- static __GLXdrawable *
- __glXDRIcontextCreateDrawable(__GLXcontext *context,
- DrawablePtr pDraw,
-@@ -195,10 +232,11 @@
- return NULL;
- }
-
-- private->base.destroy = __glXDRIdrawableDestroy;
-- private->base.resize = __glXDRIdrawableResize;
-- private->base.swapBuffers = __glXDRIdrawableSwapBuffers;
--
-+ private->base.destroy = __glXDRIdrawableDestroy;
-+ private->base.resize = __glXDRIdrawableResize;
-+ private->base.swapBuffers = __glXDRIdrawableSwapBuffers;
-+ private->base.copySubBuffer = __glXDRIdrawableCopySubBuffer;
-+
- #if 0
- /* FIXME: It would only be natural that we called
- * driScreen->createNewDrawable here but the DRI drivers manage
-@@ -218,7 +256,6 @@
- return &private->base;
- }
-
--
- static void
- __glXDRIcontextDestroy(__GLXcontext *baseContext)
- {
-@@ -770,7 +807,7 @@
- __DRIframebuffer framebuffer;
- int fd = -1;
- int status;
-- int api_ver = INTERNAL_VERSION;
-+ int api_ver = COPY_SUB_BUFFER_INTERNAL_VERSION;
- drm_magic_t magic;
- drmVersionPtr version;
- char *driverName;
---- ./GL/glx/g_disptab.h.mesa-copy-sub-buffer 2006-03-11 19:11:33.000000000 -0500
-+++ ./GL/glx/g_disptab.h 2006-07-06 21:56:33.000000000 -0400
-@@ -48,6 +48,7 @@
- extern int __glXSwapBuffers(__GLXclientState*, GLbyte*);
- extern int __glXBindTexImageEXT(__GLXclientState *cl, GLbyte *pc);
- extern int __glXReleaseTexImageEXT(__GLXclientState *cl, GLbyte *pc);
-+extern int __glXCopySubBufferMESA(__GLXclientState *cl, GLbyte *pc);
- extern int __glXGetDrawableAttributesSGIX(__GLXclientState *cl, GLbyte *pc);
- extern int __glXUseXFont(__GLXclientState*, GLbyte*);
- extern int __glXCreateGLXPixmap(__GLXclientState*, GLbyte*);
-@@ -76,6 +77,7 @@
- extern int __glXSwapSwapBuffers(__GLXclientState*, GLbyte*);
- extern int __glXSwapBindTexImageEXT(__GLXclientState *cl, GLbyte *pc);
- extern int __glXSwapReleaseTexImageEXT(__GLXclientState *cl, GLbyte *pc);
-+extern int __glXSwapReleaseTexImageEXT(__GLXclientState *cl, GLbyte *pc);
- extern int __glXSwapGetDrawableAttributesSGIX(__GLXclientState *cl, GLbyte *pc);
- extern int __glXSwapUseXFont(__GLXclientState*, GLbyte*);
- extern int __glXSwapCreateGLXPixmap(__GLXclientState*, GLbyte*);
-@@ -105,4 +107,11 @@
- extern __GLXdispatchSingleProcPtr __glXSingleTable[__GLX_SINGLE_TABLE_SIZE];
- extern __GLXdispatchRenderProcPtr __glXSwapRenderTable[__GLX_RENDER_TABLE_SIZE];
- extern __GLXdispatchSingleProcPtr __glXSwapSingleTable[__GLX_SINGLE_TABLE_SIZE];
-+
-+/* Copied from mesa src/glx/x11/glxcmds.c
-+ *
-+ * Apparently there's no standardized opcode for this extension.
-+ */
-+#define X_GLXvop_CopySubBufferMESA 5154 /* temporary */
-+
- #endif /* _GLX_g_disptab_h_ */
---- ./GL/glx/glxscreens.c.mesa-copy-sub-buffer 2006-03-20 15:10:29.000000000 -0500
-+++ ./GL/glx/glxscreens.c 2006-07-06 21:56:33.000000000 -0400
-@@ -139,6 +139,7 @@
- "GLX_SGIX_swap_barrier "
- #endif
- "GLX_SGIX_fbconfig "
-+ "GLX_MESA_copy_sub_buffer "
- ;
-
- __GLXscreen **__glXActiveScreens;
---- ./GL/glx/glxcmdsswap.c.mesa-copy-sub-buffer 2006-04-02 22:09:15.000000000 -0400
-+++ ./GL/glx/glxcmdsswap.c 2006-07-06 21:56:33.000000000 -0400
-@@ -432,6 +432,31 @@
- return __glXReleaseTexImageEXT(cl, (GLbyte *)pc);
- }
-
-+int __glXSwapCopySubBufferMESA(__GLXclientState *cl, GLbyte *pc)
-+{
-+ xGLXVendorPrivateReq *req = (xGLXVendorPrivateReq *) pc;
-+ GLXDrawable *drawId;
-+ int *buffer;
-+
-+ (void) drawId;
-+ (void) buffer;
-+
-+ __GLX_DECLARE_SWAP_VARIABLES;
-+
-+ pc += __GLX_VENDPRIV_HDR_SIZE;
-+
-+ __GLX_SWAP_SHORT(&req->length);
-+ __GLX_SWAP_INT(&req->contextTag);
-+ __GLX_SWAP_INT(pc);
-+ __GLX_SWAP_INT(pc + 4);
-+ __GLX_SWAP_INT(pc + 8);
-+ __GLX_SWAP_INT(pc + 12);
-+ __GLX_SWAP_INT(pc + 16);
-+
-+ return __glXCopySubBufferMESA(cl, pc);
-+
-+}
-+
- int __glXSwapGetDrawableAttributesSGIX(__GLXclientState *cl, GLbyte *pc)
- {
- xGLXVendorPrivateWithReplyReq *req = (xGLXVendorPrivateWithReplyReq *)pc;
-@@ -899,7 +924,9 @@
- case X_GLXvop_BindTexImageEXT:
- return __glXSwapBindTexImageEXT(cl, pc);
- case X_GLXvop_ReleaseTexImageEXT:
-- return __glXSwapReleaseTexImageEXT(cl, pc);
-+ return __glXSwapReleaseTexImageEXT(cl, pc);
-+ case X_GLXvop_CopySubBufferMESA:
-+ return __glXSwapCopySubBufferMESA(cl, pc);
- }
- #endif
-
diff --git a/x11-base/xorg-server/files/05-offscreen-pixmaps.patch b/x11-base/xorg-server/files/05-offscreen-pixmaps.patch
deleted file mode 100644
index 3841b04..0000000
--- a/x11-base/xorg-server/files/05-offscreen-pixmaps.patch
+++ /dev/null
@@ -1,55 +0,0 @@
---- ./hw/xfree86/xaa/xaaInit.c.offscreen-pixmaps 2006-07-05 14:31:42.000000000 -0400
-+++ ./hw/xfree86/xaa/xaaInit.c 2006-08-30 16:47:29.000000000 -0400
-@@ -98,6 +98,30 @@
- xfree(infoRec);
- }
-
-+void
-+XAAEvictPixmaps(void)
-+{
-+ XAAScreenPtr pScreenPriv;
-+ XAAInfoRecPtr infoRec;
-+ ScreenPtr pScreen;
-+ int i;
-+
-+ xf86MsgVerb(X_INFO, 3, "XAA: Evicting pixmaps\n");
-+
-+ for (i = 0; i < screenInfo.numScreens; i++) {
-+ pScreen = screenInfo.screens[i];
-+ infoRec = GET_XAAINFORECPTR_FROM_SCREEN(pScreen);
-+
-+ pScreenPriv = pScreen->devPrivates[XAAScreenIndex].ptr;
-+ infoRec = pScreenPriv->AccelInfoRec;
-+
-+ infoRec->offscreenDepths = 0;
-+ infoRec->Flags &= ~OFFSCREEN_PIXMAPS;
-+
-+ XAAMoveOutOffscreenPixmaps(pScreen);
-+ XAAInvalidatePixmapCache(pScreen);
-+ }
-+}
-
- Bool
- XAAInit(ScreenPtr pScreen, XAAInfoRecPtr infoRec)
---- ./GL/glx/glxdri.c.offscreen-pixmaps 2006-08-30 16:46:45.000000000 -0400
-+++ ./GL/glx/glxdri.c 2006-08-30 16:45:52.000000000 -0400
-@@ -367,6 +367,19 @@
- int bpp;
- GLenum target, format, type;
-
-+ /* When the GLX_EXT_texture_from_pixmap is used, as it's
-+ * implemented here, we want to pull pixmap out of video memory
-+ * and into host memory. */
-+ {
-+ extern void XAAEvictPixmaps(void);
-+ static int evictedPixmaps;
-+
-+ if (!evictedPixmaps) {
-+ XAAEvictPixmaps();
-+ evictedPixmaps = TRUE;
-+ }
-+ }
-+
- pixmap = (PixmapPtr) glxPixmap->pDraw;
- if (!glxPixmap->pDamage) {
- glxPixmap->pDamage = DamageCreate(NULL, NULL, DamageReportNone,
diff --git a/x11-base/xorg-server/files/06-aiglx-happy-vt-switch.patch b/x11-base/xorg-server/files/06-aiglx-happy-vt-switch.patch
deleted file mode 100644
index 314f1f0..0000000
--- a/x11-base/xorg-server/files/06-aiglx-happy-vt-switch.patch
+++ /dev/null
@@ -1,241 +0,0 @@
-diff --git a/GL/glx/glxdri.c b/GL/glx/glxdri.c
-index cfa9996..77fa4bf 100644
---- a/GL/glx/glxdri.c
-+++ b/GL/glx/glxdri.c
-@@ -63,27 +63,30 @@ #include "dispatch.h"
- #define STRINGIFY(macro_or_string) STRINGIFY_ARG (macro_or_string)
- #define STRINGIFY_ARG(contents) #contents
-
--typedef struct __GLXDRIscreen __GLXDRIscreen;
--typedef struct __GLXDRIcontext __GLXDRIcontext;
-+typedef struct __GLXDRIscreen __GLXDRIscreen;
-+typedef struct __GLXDRIcontext __GLXDRIcontext;
- typedef struct __GLXDRIdrawable __GLXDRIdrawable;
-
- struct __GLXDRIscreen {
-- __GLXscreen base;
-+ __GLXscreen base;
-
-- __DRIscreen driScreen;
-- void *driver;
-+ xf86EnterVTProc *enterVT;
-+ xf86LeaveVTProc *leaveVT;
-+
-+ __DRIscreen driScreen;
-+ void *driver;
- };
-
- struct __GLXDRIcontext {
-- __GLXcontext base;
-+ __GLXcontext base;
-
-- __DRIcontext driContext;
-+ __DRIcontext driContext;
- };
-
- struct __GLXDRIdrawable {
-- __GLXdrawable base;
-+ __GLXdrawable base;
-
-- __DRIdrawable *driDrawable;
-+ __DRIdrawable *driDrawable;
- };
-
- /* History:
-@@ -594,8 +597,7 @@ static __DRIfuncPtr getProcAddress(const
-
- static __DRIscreen *findScreen(__DRInativeDisplay *dpy, int scrn)
- {
-- __GLXDRIscreen *screen =
-- (__GLXDRIscreen *) __glXgetActiveScreen(scrn);
-+ __GLXDRIscreen *screen = (__GLXDRIscreen *) __glXgetActiveScreen(scrn);
-
- return &screen->driScreen;
- }
-@@ -789,6 +791,30 @@ static const __DRIinterfaceMethods inter
-
- static const char dri_driver_path[] = DRI_DRIVER_PATH;
-
-+static Bool
-+glxDRIEnterVT (int index, int flags)
-+{
-+ __GLXDRIscreen *screen = (__GLXDRIscreen *) __glXgetActiveScreen(index);
-+
-+ LogMessage(X_INFO, "AIGLX: Resuming AIGLX clients after VT switch\n");
-+
-+ glxResumeClients();
-+
-+ return (*screen->enterVT) (index, flags);
-+}
-+
-+static void
-+glxDRILeaveVT (int index, int flags)
-+{
-+ __GLXDRIscreen *screen = (__GLXDRIscreen *) __glXgetActiveScreen(index);
-+
-+ LogMessage(X_INFO, "AIGLX: Suspending AIGLX clients for VT switch\n");
-+
-+ glxSuspendClients();
-+
-+ return (*screen->leaveVT) (index, flags);
-+}
-+
- static __GLXscreen *
- __glXDRIscreenProbe(ScreenPtr pScreen)
- {
-@@ -813,6 +839,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
- void *dev_priv = NULL;
- char filename[128];
- Bool isCapable;
-+ ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
-
- if (!xf86LoaderCheckSymbol("DRIQueryDirectRenderingCapable")) {
- LogMessage(X_ERROR, "AIGLX: DRI module not loaded\n");
-@@ -983,6 +1010,11 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
-
- __glXsetEnterLeaveServerFuncs(__glXDRIenterServer, __glXDRIleaveServer);
-
-+ screen->enterVT = pScrn->EnterVT;
-+ pScrn->EnterVT = glxDRIEnterVT;
-+ screen->leaveVT = pScrn->LeaveVT;
-+ pScrn->LeaveVT = glxDRILeaveVT;
-+
- LogMessage(X_INFO,
- "AIGLX: Loaded and initialized %s\n", filename);
-
-diff --git a/GL/glx/glxext.c b/GL/glx/glxext.c
-index 8bbb83f..edc257c 100644
---- a/GL/glx/glxext.c
-+++ b/GL/glx/glxext.c
-@@ -234,13 +231,11 @@ GLboolean __glXFreeContext(__GLXcontext
- * __glXDispatch() or as a callback from the resource manager. In
- * the latter case we need to lift the DRI lock manually. */
-
-- if (!inDispatch)
-- __glXleaveServer();
-+ __glXleaveServer();
-
- cx->destroy(cx);
-
-- if (!inDispatch)
-- __glXenterServer();
-+ __glXenterServer();
-
- return GL_TRUE;
- }
-@@ -336,7 +331,7 @@ void GlxExtensionInit(void)
- /*
- ** Initialize table of client state. There is never a client 0.
- */
-- for (i=1; i <= MAXCLIENTS; i++) {
-+ for (i = 1; i <= MAXCLIENTS; i++) {
- __glXClients[i] = 0;
- }
-
-@@ -407,11 +402,36 @@ __GLXcontext *__glXForceCurrent(__GLXcli
-
- /************************************************************************/
-
--/*
--** Top level dispatcher; all commands are executed from here down.
--*/
-+static int glxServerLeaveCount;
-+static int glxBlockClients;
-
--/* I cried when I wrote this. Damn you XAA! */
-+void glxSuspendClients(void)
-+{
-+ int i;
-+
-+ for (i = 1; i <= MAXCLIENTS; i++) {
-+ if (__glXClients[i] == NULL || !__glXClients[i]->inUse)
-+ continue;
-+
-+ IgnoreClient(__glXClients[i]->client);
-+ }
-+
-+ glxBlockClients = TRUE;
-+}
-+
-+void glxResumeClients(void)
-+{
-+ int i;
-+
-+ glxBlockClients = FALSE;
-+
-+ for (i = 1; i <= MAXCLIENTS; i++) {
-+ if (__glXClients[i] == NULL || !__glXClients[i]->inUse)
-+ continue;
-+
-+ AttendClient(__glXClients[i]->client);
-+ }
-+}
-
- static void
- __glXnopEnterServer(void)
-@@ -436,14 +456,19 @@ void __glXsetEnterLeaveServerFuncs(void
-
- void __glXenterServer(void)
- {
-- (*__glXenterServerFunc)();
-+ glxServerLeaveCount--;
-+
-+ if (glxServerLeaveCount == 0)
-+ (*__glXenterServerFunc)();
- }
-
- void __glXleaveServer(void)
- {
-- (*__glXleaveServerFunc)();
--}
-+ if (glxServerLeaveCount == 0)
-+ (*__glXleaveServerFunc)();
-
-+ glxServerLeaveCount++;
-+}
-
- /*
- ** Top level dispatcher; all commands are executed from here down.
-@@ -496,6 +521,15 @@ static int __glXDispatch(ClientPtr clien
- return __glXError(GLXBadLargeRequest);
- }
-
-+ /* If we're currently blocking GLX clients, just put this guy to
-+ * sleep, reset the request and return. */
-+ if (glxBlockClients) {
-+ ResetCurrentRequest(client);
-+ client->sequence--;
-+ IgnoreClient(client);
-+ return(client->noClientException);
-+ }
-+
- /*
- ** Use the opcode to index into the procedure table.
- */
-@@ -506,12 +540,8 @@ static int __glXDispatch(ClientPtr clien
-
- __glXleaveServer();
-
-- inDispatch = True;
--
- retval = proc(cl, (GLbyte *) stuff);
-
-- inDispatch = False;
--
- __glXenterServer();
-
- return retval;
-diff --git a/GL/glx/glxserver.h b/GL/glx/glxserver.h
-index 8ece1e2..9eed1bc 100644
---- a/GL/glx/glxserver.h
-+++ b/GL/glx/glxserver.h
-@@ -136,6 +136,9 @@ void __glXsetEnterLeaveServerFuncs(void
- void __glXenterServer(void);
- void __glXleaveServer(void);
-
-+void glxSuspendClients(void);
-+void glxResumeClients(void);
-+
- /*
- ** State kept per client.
- */
diff --git a/x11-base/xorg-server/files/1.1.1-dbe-render.diff b/x11-base/xorg-server/files/1.1.1-dbe-render.diff
deleted file mode 100644
index d2f27e5..0000000
--- a/x11-base/xorg-server/files/1.1.1-dbe-render.diff
+++ /dev/null
@@ -1,183 +0,0 @@
-diff --git a/dbe/dbe.c b/dbe/dbe.c
-index 5b43dd1..6a2ed6a 100644
---- a/dbe/dbe.c
-+++ b/dbe/dbe.c
-@@ -39,6 +39,11 @@
- #endif
-
- #include <string.h>
-+#if HAVE_STDINT_T
-+#include <stdint.h>
-+#elif !defined(UINT32_MAX)
-+#define UINT32_MAX 0xffffffffU
-+#endif
-
- #include <X11/X.h>
- #include <X11/Xproto.h>
-@@ -713,11 +718,14 @@ ProcDbeSwapBuffers(ClientPtr client)
- return(Success);
- }
-
-+ if (nStuff > UINT32_MAX / sizeof(DbeSwapInfoRec))
-+ return BadAlloc;
-+
- /* Get to the swap info appended to the end of the request. */
- dbeSwapInfo = (xDbeSwapInfo *)&stuff[1];
-
- /* Allocate array to record swap information. */
-- swapInfo = (DbeSwapInfoPtr)ALLOCATE_LOCAL(nStuff * sizeof(DbeSwapInfoRec));
-+ swapInfo = (DbeSwapInfoPtr)Xalloc(nStuff * sizeof(DbeSwapInfoRec));
- if (swapInfo == NULL)
- {
- return(BadAlloc);
-@@ -732,14 +740,14 @@ ProcDbeSwapBuffers(ClientPtr client)
- if (!(pWin = SecurityLookupWindow(dbeSwapInfo[i].window, client,
- SecurityWriteAccess)))
- {
-- DEALLOCATE_LOCAL(swapInfo);
-+ Xfree(swapInfo);
- return(BadWindow);
- }
-
- /* Each window must be double-buffered - BadMatch. */
- if (DBE_WINDOW_PRIV(pWin) == NULL)
- {
-- DEALLOCATE_LOCAL(swapInfo);
-+ Xfree(swapInfo);
- return(BadMatch);
- }
-
-@@ -748,7 +756,7 @@ ProcDbeSwapBuffers(ClientPtr client)
- {
- if (dbeSwapInfo[i].window == dbeSwapInfo[j].window)
- {
-- DEALLOCATE_LOCAL(swapInfo);
-+ Xfree(swapInfo);
- return(BadMatch);
- }
- }
-@@ -759,7 +767,7 @@ ProcDbeSwapBuffers(ClientPtr client)
- (dbeSwapInfo[i].swapAction != XdbeUntouched ) &&
- (dbeSwapInfo[i].swapAction != XdbeCopied ))
- {
-- DEALLOCATE_LOCAL(swapInfo);
-+ Xfree(swapInfo);
- return(BadValue);
- }
-
-@@ -789,12 +797,12 @@ ProcDbeSwapBuffers(ClientPtr client)
- error = (*pDbeScreenPriv->SwapBuffers)(client, &nStuff, swapInfo);
- if (error != Success)
- {
-- DEALLOCATE_LOCAL(swapInfo);
-+ Xfree(swapInfo);
- return(error);
- }
- }
-
-- DEALLOCATE_LOCAL(swapInfo);
-+ Xfree(swapInfo);
- return(Success);
-
- } /* ProcDbeSwapBuffers() */
-@@ -876,10 +884,12 @@ ProcDbeGetVisualInfo(ClientPtr client)
-
- REQUEST_AT_LEAST_SIZE(xDbeGetVisualInfoReq);
-
-+ if (stuff->n > UINT32_MAX / sizeof(DrawablePtr))
-+ return BadAlloc;
- /* Make sure any specified drawables are valid. */
- if (stuff->n != 0)
- {
-- if (!(pDrawables = (DrawablePtr *)ALLOCATE_LOCAL(stuff->n *
-+ if (!(pDrawables = (DrawablePtr *)Xalloc(stuff->n *
- sizeof(DrawablePtr))))
- {
- return(BadAlloc);
-@@ -892,7 +902,7 @@ ProcDbeGetVisualInfo(ClientPtr client)
- if (!(pDrawables[i] = (DrawablePtr)SecurityLookupDrawable(
- drawables[i], client, SecurityReadAccess)))
- {
-- DEALLOCATE_LOCAL(pDrawables);
-+ Xfree(pDrawables);
- return(BadDrawable);
- }
- }
-@@ -904,7 +914,7 @@ ProcDbeGetVisualInfo(ClientPtr client)
- {
- if (pDrawables)
- {
-- DEALLOCATE_LOCAL(pDrawables);
-+ Xfree(pDrawables);
- }
-
- return(BadAlloc);
-@@ -931,7 +941,7 @@ ProcDbeGetVisualInfo(ClientPtr client)
- /* Free pDrawables if we needed to allocate it above. */
- if (pDrawables)
- {
-- DEALLOCATE_LOCAL(pDrawables);
-+ Xfree(pDrawables);
- }
-
- return(BadAlloc);
-@@ -1012,7 +1022,7 @@ ProcDbeGetVisualInfo(ClientPtr client)
-
- if (pDrawables)
- {
-- DEALLOCATE_LOCAL(pDrawables);
-+ Xfree(pDrawables);
- }
-
- return(client->noClientException);
-diff --git a/render/render.c b/render/render.c
-index e4d8d6b..55f360a 100644
---- a/render/render.c
-+++ b/render/render.c
-@@ -47,6 +47,12 @@
- #include <X11/Xfuncproto.h>
- #include "cursorstr.h"
-
-+#if HAVE_STDINT_H
-+#include <stdint.h>
-+#elif !defined(UINT32_MAX)
-+#define UINT32_MAX 0xffffffffU
-+#endif
-+
- static int ProcRenderQueryVersion (ClientPtr pClient);
- static int ProcRenderQueryPictFormats (ClientPtr pClient);
- static int ProcRenderQueryPictIndexValues (ClientPtr pClient);
-@@ -1103,11 +1109,14 @@ ProcRenderAddGlyphs (ClientPtr client)
- }
-
- nglyphs = stuff->nglyphs;
-+ if (nglyphs > UINT32_MAX / sizeof(GlyphNewRec))
-+ return BadAlloc;
-+
- if (nglyphs <= NLOCALGLYPH)
- glyphsBase = glyphsLocal;
- else
- {
-- glyphsBase = (GlyphNewPtr) ALLOCATE_LOCAL (nglyphs * sizeof (GlyphNewRec));
-+ glyphsBase = (GlyphNewPtr) Xalloc (nglyphs * sizeof (GlyphNewRec));
- if (!glyphsBase)
- return BadAlloc;
- }
-@@ -1164,7 +1173,7 @@ ProcRenderAddGlyphs (ClientPtr client)
- }
-
- if (glyphsBase != glyphsLocal)
-- DEALLOCATE_LOCAL (glyphsBase);
-+ Xfree (glyphsBase);
- return client->noClientException;
- bail:
- while (glyphs != glyphsBase)
-@@ -1173,7 +1182,7 @@ bail:
- xfree (glyphs->glyph);
- }
- if (glyphsBase != glyphsLocal)
-- DEALLOCATE_LOCAL (glyphsBase);
-+ Xfree (glyphsBase);
- return err;
- }
-
diff --git a/x11-base/xorg-server/files/1.1.1-fix-xrandr-zoom-keys.patch b/x11-base/xorg-server/files/1.1.1-fix-xrandr-zoom-keys.patch
deleted file mode 100644
index fc9bd8d..0000000
--- a/x11-base/xorg-server/files/1.1.1-fix-xrandr-zoom-keys.patch
+++ /dev/null
@@ -1,186 +0,0 @@
-diff --git a/dix/Makefile.am b/dix/Makefile.am
-index c9a19f7..414f125 100644
---- a/dix/Makefile.am
-+++ b/dix/Makefile.am
-@@ -29,7 +29,8 @@ libdix_la_SOURCES = \
- swaprep.c \
- swapreq.c \
- tables.c \
-- window.c
-+ window.c \
-+ strcasecmp.c
-
- libxpstubs_la_SOURCES = \
- xpstubs.c
-diff --git a/hw/xfree86/dixmods/Makefile.am b/hw/xfree86/dixmods/Makefile.am
-index d1b806a..9023a0c 100644
---- a/hw/xfree86/dixmods/Makefile.am
-+++ b/hw/xfree86/dixmods/Makefile.am
-@@ -95,6 +95,7 @@ libtype1_la_SOURCES = type1mod.c
- libdixmods_la_SOURCES = $(top_srcdir)/mi/miinitext.c
-
- libxorgxkb_la_SOURCES = xkbVT.c xkbPrivate.c xkbKillSrv.c
-+libxorgxkb_la_LIBADD = $(top_builddir)/dix/libdix.la
-
- libxtrap_la_LDFLAGS = -avoid-version
- libxtrap_la_LIBADD = $(top_builddir)/XTrap/libxtrap.la
-diff --git a/hw/xfree86/dixmods/xkbPrivate.c b/hw/xfree86/dixmods/xkbPrivate.c
-index 0479bca..b986432 100644
---- a/hw/xfree86/dixmods/xkbPrivate.c
-+++ b/hw/xfree86/dixmods/xkbPrivate.c
-@@ -26,13 +26,13 @@ XkbDDXPrivate(DeviceIntPtr dev,KeyCode k
- if (xf86act->type == XkbSA_XFree86Private) {
- memcpy(msgbuf, xf86act->data, XkbAnyActionDataSize);
- msgbuf[XkbAnyActionDataSize]= '\0';
-- if (strcmp(msgbuf, "-vmode")==0)
-+ if (strcasecmp(msgbuf, "-vmode")==0)
- xf86ProcessActionEvent(ACTION_PREV_MODE, NULL);
-- else if (strcmp(msgbuf, "+vmode")==0)
-+ else if (strcasecmp(msgbuf, "+vmode")==0)
- xf86ProcessActionEvent(ACTION_NEXT_MODE, NULL);
-- else if (strcmp(msgbuf, "ungrab")==0)
-+ else if (strcasecmp(msgbuf, "ungrab")==0)
- xf86ProcessActionEvent(ACTION_DISABLEGRAB, NULL);
-- else if (strcmp(msgbuf, "clsgrb")==0)
-+ else if (strcasecmp(msgbuf, "clsgrb")==0)
- xf86ProcessActionEvent(ACTION_CLOSECLIENT, NULL);
- else
- xf86ProcessActionEvent(ACTION_MESSAGE, (void *) msgbuf);
-diff --git a/include/dix.h b/include/dix.h
-index 0177721..84fc849 100644
---- a/include/dix.h
-+++ b/include/dix.h
-@@ -820,4 +820,10 @@ typedef struct {
- SelectionCallbackKind kind;
- } SelectionInfoRec;
-
-+/* strcasecmp.c */
-+#if NEED_STRCASECMP
-+#define strcasecmp xstrcasecmp
-+extern int xstrcasecmp(char *s1, char *s2);
-+#endif
-+
- #endif /* DIX_H */
-diff --git a/xkb/maprules.c b/xkb/maprules.c
-index d4e9829..eff02ad 100644
---- a/xkb/maprules.c
-+++ b/xkb/maprules.c
-@@ -62,12 +62,6 @@ #define PR_DEBUG1(s,a)
- #define PR_DEBUG2(s,a,b)
- #endif
-
--#ifdef NEED_STRCASECMP
--extern int _XkbStrCaseCmp(char *s1, char *s2);
--#else
--#define _XkbStrCaseCmp strcasecmp
--#endif
--
- /***====================================================================***/
-
- #define DFLT_LINE_SIZE 128
-@@ -1092,20 +1086,20 @@ int len,headingtype,extra_ndx = 0;
- for ( ; GetInputLine(file,&line,False); line.num_line= 0) {
- if (line.line[0]=='!') {
- tok = strtok(&(line.line[1]), " \t");
-- if (_XkbStrCaseCmp(tolower(tok),"model") == 0)
-+ if (strcasecmp(tok,"model") == 0)
- headingtype = HEAD_MODEL;
-- else if (_XkbStrCaseCmp(tok,"layout") == 0)
-+ else if (strcasecmp(tok,"layout") == 0)
- headingtype = HEAD_LAYOUT;
-- else if (_XkbStrCaseCmp(tok,"variant") == 0)
-+ else if (strcasecmp(tok,"variant") == 0)
- headingtype = HEAD_VARIANT;
-- else if (_XkbStrCaseCmp(tok,"option") == 0)
-+ else if (strcasecmp(tok,"option") == 0)
- headingtype = HEAD_OPTION;
- else {
- int i;
- headingtype = HEAD_EXTRA;
- extra_ndx= -1;
- for (i=0;(i<rules->num_extra)&&(extra_ndx<0);i++) {
-- if (!_XkbStrCaseCmp(tok,rules->extra_names[i]))
-+ if (!strcasecmp(tok,rules->extra_names[i]))
- extra_ndx= i;
- }
- if (extra_ndx<0) {
-diff --git a/xkb/xkbfmisc.c b/xkb/xkbfmisc.c
-index 3389ba8..3ed68c2 100644
---- a/xkb/xkbfmisc.c
-+++ b/xkb/xkbfmisc.c
-@@ -247,19 +247,3 @@ XkbNameMatchesPattern(char *name,char *p
- /* if we get here, the pattern is exhausted (-:just like me:-) */
- return (name[0]=='\0');
- }
--
--#ifdef NEED_STRCASECMP
--_X_HIDDEN int
--_XkbStrCaseCmp(char *str1,char *str2)
--{
-- const u_char *us1 = (const u_char *)str1, *us2 = (const u_char *)str2;
--
-- while (tolower(*us1) == tolower(*us2)) {
-- if (*us1++ == '\0')
-- return (0);
-- us2++;
-- }
--
-- return (tolower(*us1) - tolower(*us2));
--}
--#endif
-diff --git a/dix/strcasecmp.c b/dix/strcasecmp.c
-new file mode 100644
-index 0000000..bf3f008
---- /dev/null
-+++ b/dix/strcasecmp.c
-@@ -0,0 +1,50 @@
-+/* $Xorg: xkbmisc.c,v 1.4 2000/08/17 19:46:44 cpqbld Exp $ */
-+/************************************************************
-+ Copyright (c) 1995 by Silicon Graphics Computer Systems, Inc.
-+
-+ Permission to use, copy, modify, and distribute this
-+ software and its documentation for any purpose and without
-+ fee is hereby granted, provided that the above copyright
-+ notice appear in all copies and that both that copyright
-+ notice and this permission notice appear in supporting
-+ documentation, and that the name of Silicon Graphics not be
-+ used in advertising or publicity pertaining to distribution
-+ of the software without specific prior written permission.
-+ Silicon Graphics makes no representation about the suitability
-+ of this software for any purpose. It is provided "as is"
-+ without any express or implied warranty.
-+
-+ SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
-+ SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-+ AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
-+ GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-+ DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-+ DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-+ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
-+ THE USE OR PERFORMANCE OF THIS SOFTWARE.
-+
-+ ********************************************************/
-+/* $XFree86: xc/lib/xkbfile/xkbmisc.c,v 1.7 2003/07/16 02:31:10 dawes Exp $ */
-+
-+#ifdef HAVE_DIX_CONFIG_H
-+#include <dix-config.h>
-+#endif
-+
-+#include <ctype.h>
-+#include "dix.h"
-+
-+#ifdef NEED_STRCASECMP
-+int
-+xstrcasecmp(char *str1,char *str2)
-+{
-+ const u_char *us1 = (const u_char *)str1, *us2 = (const u_char *)str2;
-+
-+ while (tolower(*us1) == tolower(*us2)) {
-+ if (*us1++ == '\0')
-+ return (0);
-+ us2++;
-+ }
-+
-+ return (tolower(*us1) - tolower(*us2));
-+}
-+#endif
diff --git a/x11-base/xorg-server/files/1.1.1-fix_acpi_tokenize.patch b/x11-base/xorg-server/files/1.1.1-fix_acpi_tokenize.patch
deleted file mode 100644
index 407617f..0000000
--- a/x11-base/xorg-server/files/1.1.1-fix_acpi_tokenize.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-commit 0567a6337b84fa045b5732e98203f488274aa2a2
-Author: Bram Verweij <amverweij@gmail.com>
-Date: Wed Nov 8 18:00:52 2006 +0200
-
- xfree86/linux acpi: fix tokenising
- Split on a space, rather on the 'video' string, as strtok takes a char,
- not a string.
-
-diff --git a/hw/xfree86/os-support/linux/lnx_acpi.c b/hw/xfree86/os-support/linux/lnx_acpi.c
-index aa30e72..024e6ef 100644
---- a/hw/xfree86/os-support/linux/lnx_acpi.c
-+++ b/hw/xfree86/os-support/linux/lnx_acpi.c
-@@ -78,7 +78,7 @@ lnxACPIGetEventFromOs(int fd, pmEvent *e
- char *data = NULL; /* doesn't appear to be used in the kernel */
- unsigned long int notify_l, data_l;
-
-- video = strtok(ev, "video");
-+ video = strtok(ev, " ");
-
- GFX = strtok(NULL, " ");
- #if 0
diff --git a/x11-base/xorg-server/files/1.1.1-fix_big_endian_glx.patch b/x11-base/xorg-server/files/1.1.1-fix_big_endian_glx.patch
deleted file mode 100644
index 5bc902b..0000000
--- a/x11-base/xorg-server/files/1.1.1-fix_big_endian_glx.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-commit 3ad1642f1bbaa5f96558cdf3384b40f7122f8781
-Author: Michel Dänzer <michel@tungstengraphics.com>
-Date: Sun Oct 15 16:57:09 2006 +0200
-
- Fix __glXDRIbindTexImage() for 32 bpp on big endian platforms.
-
-diff --git a/GL/glx/glxdri.c b/GL/glx/glxdri.c
-index b572304..170662c 100644
---- a/GL/glx/glxdri.c
-+++ b/GL/glx/glxdri.c
-@@ -359,7 +359,12 @@ __glXDRIbindTexImage(__GLXcontext *baseC
- if (pixmap->drawable.depth >= 24) {
- bpp = 4;
- format = GL_BGRA;
-- type = GL_UNSIGNED_BYTE;
-+ type =
-+#if X_BYTE_ORDER == X_LITTLE_ENDIAN
-+ GL_UNSIGNED_BYTE;
-+#else
-+ GL_UNSIGNED_INT_8_8_8_8_REV;
-+#endif
- } else {
- bpp = 2;
- format = GL_RGB;
diff --git a/x11-base/xorg-server/files/1.1.1-fixdualhead.patch b/x11-base/xorg-server/files/1.1.1-fixdualhead.patch
deleted file mode 100644
index 7b0513d..0000000
--- a/x11-base/xorg-server/files/1.1.1-fixdualhead.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-https://bugs.gentoo.org/show_bug.cgi?id=159375
-
-diff --git a/GL/glx/glxdri.c b/GL/glx/glxdri.c
-index 4935b0a..9c3cac0 100644
---- a/GL/glx/glxdri.c
-+++ b/GL/glx/glxdri.c
-@@ -121,19 +121,13 @@ static const char CREATE_NEW_SCREEN_FUNC
- static void
- __glXDRIleaveServer(void)
- {
-- int i;
--
-- for (i = 0; i < screenInfo.numScreens; i++)
-- DRIDoBlockHandler(i, NULL, NULL, NULL);
-+ DRIBlockHandler(NULL, NULL, NULL);
- }
-
- static void
- __glXDRIenterServer(void)
- {
-- int i;
--
-- for (i = 0; i < screenInfo.numScreens; i++)
-- DRIDoWakeupHandler(i, NULL, 0, NULL);
-+ DRIWakeupHandler(NULL, 0, NULL);
- }
-
- static void
diff --git a/x11-base/xorg-server/files/1.1.1-sparc-includes.patch b/x11-base/xorg-server/files/1.1.1-sparc-includes.patch
deleted file mode 100644
index 3408d20..0000000
--- a/x11-base/xorg-server/files/1.1.1-sparc-includes.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff -Nura xorg-server-1.1.1/hw/xfree86/os-support/linux/lnx_io.c xorg-server-1.1.1.sparc/hw/xfree86/os-support/linux/lnx_io.c
---- xorg-server-1.1.1/hw/xfree86/os-support/linux/lnx_io.c 2006-07-05 15:31:41.000000000 -0300
-+++ xorg-server-1.1.1.sparc/hw/xfree86/os-support/linux/lnx_io.c 2007-01-18 14:43:53.000000000 -0300
-@@ -72,10 +72,6 @@
-
- #include <linux/kd.h>
- #include <linux/version.h>
--#ifdef __sparc__
--#include <asm/param.h>
--#include <asm/kbio.h>
--#endif
-
- /* Deal with spurious kernel header change in struct kbd_repeat.
- We undo this define after the routine using that struct is over,
-diff -Nura xorg-server-1.1.1/hw/xfree86/os-support/linux/lnx_kbd.c xorg-server-1.1.1.sparc/hw/xfree86/os-support/linux/lnx_kbd.c
---- xorg-server-1.1.1/hw/xfree86/os-support/linux/lnx_kbd.c 2006-07-05 15:31:41.000000000 -0300
-+++ xorg-server-1.1.1.sparc/hw/xfree86/os-support/linux/lnx_kbd.c 2007-01-18 14:44:55.000000000 -0300
-@@ -102,10 +102,6 @@
-
- #include <linux/kd.h>
- #include <linux/version.h>
--#ifdef __sparc__
--#include <asm/param.h>
--#include <asm/kbio.h>
--#endif
-
- /* Deal with spurious kernel header change in struct kbd_repeat.
- We undo this define after the routine using that struct is over,
diff --git a/x11-base/xorg-server/files/1.1.1-sparc64-ati-lockups.patch b/x11-base/xorg-server/files/1.1.1-sparc64-ati-lockups.patch
deleted file mode 100644
index d44d969..0000000
--- a/x11-base/xorg-server/files/1.1.1-sparc64-ati-lockups.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff --git a/hw/xfree86/os-support/bus/linuxPci.c b/hw/xfree86/os-support/bus/linuxPci.c
-index a3c07f3..a97e6f0 100644
---- a/hw/xfree86/os-support/bus/linuxPci.c
-+++ b/hw/xfree86/os-support/bus/linuxPci.c
-@@ -83,7 +83,13 @@ #if defined(__powerpc__)
- /* pciAddrBusToHost */ linuxPpcBusAddrToHostAddr,
- #else
- /* pciAddrHostToBus */ pciAddrNOOP,
-+/* linuxTransAddrBusToHost is busted on sparc64 but the PCI rework tree
-+ * makes it all moot, so we kludge it for now */
-+#if defined(__sparc__)
-+/* pciAddrBusToHost */ pciAddrNOOP,
-+#else
- /* pciAddrBusToHost */ linuxTransAddrBusToHost,
-+#endif /* __sparc64__ */
- #endif
-
- /* pciControlBridge */ NULL,
diff --git a/x11-base/xorg-server/files/1.2.0-client-leak.patch b/x11-base/xorg-server/files/1.2.0-client-leak.patch
deleted file mode 100644
index 02e52db..0000000
--- a/x11-base/xorg-server/files/1.2.0-client-leak.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/os/connection.c
-+++ b/os/connection.c
-@@ -1066,6 +1066,8 @@ CloseDownConnection(ClientPtr client)
- XdmcpCloseDisplay(oc->fd);
- #endif
- CloseDownFileDescriptor(oc);
-+ FreeOsBuffers(oc);
-+ xfree(client->osPrivate);
- client->osPrivate = (pointer)NULL;
- if (auditTrailLevel > 1)
- AuditF("client %d disconnected\n", client->index);
diff --git a/x11-base/xorg-server/files/1.2.0-server-damage-version.patch b/x11-base/xorg-server/files/1.2.0-server-damage-version.patch
deleted file mode 100644
index e03ae0e..0000000
--- a/x11-base/xorg-server/files/1.2.0-server-damage-version.patch
+++ /dev/null
@@ -1,38 +0,0 @@
---- a/damageext/damageext.c
-+++ b/damageext/damageext.c
-@@ -35,6 +35,13 @@ int DamageClientPrivateIndex;
- RESTYPE DamageExtType;
- RESTYPE DamageExtWinType;
-
-+/* Version of the damage extension supported by the server, as opposed to the
-+ * DAMAGE_* defines from damageproto for what version the proto header
-+ * supports.
-+ */
-+#define SERVER_DAMAGE_MAJOR 1
-+#define SERVER_DAMAGE_MINOR 0
-+
- #define prScreen screenInfo.screens[0]
-
- static void
-@@ -143,16 +150,16 @@ ProcDamageQueryVersion(ClientPtr client)
- rep.type = X_Reply;
- rep.length = 0;
- rep.sequenceNumber = client->sequence;
-- if (stuff->majorVersion < DAMAGE_MAJOR) {
-+ if (stuff->majorVersion < SERVER_DAMAGE_MAJOR) {
- rep.majorVersion = stuff->majorVersion;
- rep.minorVersion = stuff->minorVersion;
- } else {
-- rep.majorVersion = DAMAGE_MAJOR;
-- if (stuff->majorVersion == DAMAGE_MAJOR &&
-- stuff->minorVersion < DAMAGE_MINOR)
-+ rep.majorVersion = SERVER_DAMAGE_MAJOR;
-+ if (stuff->majorVersion == SERVER_DAMAGE_MAJOR &&
-+ stuff->minorVersion < SERVER_DAMAGE_MINOR)
- rep.minorVersion = stuff->minorVersion;
- else
-- rep.minorVersion = DAMAGE_MINOR;
-+ rep.minorVersion = SERVER_DAMAGE_MINOR;
- }
- pDamageClient->major_version = rep.majorVersion;
- pDamageClient->minor_version = rep.minorVersion;
diff --git a/x11-base/xorg-server/files/1.2.0-server-randr-version.patch b/x11-base/xorg-server/files/1.2.0-server-randr-version.patch
deleted file mode 100644
index 05432b6..0000000
--- a/x11-base/xorg-server/files/1.2.0-server-randr-version.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- randr/randr.c.old 2007-02-19 14:01:55.000000000 -0700
-+++ randr/randr.c 2007-02-19 14:02:12.000000000 -0700
-@@ -472,8 +472,8 @@
- rep.type = X_Reply;
- rep.length = 0;
- rep.sequenceNumber = client->sequence;
-- rep.majorVersion = RANDR_MAJOR;
-- rep.minorVersion = RANDR_MINOR;
-+ rep.majorVersion = 1;
-+ rep.minorVersion = 1;
- if (client->swapped) {
- swaps(&rep.sequenceNumber, n);
- swapl(&rep.length, n);
diff --git a/x11-base/xorg-server/files/1.2.99.0-fix-sysconfdir-references.patch b/x11-base/xorg-server/files/1.2.99.0-fix-sysconfdir-references.patch
deleted file mode 100644
index 7d5b8ab..0000000
--- a/x11-base/xorg-server/files/1.2.99.0-fix-sysconfdir-references.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- configure.ac.old 2006-11-04 15:27:24.000000000 -0700
-+++ configure.ac 2006-11-04 15:28:32.000000000 -0700
-@@ -1342,7 +1342,7 @@
-
- dnl these only go in xorg-config.h
- XF86CONFIGFILE="xorg.conf"
-- CONFIGFILE="$sysconfdir/$XF86CONFIGFILE"
-+ CONFIGFILE="$sysconfdir/X11/$XF86CONFIGFILE"
- LOGPREFIX="$logdir/Xorg."
- AC_DEFINE(XORG_SERVER, 1, [Building Xorg server])
- AC_DEFINE(XORGSERVER, 1, [Building Xorg server])
diff --git a/x11-base/xorg-server/files/1.3-0003-Fix-for-CVE-2007-6427-Xinput-extension-memory-corr.patch b/x11-base/xorg-server/files/1.3-0003-Fix-for-CVE-2007-6427-Xinput-extension-memory-corr.patch
new file mode 100644
index 0000000..18075a6
--- /dev/null
+++ b/x11-base/xorg-server/files/1.3-0003-Fix-for-CVE-2007-6427-Xinput-extension-memory-corr.patch
@@ -0,0 +1,244 @@
+Index: xorg-server-1.3.0.0/Xi/chgfctl.c
+===================================================================
+--- xorg-server-1.3.0.0.orig/Xi/chgfctl.c
++++ xorg-server-1.3.0.0/Xi/chgfctl.c
+@@ -451,18 +451,13 @@ ChangeStringFeedback(ClientPtr client, D
+ xStringFeedbackCtl * f)
+ {
+ register char n;
+- register long *p;
+ int i, j;
+ KeySym *syms, *sup_syms;
+
+ syms = (KeySym *) (f + 1);
+ if (client->swapped) {
+ swaps(&f->length, n); /* swapped num_keysyms in calling proc */
+- p = (long *)(syms);
+- for (i = 0; i < f->num_keysyms; i++) {
+- swapl(p, n);
+- p++;
+- }
++ SwapLongs((CARD32 *) syms, f->num_keysyms);
+ }
+
+ if (f->num_keysyms > s->ctrl.max_symbols) {
+Index: xorg-server-1.3.0.0/Xi/chgkmap.c
+===================================================================
+--- xorg-server-1.3.0.0.orig/Xi/chgkmap.c
++++ xorg-server-1.3.0.0/Xi/chgkmap.c
+@@ -79,18 +79,14 @@ int
+ SProcXChangeDeviceKeyMapping(register ClientPtr client)
+ {
+ register char n;
+- register long *p;
+- register int i, count;
++ register unsigned int count;
+
+ REQUEST(xChangeDeviceKeyMappingReq);
+ swaps(&stuff->length, n);
+ REQUEST_AT_LEAST_SIZE(xChangeDeviceKeyMappingReq);
+- p = (long *)&stuff[1];
+ count = stuff->keyCodes * stuff->keySymsPerKeyCode;
+- for (i = 0; i < count; i++) {
+- swapl(p, n);
+- p++;
+- }
++ REQUEST_FIXED_SIZE(xChangeDeviceKeyMappingReq, count * sizeof(CARD32));
++ SwapLongs((CARD32 *) (&stuff[1]), count);
+ return (ProcXChangeDeviceKeyMapping(client));
+ }
+
+@@ -106,10 +102,14 @@ ProcXChangeDeviceKeyMapping(register Cli
+ int ret;
+ unsigned len;
+ DeviceIntPtr dev;
++ unsigned int count;
+
+ REQUEST(xChangeDeviceKeyMappingReq);
+ REQUEST_AT_LEAST_SIZE(xChangeDeviceKeyMappingReq);
+
++ count = stuff->keyCodes * stuff->keySymsPerKeyCode;
++ REQUEST_FIXED_SIZE(xChangeDeviceKeyMappingReq, count * sizeof(CARD32));
++
+ dev = LookupDeviceIntRec(stuff->deviceid);
+ if (dev == NULL) {
+ SendErrorToClient(client, IReqCode, X_ChangeDeviceKeyMapping, 0,
+Index: xorg-server-1.3.0.0/Xi/chgprop.c
+===================================================================
+--- xorg-server-1.3.0.0.orig/Xi/chgprop.c
++++ xorg-server-1.3.0.0/Xi/chgprop.c
+@@ -81,19 +81,15 @@ int
+ SProcXChangeDeviceDontPropagateList(register ClientPtr client)
+ {
+ register char n;
+- register long *p;
+- register int i;
+
+ REQUEST(xChangeDeviceDontPropagateListReq);
+ swaps(&stuff->length, n);
+ REQUEST_AT_LEAST_SIZE(xChangeDeviceDontPropagateListReq);
+ swapl(&stuff->window, n);
+ swaps(&stuff->count, n);
+- p = (long *)&stuff[1];
+- for (i = 0; i < stuff->count; i++) {
+- swapl(p, n);
+- p++;
+- }
++ REQUEST_FIXED_SIZE(xChangeDeviceDontPropagateListReq,
++ stuff->count * sizeof(CARD32));
++ SwapLongs((CARD32 *) (&stuff[1]), stuff->count);
+ return (ProcXChangeDeviceDontPropagateList(client));
+ }
+
+Index: xorg-server-1.3.0.0/Xi/grabdev.c
+===================================================================
+--- xorg-server-1.3.0.0.orig/Xi/grabdev.c
++++ xorg-server-1.3.0.0/Xi/grabdev.c
+@@ -82,8 +82,6 @@ int
+ SProcXGrabDevice(register ClientPtr client)
+ {
+ register char n;
+- register long *p;
+- register int i;
+
+ REQUEST(xGrabDeviceReq);
+ swaps(&stuff->length, n);
+@@ -91,11 +89,11 @@ SProcXGrabDevice(register ClientPtr clie
+ swapl(&stuff->grabWindow, n);
+ swapl(&stuff->time, n);
+ swaps(&stuff->event_count, n);
+- p = (long *)&stuff[1];
+- for (i = 0; i < stuff->event_count; i++) {
+- swapl(p, n);
+- p++;
+- }
++
++ if (stuff->length != (sizeof(xGrabDeviceReq) >> 2) + stuff->event_count)
++ return BadLength;
++
++ SwapLongs((CARD32 *) (&stuff[1]), stuff->event_count);
+
+ return (ProcXGrabDevice(client));
+ }
+Index: xorg-server-1.3.0.0/Xi/grabdevb.c
+===================================================================
+--- xorg-server-1.3.0.0.orig/Xi/grabdevb.c
++++ xorg-server-1.3.0.0/Xi/grabdevb.c
+@@ -80,8 +80,6 @@ int
+ SProcXGrabDeviceButton(register ClientPtr client)
+ {
+ register char n;
+- register long *p;
+- register int i;
+
+ REQUEST(xGrabDeviceButtonReq);
+ swaps(&stuff->length, n);
+@@ -89,11 +87,9 @@ SProcXGrabDeviceButton(register ClientPt
+ swapl(&stuff->grabWindow, n);
+ swaps(&stuff->modifiers, n);
+ swaps(&stuff->event_count, n);
+- p = (long *)&stuff[1];
+- for (i = 0; i < stuff->event_count; i++) {
+- swapl(p, n);
+- p++;
+- }
++ REQUEST_FIXED_SIZE(xGrabDeviceButtonReq,
++ stuff->event_count * sizeof(CARD32));
++ SwapLongs((CARD32 *) (&stuff[1]), stuff->event_count);
+
+ return (ProcXGrabDeviceButton(client));
+ }
+Index: xorg-server-1.3.0.0/Xi/grabdevk.c
+===================================================================
+--- xorg-server-1.3.0.0.orig/Xi/grabdevk.c
++++ xorg-server-1.3.0.0/Xi/grabdevk.c
+@@ -80,8 +80,6 @@ int
+ SProcXGrabDeviceKey(register ClientPtr client)
+ {
+ register char n;
+- register long *p;
+- register int i;
+
+ REQUEST(xGrabDeviceKeyReq);
+ swaps(&stuff->length, n);
+@@ -89,11 +87,8 @@ SProcXGrabDeviceKey(register ClientPtr c
+ swapl(&stuff->grabWindow, n);
+ swaps(&stuff->modifiers, n);
+ swaps(&stuff->event_count, n);
+- p = (long *)&stuff[1];
+- for (i = 0; i < stuff->event_count; i++) {
+- swapl(p, n);
+- p++;
+- }
++ REQUEST_FIXED_SIZE(xGrabDeviceKeyReq, stuff->event_count * sizeof(CARD32));
++ SwapLongs((CARD32 *) (&stuff[1]), stuff->event_count);
+ return (ProcXGrabDeviceKey(client));
+ }
+
+Index: xorg-server-1.3.0.0/Xi/selectev.c
+===================================================================
+--- xorg-server-1.3.0.0.orig/Xi/selectev.c
++++ xorg-server-1.3.0.0/Xi/selectev.c
+@@ -84,19 +84,16 @@ int
+ SProcXSelectExtensionEvent(register ClientPtr client)
+ {
+ register char n;
+- register long *p;
+- register int i;
+
+ REQUEST(xSelectExtensionEventReq);
+ swaps(&stuff->length, n);
+ REQUEST_AT_LEAST_SIZE(xSelectExtensionEventReq);
+ swapl(&stuff->window, n);
+ swaps(&stuff->count, n);
+- p = (long *)&stuff[1];
+- for (i = 0; i < stuff->count; i++) {
+- swapl(p, n);
+- p++;
+- }
++ REQUEST_FIXED_SIZE(xSelectExtensionEventReq,
++ stuff->count * sizeof(CARD32));
++ SwapLongs((CARD32 *) (&stuff[1]), stuff->count);
++
+ return (ProcXSelectExtensionEvent(client));
+ }
+
+Index: xorg-server-1.3.0.0/Xi/sendexev.c
+===================================================================
+--- xorg-server-1.3.0.0.orig/Xi/sendexev.c
++++ xorg-server-1.3.0.0/Xi/sendexev.c
+@@ -83,7 +83,7 @@ int
+ SProcXSendExtensionEvent(register ClientPtr client)
+ {
+ register char n;
+- register long *p;
++ register CARD32 *p;
+ register int i;
+ xEvent eventT;
+ xEvent *eventP;
+@@ -94,6 +94,11 @@ SProcXSendExtensionEvent(register Client
+ REQUEST_AT_LEAST_SIZE(xSendExtensionEventReq);
+ swapl(&stuff->destination, n);
+ swaps(&stuff->count, n);
++
++ if (stuff->length != (sizeof(xSendExtensionEventReq) >> 2) + stuff->count +
++ (stuff->num_events * (sizeof(xEvent) >> 2)))
++ return BadLength;
++
+ eventP = (xEvent *) & stuff[1];
+ for (i = 0; i < stuff->num_events; i++, eventP++) {
+ proc = EventSwapVector[eventP->u.u.type & 0177];
+@@ -103,11 +108,8 @@ SProcXSendExtensionEvent(register Client
+ *eventP = eventT;
+ }
+
+- p = (long *)(((xEvent *) & stuff[1]) + stuff->num_events);
+- for (i = 0; i < stuff->count; i++) {
+- swapl(p, n);
+- p++;
+- }
++ p = (CARD32 *)(((xEvent *) & stuff[1]) + stuff->num_events);
++ SwapLongs(p, stuff->count);
+ return (ProcXSendExtensionEvent(client));
+ }
+
diff --git a/x11-base/xorg-server/files/1.3-0006-Fix-for-CVE-2007-5958-File-existence-disclosure.patch b/x11-base/xorg-server/files/1.3-0006-Fix-for-CVE-2007-5958-File-existence-disclosure.patch
new file mode 100644
index 0000000..b8e5178
--- /dev/null
+++ b/x11-base/xorg-server/files/1.3-0006-Fix-for-CVE-2007-5958-File-existence-disclosure.patch
@@ -0,0 +1,22 @@
+Index: xorg-server-1.3.0.0/Xext/security.c
+===================================================================
+--- xorg-server-1.3.0.0.orig/Xext/security.c
++++ xorg-server-1.3.0.0/Xext/security.c
+@@ -1567,7 +1567,7 @@ SecurityLoadPropertyAccessList(void)
+ return;
+
+ #ifndef __UNIXOS2__
+- f = fopen(SecurityPolicyFile, "r");
++ f = Fopen(SecurityPolicyFile, "r");
+ #else
+ f = fopen((char*)__XOS2RedirRoot(SecurityPolicyFile), "r");
+ #endif
+@@ -1653,7 +1653,7 @@ SecurityLoadPropertyAccessList(void)
+ }
+ #endif /* PROPDEBUG */
+
+- fclose(f);
++ Fclose(f);
+ } /* SecurityLoadPropertyAccessList */
+
+
diff --git a/x11-base/xorg-server/files/1.3.0.0-fix-dual-head-screen-resolutions.patch b/x11-base/xorg-server/files/1.3.0.0-fix-dual-head-screen-resolutions.patch
new file mode 100644
index 0000000..c5b9571
--- /dev/null
+++ b/x11-base/xorg-server/files/1.3.0.0-fix-dual-head-screen-resolutions.patch
@@ -0,0 +1,49 @@
+Title : x11-base/xorg-server-1.3.0.0 uses wrong screen resolutions on a dual-head systems
+Assignee : x11@gentoo.org
+Reported : 2007-05-23 16:53 0000
+Updated : 2007-10-02 19:39:28 0000
+Status : NEW
+Severity : normal
+Priority : P2
+Reporter : jouni.rinne@pp1.inet.fi
+Product : Gentoo Linux
+Component : Server
+Keywords : Inclusion
+CC : bas@lijer.nl
+CC : daniel.pielmeier@googlemail.com
+CC : frlinux@frlinux.net
+CC : ml81@gmx.de
+Comments : 14
+Attachments : 1
+URL : http://bugs.gentoo.org/show_bug.cgi?id=179545
+
+commit 9c80eda826448822328bb678a7d284cc43fffb17
+Author: Adam Jackson <ajax@benzedrine.nwnk.net>
+Date: Wed Apr 25 16:35:04 2007 -0400
+
+ Disable RANDR's fake Xinerama protocol when there's more than one screen.
+
+ ... in the protocol sense. Xinerama doesn't have any provision for more
+ than one protocol screen each with its own geometry.
+
+ Red Hat bug #231257.
+
+diff --git a/randr/rrxinerama.c b/randr/rrxinerama.c
+index 1db27f1..2a57e4e 100644
+--- a/randr/rrxinerama.c
++++ b/randr/rrxinerama.c
+@@ -428,6 +428,14 @@ RRXineramaExtensionInit(void)
+ return;
+ #endif
+
++ /*
++ * Xinerama isn't capable enough to have multiple protocol screens each
++ * with their own output geometry. So if there's more than one protocol
++ * screen, just don't even try.
++ */
++ if (screenInfo.numScreens > 1)
++ return;
++
+ (void) AddExtension(PANORAMIX_PROTOCOL_NAME, 0,0,
+ ProcRRXineramaDispatch,
+ SProcRRXineramaDispatch,
diff --git a/x11-base/xorg-server/files/1.3.0.0-fix-randr-resizing.patch b/x11-base/xorg-server/files/1.3.0.0-fix-randr-resizing.patch
new file mode 100644
index 0000000..4828699
--- /dev/null
+++ b/x11-base/xorg-server/files/1.3.0.0-fix-randr-resizing.patch
@@ -0,0 +1,58 @@
+Title : xorg-server-1.3: desktop does not resize with RandR
+Assignee : x11@gentoo.org
+Reported : 2007-06-30 11:37 0000
+Updated : 2007-10-06 08:32:58 0000
+Status : ASSIGNED
+Severity : normal
+Priority : P2
+Reporter : sascha.lucas@rus.uni-stuttgart.de
+Product : Gentoo Linux
+Component : KDE
+Keywords : Inclusion
+CC : caster@gentoo.org
+CC : chrschmitt@gmail.com
+CC : gentoo@chlhp.de
+CC : kde@gentoo.org
+Comments : 14
+Attachments : 0
+URL : http://bugs.gentoo.org/show_bug.cgi?id=183721
+
+commit c10df5b967d4da4e11786520317e2917de5541fa
+Author: Aaron Plattner <aplattner@nvidia.com>
+Date: Tue Apr 3 15:47:01 2007 -0700
+
+ Swap RRScreenChangeNotifyEvent dimensions when the screen has one crtc and it's rotated.
+
+ RandR 1.1 clients expect the size fields in this event to be the unrotated
+ dimensions of the screen. This behavior is "weird", but that's the way the old
+ code worked so we need to be bug-compatible with it.
+
+diff --git a/randr/rrscreen.c b/randr/rrscreen.c
+index ad74ac3..f83fce3 100644
+--- a/randr/rrscreen.c
++++ b/randr/rrscreen.c
+@@ -116,11 +116,19 @@ RRDeliverScreenEvent (ClientPtr client, WindowPtr pWin, ScreenPtr pScreen)
+
+ se.sequenceNumber = client->sequence;
+ se.sizeID = RR10CurrentSizeID (pScreen);
+-
+- se.widthInPixels = pScreen->width;
+- se.heightInPixels = pScreen->height;
+- se.widthInMillimeters = pScreen->mmWidth;
+- se.heightInMillimeters = pScreen->mmHeight;
++
++ if (se.rotation & (RR_Rotate_90 | RR_Rotate_270)) {
++ se.widthInPixels = pScreen->height;
++ se.heightInPixels = pScreen->width;
++ se.widthInMillimeters = pScreen->mmHeight;
++ se.heightInMillimeters = pScreen->mmWidth;
++ } else {
++ se.widthInPixels = pScreen->width;
++ se.heightInPixels = pScreen->height;
++ se.widthInMillimeters = pScreen->mmWidth;
++ se.heightInMillimeters = pScreen->mmHeight;
++ }
++
+ WriteEventsToClient (client, 1, (xEvent *) &se);
+ }
+
diff --git a/x11-base/xorg-server/files/1.3.0.0-fix-xephyr-amd64-segfault.patch b/x11-base/xorg-server/files/1.3.0.0-fix-xephyr-amd64-segfault.patch
new file mode 100644
index 0000000..c8fdfed
--- /dev/null
+++ b/x11-base/xorg-server/files/1.3.0.0-fix-xephyr-amd64-segfault.patch
@@ -0,0 +1,45 @@
+Title : x11-base/xorg-server-1.3.0.0 Xephyr segfaults on startup on amd64
+Assignee : x11@gentoo.org
+Reported : 2007-09-20 17:22 0000
+Updated : 2007-09-20 17:52:21 0000
+Status : NEW
+URL : https://bugs.freedesktop.org/show_bug.cgi?id=11582
+Severity : normal
+Priority : P2
+Reporter : chithanh@cs.tu-berlin.de
+Product : Gentoo Linux
+Component : Server
+Keywords : Inclusion
+Comments : 2
+Attachments : 1
+URL : http://bugs.gentoo.org/show_bug.cgi?id=193207
+
+commit dcc3de91d2b80be98e4488df29ec6b551c7ff6d1
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date: Sat Aug 18 11:50:33 2007 +0200
+
+ Xephyr: fix immediat segfault on amd64
+
+ This closes bug https://bugs.freedesktop.org/show_bug.cgi?id=11582
+
+diff --git a/hw/kdrive/ephyr/hostx.c b/hw/kdrive/ephyr/hostx.c
+index d0a2f2f..12118da 100644
+--- a/hw/kdrive/ephyr/hostx.c
++++ b/hw/kdrive/ephyr/hostx.c
+@@ -40,6 +40,7 @@
+ #include <X11/Xatom.h>
+ #include <X11/keysym.h>
+ #include <X11/extensions/XShm.h>
++#include <X11/Xmd.h>
+
+ /*
+ * All xlib calls go here, which gets built as its own .a .
+@@ -79,7 +80,7 @@ static int HostXWantDamageDebug = 0;
+
+ extern KeySym EphyrKeymap[];
+
+-extern KeySym kdKeymap[];
++extern CARD32 kdKeymap[];
+ extern int kdMinScanCode;
+ extern int kdMaxScanCode;
+ extern int kdMinKeyCode;
diff --git a/x11-base/xorg-server/files/1.3.0.0-fix-xkb-openoffice-hangs.patch b/x11-base/xorg-server/files/1.3.0.0-fix-xkb-openoffice-hangs.patch
new file mode 100644
index 0000000..88df93b
--- /dev/null
+++ b/x11-base/xorg-server/files/1.3.0.0-fix-xkb-openoffice-hangs.patch
@@ -0,0 +1,55 @@
+https://bugs.gentoo.org/show_bug.cgi?id=197104
+
+commit a5b8053606d6e786cdcf6734f271acc05f9cc588
+Author: Adam Jackson <ajax@benzedrine.nwnk.net>
+Date: Tue Sep 11 11:37:06 2007 -0400
+
+ Ignore - not just block - SIGALRM around Popen()/Pclose().
+
+ Because our "popen" implementation uses stdio, and because nobody's stdio
+ library is capable of surviving signals, we need to make absolutely sure
+ that we hide the SIGALRM from the smart scheduler. Otherwise, when you
+ open a menu in openoffice, and it recompiles XKB to deal with the
+ accelerators, and you popen xkbcomp because we suck, then the scheduler
+ will tell you you're taking forever doing something stupid, and the
+ wait() code will get confused, and input will hang and your CPU usage
+ slams to 100%. Down, not across.
+
+diff --git a/os/utils.c b/os/utils.c
+index 3bb7dbe..afcaae4 100644
+--- a/os/utils.c
++++ b/os/utils.c
+@@ -1720,6 +1720,8 @@ static struct pid {
+ int pid;
+ } *pidlist;
+
++static sighandler_t old_alarm = NULL; /* XXX horrible awful hack */
++
+ pointer
+ Popen(char *command, char *type)
+ {
+@@ -1741,11 +1743,15 @@ Popen(char *command, char *type)
+ return NULL;
+ }
+
++ /* Ignore the smart scheduler while this is going on */
++ old_alarm = signal(SIGALRM, SIG_IGN);
++
+ switch (pid = fork()) {
+ case -1: /* error */
+ close(pdes[0]);
+ close(pdes[1]);
+ xfree(cur);
++ signal(SIGALRM, old_alarm);
+ return NULL;
+ case 0: /* child */
+ if (setgid(getgid()) == -1)
+@@ -1921,6 +1927,8 @@ Pclose(pointer iop)
+ /* allow EINTR again */
+ OsReleaseSignals ();
+
++ signal(SIGALRM, old_alarm);
++
+ return pid == -1 ? -1 : pstat;
+ }
+
diff --git a/x11-base/xorg-server/files/1.3.0.0-ramdac.patch b/x11-base/xorg-server/files/1.3.0.0-ramdac.patch
new file mode 100644
index 0000000..37ab1b7
--- /dev/null
+++ b/x11-base/xorg-server/files/1.3.0.0-ramdac.patch
@@ -0,0 +1,91 @@
+Title : xorg-server-1.3: xf86-video-s3 - s3_drv.so: undefined symbol: RamDacInit
+Assignee : x11@gentoo.org
+Reported : 2007-09-12 15:53 0000
+Updated : 2007-10-06 08:34:19 0000
+Status : NEW
+Severity : normal
+Priority : P2
+Reporter : dpblnt@gmail.com
+Product : Gentoo Linux
+Component : Applications
+Keywords : Inclusion
+Comments : 3
+Attachments : 1
+URL : http://bugs.gentoo.org/show_bug.cgi?id=192312
+
+commit 3c6f1428489c1f71acd41066ea73ef4ae7c60f17
+Author: Julien Cristau <jcristau@debian.org>
+Date: Tue May 29 22:01:30 2007 -0400
+
+ Make sure that the ramdac symbols are present in the server
+
+ The former ramdac module is now built into the server, so its symbols need to
+ be explicitly exported to drivers (Debian #423129).
+
+diff --git a/hw/xfree86/loader/xf86sym.c b/hw/xfree86/loader/xf86sym.c
+index 5175f01..6535e4c 100644
+--- a/hw/xfree86/loader/xf86sym.c
++++ b/hw/xfree86/loader/xf86sym.c
+@@ -96,6 +96,11 @@
+ #endif
+ #include "xf86DDC.h"
+ #include "edid.h"
++#include "xf86Cursor.h"
++#include "xf86RamDac.h"
++#include "BT.h"
++#include "IBM.h"
++#include "TI.h"
+
+ #ifndef HAS_GLIBC_SIGSETJMP
+ #if defined(setjmp) && defined(__GNU_LIBRARY__) && \
+@@ -1255,4 +1260,50 @@ _X_HIDDEN void *xfree86LookupTab[] = {
+ SYMFUNC(xf86I2CWriteRead)
+ SYMFUNC(xf86I2CWriteVec)
+ SYMFUNC(xf86I2CWriteWord)
++
++ /* ramdac/xf86RamDac.c */
++ SYMFUNC(RamDacCreateInfoRec)
++ SYMFUNC(RamDacHelperCreateInfoRec)
++ SYMFUNC(RamDacDestroyInfoRec)
++ SYMFUNC(RamDacHelperDestroyInfoRec)
++ SYMFUNC(RamDacInit)
++ SYMFUNC(RamDacHandleColormaps)
++ SYMFUNC(RamDacFreeRec)
++ SYMFUNC(RamDacGetHWIndex)
++ SYMVAR(RamDacHWPrivateIndex)
++ SYMVAR(RamDacScreenPrivateIndex)
++
++ /* ramdac/xf86Cursor.c */
++ SYMFUNC(xf86InitCursor)
++ SYMFUNC(xf86CreateCursorInfoRec)
++ SYMFUNC(xf86DestroyCursorInfoRec)
++ SYMFUNC(xf86ForceHWCursor)
++
++ /* ramdac/BT.c */
++ SYMFUNC(BTramdacProbe)
++ SYMFUNC(BTramdacSave)
++ SYMFUNC(BTramdacRestore)
++ SYMFUNC(BTramdacSetBpp)
++
++ /* ramdac/IBM.c */
++ SYMFUNC(IBMramdacProbe)
++ SYMFUNC(IBMramdacSave)
++ SYMFUNC(IBMramdacRestore)
++ SYMFUNC(IBMramdac526SetBpp)
++ SYMFUNC(IBMramdac640SetBpp)
++ SYMFUNC(IBMramdac526CalculateMNPCForClock)
++ SYMFUNC(IBMramdac640CalculateMNPCForClock)
++ SYMFUNC(IBMramdac526HWCursorInit)
++ SYMFUNC(IBMramdac640HWCursorInit)
++ SYMFUNC(IBMramdac526SetBppWeak)
++
++ /* ramdac/TI.c */
++ SYMFUNC(TIramdacCalculateMNPForClock)
++ SYMFUNC(TIramdacProbe)
++ SYMFUNC(TIramdacSave)
++ SYMFUNC(TIramdacRestore)
++ SYMFUNC(TIramdac3026SetBpp)
++ SYMFUNC(TIramdac3030SetBpp)
++ SYMFUNC(TIramdacHWCursorInit)
++ SYMFUNC(TIramdacLoadPalette)
+ };
diff --git a/x11-base/xorg-server/files/1.4-0001-Fix-for-CVE-2007-5760-XFree86-Misc-extension-out-o.patch b/x11-base/xorg-server/files/1.4-0001-Fix-for-CVE-2007-5760-XFree86-Misc-extension-out-o.patch
new file mode 100644
index 0000000..54dead0
--- /dev/null
+++ b/x11-base/xorg-server/files/1.4-0001-Fix-for-CVE-2007-5760-XFree86-Misc-extension-out-o.patch
@@ -0,0 +1,27 @@
+From 59a3b83922c810316a374a19484b24901c7437ae Mon Sep 17 00:00:00 2001
+From: Matthieu Herrb <matthieu@bluenote.herrb.com>
+Date: Thu, 17 Jan 2008 15:26:41 +0100
+Subject: [PATCH] Fix for CVE-2007-5760 - XFree86 Misc extension out of bounds array index
+
+---
+ hw/xfree86/common/xf86MiscExt.c | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+diff --git a/hw/xfree86/common/xf86MiscExt.c b/hw/xfree86/common/xf86MiscExt.c
+index c1b9c60..40c196a 100644
+--- a/hw/xfree86/common/xf86MiscExt.c
++++ b/hw/xfree86/common/xf86MiscExt.c
+@@ -548,6 +548,10 @@ MiscExtPassMessage(int scrnIndex, const char *msgtype, const char *msgval,
+ {
+ ScrnInfoPtr pScr = xf86Screens[scrnIndex];
+
++ /* should check this in the protocol, but xf86NumScreens isn't exported */
++ if (scrnIndex >= xf86NumScreens)
++ return BadValue;
++
+ if (*pScr->HandleMessage == NULL)
+ return BadImplementation;
+ return (*pScr->HandleMessage)(scrnIndex, msgtype, msgval, retstr);
+--
+1.5.3.5
+
diff --git a/x11-base/xorg-server/files/1.4-0002-Fix-for-CVE-2007-6428-TOG-cup-extension-memory-cor.patch b/x11-base/xorg-server/files/1.4-0002-Fix-for-CVE-2007-6428-TOG-cup-extension-memory-cor.patch
new file mode 100644
index 0000000..a72ce3c
--- /dev/null
+++ b/x11-base/xorg-server/files/1.4-0002-Fix-for-CVE-2007-6428-TOG-cup-extension-memory-cor.patch
@@ -0,0 +1,26 @@
+From 4848d49d05a318559afe7a17a19ba055947ee1f5 Mon Sep 17 00:00:00 2001
+From: Matthieu Herrb <matthieu@bluenote.herrb.com>
+Date: Thu, 17 Jan 2008 15:28:03 +0100
+Subject: [PATCH] Fix for CVE-2007-6428 - TOG-cup extension memory corruption.
+
+---
+ Xext/cup.c | 3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+diff --git a/Xext/cup.c b/Xext/cup.c
+index 6bfa278..781b9ce 100644
+--- a/Xext/cup.c
++++ b/Xext/cup.c
+@@ -196,6 +196,9 @@ int ProcGetReservedColormapEntries(
+
+ REQUEST_SIZE_MATCH (xXcupGetReservedColormapEntriesReq);
+
++ if (stuff->screen >= screenInfo.numScreens)
++ return BadValue;
++
+ #ifndef HAVE_SPECIAL_DESKTOP_COLORS
+ citems[CUP_BLACK_PIXEL].pixel =
+ screenInfo.screens[stuff->screen]->blackPixel;
+--
+1.5.3.5
+
diff --git a/x11-base/xorg-server/files/1.4-0003-Fix-for-CVE-2007-6427-Xinput-extension-memory-corr.patch b/x11-base/xorg-server/files/1.4-0003-Fix-for-CVE-2007-6427-Xinput-extension-memory-corr.patch
new file mode 100644
index 0000000..ffbf8ac
--- /dev/null
+++ b/x11-base/xorg-server/files/1.4-0003-Fix-for-CVE-2007-6427-Xinput-extension-memory-corr.patch
@@ -0,0 +1,262 @@
+From d244c8272e0ac47c41a9416e37293903b842a78b Mon Sep 17 00:00:00 2001
+From: Matthieu Herrb <matthieu@bluenote.herrb.com>
+Date: Thu, 17 Jan 2008 15:27:34 +0100
+Subject: [PATCH] Fix for CVE-2007-6427 - Xinput extension memory corruption.
+
+---
+ Xi/chgfctl.c | 7 +------
+ Xi/chgkmap.c | 13 ++++++-------
+ Xi/chgprop.c | 10 +++-------
+ Xi/grabdev.c | 12 +++++-------
+ Xi/grabdevb.c | 10 +++-------
+ Xi/grabdevk.c | 9 ++-------
+ Xi/selectev.c | 11 ++++-------
+ Xi/sendexev.c | 14 ++++++++------
+ 8 files changed, 32 insertions(+), 54 deletions(-)
+
+diff --git a/Xi/chgfctl.c b/Xi/chgfctl.c
+index 2e0e13c..235d659 100644
+--- a/Xi/chgfctl.c
++++ b/Xi/chgfctl.c
+@@ -327,18 +327,13 @@ ChangeStringFeedback(ClientPtr client, DeviceIntPtr dev,
+ xStringFeedbackCtl * f)
+ {
+ char n;
+- long *p;
+ int i, j;
+ KeySym *syms, *sup_syms;
+
+ syms = (KeySym *) (f + 1);
+ if (client->swapped) {
+ swaps(&f->length, n); /* swapped num_keysyms in calling proc */
+- p = (long *)(syms);
+- for (i = 0; i < f->num_keysyms; i++) {
+- swapl(p, n);
+- p++;
+- }
++ SwapLongs((CARD32 *) syms, f->num_keysyms);
+ }
+
+ if (f->num_keysyms > s->ctrl.max_symbols) {
+diff --git a/Xi/chgkmap.c b/Xi/chgkmap.c
+index eac520f..f8f85bc 100644
+--- a/Xi/chgkmap.c
++++ b/Xi/chgkmap.c
+@@ -79,18 +79,14 @@ int
+ SProcXChangeDeviceKeyMapping(ClientPtr client)
+ {
+ char n;
+- long *p;
+- int i, count;
++ unsigned int count;
+
+ REQUEST(xChangeDeviceKeyMappingReq);
+ swaps(&stuff->length, n);
+ REQUEST_AT_LEAST_SIZE(xChangeDeviceKeyMappingReq);
+- p = (long *)&stuff[1];
+ count = stuff->keyCodes * stuff->keySymsPerKeyCode;
+- for (i = 0; i < count; i++) {
+- swapl(p, n);
+- p++;
+- }
++ REQUEST_FIXED_SIZE(xChangeDeviceKeyMappingReq, count * sizeof(CARD32));
++ SwapLongs((CARD32 *) (&stuff[1]), count);
+ return (ProcXChangeDeviceKeyMapping(client));
+ }
+
+@@ -106,10 +102,13 @@ ProcXChangeDeviceKeyMapping(ClientPtr client)
+ int ret;
+ unsigned len;
+ DeviceIntPtr dev;
++ unsigned int count;
+
+ REQUEST(xChangeDeviceKeyMappingReq);
+ REQUEST_AT_LEAST_SIZE(xChangeDeviceKeyMappingReq);
+
++ count = stuff->keyCodes * stuff->keySymsPerKeyCode;
++ REQUEST_FIXED_SIZE(xChangeDeviceKeyMappingReq, count * sizeof(CARD32));
+ dev = LookupDeviceIntRec(stuff->deviceid);
+ if (dev == NULL) {
+ SendErrorToClient(client, IReqCode, X_ChangeDeviceKeyMapping, 0,
+diff --git a/Xi/chgprop.c b/Xi/chgprop.c
+index 59a93c6..21bda5b 100644
+--- a/Xi/chgprop.c
++++ b/Xi/chgprop.c
+@@ -81,19 +81,15 @@ int
+ SProcXChangeDeviceDontPropagateList(ClientPtr client)
+ {
+ char n;
+- long *p;
+- int i;
+
+ REQUEST(xChangeDeviceDontPropagateListReq);
+ swaps(&stuff->length, n);
+ REQUEST_AT_LEAST_SIZE(xChangeDeviceDontPropagateListReq);
+ swapl(&stuff->window, n);
+ swaps(&stuff->count, n);
+- p = (long *)&stuff[1];
+- for (i = 0; i < stuff->count; i++) {
+- swapl(p, n);
+- p++;
+- }
++ REQUEST_FIXED_SIZE(xChangeDeviceDontPropagateListReq,
++ stuff->count * sizeof(CARD32));
++ SwapLongs((CARD32 *) (&stuff[1]), stuff->count);
+ return (ProcXChangeDeviceDontPropagateList(client));
+ }
+
+diff --git a/Xi/grabdev.c b/Xi/grabdev.c
+index e2809ef..d0b4ae7 100644
+--- a/Xi/grabdev.c
++++ b/Xi/grabdev.c
+@@ -82,8 +82,6 @@ int
+ SProcXGrabDevice(ClientPtr client)
+ {
+ char n;
+- long *p;
+- int i;
+
+ REQUEST(xGrabDeviceReq);
+ swaps(&stuff->length, n);
+@@ -91,11 +89,11 @@ SProcXGrabDevice(ClientPtr client)
+ swapl(&stuff->grabWindow, n);
+ swapl(&stuff->time, n);
+ swaps(&stuff->event_count, n);
+- p = (long *)&stuff[1];
+- for (i = 0; i < stuff->event_count; i++) {
+- swapl(p, n);
+- p++;
+- }
++
++ if (stuff->length != (sizeof(xGrabDeviceReq) >> 2) + stuff->event_count)
++ return BadLength;
++
++ SwapLongs((CARD32 *) (&stuff[1]), stuff->event_count);
+
+ return (ProcXGrabDevice(client));
+ }
+diff --git a/Xi/grabdevb.c b/Xi/grabdevb.c
+index df62d0c..18db1f7 100644
+--- a/Xi/grabdevb.c
++++ b/Xi/grabdevb.c
+@@ -80,8 +80,6 @@ int
+ SProcXGrabDeviceButton(ClientPtr client)
+ {
+ char n;
+- long *p;
+- int i;
+
+ REQUEST(xGrabDeviceButtonReq);
+ swaps(&stuff->length, n);
+@@ -89,11 +87,9 @@ SProcXGrabDeviceButton(ClientPtr client)
+ swapl(&stuff->grabWindow, n);
+ swaps(&stuff->modifiers, n);
+ swaps(&stuff->event_count, n);
+- p = (long *)&stuff[1];
+- for (i = 0; i < stuff->event_count; i++) {
+- swapl(p, n);
+- p++;
+- }
++ REQUEST_FIXED_SIZE(xGrabDeviceButtonReq,
++ stuff->event_count * sizeof(CARD32));
++ SwapLongs((CARD32 *) (&stuff[1]), stuff->event_count);
+
+ return (ProcXGrabDeviceButton(client));
+ }
+diff --git a/Xi/grabdevk.c b/Xi/grabdevk.c
+index b74592f..429b2f7 100644
+--- a/Xi/grabdevk.c
++++ b/Xi/grabdevk.c
+@@ -80,8 +80,6 @@ int
+ SProcXGrabDeviceKey(ClientPtr client)
+ {
+ char n;
+- long *p;
+- int i;
+
+ REQUEST(xGrabDeviceKeyReq);
+ swaps(&stuff->length, n);
+@@ -89,11 +87,8 @@ SProcXGrabDeviceKey(ClientPtr client)
+ swapl(&stuff->grabWindow, n);
+ swaps(&stuff->modifiers, n);
+ swaps(&stuff->event_count, n);
+- p = (long *)&stuff[1];
+- for (i = 0; i < stuff->event_count; i++) {
+- swapl(p, n);
+- p++;
+- }
++ REQUEST_FIXED_SIZE(xGrabDeviceKeyReq, stuff->event_count * sizeof(CARD32));
++ SwapLongs((CARD32 *) (&stuff[1]), stuff->event_count);
+ return (ProcXGrabDeviceKey(client));
+ }
+
+diff --git a/Xi/selectev.c b/Xi/selectev.c
+index d52db1b..19415c5 100644
+--- a/Xi/selectev.c
++++ b/Xi/selectev.c
+@@ -131,19 +131,16 @@ int
+ SProcXSelectExtensionEvent(ClientPtr client)
+ {
+ char n;
+- long *p;
+- int i;
+
+ REQUEST(xSelectExtensionEventReq);
+ swaps(&stuff->length, n);
+ REQUEST_AT_LEAST_SIZE(xSelectExtensionEventReq);
+ swapl(&stuff->window, n);
+ swaps(&stuff->count, n);
+- p = (long *)&stuff[1];
+- for (i = 0; i < stuff->count; i++) {
+- swapl(p, n);
+- p++;
+- }
++ REQUEST_FIXED_SIZE(xSelectExtensionEventReq,
++ stuff->count * sizeof(CARD32));
++ SwapLongs((CARD32 *) (&stuff[1]), stuff->count);
++
+ return (ProcXSelectExtensionEvent(client));
+ }
+
+diff --git a/Xi/sendexev.c b/Xi/sendexev.c
+index eac9abe..9803cf3 100644
+--- a/Xi/sendexev.c
++++ b/Xi/sendexev.c
+@@ -83,7 +83,7 @@ int
+ SProcXSendExtensionEvent(ClientPtr client)
+ {
+ char n;
+- long *p;
++ CARD32 *p;
+ int i;
+ xEvent eventT;
+ xEvent *eventP;
+@@ -94,6 +94,11 @@ SProcXSendExtensionEvent(ClientPtr client)
+ REQUEST_AT_LEAST_SIZE(xSendExtensionEventReq);
+ swapl(&stuff->destination, n);
+ swaps(&stuff->count, n);
++
++ if (stuff->length != (sizeof(xSendExtensionEventReq) >> 2) + stuff->count +
++ (stuff->num_events * (sizeof(xEvent) >> 2)))
++ return BadLength;
++
+ eventP = (xEvent *) & stuff[1];
+ for (i = 0; i < stuff->num_events; i++, eventP++) {
+ proc = EventSwapVector[eventP->u.u.type & 0177];
+@@ -103,11 +108,8 @@ SProcXSendExtensionEvent(ClientPtr client)
+ *eventP = eventT;
+ }
+
+- p = (long *)(((xEvent *) & stuff[1]) + stuff->num_events);
+- for (i = 0; i < stuff->count; i++) {
+- swapl(p, n);
+- p++;
+- }
++ p = (CARD32 *)(((xEvent *) & stuff[1]) + stuff->num_events);
++ SwapLongs(p, stuff->count);
+ return (ProcXSendExtensionEvent(client));
+ }
+
+--
+1.5.3.5
+
diff --git a/x11-base/xorg-server/files/1.4-0004-Fix-for-CVE-2007-6429-MIT-SHM-and-EVI-extensions-i.patch b/x11-base/xorg-server/files/1.4-0004-Fix-for-CVE-2007-6429-MIT-SHM-and-EVI-extensions-i.patch
new file mode 100644
index 0000000..ac66b4d
--- /dev/null
+++ b/x11-base/xorg-server/files/1.4-0004-Fix-for-CVE-2007-6429-MIT-SHM-and-EVI-extensions-i.patch
@@ -0,0 +1,210 @@
+From 8b14f7b74284900b95a319ec80c4333e63af2296 Mon Sep 17 00:00:00 2001
+From: Matthieu Herrb <matthieu@bluenote.herrb.com>
+Date: Thu, 17 Jan 2008 15:28:42 +0100
+Subject: [PATCH] Fix for CVE-2007-6429 - MIT-SHM and EVI extensions integer overflows.
+
+---
+ Xext/EVI.c | 15 ++++++++++++++-
+ Xext/sampleEVI.c | 29 ++++++++++++++++++++++++-----
+ Xext/shm.c | 46 ++++++++++++++++++++++++++++++++++++++--------
+ 3 files changed, 76 insertions(+), 14 deletions(-)
+
+diff --git a/Xext/EVI.c b/Xext/EVI.c
+index 8fe3481..13bd32a 100644
+--- a/Xext/EVI.c
++++ b/Xext/EVI.c
+@@ -34,6 +34,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ #include <X11/extensions/XEVIstr.h>
+ #include "EVIstruct.h"
+ #include "modinit.h"
++#include "scrnintstr.h"
+
+ #if 0
+ static unsigned char XEVIReqCode = 0;
+@@ -87,10 +88,22 @@ ProcEVIGetVisualInfo(ClientPtr client)
+ {
+ REQUEST(xEVIGetVisualInfoReq);
+ xEVIGetVisualInfoReply rep;
+- int n, n_conflict, n_info, sz_info, sz_conflict;
++ int i, n, n_conflict, n_info, sz_info, sz_conflict;
+ VisualID32 *conflict;
++ unsigned int total_visuals = 0;
+ xExtendedVisualInfo *eviInfo;
+ int status;
++
++ /*
++ * do this first, otherwise REQUEST_FIXED_SIZE can overflow. we assume
++ * here that you don't have more than 2^32 visuals over all your screens;
++ * this seems like a safe assumption.
++ */
++ for (i = 0; i < screenInfo.numScreens; i++)
++ total_visuals += screenInfo.screens[i]->numVisuals;
++ if (stuff->n_visual > total_visuals)
++ return BadValue;
++
+ REQUEST_FIXED_SIZE(xEVIGetVisualInfoReq, stuff->n_visual * sz_VisualID32);
+ status = eviPriv->getVisualInfo((VisualID32 *)&stuff[1], (int)stuff->n_visual,
+ &eviInfo, &n_info, &conflict, &n_conflict);
+diff --git a/Xext/sampleEVI.c b/Xext/sampleEVI.c
+index 7508aa7..b871bfd 100644
+--- a/Xext/sampleEVI.c
++++ b/Xext/sampleEVI.c
+@@ -34,6 +34,13 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ #include <X11/extensions/XEVIstr.h>
+ #include "EVIstruct.h"
+ #include "scrnintstr.h"
++
++#if HAVE_STDINT_H
++#include <stdint.h>
++#elif !defined(UINT32_MAX)
++#define UINT32_MAX 0xffffffffU
++#endif
++
+ static int sampleGetVisualInfo(
+ VisualID32 *visual,
+ int n_visual,
+@@ -42,24 +49,36 @@ static int sampleGetVisualInfo(
+ VisualID32 **conflict_rn,
+ int *n_conflict_rn)
+ {
+- int max_sz_evi = n_visual * sz_xExtendedVisualInfo * screenInfo.numScreens;
++ unsigned int max_sz_evi;
+ VisualID32 *temp_conflict;
+ xExtendedVisualInfo *evi;
+- int max_visuals = 0, max_sz_conflict, sz_conflict = 0;
++ unsigned int max_visuals = 0, max_sz_conflict, sz_conflict = 0;
+ register int visualI, scrI, sz_evi = 0, conflictI, n_conflict;
+- *evi_rn = evi = (xExtendedVisualInfo *)xalloc(max_sz_evi);
+- if (!*evi_rn)
+- return BadAlloc;
++
++ if (n_visual > UINT32_MAX/(sz_xExtendedVisualInfo * screenInfo.numScreens))
++ return BadAlloc;
++ max_sz_evi = n_visual * sz_xExtendedVisualInfo * screenInfo.numScreens;
++
+ for (scrI = 0; scrI < screenInfo.numScreens; scrI++) {
+ if (screenInfo.screens[scrI]->numVisuals > max_visuals)
+ max_visuals = screenInfo.screens[scrI]->numVisuals;
+ }
++
++ if (n_visual > UINT32_MAX/(sz_VisualID32 * screenInfo.numScreens
++ * max_visuals))
++ return BadAlloc;
+ max_sz_conflict = n_visual * sz_VisualID32 * screenInfo.numScreens * max_visuals;
++
++ *evi_rn = evi = (xExtendedVisualInfo *)xalloc(max_sz_evi);
++ if (!*evi_rn)
++ return BadAlloc;
++
+ temp_conflict = (VisualID32 *)xalloc(max_sz_conflict);
+ if (!temp_conflict) {
+ xfree(*evi_rn);
+ return BadAlloc;
+ }
++
+ for (scrI = 0; scrI < screenInfo.numScreens; scrI++) {
+ for (visualI = 0; visualI < n_visual; visualI++) {
+ evi[sz_evi].core_visual_id = visual[visualI];
+diff --git a/Xext/shm.c b/Xext/shm.c
+index ac587be..5633be9 100644
+--- a/Xext/shm.c
++++ b/Xext/shm.c
+@@ -711,6 +711,8 @@ ProcPanoramiXShmCreatePixmap(
+ int i, j, result, rc;
+ ShmDescPtr shmdesc;
+ REQUEST(xShmCreatePixmapReq);
++ unsigned int width, height, depth;
++ unsigned long size;
+ PanoramiXRes *newPix;
+
+ REQUEST_SIZE_MATCH(xShmCreatePixmapReq);
+@@ -724,11 +726,26 @@ ProcPanoramiXShmCreatePixmap(
+ return rc;
+
+ VERIFY_SHMPTR(stuff->shmseg, stuff->offset, TRUE, shmdesc, client);
+- if (!stuff->width || !stuff->height)
++
++ width = stuff->width;
++ height = stuff->height;
++ depth = stuff->depth;
++ if (!width || !height || !depth)
+ {
+ client->errorValue = 0;
+ return BadValue;
+ }
++ if (width > 32767 || height > 32767)
++ return BadAlloc;
++ size = PixmapBytePad(width, depth) * height;
++ if (sizeof(size) == 4) {
++ if (size < width * height)
++ return BadAlloc;
++ /* thankfully, offset is unsigned */
++ if (stuff->offset + size < size)
++ return BadAlloc;
++ }
++
+ if (stuff->depth != 1)
+ {
+ pDepth = pDraw->pScreen->allowedDepths;
+@@ -739,9 +756,7 @@ ProcPanoramiXShmCreatePixmap(
+ return BadValue;
+ }
+ CreatePmap:
+- VERIFY_SHMSIZE(shmdesc, stuff->offset,
+- PixmapBytePad(stuff->width, stuff->depth) * stuff->height,
+- client);
++ VERIFY_SHMSIZE(shmdesc, stuff->offset, size, client);
+
+ if(!(newPix = (PanoramiXRes *) xalloc(sizeof(PanoramiXRes))))
+ return BadAlloc;
+@@ -1040,6 +1055,8 @@ ProcShmCreatePixmap(client)
+ register int i, rc;
+ ShmDescPtr shmdesc;
+ REQUEST(xShmCreatePixmapReq);
++ unsigned int width, height, depth;
++ unsigned long size;
+
+ REQUEST_SIZE_MATCH(xShmCreatePixmapReq);
+ client->errorValue = stuff->pid;
+@@ -1052,11 +1069,26 @@ ProcShmCreatePixmap(client)
+ return rc;
+
+ VERIFY_SHMPTR(stuff->shmseg, stuff->offset, TRUE, shmdesc, client);
+- if (!stuff->width || !stuff->height)
++
++ width = stuff->width;
++ height = stuff->height;
++ depth = stuff->depth;
++ if (!width || !height || !depth)
+ {
+ client->errorValue = 0;
+ return BadValue;
+ }
++ if (width > 32767 || height > 32767)
++ return BadAlloc;
++ size = PixmapBytePad(width, depth) * height;
++ if (sizeof(size) == 4) {
++ if (size < width * height)
++ return BadAlloc;
++ /* thankfully, offset is unsigned */
++ if (stuff->offset + size < size)
++ return BadAlloc;
++ }
++
+ if (stuff->depth != 1)
+ {
+ pDepth = pDraw->pScreen->allowedDepths;
+@@ -1067,9 +1099,7 @@ ProcShmCreatePixmap(client)
+ return BadValue;
+ }
+ CreatePmap:
+- VERIFY_SHMSIZE(shmdesc, stuff->offset,
+- PixmapBytePad(stuff->width, stuff->depth) * stuff->height,
+- client);
++ VERIFY_SHMSIZE(shmdesc, stuff->offset, size, client);
+ pMap = (*shmFuncs[pDraw->pScreen->myNum]->CreatePixmap)(
+ pDraw->pScreen, stuff->width,
+ stuff->height, stuff->depth,
+--
+1.5.3.5
+
diff --git a/x11-base/xorg-server/files/1.4-0005-Fix-for-CVE-2008-0006-PCF-Font-parser-buffer-overf.patch b/x11-base/xorg-server/files/1.4-0005-Fix-for-CVE-2008-0006-PCF-Font-parser-buffer-overf.patch
new file mode 100644
index 0000000..bb09eb8
--- /dev/null
+++ b/x11-base/xorg-server/files/1.4-0005-Fix-for-CVE-2008-0006-PCF-Font-parser-buffer-overf.patch
@@ -0,0 +1,30 @@
+From f09b8007e7f6e60e0b9c9665ec632b578ae08b6f Mon Sep 17 00:00:00 2001
+From: Matthieu Herrb <matthieu@bluenote.herrb.com>
+Date: Thu, 17 Jan 2008 15:29:06 +0100
+Subject: [PATCH] Fix for CVE-2008-0006 - PCF Font parser buffer overflow.
+
+---
+ dix/dixfonts.c | 7 +++++++
+ 1 files changed, 7 insertions(+), 0 deletions(-)
+
+diff --git a/dix/dixfonts.c b/dix/dixfonts.c
+index c21b3ec..7bb2404 100644
+--- a/dix/dixfonts.c
++++ b/dix/dixfonts.c
+@@ -325,6 +325,13 @@ doOpenFont(ClientPtr client, OFclosurePtr c)
+ err = BadFontName;
+ goto bail;
+ }
++ /* check values for firstCol, lastCol, firstRow, and lastRow */
++ if (pfont->info.firstCol > pfont->info.lastCol ||
++ pfont->info.firstRow > pfont->info.lastRow ||
++ pfont->info.lastCol - pfont->info.firstCol > 255) {
++ err = AllocError;
++ goto bail;
++ }
+ if (!pfont->fpe)
+ pfont->fpe = fpe;
+ pfont->refcnt++;
+--
+1.5.3.5
+
diff --git a/x11-base/xorg-server/files/1.4-0006-Fix-for-CVE-2007-5958-File-existence-disclosure.patch b/x11-base/xorg-server/files/1.4-0006-Fix-for-CVE-2007-5958-File-existence-disclosure.patch
new file mode 100644
index 0000000..61cc4da
--- /dev/null
+++ b/x11-base/xorg-server/files/1.4-0006-Fix-for-CVE-2007-5958-File-existence-disclosure.patch
@@ -0,0 +1,34 @@
+From 19b95cdd1d14a1e7d1abba1880ab023c96f19bf5 Mon Sep 17 00:00:00 2001
+From: Matthieu Herrb <matthieu@bluenote.herrb.com>
+Date: Thu, 17 Jan 2008 17:03:39 +0100
+Subject: [PATCH] Fix for CVE-2007-5958 - File existence disclosure.
+
+---
+ Xext/security.c | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Xext/security.c b/Xext/security.c
+index ba057de..e9d48c9 100644
+--- a/Xext/security.c
++++ b/Xext/security.c
+@@ -1563,7 +1563,7 @@ SecurityLoadPropertyAccessList(void)
+ if (!SecurityPolicyFile)
+ return;
+
+- f = fopen(SecurityPolicyFile, "r");
++ f = Fopen(SecurityPolicyFile, "r");
+ if (!f)
+ {
+ ErrorF("error opening security policy file %s\n",
+@@ -1646,7 +1646,7 @@ SecurityLoadPropertyAccessList(void)
+ }
+ #endif /* PROPDEBUG */
+
+- fclose(f);
++ Fclose(f);
+ } /* SecurityLoadPropertyAccessList */
+
+
+--
+1.5.3.5
+
diff --git a/x11-base/xorg-server/files/1.4-0007-CVE-2007-6429-Don-t-spuriously-reject-8bpp-shm-pix.patch b/x11-base/xorg-server/files/1.4-0007-CVE-2007-6429-Don-t-spuriously-reject-8bpp-shm-pix.patch
new file mode 100644
index 0000000..903f2be
--- /dev/null
+++ b/x11-base/xorg-server/files/1.4-0007-CVE-2007-6429-Don-t-spuriously-reject-8bpp-shm-pix.patch
@@ -0,0 +1,85 @@
+From e9fa7c1c88a8130a48f772c92b186b8b777986b5 Mon Sep 17 00:00:00 2001
+From: Adam Jackson <ajax@redhat.com>
+Date: Fri, 18 Jan 2008 14:41:20 -0500
+Subject: [PATCH] CVE-2007-6429: Don't spuriously reject <8bpp shm pixmaps.
+
+Move size validation after depth validation, and only validate size if
+the bpp of the pixmap format is > 8. If bpp < 8 then we're already
+protected from overflow by the width and height checks.
+---
+ Xext/shm.c | 36 ++++++++++++++++++++----------------
+ 1 files changed, 20 insertions(+), 16 deletions(-)
+
+diff --git a/Xext/shm.c b/Xext/shm.c
+index c545e49..e46f6fc 100644
+--- a/Xext/shm.c
++++ b/Xext/shm.c
+@@ -783,14 +783,6 @@ ProcPanoramiXShmCreatePixmap(
+ }
+ if (width > 32767 || height > 32767)
+ return BadAlloc;
+- size = PixmapBytePad(width, depth) * height;
+- if (sizeof(size) == 4) {
+- if (size < width * height)
+- return BadAlloc;
+- /* thankfully, offset is unsigned */
+- if (stuff->offset + size < size)
+- return BadAlloc;
+- }
+
+ if (stuff->depth != 1)
+ {
+@@ -801,7 +793,17 @@ ProcPanoramiXShmCreatePixmap(
+ client->errorValue = stuff->depth;
+ return BadValue;
+ }
++
+ CreatePmap:
++ size = PixmapBytePad(width, depth) * height;
++ if (sizeof(size) == 4 && BitsPerPixel(depth) > 8) {
++ if (size < width * height)
++ return BadAlloc;
++ /* thankfully, offset is unsigned */
++ if (stuff->offset + size < size)
++ return BadAlloc;
++ }
++
+ VERIFY_SHMSIZE(shmdesc, stuff->offset, size, client);
+
+ if(!(newPix = (PanoramiXRes *) xalloc(sizeof(PanoramiXRes))))
+@@ -1126,14 +1128,6 @@ ProcShmCreatePixmap(client)
+ }
+ if (width > 32767 || height > 32767)
+ return BadAlloc;
+- size = PixmapBytePad(width, depth) * height;
+- if (sizeof(size) == 4) {
+- if (size < width * height)
+- return BadAlloc;
+- /* thankfully, offset is unsigned */
+- if (stuff->offset + size < size)
+- return BadAlloc;
+- }
+
+ if (stuff->depth != 1)
+ {
+@@ -1144,7 +1138,17 @@ ProcShmCreatePixmap(client)
+ client->errorValue = stuff->depth;
+ return BadValue;
+ }
++
+ CreatePmap:
++ size = PixmapBytePad(width, depth) * height;
++ if (sizeof(size) == 4 && BitsPerPixel(depth) > 8) {
++ if (size < width * height)
++ return BadAlloc;
++ /* thankfully, offset is unsigned */
++ if (stuff->offset + size < size)
++ return BadAlloc;
++ }
++
+ VERIFY_SHMSIZE(shmdesc, stuff->offset, size, client);
+ pMap = (*shmFuncs[pDraw->pScreen->myNum]->CreatePixmap)(
+ pDraw->pScreen, stuff->width,
+--
+1.5.3.8
+
diff --git a/x11-base/xorg-server/files/1.4-0008-CVE-2007-6429-Always-test-for-size-offset-wrapping.patch b/x11-base/xorg-server/files/1.4-0008-CVE-2007-6429-Always-test-for-size-offset-wrapping.patch
new file mode 100644
index 0000000..6e5baf1
--- /dev/null
+++ b/x11-base/xorg-server/files/1.4-0008-CVE-2007-6429-Always-test-for-size-offset-wrapping.patch
@@ -0,0 +1,44 @@
+From be6c17fcf9efebc0bbcc3d9a25f8c5a2450c2161 Mon Sep 17 00:00:00 2001
+From: Matthias Hopf <mhopf@suse.de>
+Date: Mon, 21 Jan 2008 16:13:21 +0100
+Subject: [PATCH] CVE-2007-6429: Always test for size+offset wrapping.
+
+---
+ Xext/shm.c | 12 ++++++------
+ 1 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/Xext/shm.c b/Xext/shm.c
+index e46f6fc..a7a1ecf 100644
+--- a/Xext/shm.c
++++ b/Xext/shm.c
+@@ -799,10 +799,10 @@ CreatePmap:
+ if (sizeof(size) == 4 && BitsPerPixel(depth) > 8) {
+ if (size < width * height)
+ return BadAlloc;
+- /* thankfully, offset is unsigned */
+- if (stuff->offset + size < size)
+- return BadAlloc;
+ }
++ /* thankfully, offset is unsigned */
++ if (stuff->offset + size < size)
++ return BadAlloc;
+
+ VERIFY_SHMSIZE(shmdesc, stuff->offset, size, client);
+
+@@ -1144,10 +1144,10 @@ CreatePmap:
+ if (sizeof(size) == 4 && BitsPerPixel(depth) > 8) {
+ if (size < width * height)
+ return BadAlloc;
+- /* thankfully, offset is unsigned */
+- if (stuff->offset + size < size)
+- return BadAlloc;
+ }
++ /* thankfully, offset is unsigned */
++ if (stuff->offset + size < size)
++ return BadAlloc;
+
+ VERIFY_SHMSIZE(shmdesc, stuff->offset, size, client);
+ pMap = (*shmFuncs[pDraw->pScreen->myNum]->CreatePixmap)(
+--
+1.5.3.8
+
diff --git a/x11-base/xorg-server/files/1.4-0009-Don-t-break-grab-and-focus-state-for-a-window-when-r.patch b/x11-base/xorg-server/files/1.4-0009-Don-t-break-grab-and-focus-state-for-a-window-when-r.patch
new file mode 100644
index 0000000..3a8dbd9
--- /dev/null
+++ b/x11-base/xorg-server/files/1.4-0009-Don-t-break-grab-and-focus-state-for-a-window-when-r.patch
@@ -0,0 +1,40 @@
+From a6a7fadbb03ee99312dfb15ac478ab3c414c1c0b Mon Sep 17 00:00:00 2001
+From: =?utf-8?q?Kristian=20H=C3=B8gsberg?= <krh@redhat.com>
+Date: Wed, 16 Jan 2008 20:24:11 -0500
+Subject: [PATCH] Don't break grab and focus state for a window when redirecting it.
+
+Composite uses an unmap/map cycle to trigger backing pixmap allocation
+and cliprect recomputation when a window is redirected or unredirected.
+To avoid protocol visible side effects, map and unmap events are
+disabled temporarily. However, when a window is unmapped it is also
+removed from grabs and loses focus, but these state changes are not
+disabled.
+
+This change supresses the unmap side effects during the composite
+unmap/map cycle and fixes this bug:
+
+ http://bugzilla.gnome.org/show_bug.cgi?id=488264
+
+where compiz would cause gnome-screensaver to lose its grab when
+compiz unredirects the fullscreen lock window.
+---
+ dix/window.c | 3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+diff --git a/dix/window.c b/dix/window.c
+index 33cf76b..1ccf126 100644
+--- a/dix/window.c
++++ b/dix/window.c
+@@ -2993,7 +2993,8 @@ UnrealizeTree(
+ }
+ #endif
+ (* Unrealize)(pChild);
+- DeleteWindowFromAnyEvents(pChild, FALSE);
++ if (MapUnmapEventsEnabled(pWin))
++ DeleteWindowFromAnyEvents(pChild, FALSE);
+ if (pChild->viewable)
+ {
+ #ifdef DO_SAVE_UNDERS
+--
+1.5.3.8
+
diff --git a/x11-base/xorg-server/files/1.4-dont-hang-openoffice.patch b/x11-base/xorg-server/files/1.4-dont-hang-openoffice.patch
new file mode 100644
index 0000000..9ec79fd
--- /dev/null
+++ b/x11-base/xorg-server/files/1.4-dont-hang-openoffice.patch
@@ -0,0 +1,71 @@
+Title : x11-base/xorg-server-1.3 and 1.4 consumes 100% CPU, locking the ke
+yboard, apparently triggered by opening an OpenOffice pulldown menu
+Assignee : x11@gentoo.org
+Reported : 2007-10-26 03:51 0000
+Updated : 2007-11-07 07:21:56 0000
+Status : NEW
+URL : https://bugs.freedesktop.org/show_bug.cgi?id=10525
+Severity : critical
+Priority : P2
+Reporter : smw@alcor.concordia.ca
+Product : Gentoo Linux
+Component : Server
+Keywords : Inclusion
+CC : tetromino@gmail.com
+Comments : 3
+Attachments : 0
+URL : http://bugs.gentoo.org/show_bug.cgi?id=197104
+
+commit a5b8053606d6e786cdcf6734f271acc05f9cc588
+Author: Adam Jackson <ajax@benzedrine.nwnk.net>
+Date: Tue Sep 11 11:37:06 2007 -0400
+
+ Ignore - not just block - SIGALRM around Popen()/Pclose().
+
+ Because our "popen" implementation uses stdio, and because nobody's stdio
+ library is capable of surviving signals, we need to make absolutely sure
+ that we hide the SIGALRM from the smart scheduler. Otherwise, when you
+ open a menu in openoffice, and it recompiles XKB to deal with the
+ accelerators, and you popen xkbcomp because we suck, then the scheduler
+ will tell you you're taking forever doing something stupid, and the
+ wait() code will get confused, and input will hang and your CPU usage
+ slams to 100%. Down, not across.
+
+diff --git a/os/utils.c b/os/utils.c
+index 3bb7dbe..afcaae4 100644
+--- a/os/utils.c
++++ b/os/utils.c
+@@ -1720,6 +1720,8 @@ static struct pid {
+ int pid;
+ } *pidlist;
+
++static sighandler_t old_alarm = NULL; /* XXX horrible awful hack */
++
+ pointer
+ Popen(char *command, char *type)
+ {
+@@ -1741,11 +1743,15 @@ Popen(char *command, char *type)
+ return NULL;
+ }
+
++ /* Ignore the smart scheduler while this is going on */
++ old_alarm = signal(SIGALRM, SIG_IGN);
++
+ switch (pid = fork()) {
+ case -1: /* error */
+ close(pdes[0]);
+ close(pdes[1]);
+ xfree(cur);
++ signal(SIGALRM, old_alarm);
+ return NULL;
+ case 0: /* child */
+ if (setgid(getgid()) == -1)
+@@ -1921,6 +1927,8 @@ Pclose(pointer iop)
+ /* allow EINTR again */
+ OsReleaseSignals ();
+
++ signal(SIGALRM, old_alarm);
++
+ return pid == -1 ? -1 : pstat;
+ }
+
diff --git a/x11-base/xorg-server/files/1.4-fix-kdrive-automake.patch b/x11-base/xorg-server/files/1.4-fix-kdrive-automake.patch
new file mode 100644
index 0000000..cdc436e
--- /dev/null
+++ b/x11-base/xorg-server/files/1.4-fix-kdrive-automake.patch
@@ -0,0 +1,12 @@
+diff --git a/hw/kdrive/Makefile.am b/hw/kdrive/Makefile.am
+index 5803644..71d3403 100644
+--- a/hw/kdrive/Makefile.am
++++ b/hw/kdrive/Makefile.am
+@@ -1,6 +1,5 @@
+ if KDRIVEVESA
+-VESA_SUBDIRS = vesa ati chips epson i810 mach64 mga nvidia pm2 r128 \
+- smi via
++VESA_SUBDIRS = vesa ati chips epson i810 mach64 mga nvidia pm2 r128 smi via
+ endif
+
+ if BUILD_KDRIVEFBDEVLIB
diff --git a/x11-base/xorg-server/files/1.4.0.90-clean-generated-files.patch b/x11-base/xorg-server/files/1.4.0.90-clean-generated-files.patch
new file mode 100644
index 0000000..ece24eb
--- /dev/null
+++ b/x11-base/xorg-server/files/1.4.0.90-clean-generated-files.patch
@@ -0,0 +1,19 @@
+commit d988da6eee8422774dff364050bf431b843a714a
+Author: Arkadiusz Miskiewicz <arekm@maven.pl>
+Date: Thu Dec 13 00:09:08 2007 +0200
+
+ Xprint: Clean up generated files
+
+ Remember to clean generated wrapper files.
+ (cherry picked from commit 977fcdea8198906936a64b8117e6a6d027c617e3)
+
+diff --git a/hw/xprint/Makefile.am b/hw/xprint/Makefile.am
+index dc8764a..f834966 100644
+--- a/hw/xprint/Makefile.am
++++ b/hw/xprint/Makefile.am
+@@ -41,3 +41,5 @@ Xprt_SOURCES = \
+ $(top_srcdir)/fb/fbcmap_mi.c
+
+ EXTRA_DIST = ValTree.c
++
++CLEANFILES = miinitext-wrapper.c dpmsstubs-wrapper.c
diff --git a/x11-base/xorg-server/files/xorg-conf-example.patch b/x11-base/xorg-server/files/xorg-conf-example.patch
deleted file mode 100644
index 8ec7476..0000000
--- a/x11-base/xorg-server/files/xorg-conf-example.patch
+++ /dev/null
@@ -1,56 +0,0 @@
---- configure.ac.old 2006-09-24 11:30:40.000000000 -0600
-+++ configure.ac 2006-09-24 11:31:11.000000000 -0600
-@@ -806,6 +806,7 @@
-
- AC_DEFINE_DIR(COMPILEDDEFAULTFONTPATH, FONTPATH, [Default font path])
- AC_DEFINE_DIR(RGB_DB, RGBPATH, [Default RGB path])
-+AC_DEFINE_DIR(BASE_FONT_PATH, FONTDIR, [Default base font path])
- AC_DEFINE_DIR(DRI_DRIVER_PATH, DRI_DRIVER_PATH, [Default DRI driver path])
- AC_DEFINE_UNQUOTED(XVENDORNAME, ["$VENDOR_STRING"], [Vendor name])
- AC_DEFINE_UNQUOTED(XVENDORNAMESHORT, ["$VENDOR_STRING_SHORT"], [Short vendor name])
---- hw/xfree86/xorgconf.cpp.old 2006-09-29 19:02:00.000000000 -0600
-+++ hw/xfree86/xorgconf.cpp 2006-09-29 19:02:07.000000000 -0600
-@@ -54,10 +54,7 @@
-
- FontPath LOCALFONTPATH
- FontPath MISCFONTPATH
-- FontPath DPI75USFONTPATH
-- FontPath DPI100USFONTPATH
- FontPath T1FONTPATH
-- FontPath TRUETYPEFONTPATH
-+ FontPath TRUETYPEFONTPATH
- FontPath CIDFONTPATH
-- FontPath SPFONTPATH
- FontPath DPI75FONTPATH
---- hw/xfree86/Makefile.am.old 2006-09-24 11:59:57.000000000 -0600
-+++ hw/xfree86/Makefile.am 2006-09-24 11:59:51.000000000 -0600
-@@ -1,3 +1,5 @@
-+include $(top_srcdir)/cpprules.in
-+
- if DRI
- DRI_SUBDIR = dri
- endif
-@@ -75,7 +77,23 @@
- optionsdir = $(libdir)/X11
- dist_options_DATA = Options
-
-+BUILT_SOURCES = xorg.conf.example
-+CLEAN = xorg.conf.example xorg.conf.example.pre
- EXTRA_DIST = xorgconf.cpp
-
-+CPP_FILES_FLAGS = \
-+ -DRGBPATH=\"$(RGB_DB)\" \
-+ -DLOCALFONTPATH="\"$(BASE_FONT_PATH)/local\"" \
-+ -DMISCFONTPATH="\"$(BASE_FONT_PATH)/misc\"" \
-+ -DT1FONTPATH="\"$(BASE_FONT_PATH)/Type1\"" \
-+ -DTRUETYPEFONTPATH="\"$(BASE_FONT_PATH)/TTF\"" \
-+ -DCIDFONTPATH="\"$(BASE_FONT_PATH)/CID\"" \
-+ -DDPI75FONTPATH="\"$(BASE_FONT_PATH)/75dpi\"" \
-+ -DDPI100FONTPATH="\"$(BASE_FONT_PATH)/100dpi\"" \
-+ -DMODULEPATH=\"$(DEFAULT_MODULE_PATH)\"
-+
- relink:
- rm -f Xorg && $(MAKE) Xorg
-+
-+xorg.conf.example.pre: xorgconf.cpp
-+ cp $< $@
diff --git a/x11-base/xorg-server/files/xorg-server-1.1.1-install-libxf86config-headers.patch b/x11-base/xorg-server/files/xorg-server-1.1.1-install-libxf86config-headers.patch
deleted file mode 100644
index 07b5219..0000000
--- a/x11-base/xorg-server/files/xorg-server-1.1.1-install-libxf86config-headers.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-diff --git a/hw/xfree86/parser/Makefile.am b/hw/xfree86/parser/Makefile.am
-index acda83d..6b9b62a 100644
---- a/hw/xfree86/parser/Makefile.am
-+++ b/hw/xfree86/parser/Makefile.am
-@@ -25,10 +25,12 @@ libxf86config_a_SOURCES = \
-
- AM_CFLAGS = $(XORG_CFLAGS)
-
-+sdk_HEADERS = \
-+ xf86Optrec.h \
-+ xf86Parser.h
-+
- EXTRA_DIST = \
- Configint.h \
- configProcs.h \
-- xf86Optrec.h \
-- xf86Parser.h \
- xf86tokens.h \
- cpconfig.c
diff --git a/x11-base/xorg-server/files/xorg-server-1.2.0-loongson.patch b/x11-base/xorg-server/files/xorg-server-1.2.0-loongson.patch
deleted file mode 100644
index 04ee66e..0000000
--- a/x11-base/xorg-server/files/xorg-server-1.2.0-loongson.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-diff -urN xorg-server-1.1.1.orig/hw/xfree86/dri/sarea.h xorg-server-1.1.1/hw/xfree86/dri/sarea.h
---- xorg-server-1.1.1.orig/hw/xfree86/dri/sarea.h 2006-07-06 02:31:40.000000000 +0800
-+++ xorg-server-1.1.1/hw/xfree86/dri/sarea.h 2007-02-01 14:23:47.000000000 +0800
-@@ -44,6 +44,8 @@
- /* SAREA area needs to be at least a page */
- #if defined(__alpha__)
- #define SAREA_MAX 0x2000
-+#elif defined(__mips__)
-+#define SAREA_MAX 0x4000
- #elif defined(__ia64__)
- #define SAREA_MAX 0x10000 /* 64kB */
- #else
-diff -urN xorg-server-1.1.1.orig/hw/xfree86/os-support/linux/lnx_video.c xorg-server-1.1.1/hw/xfree86/os-support/linux/lnx_video.c
---- xorg-server-1.1.1.orig/hw/xfree86/os-support/linux/lnx_video.c 2007-02-28 21:14:05.000000000 +0800
-+++ xorg-server-1.1.1/hw/xfree86/os-support/linux/lnx_video.c 2007-02-01 12:29:26.000000000 +0800
-@@ -540,9 +540,10 @@
- _X_EXPORT Bool
- xf86EnableIO(void)
- {
--#if defined(__powerpc__)
-+#if defined(__powerpc__) || defined(__mips__)
- int fd;
- unsigned int ioBase_phys;
-+ extern unsigned int IOPortBase;
- #endif
-
- if (ExtendedEnabled)
-@@ -569,7 +570,22 @@
- #endif
- }
- close(fd);
--#elif !defined(__mc68000__) && !defined(__sparc__) && !defined(__mips__) && !defined(__sh__) && !defined(__hppa__)
-+#elif defined(__mips__)
-+ fd = open("/dev/mem", O_RDWR);
-+ IOPortBase = (volatile unsigned char *)mmap(0, 0x20000,
-+ PROT_READ | PROT_WRITE, MAP_SHARED, fd,
-+ 0x1fd00000);
-+ if (IOPortBase == MAP_FAILED) {
-+ xf86Msg(X_WARNING,
-+ "xf86EnableIOPorts: Failed to map iobase (%s)\n",
-+ strerror(errno));
-+ return FALSE;
-+ }
-+ close(fd);
-+ xf86Msg(X_WARNING,
-+ "xf86EnableIOPorts: map iobase (%x)\n",
-+ IOPortBase);
-+#elif !defined(__mc68000__) && !defined(__sparc__) && !defined(__sh__) && !defined(__hppa__)
- if (ioperm(0, 1024, 1) || iopl(3)) {
- if (errno == ENODEV)
- ErrorF("xf86EnableIOPorts: no I/O ports found\n");
diff --git a/x11-base/xorg-server/files/xorg-server-1.4-loongson.patch b/x11-base/xorg-server/files/xorg-server-1.4-loongson.patch
deleted file mode 100644
index 9c48b37..0000000
--- a/x11-base/xorg-server/files/xorg-server-1.4-loongson.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-diff -urN xorg-server-1.1.1.orig/hw/xfree86/dri/sarea.h xorg-server-1.1.1/hw/xfree86/dri/sarea.h
---- xorg-server-1.1.1.orig/hw/xfree86/dri/sarea.h 2006-07-06 02:31:40.000000000 +0800
-+++ xorg-server-1.1.1/hw/xfree86/dri/sarea.h 2007-02-01 14:23:47.000000000 +0800
-@@ -44,6 +44,8 @@
- /* SAREA area needs to be at least a page */
- #if defined(__alpha__)
- #define SAREA_MAX 0x2000
-+#elif defined(__mips__)
-+#define SAREA_MAX 0x4000
- #elif defined(__ia64__)
- #define SAREA_MAX 0x10000 /* 64kB */
- #else
-diff -urN xorg-server-1.1.1.orig/hw/xfree86/os-support/linux/lnx_video.c xorg-server-1.1.1/hw/xfree86/os-support/linux/lnx_video.c
---- xorg-server-1.1.1.orig/hw/xfree86/os-support/linux/lnx_video.c 2007-02-28 21:14:05.000000000 +0800
-+++ xorg-server-1.1.1/hw/xfree86/os-support/linux/lnx_video.c 2007-02-01 12:29:26.000000000 +0800
-@@ -540,9 +540,10 @@
- _X_EXPORT Bool
- xf86EnableIO(void)
- {
--#if defined(__powerpc__)
-+#if defined(__powerpc__) || defined(__mips__)
- int fd;
- unsigned int ioBase_phys;
-+ extern unsigned int IOPortBase;
- #endif
-
- if (ExtendedEnabled)
-@@ -569,7 +570,22 @@
- #endif
- }
- close(fd);
--#elif !defined(__mc68000__) && !defined(__sparc__) && !defined(__mips__) && !defined(__sh__) && !defined(__hppa__) && !defined(__s390__) && !defined(__arm__)
-+#elif defined(__mips__)
-+ fd = open("/dev/mem", O_RDWR);
-+ IOPortBase = (volatile unsigned char *)mmap(0, 0x20000,
-+ PROT_READ | PROT_WRITE, MAP_SHARED, fd,
-+ 0x1fd00000);
-+ if (IOPortBase == MAP_FAILED) {
-+ xf86Msg(X_WARNING,
-+ "xf86EnableIOPorts: Failed to map iobase (%s)\n",
-+ strerror(errno));
-+ return FALSE;
-+ }
-+ close(fd);
-+ xf86Msg(X_WARNING,
-+ "xf86EnableIOPorts: map iobase (%x)\n",
-+ IOPortBase);
-+#elif !defined(__mc68000__) && !defined(__sparc__) && !defined(__mips__) && !defined(__sh__) && !defined(__hppa__) && !defined(__s390__) && !defined(__arm__)
- if (ioperm(0, 1024, 1) || iopl(3)) {
- if (errno == ENODEV)
- ErrorF("xf86EnableIOPorts: no I/O ports found\n");
diff --git a/x11-base/xorg-server/files/xorg-x11-server-1.1.1-mesa-6.5.1.patch b/x11-base/xorg-server/files/xorg-x11-server-1.1.1-mesa-6.5.1.patch
deleted file mode 100644
index 48f4380..0000000
--- a/x11-base/xorg-server/files/xorg-x11-server-1.1.1-mesa-6.5.1.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-diff --git a/GL/mesa/main/Makefile.am b/GL/mesa/main/Makefile.am
-index 867fe57..4d5b0cd 100644
---- a/GL/mesa/main/Makefile.am
-+++ b/GL/mesa/main/Makefile.am
-@@ -29,6 +27,7 @@ nodist_libmain_la_SOURCES = accum.c \
- api_loopback.c \
- api_noop.c \
- api_validate.c \
-+ arrayobj.c \
- attrib.c \
- blend.c \
- bufferobj.c \
-@@ -67,6 +66,7 @@ nodist_libmain_la_SOURCES = accum.c \
- points.c \
- polygon.c \
- rastpos.c \
-+ rbadaptors.c \
- renderbuffer.c \
- state.c \
- stencil.c \
-diff --git a/GL/symlink-mesa.sh b/GL/symlink-mesa.sh
-index ccaa2a9..32f839a 100755
---- a/GL/symlink-mesa.sh
-+++ b/GL/symlink-mesa.sh
-@@ -88,8 +88,11 @@ symlink_mesa_main() {
- action api_noop.h
- action api_validate.c
- action api_validate.h
-+ action arrayobj.c
-+ action arrayobj.h
- action attrib.c
- action attrib.h
-+ action bitset.h
- action blend.c
- action blend.h
- action bufferobj.c
-@@ -168,6 +171,8 @@ symlink_mesa_main() {
- action polygon.h
- action rastpos.c
- action rastpos.h
-+ action rbadaptors.c
-+ action rbadaptors.h
- action renderbuffer.c
- action renderbuffer.h
- action simple_list.h
-@@ -468,7 +468,7 @@ symlink_mesa_shader_slang_library() {
- action slang_core_gc.h
- action slang_fragment_builtin_gc.h
- action slang_shader_syn.h
-- action slang_version_syn.h
-+ action slang_pp_version_syn.h
- action slang_vertex_builtin_gc.h
- }
-
diff --git a/x11-base/xorg-server/files/xorg-xserver-1.2.0-xcmisc.diff b/x11-base/xorg-server/files/xorg-xserver-1.2.0-xcmisc.diff
deleted file mode 100644
index b67d2ee..0000000
--- a/x11-base/xorg-server/files/xorg-xserver-1.2.0-xcmisc.diff
+++ /dev/null
@@ -1,38 +0,0 @@
-diff --git a/Xext/xcmisc.c b/Xext/xcmisc.c
-index f26218e..8c7a86e 100644
---- a/Xext/xcmisc.c
-+++ b/Xext/xcmisc.c
-@@ -42,6 +42,12 @@ #include "swaprep.h"
- #include <X11/extensions/xcmiscstr.h>
- #include "modinit.h"
-
-+#if HAVE_STDINT_H
-+#include <stdint.h>
-+#elif !defined(UINT32_MAX)
-+#define UINT32_MAX 0xffffffffU
-+#endif
-+
- #if 0
- static unsigned char XCMiscCode;
- #endif
-@@ -143,7 +149,10 @@ ProcXCMiscGetXIDList(client)
-
- REQUEST_SIZE_MATCH(xXCMiscGetXIDListReq);
-
-- pids = (XID *)ALLOCATE_LOCAL(stuff->count * sizeof(XID));
-+ if (stuff->count > UINT32_MAX / sizeof(XID))
-+ return BadAlloc;
-+
-+ pids = (XID *)Xalloc(stuff->count * sizeof(XID));
- if (!pids)
- {
- return BadAlloc;
-@@ -164,7 +173,7 @@ ProcXCMiscGetXIDList(client)
- client->pSwapReplyFunc = (ReplySwapPtr) Swap32Write;
- WriteSwappedDataToClient(client, count * sizeof(XID), pids);
- }
-- DEALLOCATE_LOCAL(pids);
-+ Xfree(pids);
- return(client->noClientException);
- }
-
diff --git a/x11-base/xorg-server/xorg-server-1.2.0-r1.ebuild b/x11-base/xorg-server/xorg-server-1.2.0-r1.ebuild
deleted file mode 100644
index b51b108..0000000
--- a/x11-base/xorg-server/xorg-server-1.2.0-r1.ebuild
+++ /dev/null
@@ -1,530 +0,0 @@
-# Copyright 1999-2007 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.2.0-r1.ebuild,v 1.1 2007/02/19 21:34:17 joshuabaergen Exp $
-
-# Must be before x-modular eclass is inherited
-#SNAPSHOT="yes"
-
-inherit x-modular multilib
-
-OPENGL_DIR="xorg-x11"
-
-MESA_PN="Mesa"
-MESA_PV="6.5.2"
-MESA_P="${MESA_PN}-${MESA_PV}"
-MESA_SRC_P="${MESA_PN}Lib-${MESA_PV}"
-
-SRC_URI="${SRC_URI}
- mirror://sourceforge/mesa3d/${MESA_SRC_P}.tar.bz2
- http://xorg.freedesktop.org/releases/individual/xserver/${P}.tar.bz2"
-DESCRIPTION="X.Org X servers"
-# It's suid and has lazy bindings, so FEATURES="stricter" doesn't work
-RESTRICT="stricter"
-KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd"
-IUSE_INPUT_DEVICES="
- input_devices_acecad
- input_devices_aiptek
- input_devices_calcomp
- input_devices_citron
- input_devices_digitaledge
- input_devices_dmc
- input_devices_dynapro
- input_devices_elo2300
- input_devices_elographics
- input_devices_evdev
- input_devices_fpit
- input_devices_hyperpen
- input_devices_jamstudio
- input_devices_joystick
- input_devices_keyboard
- input_devices_magellan
- input_devices_microtouch
- input_devices_mouse
- input_devices_mutouch
- input_devices_palmax
- input_devices_penmount
- input_devices_spaceorb
- input_devices_summa
- input_devices_tek4957
- input_devices_ur98
- input_devices_vmmouse
- input_devices_void
-
- input_devices_synaptics
- input_devices_wacom"
-IUSE_VIDEO_CARDS="
- video_cards_apm
- video_cards_ark
- video_cards_chips
- video_cards_cirrus
- video_cards_cyrix
- video_cards_dummy
- video_cards_epson
- video_cards_fbdev
- video_cards_glint
- video_cards_i128
- video_cards_i740
- video_cards_i810
- video_cards_impact
- video_cards_imstt
- video_cards_mach64
- video_cards_mga
- video_cards_neomagic
- video_cards_newport
- video_cards_nsc
- video_cards_nv
- video_cards_r128
- video_cards_radeon
- video_cards_rendition
- video_cards_s3
- video_cards_s3virge
- video_cards_savage
- video_cards_siliconmotion
- video_cards_sis
- video_cards_sisusb
- video_cards_sunbw2
- video_cards_suncg14
- video_cards_suncg3
- video_cards_suncg6
- video_cards_sunffb
- video_cards_sunleo
- video_cards_suntcx
- video_cards_tdfx
- video_cards_tga
- video_cards_trident
- video_cards_tseng
- video_cards_v4l
- video_cards_vesa
- video_cards_vga
- video_cards_via
- video_cards_vmware
- video_cards_voodoo
-
- video_cards_fglrx
- video_cards_nvidia"
-IUSE_SERVERS="dmx kdrive xorg"
-IUSE="${IUSE_VIDEO_CARDS}
- ${IUSE_INPUT_DEVICES}
- ${IUSE_SERVERS}
- 3dfx
- dri ipv6 minimal nptl sdl xprint"
-RDEPEND=">=x11-libs/libXfont-1.2.5
- x11-libs/xtrans
- x11-libs/libXau
- x11-libs/libXext
- x11-libs/libX11
- x11-libs/libxkbfile
- x11-libs/libXdmcp
- x11-libs/libXmu
- x11-libs/libXrender
- x11-libs/libXi
- media-libs/freetype
- >=media-libs/mesa-6.5.2
- media-fonts/font-adobe-75dpi
- media-fonts/font-misc-misc
- media-fonts/font-cursor-misc
- x11-misc/xbitmaps
- || ( x11-misc/xkeyboard-config x11-misc/xkbdata )
- x11-apps/iceauth
- x11-apps/rgb
- x11-apps/xauth
- x11-apps/xinit
- app-admin/eselect-opengl
- x11-libs/libXaw
- x11-libs/libXpm
- x11-libs/libXxf86misc
- x11-libs/libXxf86vm
- dmx? ( x11-libs/libdmx )
- !minimal? ( x11-libs/libXtst
- x11-libs/libXres )
- >=x11-libs/libxkbui-1.0.2
- x11-libs/liblbxutil
- kdrive? ( sdl? ( media-libs/libsdl ) )"
- # Xres is dmx-dependent, xkbui is xorgcfg-dependent
- # Xaw is dmx- and xorgcfg-dependent
- # Xpm is dmx- and xorgcfg-dependent, pulls in Xt
- # Xxf86misc and Xxf86vm are xorgcfg-dependent
- # liblbxutil is lbx- dependent
-DEPEND="${RDEPEND}
- x11-proto/randrproto
- x11-proto/renderproto
- >=x11-proto/fixesproto-4
- x11-proto/damageproto
- x11-proto/xextproto
- x11-proto/xproto
- x11-proto/xf86dgaproto
- x11-proto/xf86miscproto
- x11-proto/xf86rushproto
- x11-proto/xf86vidmodeproto
- x11-proto/xf86bigfontproto
- >=x11-proto/compositeproto-0.3
- x11-proto/recordproto
- x11-proto/resourceproto
- x11-proto/videoproto
- >=x11-proto/scrnsaverproto-1.1.0
- x11-proto/evieext
- x11-proto/trapproto
- >=x11-proto/xineramaproto-1.1-r1
- x11-proto/fontsproto
- >=x11-proto/kbproto-1.0.3
- x11-proto/inputproto
- x11-proto/bigreqsproto
- x11-proto/xcmiscproto
- >=x11-proto/glproto-1.4.8
- dmx? ( x11-proto/dmxproto )
- dri? ( x11-proto/xf86driproto
- >=x11-libs/libdrm-2.3 )
- xprint? ( x11-proto/printproto
- x11-apps/mkfontdir
- x11-apps/mkfontscale
- x11-apps/xplsprinters )"
-
-# Drivers
-PDEPEND="
- xorg? (
- input_devices_acecad? ( >=x11-drivers/xf86-input-acecad-1.1.0 )
- input_devices_aiptek? ( >=x11-drivers/xf86-input-aiptek-1.0.1 )
- input_devices_calcomp? ( >=x11-drivers/xf86-input-calcomp-1.1.0 )
- input_devices_citron? ( >=x11-drivers/xf86-input-citron-2.2.0 )
- input_devices_digitaledge? ( >=x11-drivers/xf86-input-digitaledge-1.1.0 )
- input_devices_dmc? ( >=x11-drivers/xf86-input-dmc-1.1.0 )
- input_devices_dynapro? ( >=x11-drivers/xf86-input-dynapro-1.1.0 )
- input_devices_elo2300? ( >=x11-drivers/xf86-input-elo2300-1.1.0 )
- input_devices_elographics? ( >=x11-drivers/xf86-input-elographics-1.1.0 )
- input_devices_evdev? ( >=x11-drivers/xf86-input-evdev-1.1.1 )
- input_devices_fpit? ( >=x11-drivers/xf86-input-fpit-1.1.0 )
- input_devices_hyperpen? ( >=x11-drivers/xf86-input-hyperpen-1.1.0 )
- input_devices_jamstudio? ( >=x11-drivers/xf86-input-jamstudio-1.1.0 )
- input_devices_joystick? ( >=x11-drivers/xf86-input-joystick-1.1.0 )
- input_devices_keyboard? ( >=x11-drivers/xf86-input-keyboard-1.1.0 )
- input_devices_magellan? ( >=x11-drivers/xf86-input-magellan-1.1.0 )
- input_devices_microtouch? ( >=x11-drivers/xf86-input-microtouch-1.1.0 )
- input_devices_mouse? ( >=x11-drivers/xf86-input-mouse-1.1.0 )
- input_devices_mutouch? ( >=x11-drivers/xf86-input-mutouch-1.1.0 )
- input_devices_palmax? ( >=x11-drivers/xf86-input-palmax-1.1.0 )
- input_devices_penmount? ( >=x11-drivers/xf86-input-penmount-1.1.0 )
- input_devices_spaceorb? ( >=x11-drivers/xf86-input-spaceorb-1.1.0 )
- input_devices_summa? ( >=x11-drivers/xf86-input-summa-1.1.0 )
- input_devices_tek4957? ( >=x11-drivers/xf86-input-tek4957-1.1.0 )
- input_devices_ur98? ( >=x11-drivers/xf86-input-ur98-1.1.0 )
- input_devices_vmmouse? ( >=x11-drivers/xf86-input-vmmouse-12.4.0 )
- input_devices_void? ( >=x11-drivers/xf86-input-void-1.1.0 )
-
- input_devices_synaptics? ( x11-drivers/synaptics )
- input_devices_wacom? ( x11-drivers/linuxwacom )
-
- video_cards_apm? ( >=x11-drivers/xf86-video-apm-1.1.1 )
- video_cards_ark? ( >=x11-drivers/xf86-video-ark-0.6.0 )
- video_cards_chips? ( >=x11-drivers/xf86-video-chips-1.1.1 )
- video_cards_cirrus? ( >=x11-drivers/xf86-video-cirrus-1.1.0 )
- video_cards_cyrix? ( >=x11-drivers/xf86-video-cyrix-1.1.0 )
- video_cards_dummy? ( >=x11-drivers/xf86-video-dummy-0.2.0 )
- video_cards_fbdev? ( >=x11-drivers/xf86-video-fbdev-0.2.0 )
- video_cards_glint? ( >=x11-drivers/xf86-video-glint-1.1.1 )
- video_cards_i128? ( >=x11-drivers/xf86-video-i128-1.2.0 )
- video_cards_i740? ( >=x11-drivers/xf86-video-i740-1.1.0 )
- video_cards_i810? ( >=x11-drivers/xf86-video-i810-1.6.0 )
- video_cards_impact? ( >=x11-drivers/xf86-video-impact-0.2.0 )
- video_cards_imstt? ( >=x11-drivers/xf86-video-imstt-1.1.0 )
- video_cards_mach64? ( >=x11-drivers/xf86-video-ati-6.6.0 )
- video_cards_mga? ( >=x11-drivers/xf86-video-mga-1.4.1 )
- video_cards_neomagic? ( >=x11-drivers/xf86-video-neomagic-1.1.1 )
- video_cards_newport? ( >=x11-drivers/xf86-video-newport-0.2.0 )
- video_cards_nsc? ( >=x11-drivers/xf86-video-nsc-2.8.1 )
- video_cards_nv? ( >=x11-drivers/xf86-video-nv-1.1.1 )
- video_cards_r128? ( >=x11-drivers/xf86-video-ati-6.6.0 )
- video_cards_radeon? ( >=x11-drivers/xf86-video-ati-6.6.0 )
- video_cards_rendition? ( >=x11-drivers/xf86-video-rendition-4.1.0 )
- video_cards_s3? ( >=x11-drivers/xf86-video-s3-0.4.1 )
- video_cards_s3virge? ( >=x11-drivers/xf86-video-s3virge-1.9.1 )
- video_cards_savage? ( >=x11-drivers/xf86-video-savage-2.1.1 )
- video_cards_siliconmotion? ( >=x11-drivers/xf86-video-siliconmotion-1.4.1 )
- video_cards_sis? ( >=x11-drivers/xf86-video-sis-0.9.1 )
- video_cards_sisusb? ( >=x11-drivers/xf86-video-sisusb-0.8.1 )
- video_cards_sunbw2? ( >=x11-drivers/xf86-video-sunbw2-1.1.0 )
- video_cards_suncg14? ( >=x11-drivers/xf86-video-suncg14-1.1.0 )
- video_cards_suncg3? ( >=x11-drivers/xf86-video-suncg3-1.1.0 )
- video_cards_suncg6? ( >=x11-drivers/xf86-video-suncg6-1.1.0 )
- video_cards_sunffb? ( >=x11-drivers/xf86-video-sunffb-1.1.0 )
- video_cards_sunleo? ( >=x11-drivers/xf86-video-sunleo-1.1.0 )
- video_cards_suntcx? ( >=x11-drivers/xf86-video-suntcx-1.1.0 )
- video_cards_tdfx? ( >=x11-drivers/xf86-video-tdfx-1.2.1 )
- video_cards_tga? ( >=x11-drivers/xf86-video-tga-1.1.0 )
- video_cards_trident? ( >=x11-drivers/xf86-video-trident-1.2.1 )
- video_cards_tseng? ( >=x11-drivers/xf86-video-tseng-1.1.0 )
- video_cards_v4l? ( >=x11-drivers/xf86-video-v4l-0.1.1 )
- video_cards_vesa? ( >=x11-drivers/xf86-video-vesa-1.1.0 )
- video_cards_vga? ( >=x11-drivers/xf86-video-vga-4.1.0 )
- video_cards_via? ( >=x11-drivers/xf86-video-via-0.2.1 )
- video_cards_vmware? ( >=x11-drivers/xf86-video-vmware-10.13.0 )
- video_cards_voodoo? ( >=x11-drivers/xf86-video-voodoo-1.1.0 )
-
- video_cards_tdfx? ( 3dfx? ( >=media-libs/glide-v3-3.10 ) )
- video_cards_fglrx? ( >=x11-drivers/ati-drivers-8.27.10 )
- video_cards_nvidia? ( || (
- >=x11-drivers/nvidia-drivers-1.0.8774
- >=x11-drivers/nvidia-legacy-drivers-1.0.7184
- )
- )
- )"
-LICENSE="${LICENSE} MIT"
-
-PATCHES="${FILESDIR}/${PV}-server-damage-version.patch
- ${FILESDIR}/${PV}-server-randr-version.patch
- ${FILESDIR}/${P}-loongson.patch"
-
-pkg_setup() {
- use minimal || ensure_a_server_is_building
-
- # SDL only available in kdrive build
- if use kdrive && use sdl; then
- conf_opts="${conf_opts} --enable-xsdl"
- else
- conf_opts="${conf_opts} --disable-xsdl"
- fi
-
- # Only Xorg and Xgl support this, and we won't build Xgl
- # until it merges to trunk
- if use xorg; then
- conf_opts="${conf_opts} --with-mesa-source=${WORKDIR}/${MESA_P}"
- fi
-
- # 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
- CONFIGURE_OPTIONS="
- $(use_enable ipv6)
- $(use_enable dmx)
- $(use_enable kdrive)
- $(use_enable !minimal xvfb)
- $(use_enable !minimal xnest)
- $(use_enable !minimal install-libxf86config)
- $(use_enable dri)
- $(use_enable xorg)
- $(use_enable xprint)
- $(use_enable nptl glx-tls)
- $(use_enable !minimal xorgcfg)
- --sysconfdir=/etc/X11
- --localstatedir=/var
- --enable-install-setuid
- --with-fontdir=/usr/share/fonts
- ${conf_opts}"
-
- local diemsg="You must build xorg-server and mesa with the same nptl USE setting."
- if built_with_use media-libs/mesa nptl; then
- use nptl || die "${diemsg}"
- else
- use nptl && die "${diemsg}"
- fi
-
- # (#121394) Causes window corruption
- filter-flags -fweb
-
- # Nothing else provides new enough glxtokens.h
- ewarn "Forcing on xorg-x11 for new enough glxtokens.h..."
- OLD_IMPLEM="$(eselect opengl show)"
- eselect opengl set --impl-headers ${OPENGL_DIR}
-}
-
-src_unpack() {
- x-modular_specs_check
- x-modular_dri_check
- x-modular_unpack_source
- x-modular_patch_source
-
- # Set up kdrive servers to build
- if use kdrive; then
- kdrive_setup
- fi
-
- # Make sure eautoreconf gets run if we need the autoconf/make
- # changes.
- if [[ ${SNAPSHOT} != "yes" ]]; then
- if use kdrive; then
- eautoreconf
- fi
- fi
- x-modular_reconf_source
-}
-
-src_install() {
- x-modular_src_install
-
- dynamic_libgl_install
-
- server_based_install
-
- # Install video mode files for system-config-display
- insinto /usr/share/xorg
- doins hw/xfree86/common/{extra,vesa}modes \
- || die "couldn't install extra modes"
-
- # Bug #151421 - this file is not built with USE="minimal"
- # Bug #151670 - this file is also not build if USE="-xorg"
- if ! use minimal && use xorg; then
- # Install xorg.conf.example
- insinto /etc/X11
- doins hw/xfree86/xorg.conf.example \
- || die "couldn't install xorg.conf.example"
- fi
-}
-
-pkg_postinst() {
- switch_opengl_implem
-
- # Bug #135544
- ewarn "Users of reduced blanking now need:"
- ewarn " Option \"ReducedBlanking\""
- ewarn "In the relevant Monitor section(s)."
- ewarn "Make sure your reduced blanking modelines are safe!"
-}
-
-pkg_postrm() {
- # Get rid of module dir to ensure opengl-update works properly
- if ! has_version x11-base/xorg-server; then
- if [ -e ${ROOT}/usr/$(get_libdir)/xorg/modules ]; then
- rm -rf ${ROOT}/usr/$(get_libdir)/xorg/modules
- fi
- fi
-}
-
-kdrive_setup() {
- local card real_card disable_card kdrive_fbdev kdrive_vesa
-
- einfo "Removing unused kdrive drivers ..."
-
- # Some kdrive servers require fbdev and vesa
- kdrive_fbdev="radeon neomagic sis siliconmotion"
- # Some kdrive servers require just vesa
- kdrive_vesa="chips mach64 mga nv glint r128 via"
-
- for card in ${IUSE_VIDEO_CARDS}; do
- real_card=${card#video_cards_}
-
- # Differences between VIDEO_CARDS name and kdrive server name
- real_card=${real_card/glint/pm2}
- real_card=${real_card/radeon/ati}
- real_card=${real_card/%nv/nvidia}
- real_card=${real_card/siliconmotion/smi}
- real_card=${real_card/%sis/sis300}
-
- disable_card=0
-
- # Check whether it's a valid kdrive server before we waste time
- # on the rest of this
- if ! grep -q -o "\b${real_card}\b" ${S}/hw/kdrive/Makefile.am; then
- continue
- fi
-
- if ! use ${card}; then
- if use x86; then
- # Some kdrive servers require fbdev and vesa
- for i in ${kdrive_fbdev}; do
- if use video_cards_${i}; then
- if [[ ${real_card} = fbdev ]] \
- || [[ ${real_card} = vesa ]]; then
- continue 2 # Don't disable
- fi
- fi
- done
-
- # Some kdrive servers require just vesa
- for i in ${kdrive_vesa}; do
- if use video_cards_${i}; then
- if [[ ${real_card} = vesa ]]; then
- continue 2 # Don't disable
- fi
- fi
- done
- fi
- disable_card=1
- # Bug #150052
- # fbdev is the only VIDEO_CARDS setting that works on non-x86
- elif ! use x86 \
- && [[ ${real_card} != fbdev ]]; then
- ewarn " $real_card does not work on your architecture; disabling."
- disable_card=1
- fi
-
- if [[ $disable_card = 1 ]]; then
- ebegin " ${real_card}"
- sed -i \
- -e "s:\b${real_card}\b::g" \
- ${S}/hw/kdrive/Makefile.am \
- || die "sed of ${real_card} failed"
- eend
- fi
-
- done
-
- # smi and via are the only things on line 2. If line 2 ends up blank,
- # we need to get rid of the backslash at the end of line 1.
- if ! use video_cards_siliconmotion && ! use video_cards_via; then
- sed -i \
- -e "s:^\(VESA_SUBDIRS.*\)\\\:\1:g" \
- ${S}/hw/kdrive/Makefile.am
- fi
-}
-
-dynamic_libgl_install() {
- # next section is to setup the dynamic libGL stuff
- ebegin "Moving GL files for dynamic switching"
- dodir /usr/$(get_libdir)/opengl/${OPENGL_DIR}/extensions
- local x=""
- for x in ${D}/usr/$(get_libdir)/xorg/modules/extensions/libglx*; do
- if [ -f ${x} -o -L ${x} ]; then
- mv -f ${x} ${D}/usr/$(get_libdir)/opengl/${OPENGL_DIR}/extensions
- fi
- done
- eend 0
-}
-
-server_based_install() {
- use xprint && xprint_src_install
-
- if ! use xorg; then
- rm ${D}/usr/share/man/man1/Xserver.1x \
- ${D}/usr/$(get_libdir)/xserver/SecurityPolicy \
- ${D}/usr/$(get_libdir)/pkgconfig/xorg-server.pc \
- ${D}/usr/share/man/man1/Xserver.1x
- fi
-}
-
-switch_opengl_implem() {
- # Switch to the xorg implementation.
- # Use new opengl-update that will not reset user selected
- # OpenGL interface ...
- echo
-# eselect opengl set --use-old ${OPENGL_DIR}
- eselect opengl set ${OLD_IMPLEM}
-}
-
-xprint_src_install() {
- # RH-style init script, we provide a wrapper
- exeinto /usr/$(get_libdir)/misc
- doexe ${S}/hw/xprint/etc/init.d/xprint
- # Install the wrapper
- newinitd ${FILESDIR}/xprint.init xprint
- # Install profile scripts
- insinto /etc/profile.d
- doins ${S}/hw/xprint/etc/profile.d/xprint*
- insinto /etc/X11/xinit/xinitrc.d
- doins ${S}/hw/xprint/etc/Xsession.d/92xprint-xpserverlist
- # Patch profile scripts
- sed -e "s:/bin/sh.*get_xpserverlist:/usr/$(get_libdir)/misc/xprint \
- get_xpserverlist:g" -i ${D}/etc/profile.d/xprint* \
- ${D}/etc/X11/xinit/xinitrc.d/92xprint-xpserverlist
- # Move profile scripts, we can't touch /etc/profile.d/ in Gentoo
- dodoc ${D}/etc/profile.d/xprint*
- rm -f ${D}/etc/profile.d/xprint*
-}
-
-ensure_a_server_is_building() {
- for server in ${IUSE_SERVERS}; do
- use ${server} && return;
- done
- eerror "You need to specify at least one server to build."
- eerror "Valid servers are: ${IUSE_SERVERS}."
- die "No servers were specified to build."
-}
diff --git a/x11-base/xorg-server/xorg-server-1.2.0-r2.ebuild b/x11-base/xorg-server/xorg-server-1.2.0-r2.ebuild
deleted file mode 100644
index a55b6bb..0000000
--- a/x11-base/xorg-server/xorg-server-1.2.0-r2.ebuild
+++ /dev/null
@@ -1,531 +0,0 @@
-# Copyright 1999-2007 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.2.0-r2.ebuild,v 1.1 2007/03/17 00:04:21 joshuabaergen Exp $
-
-# Must be before x-modular eclass is inherited
-#SNAPSHOT="yes"
-
-inherit x-modular multilib
-
-OPENGL_DIR="xorg-x11"
-
-MESA_PN="Mesa"
-MESA_PV="6.5.2"
-MESA_P="${MESA_PN}-${MESA_PV}"
-MESA_SRC_P="${MESA_PN}Lib-${MESA_PV}"
-
-SRC_URI="${SRC_URI}
- mirror://sourceforge/mesa3d/${MESA_SRC_P}.tar.bz2
- http://xorg.freedesktop.org/releases/individual/xserver/${P}.tar.bz2"
-DESCRIPTION="X.Org X servers"
-# It's suid and has lazy bindings, so FEATURES="stricter" doesn't work
-RESTRICT="stricter"
-KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd"
-IUSE_INPUT_DEVICES="
- input_devices_acecad
- input_devices_aiptek
- input_devices_calcomp
- input_devices_citron
- input_devices_digitaledge
- input_devices_dmc
- input_devices_dynapro
- input_devices_elo2300
- input_devices_elographics
- input_devices_evdev
- input_devices_fpit
- input_devices_hyperpen
- input_devices_jamstudio
- input_devices_joystick
- input_devices_keyboard
- input_devices_magellan
- input_devices_microtouch
- input_devices_mouse
- input_devices_mutouch
- input_devices_palmax
- input_devices_penmount
- input_devices_spaceorb
- input_devices_summa
- input_devices_tek4957
- input_devices_ur98
- input_devices_vmmouse
- input_devices_void
-
- input_devices_synaptics
- input_devices_wacom"
-IUSE_VIDEO_CARDS="
- video_cards_apm
- video_cards_ark
- video_cards_chips
- video_cards_cirrus
- video_cards_cyrix
- video_cards_dummy
- video_cards_epson
- video_cards_fbdev
- video_cards_glint
- video_cards_i128
- video_cards_i740
- video_cards_i810
- video_cards_impact
- video_cards_imstt
- video_cards_mach64
- video_cards_mga
- video_cards_neomagic
- video_cards_newport
- video_cards_nsc
- video_cards_nv
- video_cards_r128
- video_cards_radeon
- video_cards_rendition
- video_cards_s3
- video_cards_s3virge
- video_cards_savage
- video_cards_siliconmotion
- video_cards_sis
- video_cards_sisusb
- video_cards_sunbw2
- video_cards_suncg14
- video_cards_suncg3
- video_cards_suncg6
- video_cards_sunffb
- video_cards_sunleo
- video_cards_suntcx
- video_cards_tdfx
- video_cards_tga
- video_cards_trident
- video_cards_tseng
- video_cards_v4l
- video_cards_vesa
- video_cards_vga
- video_cards_via
- video_cards_vmware
- video_cards_voodoo
-
- video_cards_fglrx
- video_cards_nvidia"
-IUSE_SERVERS="dmx kdrive xorg"
-IUSE="${IUSE_VIDEO_CARDS}
- ${IUSE_INPUT_DEVICES}
- ${IUSE_SERVERS}
- 3dfx
- dri ipv6 minimal nptl sdl xprint"
-RDEPEND=">=x11-libs/libXfont-1.2.5
- x11-libs/xtrans
- x11-libs/libXau
- x11-libs/libXext
- x11-libs/libX11
- x11-libs/libxkbfile
- x11-libs/libXdmcp
- x11-libs/libXmu
- x11-libs/libXrender
- x11-libs/libXi
- media-libs/freetype
- >=media-libs/mesa-6.5.2
- media-fonts/font-adobe-75dpi
- media-fonts/font-misc-misc
- media-fonts/font-cursor-misc
- x11-misc/xbitmaps
- || ( x11-misc/xkeyboard-config x11-misc/xkbdata )
- x11-apps/iceauth
- x11-apps/rgb
- x11-apps/xauth
- x11-apps/xinit
- app-admin/eselect-opengl
- x11-libs/libXaw
- x11-libs/libXpm
- x11-libs/libXxf86misc
- x11-libs/libXxf86vm
- dmx? ( x11-libs/libdmx )
- !minimal? ( x11-libs/libXtst
- x11-libs/libXres )
- >=x11-libs/libxkbui-1.0.2
- x11-libs/liblbxutil
- kdrive? ( sdl? ( media-libs/libsdl ) )"
- # Xres is dmx-dependent, xkbui is xorgcfg-dependent
- # Xaw is dmx- and xorgcfg-dependent
- # Xpm is dmx- and xorgcfg-dependent, pulls in Xt
- # Xxf86misc and Xxf86vm are xorgcfg-dependent
- # liblbxutil is lbx- dependent
-DEPEND="${RDEPEND}
- x11-proto/randrproto
- x11-proto/renderproto
- >=x11-proto/fixesproto-4
- x11-proto/damageproto
- x11-proto/xextproto
- x11-proto/xproto
- x11-proto/xf86dgaproto
- x11-proto/xf86miscproto
- x11-proto/xf86rushproto
- x11-proto/xf86vidmodeproto
- x11-proto/xf86bigfontproto
- >=x11-proto/compositeproto-0.3
- x11-proto/recordproto
- x11-proto/resourceproto
- x11-proto/videoproto
- >=x11-proto/scrnsaverproto-1.1.0
- x11-proto/evieext
- x11-proto/trapproto
- >=x11-proto/xineramaproto-1.1-r1
- x11-proto/fontsproto
- >=x11-proto/kbproto-1.0.3
- x11-proto/inputproto
- x11-proto/bigreqsproto
- x11-proto/xcmiscproto
- >=x11-proto/glproto-1.4.8
- dmx? ( x11-proto/dmxproto )
- dri? ( x11-proto/xf86driproto
- >=x11-libs/libdrm-2.3 )
- xprint? ( x11-proto/printproto
- x11-apps/mkfontdir
- x11-apps/mkfontscale
- x11-apps/xplsprinters )"
-
-# Drivers
-PDEPEND="
- xorg? (
- input_devices_acecad? ( >=x11-drivers/xf86-input-acecad-1.1.0 )
- input_devices_aiptek? ( >=x11-drivers/xf86-input-aiptek-1.0.1 )
- input_devices_calcomp? ( >=x11-drivers/xf86-input-calcomp-1.1.0 )
- input_devices_citron? ( >=x11-drivers/xf86-input-citron-2.2.0 )
- input_devices_digitaledge? ( >=x11-drivers/xf86-input-digitaledge-1.1.0 )
- input_devices_dmc? ( >=x11-drivers/xf86-input-dmc-1.1.0 )
- input_devices_dynapro? ( >=x11-drivers/xf86-input-dynapro-1.1.0 )
- input_devices_elo2300? ( >=x11-drivers/xf86-input-elo2300-1.1.0 )
- input_devices_elographics? ( >=x11-drivers/xf86-input-elographics-1.1.0 )
- input_devices_evdev? ( >=x11-drivers/xf86-input-evdev-1.1.1 )
- input_devices_fpit? ( >=x11-drivers/xf86-input-fpit-1.1.0 )
- input_devices_hyperpen? ( >=x11-drivers/xf86-input-hyperpen-1.1.0 )
- input_devices_jamstudio? ( >=x11-drivers/xf86-input-jamstudio-1.1.0 )
- input_devices_joystick? ( >=x11-drivers/xf86-input-joystick-1.1.0 )
- input_devices_keyboard? ( >=x11-drivers/xf86-input-keyboard-1.1.0 )
- input_devices_magellan? ( >=x11-drivers/xf86-input-magellan-1.1.0 )
- input_devices_microtouch? ( >=x11-drivers/xf86-input-microtouch-1.1.0 )
- input_devices_mouse? ( >=x11-drivers/xf86-input-mouse-1.1.0 )
- input_devices_mutouch? ( >=x11-drivers/xf86-input-mutouch-1.1.0 )
- input_devices_palmax? ( >=x11-drivers/xf86-input-palmax-1.1.0 )
- input_devices_penmount? ( >=x11-drivers/xf86-input-penmount-1.1.0 )
- input_devices_spaceorb? ( >=x11-drivers/xf86-input-spaceorb-1.1.0 )
- input_devices_summa? ( >=x11-drivers/xf86-input-summa-1.1.0 )
- input_devices_tek4957? ( >=x11-drivers/xf86-input-tek4957-1.1.0 )
- input_devices_ur98? ( >=x11-drivers/xf86-input-ur98-1.1.0 )
- input_devices_vmmouse? ( >=x11-drivers/xf86-input-vmmouse-12.4.0 )
- input_devices_void? ( >=x11-drivers/xf86-input-void-1.1.0 )
-
- input_devices_synaptics? ( x11-drivers/synaptics )
- input_devices_wacom? ( x11-drivers/linuxwacom )
-
- video_cards_apm? ( >=x11-drivers/xf86-video-apm-1.1.1 )
- video_cards_ark? ( >=x11-drivers/xf86-video-ark-0.6.0 )
- video_cards_chips? ( >=x11-drivers/xf86-video-chips-1.1.1 )
- video_cards_cirrus? ( >=x11-drivers/xf86-video-cirrus-1.1.0 )
- video_cards_cyrix? ( >=x11-drivers/xf86-video-cyrix-1.1.0 )
- video_cards_dummy? ( >=x11-drivers/xf86-video-dummy-0.2.0 )
- video_cards_fbdev? ( >=x11-drivers/xf86-video-fbdev-0.2.0 )
- video_cards_glint? ( >=x11-drivers/xf86-video-glint-1.1.1 )
- video_cards_i128? ( >=x11-drivers/xf86-video-i128-1.2.0 )
- video_cards_i740? ( >=x11-drivers/xf86-video-i740-1.1.0 )
- video_cards_i810? ( >=x11-drivers/xf86-video-i810-1.6.0 )
- video_cards_impact? ( >=x11-drivers/xf86-video-impact-0.2.0 )
- video_cards_imstt? ( >=x11-drivers/xf86-video-imstt-1.1.0 )
- video_cards_mach64? ( >=x11-drivers/xf86-video-ati-6.6.0 )
- video_cards_mga? ( >=x11-drivers/xf86-video-mga-1.4.1 )
- video_cards_neomagic? ( >=x11-drivers/xf86-video-neomagic-1.1.1 )
- video_cards_newport? ( >=x11-drivers/xf86-video-newport-0.2.0 )
- video_cards_nsc? ( >=x11-drivers/xf86-video-nsc-2.8.1 )
- video_cards_nv? ( >=x11-drivers/xf86-video-nv-1.1.1 )
- video_cards_r128? ( >=x11-drivers/xf86-video-ati-6.6.0 )
- video_cards_radeon? ( >=x11-drivers/xf86-video-ati-6.6.0 )
- video_cards_rendition? ( >=x11-drivers/xf86-video-rendition-4.1.0 )
- video_cards_s3? ( >=x11-drivers/xf86-video-s3-0.4.1 )
- video_cards_s3virge? ( >=x11-drivers/xf86-video-s3virge-1.9.1 )
- video_cards_savage? ( >=x11-drivers/xf86-video-savage-2.1.1 )
- video_cards_siliconmotion? ( >=x11-drivers/xf86-video-siliconmotion-1.4.1 )
- video_cards_sis? ( >=x11-drivers/xf86-video-sis-0.9.1 )
- video_cards_sisusb? ( >=x11-drivers/xf86-video-sisusb-0.8.1 )
- video_cards_sunbw2? ( >=x11-drivers/xf86-video-sunbw2-1.1.0 )
- video_cards_suncg14? ( >=x11-drivers/xf86-video-suncg14-1.1.0 )
- video_cards_suncg3? ( >=x11-drivers/xf86-video-suncg3-1.1.0 )
- video_cards_suncg6? ( >=x11-drivers/xf86-video-suncg6-1.1.0 )
- video_cards_sunffb? ( >=x11-drivers/xf86-video-sunffb-1.1.0 )
- video_cards_sunleo? ( >=x11-drivers/xf86-video-sunleo-1.1.0 )
- video_cards_suntcx? ( >=x11-drivers/xf86-video-suntcx-1.1.0 )
- video_cards_tdfx? ( >=x11-drivers/xf86-video-tdfx-1.2.1 )
- video_cards_tga? ( >=x11-drivers/xf86-video-tga-1.1.0 )
- video_cards_trident? ( >=x11-drivers/xf86-video-trident-1.2.1 )
- video_cards_tseng? ( >=x11-drivers/xf86-video-tseng-1.1.0 )
- video_cards_v4l? ( >=x11-drivers/xf86-video-v4l-0.1.1 )
- video_cards_vesa? ( >=x11-drivers/xf86-video-vesa-1.1.0 )
- video_cards_vga? ( >=x11-drivers/xf86-video-vga-4.1.0 )
- video_cards_via? ( >=x11-drivers/xf86-video-via-0.2.1 )
- video_cards_vmware? ( >=x11-drivers/xf86-video-vmware-10.13.0 )
- video_cards_voodoo? ( >=x11-drivers/xf86-video-voodoo-1.1.0 )
-
- video_cards_tdfx? ( 3dfx? ( >=media-libs/glide-v3-3.10 ) )
- video_cards_fglrx? ( >=x11-drivers/ati-drivers-8.27.10 )
- video_cards_nvidia? ( || (
- >=x11-drivers/nvidia-drivers-1.0.8774
- >=x11-drivers/nvidia-legacy-drivers-1.0.7184
- )
- )
- )"
-LICENSE="${LICENSE} MIT"
-
-PATCHES="${FILESDIR}/${PV}-server-damage-version.patch
- ${FILESDIR}/${PV}-server-randr-version.patch
- ${FILESDIR}/${PV}-client-leak.patch
- ${FILESDIR}/${P}-loongson.patch"
-
-pkg_setup() {
- use minimal || ensure_a_server_is_building
-
- # SDL only available in kdrive build
- if use kdrive && use sdl; then
- conf_opts="${conf_opts} --enable-xsdl"
- else
- conf_opts="${conf_opts} --disable-xsdl"
- fi
-
- # Only Xorg and Xgl support this, and we won't build Xgl
- # until it merges to trunk
- if use xorg; then
- conf_opts="${conf_opts} --with-mesa-source=${WORKDIR}/${MESA_P}"
- fi
-
- # 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
- CONFIGURE_OPTIONS="
- $(use_enable ipv6)
- $(use_enable dmx)
- $(use_enable kdrive)
- $(use_enable !minimal xvfb)
- $(use_enable !minimal xnest)
- $(use_enable !minimal install-libxf86config)
- $(use_enable dri)
- $(use_enable xorg)
- $(use_enable xprint)
- $(use_enable nptl glx-tls)
- $(use_enable !minimal xorgcfg)
- --sysconfdir=/etc/X11
- --localstatedir=/var
- --enable-install-setuid
- --with-fontdir=/usr/share/fonts
- ${conf_opts}"
-
- local diemsg="You must build xorg-server and mesa with the same nptl USE setting."
- if built_with_use media-libs/mesa nptl; then
- use nptl || die "${diemsg}"
- else
- use nptl && die "${diemsg}"
- fi
-
- # (#121394) Causes window corruption
- filter-flags -fweb
-
- # Nothing else provides new enough glxtokens.h
- ewarn "Forcing on xorg-x11 for new enough glxtokens.h..."
- OLD_IMPLEM="$(eselect opengl show)"
- eselect opengl set --impl-headers ${OPENGL_DIR}
-}
-
-src_unpack() {
- x-modular_specs_check
- x-modular_dri_check
- x-modular_unpack_source
- x-modular_patch_source
-
- # Set up kdrive servers to build
- if use kdrive; then
- kdrive_setup
- fi
-
- # Make sure eautoreconf gets run if we need the autoconf/make
- # changes.
- if [[ ${SNAPSHOT} != "yes" ]]; then
- if use kdrive; then
- eautoreconf
- fi
- fi
- x-modular_reconf_source
-}
-
-src_install() {
- x-modular_src_install
-
- dynamic_libgl_install
-
- server_based_install
-
- # Install video mode files for system-config-display
- insinto /usr/share/xorg
- doins hw/xfree86/common/{extra,vesa}modes \
- || die "couldn't install extra modes"
-
- # Bug #151421 - this file is not built with USE="minimal"
- # Bug #151670 - this file is also not build if USE="-xorg"
- if ! use minimal && use xorg; then
- # Install xorg.conf.example
- insinto /etc/X11
- doins hw/xfree86/xorg.conf.example \
- || die "couldn't install xorg.conf.example"
- fi
-}
-
-pkg_postinst() {
- switch_opengl_implem
-
- # Bug #135544
- ewarn "Users of reduced blanking now need:"
- ewarn " Option \"ReducedBlanking\""
- ewarn "In the relevant Monitor section(s)."
- ewarn "Make sure your reduced blanking modelines are safe!"
-}
-
-pkg_postrm() {
- # Get rid of module dir to ensure opengl-update works properly
- if ! has_version x11-base/xorg-server; then
- if [ -e ${ROOT}/usr/$(get_libdir)/xorg/modules ]; then
- rm -rf ${ROOT}/usr/$(get_libdir)/xorg/modules
- fi
- fi
-}
-
-kdrive_setup() {
- local card real_card disable_card kdrive_fbdev kdrive_vesa
-
- einfo "Removing unused kdrive drivers ..."
-
- # Some kdrive servers require fbdev and vesa
- kdrive_fbdev="radeon neomagic sis siliconmotion"
- # Some kdrive servers require just vesa
- kdrive_vesa="chips mach64 mga nv glint r128 via"
-
- for card in ${IUSE_VIDEO_CARDS}; do
- real_card=${card#video_cards_}
-
- # Differences between VIDEO_CARDS name and kdrive server name
- real_card=${real_card/glint/pm2}
- real_card=${real_card/radeon/ati}
- real_card=${real_card/%nv/nvidia}
- real_card=${real_card/siliconmotion/smi}
- real_card=${real_card/%sis/sis300}
-
- disable_card=0
-
- # Check whether it's a valid kdrive server before we waste time
- # on the rest of this
- if ! grep -q -o "\b${real_card}\b" ${S}/hw/kdrive/Makefile.am; then
- continue
- fi
-
- if ! use ${card}; then
- if use x86; then
- # Some kdrive servers require fbdev and vesa
- for i in ${kdrive_fbdev}; do
- if use video_cards_${i}; then
- if [[ ${real_card} = fbdev ]] \
- || [[ ${real_card} = vesa ]]; then
- continue 2 # Don't disable
- fi
- fi
- done
-
- # Some kdrive servers require just vesa
- for i in ${kdrive_vesa}; do
- if use video_cards_${i}; then
- if [[ ${real_card} = vesa ]]; then
- continue 2 # Don't disable
- fi
- fi
- done
- fi
- disable_card=1
- # Bug #150052
- # fbdev is the only VIDEO_CARDS setting that works on non-x86
- elif ! use x86 \
- && [[ ${real_card} != fbdev ]]; then
- ewarn " $real_card does not work on your architecture; disabling."
- disable_card=1
- fi
-
- if [[ $disable_card = 1 ]]; then
- ebegin " ${real_card}"
- sed -i \
- -e "s:\b${real_card}\b::g" \
- ${S}/hw/kdrive/Makefile.am \
- || die "sed of ${real_card} failed"
- eend
- fi
-
- done
-
- # smi and via are the only things on line 2. If line 2 ends up blank,
- # we need to get rid of the backslash at the end of line 1.
- if ! use video_cards_siliconmotion && ! use video_cards_via; then
- sed -i \
- -e "s:^\(VESA_SUBDIRS.*\)\\\:\1:g" \
- ${S}/hw/kdrive/Makefile.am
- fi
-}
-
-dynamic_libgl_install() {
- # next section is to setup the dynamic libGL stuff
- ebegin "Moving GL files for dynamic switching"
- dodir /usr/$(get_libdir)/opengl/${OPENGL_DIR}/extensions
- local x=""
- for x in ${D}/usr/$(get_libdir)/xorg/modules/extensions/libglx*; do
- if [ -f ${x} -o -L ${x} ]; then
- mv -f ${x} ${D}/usr/$(get_libdir)/opengl/${OPENGL_DIR}/extensions
- fi
- done
- eend 0
-}
-
-server_based_install() {
- use xprint && xprint_src_install
-
- if ! use xorg; then
- rm ${D}/usr/share/man/man1/Xserver.1x \
- ${D}/usr/$(get_libdir)/xserver/SecurityPolicy \
- ${D}/usr/$(get_libdir)/pkgconfig/xorg-server.pc \
- ${D}/usr/share/man/man1/Xserver.1x
- fi
-}
-
-switch_opengl_implem() {
- # Switch to the xorg implementation.
- # Use new opengl-update that will not reset user selected
- # OpenGL interface ...
- echo
-# eselect opengl set --use-old ${OPENGL_DIR}
- eselect opengl set ${OLD_IMPLEM}
-}
-
-xprint_src_install() {
- # RH-style init script, we provide a wrapper
- exeinto /usr/$(get_libdir)/misc
- doexe ${S}/hw/xprint/etc/init.d/xprint
- # Install the wrapper
- newinitd ${FILESDIR}/xprint.init xprint
- # Install profile scripts
- insinto /etc/profile.d
- doins ${S}/hw/xprint/etc/profile.d/xprint*
- insinto /etc/X11/xinit/xinitrc.d
- doins ${S}/hw/xprint/etc/Xsession.d/92xprint-xpserverlist
- # Patch profile scripts
- sed -e "s:/bin/sh.*get_xpserverlist:/usr/$(get_libdir)/misc/xprint \
- get_xpserverlist:g" -i ${D}/etc/profile.d/xprint* \
- ${D}/etc/X11/xinit/xinitrc.d/92xprint-xpserverlist
- # Move profile scripts, we can't touch /etc/profile.d/ in Gentoo
- dodoc ${D}/etc/profile.d/xprint*
- rm -f ${D}/etc/profile.d/xprint*
-}
-
-ensure_a_server_is_building() {
- for server in ${IUSE_SERVERS}; do
- use ${server} && return;
- done
- eerror "You need to specify at least one server to build."
- eerror "Valid servers are: ${IUSE_SERVERS}."
- die "No servers were specified to build."
-}
diff --git a/x11-base/xorg-server/xorg-server-1.3.0.0.ebuild b/x11-base/xorg-server/xorg-server-1.3.0.0-r5.ebuild
index 48e94c2..1cb4fac 100644
--- a/x11-base/xorg-server/xorg-server-1.3.0.0.ebuild
+++ b/x11-base/xorg-server/xorg-server-1.3.0.0-r5.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2007 Gentoo Foundation
+# Copyright 1999-2008 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.3.0.0.ebuild,v 1.7 2007/05/05 16:07:09 joshuabaergen Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-base/xorg-server/xorg-server-1.3.0.0-r5.ebuild,v 1.7 2008/02/11 06:04:07 philantrop Exp $
# Must be before x-modular eclass is inherited
-#SNAPSHOT="yes"
+SNAPSHOT="yes"
inherit x-modular multilib
@@ -18,9 +18,7 @@ SRC_URI="${SRC_URI}
mirror://sourceforge/mesa3d/${MESA_SRC_P}.tar.bz2
http://xorg.freedesktop.org/releases/individual/xserver/${P}.tar.bz2"
DESCRIPTION="X.Org X servers"
-# It's suid and has lazy bindings, so FEATURES="stricter" doesn't work
-RESTRICT="stricter"
-KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd"
+KEYWORDS="alpha amd64 ~arm hppa ia64 ~mips ppc ppc64 ~sh sparc x86 ~x86-fbsd"
IUSE_INPUT_DEVICES="
input_devices_acecad
input_devices_aiptek
@@ -99,6 +97,7 @@ IUSE_VIDEO_CARDS="
video_cards_via
video_cards_vmware
video_cards_voodoo
+ video_cards_fglrx
video_cards_nvidia"
IUSE_SERVERS="dmx kdrive xorg"
IUSE="${IUSE_VIDEO_CARDS}
@@ -114,7 +113,7 @@ RDEPEND=">=x11-libs/libXfont-1.2.5
x11-libs/libxkbfile
x11-libs/libXdmcp
x11-libs/libXmu
- x11-libs/libXrender
+ <x11-libs/libXrender-0.9.3
x11-libs/libXi
media-libs/freetype
>=media-libs/mesa-6.5.2
@@ -146,7 +145,7 @@ RDEPEND=">=x11-libs/libXfont-1.2.5
# liblbxutil is lbx- dependent
DEPEND="${RDEPEND}
>=x11-proto/randrproto-1.2.1
- x11-proto/renderproto
+ <x11-proto/renderproto-0.9.3
>=x11-proto/fixesproto-4
>=x11-proto/damageproto-1.1
x11-proto/xextproto
@@ -195,7 +194,7 @@ PDEPEND="
input_devices_hyperpen? ( >=x11-drivers/xf86-input-hyperpen-1.1.0 )
input_devices_jamstudio? ( >=x11-drivers/xf86-input-jamstudio-1.1.0 )
input_devices_joystick? ( >=x11-drivers/xf86-input-joystick-1.1.0 )
- input_devices_keyboard? ( >=x11-drivers/xf86-input-keyboard-1.1.0 )
+ input_devices_keyboard? ( =x11-drivers/xf86-input-keyboard-1.1* )
input_devices_magellan? ( >=x11-drivers/xf86-input-magellan-1.1.0 )
input_devices_microtouch? ( >=x11-drivers/xf86-input-microtouch-1.1.0 )
input_devices_mouse? ( >=x11-drivers/xf86-input-mouse-1.1.0 )
@@ -257,18 +256,40 @@ PDEPEND="
video_cards_via? ( >=x11-drivers/xf86-video-via-0.2.1 )
video_cards_vmware? ( >=x11-drivers/xf86-video-vmware-10.13.0 )
video_cards_voodoo? ( >=x11-drivers/xf86-video-voodoo-1.1.0 )
-
video_cards_tdfx? ( 3dfx? ( >=media-libs/glide-v3-3.10 ) )
- video_cards_nvidia? ( || (
- >=x11-drivers/nvidia-drivers-1.0.8774
- >=x11-drivers/nvidia-legacy-drivers-1.0.7184
- )
- )
- !x11-drivers/ati-drivers
+ video_cards_nvidia? ( x11-drivers/nvidia-drivers )
+ video_cards_fglrx? ( >=x11-drivers/ati-drivers-8.37.6 )
)"
LICENSE="${LICENSE} MIT"
-PATCHES="${FILESDIR}/${P}-loongson.patch"
+PATCHES="
+ ${FILESDIR}/${P}-loongson.patch
+ ${FILESDIR}/${PV}-fix-xkb-openoffice-hangs.patch
+ ${FILESDIR}/${PV}-fix-dual-head-screen-resolutions.patch
+ ${FILESDIR}/${PV}-fix-randr-resizing.patch
+ ${FILESDIR}/${PV}-fix-xephyr-amd64-segfault.patch
+ ${FILESDIR}/${PV}-ramdac.patch
+ ${FILESDIR}/use-composite-for-unequal-depths.patch
+ ${FILESDIR}/1.2.0-fix-amd-cpu-detection.patch
+ ${FILESDIR}/1.2.0-properly-free-device-devprivates-memory-leak-fix.patch
+ ${FILESDIR}/1.2.0-typo-fix.patch
+ ${FILESDIR}/1.2.0-zero-out-client-devprivates-on-allocation.patch
+ ${FILESDIR}/${PV}-use-proc-instead-of-sys.patch
+ ${FILESDIR}/avoid-crash-on-minimized-xv-window.patch
+ ${FILESDIR}/xorg-server-sam225bw-quirks.patch
+ ${FILESDIR}/1.3-alpha-build-fix.patch
+ ${FILESDIR}/${PV}-xephyr_crash_at_exit.patch
+ ${FILESDIR}/xorg-x11-server-1.0.1-fpic-libxf86config.patch
+ ${FILESDIR}/1.4-0001-Fix-for-CVE-2007-5760-XFree86-Misc-extension-out-o.patch
+ ${FILESDIR}/1.4-0002-Fix-for-CVE-2007-6428-TOG-cup-extension-memory-cor.patch
+ ${FILESDIR}/1.3-0003-Fix-for-CVE-2007-6427-Xinput-extension-memory-corr.patch
+ ${FILESDIR}/1.4-0004-Fix-for-CVE-2007-6429-MIT-SHM-and-EVI-extensions-i.patch
+ ${FILESDIR}/1.4-0005-Fix-for-CVE-2008-0006-PCF-Font-parser-buffer-overf.patch
+ ${FILESDIR}/1.3-0006-Fix-for-CVE-2007-5958-File-existence-disclosure.patch
+ ${FILESDIR}/1.4-0007-CVE-2007-6429-Don-t-spuriously-reject-8bpp-shm-pix.patch
+ ${FILESDIR}/1.4-0008-CVE-2007-6429-Always-test-for-size-offset-wrapping.patch
+ ${FILESDIR}/1.4-0009-Don-t-break-grab-and-focus-state-for-a-window-when-r.patch
+ "
pkg_setup() {
use minimal || ensure_a_server_is_building
@@ -306,6 +327,7 @@ pkg_setup() {
--localstatedir=/var
--enable-install-setuid
--with-fontdir=/usr/share/fonts
+ --with-xkb-output=/var/lib/xkb
${conf_opts}"
local diemsg="You must build xorg-server and mesa with the same nptl USE setting."
@@ -343,6 +365,12 @@ src_unpack() {
fi
fi
x-modular_reconf_source
+ #do not install xprint's Xsession.d files, we'll do it later
+ if use xprint; then
+ sed -e "s:install-data-am\: install-dist_xpcDATA:install-data-am\::g" \
+ -i "${S}"/hw/xprint/etc/Xsession.d/Makefile.in \
+ || die "sed of Xsession.d makefile failed"
+ fi
}
src_install() {
@@ -380,8 +408,8 @@ pkg_postinst() {
pkg_postrm() {
# Get rid of module dir to ensure opengl-update works properly
if ! has_version x11-base/xorg-server; then
- if [ -e ${ROOT}/usr/$(get_libdir)/xorg/modules ]; then
- rm -rf ${ROOT}/usr/$(get_libdir)/xorg/modules
+ if [[ -e ${ROOT}/usr/$(get_libdir)/xorg/modules ]]; then
+ rm -rf "${ROOT}"/usr/$(get_libdir)/xorg/modules
fi
fi
}
@@ -410,7 +438,7 @@ kdrive_setup() {
# Check whether it's a valid kdrive server before we waste time
# on the rest of this
- if ! grep -q -o "\b${real_card}\b" ${S}/hw/kdrive/Makefile.am; then
+ if ! grep -q -o "\b${real_card}\b" "${S}"/hw/kdrive/Makefile.am; then
continue
fi
@@ -448,7 +476,7 @@ kdrive_setup() {
ebegin " ${real_card}"
sed -i \
-e "s:\b${real_card}\b::g" \
- ${S}/hw/kdrive/Makefile.am \
+ "${S}"/hw/kdrive/Makefile.am \
|| die "sed of ${real_card} failed"
eend
fi
@@ -460,7 +488,7 @@ kdrive_setup() {
if ! use video_cards_siliconmotion && ! use video_cards_via; then
sed -i \
-e "s:^\(VESA_SUBDIRS.*\)\\\:\1:g" \
- ${S}/hw/kdrive/Makefile.am
+ "${S}"/hw/kdrive/Makefile.am
fi
}
@@ -469,9 +497,9 @@ dynamic_libgl_install() {
ebegin "Moving GL files for dynamic switching"
dodir /usr/$(get_libdir)/opengl/${OPENGL_DIR}/extensions
local x=""
- for x in ${D}/usr/$(get_libdir)/xorg/modules/extensions/libglx*; do
+ for x in "${D}"/usr/$(get_libdir)/xorg/modules/extensions/libglx*; do
if [ -f ${x} -o -L ${x} ]; then
- mv -f ${x} ${D}/usr/$(get_libdir)/opengl/${OPENGL_DIR}/extensions
+ mv -f ${x} "${D}"/usr/$(get_libdir)/opengl/${OPENGL_DIR}/extensions
fi
done
eend 0
@@ -481,10 +509,10 @@ server_based_install() {
use xprint && xprint_src_install
if ! use xorg; then
- rm ${D}/usr/share/man/man1/Xserver.1x \
- ${D}/usr/$(get_libdir)/xserver/SecurityPolicy \
- ${D}/usr/$(get_libdir)/pkgconfig/xorg-server.pc \
- ${D}/usr/share/man/man1/Xserver.1x
+ rm "${D}"/usr/share/man/man1/Xserver.1x \
+ "${D}"/usr/$(get_libdir)/xserver/SecurityPolicy \
+ "${D}"/usr/$(get_libdir)/pkgconfig/xorg-server.pc \
+ "${D}"/usr/share/man/man1/Xserver.1x
fi
}
@@ -500,21 +528,21 @@ switch_opengl_implem() {
xprint_src_install() {
# RH-style init script, we provide a wrapper
exeinto /usr/$(get_libdir)/misc
- doexe ${S}/hw/xprint/etc/init.d/xprint
+ doexe "${S}"/hw/xprint/etc/init.d/xprint
# Install the wrapper
- newinitd ${FILESDIR}/xprint.init xprint
+ newinitd "${FILESDIR}"/xprint.init xprint
# Install profile scripts
insinto /etc/profile.d
- doins ${S}/hw/xprint/etc/profile.d/xprint*
+ doins "${S}"/hw/xprint/etc/profile.d/xprint*
insinto /etc/X11/xinit/xinitrc.d
- doins ${S}/hw/xprint/etc/Xsession.d/92xprint-xpserverlist
+ doins "${S}"/hw/xprint/etc/Xsession.d/92xprint-xpserverlist
# Patch profile scripts
sed -e "s:/bin/sh.*get_xpserverlist:/usr/$(get_libdir)/misc/xprint \
- get_xpserverlist:g" -i ${D}/etc/profile.d/xprint* \
- ${D}/etc/X11/xinit/xinitrc.d/92xprint-xpserverlist
+ get_xpserverlist:g" -i "${D}"/etc/profile.d/xprint* \
+ "${D}"/etc/X11/xinit/xinitrc.d/92xprint-xpserverlist
# Move profile scripts, we can't touch /etc/profile.d/ in Gentoo
- dodoc ${D}/etc/profile.d/xprint*
- rm -f ${D}/etc/profile.d/xprint*
+ dodoc "${D}"/etc/profile.d/xprint*
+ rm -f "${D}"/etc/profile.d/xprint*
}
ensure_a_server_is_building() {