summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dev-lang/ocaml/Manifest16
-rw-r--r--dev-lang/ocaml/files/digest-ocaml-3.08.33
-rw-r--r--dev-lang/ocaml/files/digest-ocaml-3.10.03
-rw-r--r--dev-lang/ocaml/files/ocaml-rebuild.sh62
-rw-r--r--dev-lang/ocaml/metadata.xml5
-rw-r--r--dev-lang/ocaml/ocaml-3.08.3.ebuild98
-rw-r--r--dev-util/strace/ChangeLog342
-rw-r--r--dev-util/strace/Manifest72
-rw-r--r--dev-util/strace/files/digest-strace-4.5.153
-rw-r--r--dev-util/strace/files/strace-4.5.11-alpha-stat64.patch37
-rw-r--r--dev-util/strace/files/strace-4.5.11-fbsd.patch181
-rw-r--r--dev-util/strace/files/strace-4.5.12-libaio.patch60
-rw-r--r--dev-util/strace/files/strace-4.5.12-quota.patch89
-rw-r--r--dev-util/strace/files/strace-4.5.12-superh-update.patch24
-rw-r--r--dev-util/strace/files/strace-4.5.14-CTL_PROC.patch17
-rw-r--r--dev-util/strace/files/strace-4.5.14-PT_GETSIGINFO.patch18
-rw-r--r--dev-util/strace/files/strace-4.5.15-mips-sigcontext.patch22
-rw-r--r--dev-util/strace/files/strace-4.5.15-mips-sprintsigmask.patch13
-rw-r--r--dev-util/strace/files/strace-4.5.8-ia64.patch97
-rw-r--r--dev-util/strace/files/strace-dont-use-REG_SYSCALL-for-sh.patch10
-rw-r--r--dev-util/strace/files/strace-fix-arm-bad-syscall.patch20
-rw-r--r--dev-util/strace/files/strace-superh-update.patch28
-rw-r--r--dev-util/strace/files/strace-undef-syscall.patch15
-rw-r--r--dev-util/strace/metadata.xml5
-rw-r--r--dev-util/strace/strace-4.5.15.ebuild46
-rw-r--r--media-libs/mesa/Manifest24
-rw-r--r--media-libs/mesa/files/6.5.2-i965-wine-fix.patch109
-rw-r--r--media-libs/mesa/files/digest-mesa-6.5.2-r13
-rw-r--r--media-libs/mesa/files/lib/libGL.la32
-rw-r--r--media-libs/mesa/files/lib/libGLU.la32
-rw-r--r--media-libs/mesa/files/mesa-6.5.2-loongson.patch11
-rw-r--r--media-libs/mesa/mesa-6.5.2-r1.ebuild335
-rw-r--r--net-p2p/mldonkey/ChangeLog738
-rw-r--r--net-p2p/mldonkey/Manifest40
-rw-r--r--net-p2p/mldonkey/files/digest-mldonkey-2.8.73
-rwxr-xr-xnet-p2p/mldonkey/files/mldonkey15
-rw-r--r--net-p2p/mldonkey/files/mldonkey-Makefile.in-byte-compile.patch22
-rw-r--r--net-p2p/mldonkey/files/mldonkey-gui.desktop12
-rw-r--r--net-p2p/mldonkey/files/mldonkey.confd-2.839
-rw-r--r--net-p2p/mldonkey/files/mldonkey.initd-2.8-r1147
-rw-r--r--net-p2p/mldonkey/files/mldonkey.pngbin0 -> 6835 bytes
-rw-r--r--net-p2p/mldonkey/metadata.xml6
-rw-r--r--net-p2p/mldonkey/mldonkey-2.8.7.ebuild172
-rw-r--r--profiles/default-linux/mips/2007.0/loongson/n32/make.defaults27
-rw-r--r--profiles/default-linux/mips/2007.0/loongson/n32/nptl/make.defaults27
-rw-r--r--profiles/default-linux/mips/2007.0/loongson/n32/nptl/package.mask8
-rw-r--r--profiles/default-linux/mips/2007.0/loongson/n32/nptl/parent1
-rw-r--r--profiles/default-linux/mips/2007.0/loongson/n32/nptl/use.mask8
-rw-r--r--profiles/default-linux/mips/2007.0/loongson/n32/parent1
-rw-r--r--profiles/default-linux/mips/2007.0/loongson/n32/use.mask6
-rw-r--r--profiles/default-linux/mips/2007.0/loongson/o32/make.defaults26
-rw-r--r--profiles/default-linux/mips/2007.0/loongson/o32/nptl/make.defaults26
-rw-r--r--profiles/default-linux/mips/2007.0/loongson/o32/nptl/package.mask6
-rw-r--r--profiles/default-linux/mips/2007.0/loongson/o32/nptl/parent1
-rw-r--r--profiles/default-linux/mips/2007.0/loongson/o32/nptl/use.mask8
-rw-r--r--profiles/default-linux/mips/2007.0/loongson/o32/parent1
-rw-r--r--profiles/default-linux/mips/2007.0/loongson/package.mask10
-rw-r--r--profiles/default-linux/mips/2007.0/loongson/package.provided1
-rw-r--r--profiles/default-linux/mips/2007.0/loongson/parent1
-rw-r--r--profiles/default-linux/mips/2007.0/loongson/use.mask11
-rw-r--r--profiles/profile.desc1
-rw-r--r--profiles/repo_name1
-rw-r--r--x11-base/xorg-server/ChangeLog1175
-rw-r--r--x11-base/xorg-server/Manifest124
-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/digest-xorg-server-1.2.0-r16
-rw-r--r--x11-base/xorg-server/files/digest-xorg-server-1.2.0-r26
-rw-r--r--x11-base/xorg-server/files/digest-xorg-server-1.3.0.06
-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.3.0.0-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/xprint.init30
-rw-r--r--x11-base/xorg-server/metadata.xml5
-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.ebuild527
-rw-r--r--x11-drivers/xf86-video-ati/ChangeLog226
-rw-r--r--x11-drivers/xf86-video-ati/Manifest33
-rw-r--r--x11-drivers/xf86-video-ati/files/ati.xinf39
-rw-r--r--x11-drivers/xf86-video-ati/files/digest-xf86-video-ati-6.6.36
-rw-r--r--x11-drivers/xf86-video-ati/files/r128.xinf47
-rw-r--r--x11-drivers/xf86-video-ati/files/radeon.xinf197
-rw-r--r--x11-drivers/xf86-video-ati/files/xf86-video-ati-6.6.3-loongson.patch4764
-rw-r--r--x11-drivers/xf86-video-ati/metadata.xml5
-rw-r--r--x11-drivers/xf86-video-ati/xf86-video-ati-6.6.3.ebuild42
-rw-r--r--x11-libs/libdrm/ChangeLog154
-rw-r--r--x11-libs/libdrm/Manifest20
-rw-r--r--x11-libs/libdrm/files/digest-libdrm-2.3.03
-rw-r--r--x11-libs/libdrm/files/libdrm-loongson.patch54
-rw-r--r--x11-libs/libdrm/libdrm-2.3.0.ebuild42
-rw-r--r--x11-libs/libdrm/metadata.xml5
109 files changed, 13488 insertions, 0 deletions
diff --git a/dev-lang/ocaml/Manifest b/dev-lang/ocaml/Manifest
new file mode 100644
index 0000000..d6f5a83
--- /dev/null
+++ b/dev-lang/ocaml/Manifest
@@ -0,0 +1,16 @@
+AUX ocaml-rebuild.sh 1361 RMD160 a9c452fbea18de3b38d8240f887f8595e529643e SHA1 2a682ce872c51e66a5ab13160da16b0f6d8bd366 SHA256 a8004cd4bca96ab3fc595fcfd7dbe88903833f9e430149c3d04c9fda84362b64
+MD5 bcc5109143faee7e7b8f7f76bd4726a7 files/ocaml-rebuild.sh 1361
+RMD160 a9c452fbea18de3b38d8240f887f8595e529643e files/ocaml-rebuild.sh 1361
+SHA256 a8004cd4bca96ab3fc595fcfd7dbe88903833f9e430149c3d04c9fda84362b64 files/ocaml-rebuild.sh 1361
+DIST ocaml-3.08.3.tar.bz2 2055260 RMD160 cf09753d9e61ed5148e59d1b1b923f80d9dd4d01 SHA1 c31dfbad9317853dd64d4234f46c6d61eb4b8677 SHA256 319f771f7eb651a47f93dc175b75606e945a43dac16c097060cd055b88b23da6
+EBUILD ocaml-3.08.3.ebuild 2653 RMD160 77077f20bf733e427ed68be54fd5ead92f2d5efe SHA1 45a9f6ad52e50338989e41a82da15c4a8ef3fb1b SHA256 54cef787b4eda16f9da12c2b2595d85aa923369d24118e27d13d7b7604375697
+MD5 376254e6877e6023a95e53c16a80286d ocaml-3.08.3.ebuild 2653
+RMD160 77077f20bf733e427ed68be54fd5ead92f2d5efe ocaml-3.08.3.ebuild 2653
+SHA256 54cef787b4eda16f9da12c2b2595d85aa923369d24118e27d13d7b7604375697 ocaml-3.08.3.ebuild 2653
+MISC metadata.xml 155 RMD160 dfaa057e679b01302a807c75a32a910098b26809 SHA1 94024f83dcacbb53e92be090dd0f994ec93dc90d SHA256 118048376ebb76f57628b0819f3de4856e73959c2578c88715d37ea2d1e0af81
+MD5 8b350f19c06fcabf1053b0421b7c3f5a metadata.xml 155
+RMD160 dfaa057e679b01302a807c75a32a910098b26809 metadata.xml 155
+SHA256 118048376ebb76f57628b0819f3de4856e73959c2578c88715d37ea2d1e0af81 metadata.xml 155
+MD5 f15a3e5724d0752cec18935adb5e9a35 files/digest-ocaml-3.08.3 244
+RMD160 8e57ce3394e22f65c4201eb43f194d2465b09b07 files/digest-ocaml-3.08.3 244
+SHA256 3b7fd82bd62171bce784b8c38198b088369a40a041aa91ec554473a0a14e3cd7 files/digest-ocaml-3.08.3 244
diff --git a/dev-lang/ocaml/files/digest-ocaml-3.08.3 b/dev-lang/ocaml/files/digest-ocaml-3.08.3
new file mode 100644
index 0000000..97e0409
--- /dev/null
+++ b/dev-lang/ocaml/files/digest-ocaml-3.08.3
@@ -0,0 +1,3 @@
+MD5 8277bb1537051fe5151dc31c350d64cd ocaml-3.08.3.tar.bz2 2055260
+RMD160 cf09753d9e61ed5148e59d1b1b923f80d9dd4d01 ocaml-3.08.3.tar.bz2 2055260
+SHA256 319f771f7eb651a47f93dc175b75606e945a43dac16c097060cd055b88b23da6 ocaml-3.08.3.tar.bz2 2055260
diff --git a/dev-lang/ocaml/files/digest-ocaml-3.10.0 b/dev-lang/ocaml/files/digest-ocaml-3.10.0
new file mode 100644
index 0000000..53cf443
--- /dev/null
+++ b/dev-lang/ocaml/files/digest-ocaml-3.10.0
@@ -0,0 +1,3 @@
+MD5 5ec0b860730925f738d91ca96d692406 ocaml-3.10.0.tar.gz 3402010
+RMD160 40032fb06a3ae76838a56bad51119e5b30a099fd ocaml-3.10.0.tar.gz 3402010
+SHA256 daa56c4ebc21640be84e124fc5fefe091d0048d412b7e2b1e68bc2f56ff74314 ocaml-3.10.0.tar.gz 3402010
diff --git a/dev-lang/ocaml/files/ocaml-rebuild.sh b/dev-lang/ocaml/files/ocaml-rebuild.sh
new file mode 100644
index 0000000..fa76994
--- /dev/null
+++ b/dev-lang/ocaml/files/ocaml-rebuild.sh
@@ -0,0 +1,62 @@
+#!/bin/sh
+# run like this: ocaml-rebuild.sh [-h | -f] [emerge_options]
+
+emerge=/usr/bin/emerge
+
+if [ "$1" = "-h" ]
+then
+ echo "usage: ocaml-rebuild.sh [-h | -f(orce)] [emerge_options]"
+ echo "With -f, the packages will first be unmerged and then emerged"
+ echo "with the given options to ensuree correct dependancy analysis."
+ echo "Otherwise emerge is run with the --pretend flag and the given"
+ echo "options."
+ echo "It is recommended to keep the list of rebuilt packages printed"
+ echo "in pretend mode in case something go wrong"
+ exit 1
+fi
+
+if [ "$1" = "-f" ]
+then
+ pretend=0
+ shift
+else
+ pretend=1
+fi
+
+depends=`find /var/db/pkg -name DEPEND -exec grep -l 'dev-lang/ocaml\\|dev-ml/findlib' {} \;`
+
+for dep in $depends
+do
+ dir=`dirname $dep`
+ pkg=`basename $dir`
+ category=`cat $dir/CATEGORY`
+ slot=`cat $dir/SLOT`
+
+ toclean="=$category/$pkg $toclean"
+ tocleanstr="\"$category/$pkg\" $tocleanstr"
+
+ if [ $slot -eq 0 ]
+ then
+ tobuild=">=$category/$pkg $tobuild"
+ tobuildstr="\">=$category/$pkg\" $tobuildstr"
+ else
+ tobuild="=$category/$pkg $tobuild"
+ tobuildstr="\"=$category/$pkg\" $tobuildstr"
+ fi
+done
+
+echo Cleaning $tocleanstr
+echo Building $tobuildstr
+
+if [ "$toclean" != "" ]
+then
+ if [ $pretend -eq 1 ]
+ then
+ $emerge --pretend $@ $tobuild
+ else
+ $emerge unmerge $toclean
+ $emerge $@ $tobuild
+ fi
+else
+ echo "Nothing to update"
+fi
diff --git a/dev-lang/ocaml/metadata.xml b/dev-lang/ocaml/metadata.xml
new file mode 100644
index 0000000..2193d77
--- /dev/null
+++ b/dev-lang/ocaml/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>ml</herd>
+</pkgmetadata>
diff --git a/dev-lang/ocaml/ocaml-3.08.3.ebuild b/dev-lang/ocaml/ocaml-3.08.3.ebuild
new file mode 100644
index 0000000..0001191
--- /dev/null
+++ b/dev-lang/ocaml/ocaml-3.08.3.ebuild
@@ -0,0 +1,98 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-lang/ocaml/ocaml-3.08.4.ebuild,v 1.15 2007/05/11 19:12:07 aballier Exp $
+
+inherit flag-o-matic eutils multilib
+
+DESCRIPTION="fast modern type-inferring functional programming language descended from the ML (Meta Language) family"
+HOMEPAGE="http://www.ocaml.org/"
+
+SRC_URI="http://caml.inria.fr/distrib/ocaml-3.08/${P}.tar.bz2"
+
+LICENSE="QPL-1.0 LGPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~ppc ~ppc64 -s390 sparc ~x86 ~mips"
+IUSE="tk latex"
+
+DEPEND="tk? ( >=dev-lang/tk-3.3.3 )"
+
+pkg_setup() {
+ ewarn
+ ewarn "Building ocaml with unsafe CFLAGS can have unexpected results"
+ ewarn "Please retry building with safer CFLAGS before reporting bugs"
+ ewarn "Likewise, building with a hardened gcc is not possible."
+ ewarn
+}
+
+src_compile() {
+ filter-flags "-fstack-protector"
+ replace-flags "-O?" -O2
+ if use mips ; then
+ filter-flags "-mips?"
+ replace-cpu-flags mips? mips1
+ fi
+
+ local myconf
+ use tk || myconf="-no-tk"
+
+ # Fix for bug #23767.
+ if [ "${ARCH}" = "sparc" ]; then
+ myconf="${myconf} -host sparc-unknown-linux-gnu"
+ fi
+
+ # Fix for bug #46703
+ export LC_ALL=C
+
+ ./configure -prefix /usr \
+ -bindir /usr/bin \
+ -libdir /usr/$(get_libdir)/ocaml \
+ -mandir /usr/share/man \
+ --with-pthread ${myconf} || die
+
+ sed -i -e "s/\(BYTECCCOMPOPTS=.*\)/\1 ${CFLAGS}/" config/Makefile
+ sed -i -e "s/\(NATIVECCCOMPOPTS=.*\)/\1 ${CFLAGS}/" config/Makefile
+
+ make world || die
+ # Native code generation unsupported on some archs
+ if ! use ppc64 && ! use mips ; then
+ make opt || die
+ make opt.opt || die
+ fi
+}
+
+src_install() {
+ make BINDIR=${D}/usr/bin \
+ LIBDIR=${D}/usr/$(get_libdir)/ocaml \
+ MANDIR=${D}/usr/share/man \
+ install || die
+
+ # compiler libs
+ dodir /usr/lib/ocaml/compiler-libs
+ insinto /usr/lib/ocaml/compiler-libs
+ doins {utils,typing,parsing}/*.{mli,cmi,cmo,cmx,o}
+
+ # headers
+ dodir /usr/include
+ dosym /usr/include/caml /usr/lib/ocaml/caml
+
+ # silly, silly makefiles
+ dosed "s:${D}::g" /usr/$(get_libdir)/ocaml/ld.conf
+
+ # documentation
+ dodoc Changes INSTALL LICENSE README Upgrading
+}
+
+pkg_postinst() {
+ if use latex; then
+ echo "TEXINPUTS=/usr/$(get_libdir)/ocaml/ocamldoc:" > /etc/env.d/99ocamldoc
+ fi
+
+ echo
+ elog "OCaml is not binary compatible from version to version,"
+ elog "so you (may) need to rebuild all packages depending on it that"
+ elog "are actually installed on your system."
+ elog "To do so, you can run: "
+ elog "sh ${FILESDIR}/ocaml-rebuild.sh [-h | emerge options]"
+ elog "Which will call emerge on all old packages with the given options"
+ echo
+}
diff --git a/dev-util/strace/ChangeLog b/dev-util/strace/ChangeLog
new file mode 100644
index 0000000..b9e7b7f
--- /dev/null
+++ b/dev-util/strace/ChangeLog
@@ -0,0 +1,342 @@
+# ChangeLog for dev-util/strace
+# Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/dev-util/strace/ChangeLog,v 1.94 2007/02/19 04:12:57 vapier Exp $
+
+ 19 Feb 2007; Mike Frysinger <vapier@gentoo.org>
+ +files/strace-4.5.15-mips-sprintsigmask.patch, strace-4.5.15.ebuild:
+ Fix building on mips due to updated sprintsigmask().
+
+*strace-4.5.15 (17 Jan 2007)
+
+ 17 Jan 2007; Mike Frysinger <vapier@gentoo.org> +strace-4.5.15.ebuild:
+ Version bump.
+
+ 02 Dec 2006; Mike Frysinger <vapier@gentoo.org>
+ +files/strace-4.5.14-CTL_PROC.patch, strace-4.5.14.ebuild:
+ Fix building with 2.6.18+ headers #150907 by Mario Fetka.
+
+ 05 Oct 2006; Mike Frysinger <vapier@gentoo.org>
+ +files/strace-4.5.14-PT_GETSIGINFO.patch, strace-4.5.14.ebuild:
+ Fix building with newer glibcs #149945 by Alexander Jenisch.
+
+ 12 Jul 2006; Aron Griffis <agriffis@gentoo.org> strace-4.5.14.ebuild:
+ Mark 4.5.14 stable on ia64. #137914
+
+ 09 Jul 2006; Joshua Kinard <kumba@gentoo.org> strace-4.5.14.ebuild:
+ Marked stable on mips.
+
+ 29 Jun 2006; Jose Luis Rivero <yoswink@gentoo.org> strace-4.5.14.ebuild:
+ Stable on alpha wrt bug #137914
+
+ 26 Jun 2006; Andrej Kacian <ticho@gentoo.org> strace-4.5.14.ebuild:
+ Stable on x86, bug #137914.
+
+ 25 Jun 2006; Christian Birchinger <joker@gentoo.org> strace-4.5.14.ebuild:
+ Added sparc stable keyword
+
+ 25 Jun 2006; Guy Martin <gmsoft@gentoo.org> strace-4.5.14.ebuild:
+ Stable on hppa.
+
+ 25 Jun 2006; Marcus D. Hanwell <cryos@gentoo.org> strace-4.5.14.ebuild:
+ Marked stable on amd64, bug 137914.
+
+ 25 Jun 2006; Tobias Scherbaum <dertobi123@gentoo.org>
+ strace-4.5.14.ebuild:
+ ppc stable, bug #137914
+
+ 25 Jun 2006; Markus Rothe <corsair@gentoo.org> strace-4.5.14.ebuild:
+ Stable on ppc64; bug #137914
+
+ 11 Jun 2006; Simon Stelling <blubb@gentoo.org> strace-4.5.12.ebuild:
+ stable on amd64
+
+ 25 May 2006; Guy Martin <gmsoft@gentoo.org> strace-4.5.12.ebuild:
+ Stable on hppa.
+
+ 21 May 2006; Markus Rothe <corsair@gentoo.org> strace-4.5.12.ebuild:
+ Stable on ppc64; now realy..
+
+ 11 May 2006; Michael Sterrett <mr_bones_@gentoo.org> strace-4.5.12.ebuild:
+ ppc64 needs dev-libs/libaio first
+
+ 08 May 2006; Markus Rothe <corsair@gentoo.org> strace-4.5.12.ebuild:
+ Stable on ppc64
+
+ 06 May 2006; Mark Loeser <halcy0n@gentoo.org> strace-4.5.12.ebuild:
+ Stable on x86
+
+ 02 May 2006; Gustavo Zacarias <gustavoz@gentoo.org> strace-4.5.12.ebuild:
+ Stable on sparc
+
+ 23 Mar 2006; Emanuele Giaquinta <exg@gentoo.org> strace-4.5.12.ebuild:
+ Stable on ppc.
+
+ 06 Feb 2006; Aron Griffis <agriffis@gentoo.org> strace-4.5.12.ebuild:
+ Mark 4.5.12 stable on alpha
+
+ 04 Feb 2006; Aron Griffis <agriffis@gentoo.org> strace-4.5.12.ebuild:
+ Mark 4.5.12 stable on ia64
+
+*strace-4.5.14 (18 Jan 2006)
+
+ 18 Jan 2006; Mike Frysinger <vapier@gentoo.org> +strace-4.5.14.ebuild:
+ Version bump.
+
+ 07 Jan 2006; Mike Frysinger <vapier@gentoo.org>
+ +files/strace-fix-arm-bad-syscall.patch, strace-4.5.12.ebuild:
+ Add a patch to follow fake arm syscalls.
+
+ 20 Nov 2005; Mike Frysinger <vapier@gentoo.org>
+ files/strace-4.5.12-libaio.patch, strace-4.5.12.ebuild:
+ Update libaio patch to work with both old and new versions #103427.
+
+ 16 Sep 2005; Ciaran McCreesh <ciaranm@gentoo.org> ChangeLog:
+ Converted to UTF-8, fixed encoding screwups
+
+ 24 Aug 2005; Mike Frysinger <vapier@gentoo.org>
+ +files/strace-4.5.12-libaio.patch, strace-4.5.12.ebuild:
+ Fix up libaio support #103427 by Mathieu Seigneurin.
+
+ 18 Aug 2005; Mike Frysinger <vapier@gentoo.org>
+ +files/strace-4.5.12-quota.patch, strace-4.5.12.ebuild:
+ Fix building with newer glibc snapshots with a patch from upstream cvs
+ #102080 by Alexey Maximov/Hanno Meyer-Thurow/Mark Loeser.
+
+*strace-4.5.12 (12 Aug 2005)
+
+ 12 Aug 2005; Mike Frysinger <vapier@gentoo.org>
+ +files/strace-dont-use-REG_SYSCALL-for-sh.patch,
+ +files/strace-superh-update.patch, +files/strace-undef-syscall.patch,
+ +strace-4.5.12.ebuild:
+ Version bump and fix SuperH support.
+
+ 29 Jun 2005; Joshua Kinard <kumba@gentoo.org> strace-4.5.11.ebuild:
+ Marked stable on mips.
+
+ 28 May 2005; Mike Frysinger <vapier@gentoo.org>
+ +files/strace-4.5.11-alpha-stat64.patch, strace-4.5.11.ebuild:
+ Add a temp workaround to alpha stat64 issues.
+
+*strace-4.5.11 (24 May 2005)
+
+ 24 May 2005; Mike Frysinger <vapier@gentoo.org> +strace-4.5.11.ebuild:
+ Version bump #93657 by Diego Pettenò.
+
+ 08 Apr 2005; Markus Rothe <corsair@gentoo.org> strace-4.5.9.ebuild:
+ Stable on ppc64
+
+ 30 Mar 2005; Michael Hanselmann <hansmi@gentoo.org> strace-4.5.9.ebuild:
+ Stable on ppc.
+
+ 21 Mar 2005; Guy Martin <gmsoft@gentoo.org> strace-4.5.9.ebuild:
+ Stable on hppa.
+
+ 17 Mar 2005; Marcus D. Hanwell <cryos@gentoo.org> strace-4.5.9.ebuild:
+ Marked stable on amd64.
+
+ 14 Mar 2005; Gustavo Zacarias <gustavoz@gentoo.org> strace-4.5.9.ebuild:
+ Stable on sparc
+
+ 13 Mar 2005; Aron Griffis <agriffis@gentoo.org> strace-4.5.9.ebuild:
+ Stable on alpha and x86
+
+*strace-4.5.9 (11 Feb 2005)
+
+ 11 Feb 2005; Mike Frysinger <vapier@gentoo.org> +strace-4.5.9.ebuild:
+ Version bump.
+
+ 08 Feb 2005; Aron Griffis <agriffis@gentoo.org> strace-4.5.8.ebuild:
+ more ia64 fixes for building against linux26-headers-2.6.8.1-r2
+
+ 08 Feb 2005; Aron Griffis <agriffis@gentoo.org>
+ +files/strace-4.5.8-ia64.patch, strace-4.5.8.ebuild:
+ add ia64 patch and mark stable on ia64
+
+ 05 Feb 2005; Michael Hanselmann <hansmi@gentoo.org> strace-4.5.7.ebuild:
+ Stable on ppc.
+
+ 31 Dec 2004; Ciaran McCreesh <ciaranm@gentoo.org> :
+ Change encoding to UTF-8 for GLEP 31 compliance
+
+ 19 Dec 2004; Bryan Østergaard <kloeri@gentoo.org> strace-4.5.7.ebuild:
+ Stable on alpha.
+
+ 16 Dec 2004; Dylan Carlson <absinthe@gentoo.org> strace-4.5.7.ebuild:
+ Stable on amd64.
+
+ 26 Nov 2004; Jeremy Huddleston <eradicator@gentoo.org>
+ strace-4.5.8.ebuild:
+ -sparc.
+
+ 23 Nov 2004; Gustavo Zacarias <gustavoz@gentoo.org> strace-4.5.7.ebuild:
+ Stable on sparc
+
+*strace-4.5.8 (21 Nov 2004)
+
+ 21 Nov 2004; Mike Frysinger <vapier@gentoo.org>
+ +strace-4.5.8.ebuild:
+ Version bump #71696.
+
+*strace-4.5.7 (21 Sep 2004)
+
+ 22 Sep 2004; Danny van Dyk <kugelfang@gentoo.org> +strace-4.5.2.ebuild,
+ +files/strace-4.5.2-s390-april2004.diff:
+ Added strace-4.5.2 with s390 patches. This is the recommended version
+ in s390 acc. to Stream April 2004 and has been marked s390.
+
+ 21 Sep 2004; Mike Frysinger <vapier@gentoo.org> +strace-4.5.7.ebuild:
+ Version bump.
+
+ 07 Aug 2004; Tom Martin <slarti@gentoo.org> strace-4.4.94.ebuild:
+ Typo in DESCRIPTION: usefull -> useful. Bug 59717.
+
+ 05 Aug 2004; Mike Frysinger <vapier@gentoo.org> :
+ Version bump.
+
+ 01 Jul 2004; Jeremy Huddleston <eradicator@gentoo.org> strace-4.4.94.ebuild,
+ strace-4.4.98-r1.ebuild, strace-4.4.98.ebuild, strace-4.5.1.ebuild,
+ strace-4.5.ebuild:
+ virtual/glibc -> virtual/libc
+
+ 05 Jun 2004; <tuxus@gentoo.org> strace-4.4.98-r1.ebuild,
+ strace-4.4.98.ebuild:
+ Change ~mips -mips
+
+ 04 Jun 2004; Bryan Østergaard <kloeri@gentoo.org> strace-4.5.1.ebuild:
+ Stable on alpha.
+
+ 15 May 2004; Joshua Kinard <kumba@gentoo.org> strace-4.5.1.ebuild:
+ Marked stable on mips.
+
+ 06 May 2004; Gustavo Zacarias <gustavoz@gentoo.org> strace-4.5.1.ebuild:
+ Stable on sparc
+
+ 28 Apr 2004; Jon Portnoy <avenj@gentoo.org> strace-4.5.1.ebuild :
+ Stable on x86 and AMD64.
+
+*strace-4.4.98-r1 (18 Apr 2004)
+
+ 18 Apr 2004; Michael McCabe <randy@gentoo.org> +strace-4.4.98-r1.ebuild:
+ Added s390 specific fix to close bug 47916 and added s390 keyword
+
+*strace-4.4.98-r1 18 Apr 2004
+
+ 18 Apr 2004; <>
+ # INSERT ENTRY HERE
+
+ 16 Feb 2004; <tgall@gentoo.org> strace-4.5.1.ebuild:
+ Move to ppc64 stable
+
+ 05 Feb 2004; <tuxus@gentoo.org> strace-4.5.ebuild:
+ Move to mips stable
+
+ 12 Jan 2004; <gustavoz@gentoo.org> strace-4.5.1.ebuild:
+ patch exclusion for sparc, it's b0rked
+
+ 08 Jan 2004; Martin Holzer <mholzer@gentoo.org> strace-4.4.98.ebuild:
+ adding IUSE for static. Closes 36082
+
+ 28 Dec 2003; Joshua Kinard <kumba@gentoo.org> strace-4.4.98.ebuild:
+ Move to mips stable (~mips -> mips)
+
+ 25 Dec 2003; <plasmaroo@gentoo.org> strace-4.5.1.ebuild,
+ files/strace-4.5.1-2.6.patch:
+ Added a patch allowing strace to compile successfully on 2.6 kernels.
+
+*strace-4.5.1 (18 Nov 2003)
+
+ 18 Nov 2003; Martin Holzer <mholzer@gentoo.org> strace-4.5.1.ebuild:
+ Version bumped.
+
+ 28 Oct 2003; Chris PeBenito <pebenito@gentoo.org> strace-4.4-r1.ebuild:
+ Remove unneeded SELinux patch.
+
+ 22 Oct 2003; Bartosch Pixa <darkspecter@gentoo.org> strace-4.4.98.ebuild:
+ set ppc in keywords
+
+*strace-4.5 (25 Sep 2003)
+
+ 25 Sep 2003; Martin Holzer <mholzer@gentoo.org> strace-4.5.ebuild:
+ Version bumped.
+
+ 15 Jul 2003; Christian Birchinger <joker@gentoo.org> strace-4.4.98.ebuild:
+ Added sparc stable keyword
+
+ 13 Jun 2003; <msterret@gentoo.org> strace-4.4.93.ebuild,
+ strace-4.4.94.ebuild, strace-4.4.98.ebuild, strace-4.4.ebuild:
+ added IUSE
+
+*strace-4.4.98 (12 Jun 2003)
+
+ 04 Aug 2003; Guy Martin <gmsoft@gentoo.org> strace-4.4.98.ebuild :
+ Marked stable on hppa.
+
+ 12 Jun 2003; <msterret@gentoo.org> strace-4.4.98.ebuild:
+ version bump as per Bug 22718
+
+*strace-4.4.94 (03 Apr 2003)
+
+ 03 Apr 2003; Martin Holzer <mholzer@gentoo.org> strace-4.4.94.ebuild:
+ Version bumped. Closes #18668.
+
+*strace-4.4.93 (16 Feb 2003)
+
+ 03 Apr 2003; Martin Holzer <mholzer@gentoo.org> strace-4.4.93.ebuild:
+ Updated SRC_URI
+
+ 22 Feb 2003; Aron Griffis <agriffis@gentoo.org> strace-4.4.93.ebuild :
+ Mark stable on alpha
+
+ 16 Feb 2003; Jan Seidel <tuxus@gentoo.org> strace-4.4.93.ebuild :
+ Added mips to keywords
+
+ 14 Feb 2003; Guy Martin <gmsoft@gentoo.org> strace-4.4-r1.ebuild :
+ Added -DHPPA for gcc on hppa. Added hppa to keywords.
+
+*strace-4.4-r1 (31 Dec 2002)
+
+ 30 Mar 2003; Christian Birchinger <joker@gentoo.org> strace-4.4-r1.ebuild:
+ Added sparc stable keyword
+
+ 23 Mar 2003; Joshua Brindle <method@gentoo.org> strace-4.4-r1.ebuild:
+ added selinux support, thanks pebenito
+
+ 22 Mar 2003; Zach Welch <zwelch@gentoo.org> strace-4.4-r1.ebuild,
+ files/strace-4.4-arm-configure.patch, files/strace-4.4-arm.patch:
+ add ARM patches for strace
+
+ 31 Dec 2002; Mike Frysinger <vapier@gentoo.org> :
+ Added support for static.
+
+*strace-4.4 (27 Apr 2002)
+
+ 26 Sep 2002; Mike Frysinger <vapier@gentoo.org> :
+ Updated SRC_URI to mirror: and added alpha to KEYWORDS
+
+ 27 Aug 2002; Maarten Thibaut <murphy@gentoo.org> strace-4.4.ebuild :
+
+ Added sparc and sparc64 to keywords.
+ Bugfix for sparc and sparc64 where emerge would fail if the "-O3" option
+ were present in CFLAGS.
+
+ 01 Aug 2002; Mark Guertin <gerk@gentoo.org> strace-4.4.ebuild :
+
+ Added ppc to keywords
+
+ 17 May 2002; Bruce A. Locke <blocke@shivan.org> strace-4.4.ebuild :
+
+ SourceForge mirror change and general ebuild cleanup
+
+ 27 Apr 2002; Jon Nelson <jnelson@gentoo.org> ChangeLog :
+
+ Updated to 4.4
+
+*strace-4.3 (1 Feb 2002)
+
+ 1 Feb 2002; G.Bevin <gbevin@gentoo.org> ChangeLog :
+
+ Added initial ChangeLog which should be updated whenever the package is
+ updated in any way. This changelog is targetted to users. This means that the
+ comments should well explained and written in clean English. The details about
+ writing correct changelogs are explained in the skel.ChangeLog file which you
+ can find in the root directory of the portage repository.
diff --git a/dev-util/strace/Manifest b/dev-util/strace/Manifest
new file mode 100644
index 0000000..df01534
--- /dev/null
+++ b/dev-util/strace/Manifest
@@ -0,0 +1,72 @@
+AUX strace-4.5.11-alpha-stat64.patch 1418 RMD160 a136a80eac15bca87fe6b2d39d65949fc2249d0a SHA1 09bfdf92442b9ac694b98c3c8710af9947f49521 SHA256 33ce8bf0b266c2741607907460686a82e23df0ac79fdb7fe5b4436d119b101de
+MD5 cbd6857cb3c5b57e1364ca621fb1a5b3 files/strace-4.5.11-alpha-stat64.patch 1418
+RMD160 a136a80eac15bca87fe6b2d39d65949fc2249d0a files/strace-4.5.11-alpha-stat64.patch 1418
+SHA256 33ce8bf0b266c2741607907460686a82e23df0ac79fdb7fe5b4436d119b101de files/strace-4.5.11-alpha-stat64.patch 1418
+AUX strace-4.5.11-fbsd.patch 4767 RMD160 aa04c24f5dc8dd6baee0286e1901f31aee54f10a SHA1 9f97462ca68cf73cbf21c78a702c1d47525d73b5 SHA256 15e78c360ab72210b2e168d50e80b88e0188c149364545c9ff3f06d6b3b6f1fb
+MD5 3eb9b0a09aef20e2fd45e7f6e73557d1 files/strace-4.5.11-fbsd.patch 4767
+RMD160 aa04c24f5dc8dd6baee0286e1901f31aee54f10a files/strace-4.5.11-fbsd.patch 4767
+SHA256 15e78c360ab72210b2e168d50e80b88e0188c149364545c9ff3f06d6b3b6f1fb files/strace-4.5.11-fbsd.patch 4767
+AUX strace-4.5.12-libaio.patch 1552 RMD160 d4084416ed298ae07ea672569d04a22feb2f9188 SHA1 eec055eacba686d98bd36556be28eca96596b995 SHA256 6ea8fe265b9161ca708aa3b5fd31eee4584b9c7fcf829dcd8624a965fb048a78
+MD5 773009048510f12c898d4bf9126bc564 files/strace-4.5.12-libaio.patch 1552
+RMD160 d4084416ed298ae07ea672569d04a22feb2f9188 files/strace-4.5.12-libaio.patch 1552
+SHA256 6ea8fe265b9161ca708aa3b5fd31eee4584b9c7fcf829dcd8624a965fb048a78 files/strace-4.5.12-libaio.patch 1552
+AUX strace-4.5.12-quota.patch 2947 RMD160 2c2773c1ea16fef1e0ce9e7350861a5e6e2b7e37 SHA1 a1d0c1dcd8abb04e195aed3f4285095b4cb8caa3 SHA256 1ecab1a88be09da7047e6a07749303bd1f306a9b0af095c61c707b0ff8c6ef08
+MD5 a60a27ad25c9a4be8f74cac3b50d26e1 files/strace-4.5.12-quota.patch 2947
+RMD160 2c2773c1ea16fef1e0ce9e7350861a5e6e2b7e37 files/strace-4.5.12-quota.patch 2947
+SHA256 1ecab1a88be09da7047e6a07749303bd1f306a9b0af095c61c707b0ff8c6ef08 files/strace-4.5.12-quota.patch 2947
+AUX strace-4.5.12-superh-update.patch 540 RMD160 4a021623687f0bbb6dc1e102ab5e304fea123857 SHA1 17c911fef9c8fb9cad0f9f671372ec4b9b29dd43 SHA256 267d553bec04725e3d723b3afe825c8307774d75c9f9424c6801048fc85712b9
+MD5 d35971fd734b9597cc50db1060fd2b8f files/strace-4.5.12-superh-update.patch 540
+RMD160 4a021623687f0bbb6dc1e102ab5e304fea123857 files/strace-4.5.12-superh-update.patch 540
+SHA256 267d553bec04725e3d723b3afe825c8307774d75c9f9424c6801048fc85712b9 files/strace-4.5.12-superh-update.patch 540
+AUX strace-4.5.14-CTL_PROC.patch 353 RMD160 5a0c556334991b9b6855fed33942377e6c0e3278 SHA1 745fadf652a51b509f53a742e153e7c923a33c75 SHA256 f00b59ec7a93ac1b3c6fa786e03611e387f9235b187122602b8f439eab3c13b5
+MD5 9bba6568be37f6b0179eb9fdbde37ee0 files/strace-4.5.14-CTL_PROC.patch 353
+RMD160 5a0c556334991b9b6855fed33942377e6c0e3278 files/strace-4.5.14-CTL_PROC.patch 353
+SHA256 f00b59ec7a93ac1b3c6fa786e03611e387f9235b187122602b8f439eab3c13b5 files/strace-4.5.14-CTL_PROC.patch 353
+AUX strace-4.5.14-PT_GETSIGINFO.patch 766 RMD160 c44f89db60f0eaf8c9f37f2579dfc82cc0aff1ff SHA1 a870fc6d5fce4289cd4167c6534e38673919f72e SHA256 8b58a9ba6e917e4f6bf3f3821271364511d3dfaa2e6cdd96d461da9c63af2b8a
+MD5 f3397466058b002f3641219f3fad9b60 files/strace-4.5.14-PT_GETSIGINFO.patch 766
+RMD160 c44f89db60f0eaf8c9f37f2579dfc82cc0aff1ff files/strace-4.5.14-PT_GETSIGINFO.patch 766
+SHA256 8b58a9ba6e917e4f6bf3f3821271364511d3dfaa2e6cdd96d461da9c63af2b8a files/strace-4.5.14-PT_GETSIGINFO.patch 766
+AUX strace-4.5.15-mips-sigcontext.patch 455 RMD160 7e954ce42b27e3b9f989ab1a22f4af8bc48f9650 SHA1 6d31be6421782ce511b35f4dfd566c91678616fd SHA256 9777379bcec5292f44a4fbcbb79b597a1403c908ee5f77ffe5a3562c525d2d81
+MD5 1879f1eea87c5a22025bc9a27af0f3ea files/strace-4.5.15-mips-sigcontext.patch 455
+RMD160 7e954ce42b27e3b9f989ab1a22f4af8bc48f9650 files/strace-4.5.15-mips-sigcontext.patch 455
+SHA256 9777379bcec5292f44a4fbcbb79b597a1403c908ee5f77ffe5a3562c525d2d81 files/strace-4.5.15-mips-sigcontext.patch 455
+AUX strace-4.5.15-mips-sprintsigmask.patch 375 RMD160 574513146fc496056bfab38b885c2e03bc6f0f66 SHA1 1ad6d61c6655a92e8e19d83b56f1cf01cfcc4b69 SHA256 a91ded61685b74b05fbd1716ead449810552508d7c7377e14929c362fa2f6e21
+MD5 2601f6f425544219ea603773650272cb files/strace-4.5.15-mips-sprintsigmask.patch 375
+RMD160 574513146fc496056bfab38b885c2e03bc6f0f66 files/strace-4.5.15-mips-sprintsigmask.patch 375
+SHA256 a91ded61685b74b05fbd1716ead449810552508d7c7377e14929c362fa2f6e21 files/strace-4.5.15-mips-sprintsigmask.patch 375
+AUX strace-4.5.8-ia64.patch 2271 RMD160 8a26565e9286deb508a2b1626b41e9856d81c385 SHA1 848a4f32b9b6f75fdebfae4de0e907221022354b SHA256 7882ae9504c1ff1446d7b0df3a27642a8703b3065adf2df1e66b83dd9a13b0f3
+MD5 335622a1648a690be4e5eddba97f3034 files/strace-4.5.8-ia64.patch 2271
+RMD160 8a26565e9286deb508a2b1626b41e9856d81c385 files/strace-4.5.8-ia64.patch 2271
+SHA256 7882ae9504c1ff1446d7b0df3a27642a8703b3065adf2df1e66b83dd9a13b0f3 files/strace-4.5.8-ia64.patch 2271
+AUX strace-dont-use-REG_SYSCALL-for-sh.patch 630 RMD160 77a2ba5b252632970baafdb11ba7841a28b1fbec SHA1 d3cd6b7f22174a25a386deedd1441517106c528e SHA256 5a3f73e6671753d990b0782aa91b8f3204cc2857b9e45e20a2b87471207c17a3
+MD5 df94e08f4b2b33edc62a8e700bdb37ca files/strace-dont-use-REG_SYSCALL-for-sh.patch 630
+RMD160 77a2ba5b252632970baafdb11ba7841a28b1fbec files/strace-dont-use-REG_SYSCALL-for-sh.patch 630
+SHA256 5a3f73e6671753d990b0782aa91b8f3204cc2857b9e45e20a2b87471207c17a3 files/strace-dont-use-REG_SYSCALL-for-sh.patch 630
+AUX strace-fix-arm-bad-syscall.patch 560 RMD160 56cbe4c575118f78efa40abc7fc84852e30d502c SHA1 d9c4a8687cff9d68ebf892880073bc5585dd87e7 SHA256 b7f57f8fc46af991046e87a6afd2468f337f4ba42f8b4a78fdb8278c47b92aa9
+MD5 ee93a7bc6c247bdc094c2d9f932bfb5a files/strace-fix-arm-bad-syscall.patch 560
+RMD160 56cbe4c575118f78efa40abc7fc84852e30d502c files/strace-fix-arm-bad-syscall.patch 560
+SHA256 b7f57f8fc46af991046e87a6afd2468f337f4ba42f8b4a78fdb8278c47b92aa9 files/strace-fix-arm-bad-syscall.patch 560
+AUX strace-superh-update.patch 300 RMD160 905c73c036b986ee1388130564bf6f4a3a5d1840 SHA1 18993f21c8068741398d562e57aed6afaaaa806b SHA256 7e90b6557b61594f3bfea6f9f95892d668ebeb8dd6f2d01a74eebf8b09b653ec
+MD5 ff683dfacf57a09947ca5e6c4406249d files/strace-superh-update.patch 300
+RMD160 905c73c036b986ee1388130564bf6f4a3a5d1840 files/strace-superh-update.patch 300
+SHA256 7e90b6557b61594f3bfea6f9f95892d668ebeb8dd6f2d01a74eebf8b09b653ec files/strace-superh-update.patch 300
+AUX strace-undef-syscall.patch 656 RMD160 d487e514648b51fa6d40b27736c1d1c41416770f SHA1 a07b28189d83c579552e7c825d7ab7bc87d9ee36 SHA256 fbda53ace470c2bdb28cfee7acca2568f6242504adef4b731f60eaf57df915f7
+MD5 661ca5a1974846c6f778c6c47d8b382e files/strace-undef-syscall.patch 656
+RMD160 d487e514648b51fa6d40b27736c1d1c41416770f files/strace-undef-syscall.patch 656
+SHA256 fbda53ace470c2bdb28cfee7acca2568f6242504adef4b731f60eaf57df915f7 files/strace-undef-syscall.patch 656
+DIST strace-4.5.15.tar.bz2 455607 RMD160 0c6aaa8820a0985d89b21a5da9578b27435c8906 SHA1 a6bd153eeb1a25a50bb5a1d92887a4911ec9ad48 SHA256 ba8c492c1b2033d4e2131f05df9e3780d4bc35bea87aa32a6052dd53a814e288
+EBUILD strace-4.5.15.ebuild 1270 RMD160 80d3489c9b231bea3e2b6826463a2352f91bce1f SHA1 c66adae1ebb098c3950f5440ac28f79af29322c7 SHA256 e5e620ee8b8cdc81b40ce5a02dc7f8650bde826a90fbfd27535da7ee9473d855
+MD5 b26624c0d64bd25012a217ba31f72c58 strace-4.5.15.ebuild 1270
+RMD160 80d3489c9b231bea3e2b6826463a2352f91bce1f strace-4.5.15.ebuild 1270
+SHA256 e5e620ee8b8cdc81b40ce5a02dc7f8650bde826a90fbfd27535da7ee9473d855 strace-4.5.15.ebuild 1270
+MISC ChangeLog 11282 RMD160 61b83885451b36ae94b1f4a8473c7ad2bf42f57a SHA1 855ecac1a86c30b10b6419653ab9b0488390ef2a SHA256 7cab6fd2d6e8da4cf986ecc76119fc6e521f806a61e506ac89ffd0d866d3fa71
+MD5 cd71078d6bfa3011829c4c8d1daeb86f ChangeLog 11282
+RMD160 61b83885451b36ae94b1f4a8473c7ad2bf42f57a ChangeLog 11282
+SHA256 7cab6fd2d6e8da4cf986ecc76119fc6e521f806a61e506ac89ffd0d866d3fa71 ChangeLog 11282
+MISC metadata.xml 164 RMD160 f43cbec30b7074319087c9acffdb9354b17b0db3 SHA1 9c213f5803676c56439df3716be07d6692588856 SHA256 f5f2891f2a4791cd31350bb2bb572131ad7235cd0eeb124c9912c187ac10ce92
+MD5 9a09f8d531c582e78977dbfd96edc1f2 metadata.xml 164
+RMD160 f43cbec30b7074319087c9acffdb9354b17b0db3 metadata.xml 164
+SHA256 f5f2891f2a4791cd31350bb2bb572131ad7235cd0eeb124c9912c187ac10ce92 metadata.xml 164
+MD5 80c9289783c55e39c2f2468c04315689 files/digest-strace-4.5.15 244
+RMD160 806438be0f55997ed17003e1d55b4c53a83b9ea9 files/digest-strace-4.5.15 244
+SHA256 a03c34145a567f175deabdc589913d8b7ca08e40639dc704071b969ef999f5b4 files/digest-strace-4.5.15 244
diff --git a/dev-util/strace/files/digest-strace-4.5.15 b/dev-util/strace/files/digest-strace-4.5.15
new file mode 100644
index 0000000..bf58fb3
--- /dev/null
+++ b/dev-util/strace/files/digest-strace-4.5.15
@@ -0,0 +1,3 @@
+MD5 ef40944118841803391d212cb64d3c5b strace-4.5.15.tar.bz2 455607
+RMD160 0c6aaa8820a0985d89b21a5da9578b27435c8906 strace-4.5.15.tar.bz2 455607
+SHA256 ba8c492c1b2033d4e2131f05df9e3780d4bc35bea87aa32a6052dd53a814e288 strace-4.5.15.tar.bz2 455607
diff --git a/dev-util/strace/files/strace-4.5.11-alpha-stat64.patch b/dev-util/strace/files/strace-4.5.11-alpha-stat64.patch
new file mode 100644
index 0000000..e55f61d
--- /dev/null
+++ b/dev-util/strace/files/strace-4.5.11-alpha-stat64.patch
@@ -0,0 +1,37 @@
+Hack around an ugly issue. The only arch to provide the st_flags and st_gen
+members of the stat structure is alpha. However, alpha only provides it for
+stat and not stat64. So the autoconf script checks the stat structure for
+all the relevant members but does not check stat64, thus setting up defines
+that say these two members are present. To make matters worse, glibc defines
+(via sys/stat.h -> bits/stat.h) both stat and stat64 with the st_flags and
+st_gen members. Since file.c makes sure to hide the glibc defines and use the
+kernel defines, even if we tried to detect stat64.st_flags and stat64.st_gen
+in the autoconf script, the glibc headers would be parsed thereforce providing
+false positives.
+
+--- file.c
++++ file.c
+@@ -997,13 +997,6 @@
+ tprintf("st_atime=%s, ", sprinttime(statbuf.st_atime));
+ tprintf("st_mtime=%s, ", sprinttime(statbuf.st_mtime));
+ tprintf("st_ctime=%s", sprinttime(statbuf.st_ctime));
+-#if HAVE_STRUCT_STAT_ST_FLAGS
+- tprintf(", st_flags=");
+- if (statbuf.st_flags) {
+- printflags(fileflags, statbuf.st_flags);
+- } else
+- tprintf("0");
+-#endif
+ #if HAVE_STRUCT_STAT_ST_ACLCNT
+ tprintf(", st_aclcnt=%d", statbuf.st_aclcnt);
+ #endif
+@@ -1014,9 +1007,6 @@
+ tprintf(", st_fstype=%.*s",
+ (int) sizeof statbuf.st_fstype, statbuf.st_fstype);
+ #endif
+-#if HAVE_STRUCT_STAT_ST_GEN
+- tprintf(", st_gen=%u", statbuf.st_gen);
+-#endif
+ tprintf("}");
+ }
+ else
diff --git a/dev-util/strace/files/strace-4.5.11-fbsd.patch b/dev-util/strace/files/strace-4.5.11-fbsd.patch
new file mode 100644
index 0000000..1c1e31f
--- /dev/null
+++ b/dev-util/strace/files/strace-4.5.11-fbsd.patch
@@ -0,0 +1,181 @@
+Add support for FreeBSD.
+
+Patch by Piego Petten
+
+http://bugs.gentoo.org/93657
+
+--- strace-4.5.11/configure.ac
++++ strace-4.5.11/configure.ac
+@@ -192,16 +192,24 @@
+ fi
+
+ AC_CHECK_FUNCS(sigaction strerror strsignal pread sys_siglist _sys_siglist getdents mctl prctl sendmsg inet_ntop if_indextoname)
+-AC_CHECK_HEADERS([sys/reg.h sys/filio.h sys/acl.h sys/asynch.h sys/door.h stropts.h sys/conf.h sys/stream.h sys/tihdr.h sys/tiuser.h sys/sysconfig.h ioctls.h sys/ioctl.h sys/ptrace.h termio.h linux/ptrace.h asm/reg.h sys/uio.h sys/aio.h poll.h sys/poll.h sys/vfs.h asm/sysmips.h linux/utsname.h sys/nscsys.h mqueue.h sys/epoll.h], [], [])
++AC_CHECK_HEADERS([sys/reg.h sys/filio.h sys/acl.h sys/asynch.h sys/door.h stropts.h sys/conf.h sys/stream.h sys/tihdr.h sys/tiuser.h sys/sysconfig.h ioctls.h sys/ioctl.h sys/ptrace.h termio.h linux/ptrace.h asm/reg.h sys/uio.h sys/aio.h poll.h sys/poll.h sys/vfs.h asm/sysmips.h linux/utsname.h sys/nscsys.h mqueue.h sys/epoll.h sys/param.h], [], [])
+ AC_CHECK_HEADERS([linux/icmp.h linux/in6.h linux/netlink.h linux/if_packet.h],
+ [], [], [#include <linux/socket.h>])
+ AC_CHECK_HEADERS([asm/sigcontext.h], [], [], [#include <signal.h>])
+-AC_CHECK_HEADERS([netinet/tcp.h netinet/udp.h],,, [#include <netinet/in.h>])
++AC_CHECK_HEADERS([netinet/tcp.h netinet/udp.h],,,
++[#include <sys/types.h>
++#include <netinet/in.h>])
++
++AC_CHECK_HEADERS([sys/mount.h],,,
++[#include <sys/types.h>
++#include <sys/param.h>])
+
+ AC_MP_PROCFS
+ AC_POLLABLE_PROCFS
+
+-AC_CHECK_MEMBERS([struct msghdr.msg_control],,, [#include <sys/socket.h>])
++AC_CHECK_MEMBERS([struct msghdr.msg_control],,,
++[#include <sys/types.h>
++#include <sys/socket.h>])
+ AC_STRUCT_PR_SYSCALL
+
+ AC_CHECK_MEMBERS([struct T_conn_res.QUEUE_ptr,
+@@ -209,6 +217,19 @@
+ [#include <sys/stream.h>
+ #include <sys/tihdr.h>])
+
++AC_CHECK_MEMBERS([struct fsid.val,
++ struct fsid.__val],,,
++[#include <sys/types.h>
++#ifdef HAVE_SYS_PARAM_H
++# include <sys/param.h>
++#endif
++#ifdef HAVE_SYS_VFS_H
++# include <sys/vfs.h>
++#endif
++#ifdef HAVE_SYS_MOUNT_H
++# include <sys/mount.h>
++#endif])
++
+ AC_CHECK_TYPES([struct __old_kernel_stat],,, [#include <asm/stat.h>])
+
+ AC_CHECK_TYPES([struct pt_all_user_regs, struct ia64_fpreg],,,
+--- strace-4.5.11/file.c
++++ strace-4.5.11/file.c
+@@ -200,6 +200,10 @@
+ #include <ustat.h>
+ #endif
+
++#if defined(HAVE_STRUCT_FSID_VAL) && ! defined(HAVE_STRUCT_FSID___VAL)
++#define __val val
++#endif
++
+ /*
+ * This is a really dirty trick but it should always work. Traditional
+ * Unix says r/w/rw are 0/1/2, so we make them true flags 1/2/3 by
+@@ -2495,6 +2499,8 @@
+ }
+
+
++#ifdef LINUX
++
+ static const struct xlat advise[] = {
+ { POSIX_FADV_NORMAL, "POSIX_FADV_NORMAL" },
+ { POSIX_FADV_RANDOM, "POSIX_FADV_RANDOM" },
+@@ -2506,7 +2512,6 @@
+ };
+
+
+-#ifdef LINUX
+ int
+ sys_fadvise64(tcp)
+ struct tcb *tcp;
+@@ -2524,7 +2529,6 @@
+ }
+ return 0;
+ }
+-#endif
+
+
+ int
+@@ -2545,3 +2549,5 @@
+ }
+ return 0;
+ }
++
++#endif
+--- strace-4.5.11/net.c
++++ strace-4.5.11/net.c
+@@ -1112,6 +1112,7 @@
+ tprintf("}}");
+ return;
+ }
++#ifdef SCM_CREDENTIALS
+ if (u.cmsg.cmsg_type == SCM_CREDENTIALS
+ && CMSG_LEN(sizeof(struct ucred)) <= u.cmsg.cmsg_len) {
+ struct ucred *uc = (struct ucred *) CMSG_DATA (&u.cmsg);
+@@ -1119,6 +1120,7 @@
+ (long)uc->pid, (long)uc->uid, (long)uc->gid);
+ return;
+ }
++#endif
+ }
+ tprintf(", ...}");
+ }
+--- strace-4.5.11/sock.c
++++ strace-4.5.11/sock.c
+@@ -46,6 +46,7 @@
+ #endif
+ #endif
+ #include <net/if.h>
++#include <netinet/in.h>
+
+ extern const struct xlat addrfams[];
+
+@@ -55,16 +56,26 @@
+ { IFF_DEBUG, "IFF_DEBUG" },
+ { IFF_LOOPBACK, "IFF_LOOPBACK" },
+ { IFF_POINTOPOINT, "IFF_POINTOPOINT" },
++#ifdef IFF_NOTRAILERS
+ { IFF_NOTRAILERS, "IFF_NOTRAILERS" },
++#endif
+ { IFF_RUNNING, "IFF_RUNNING" },
+ { IFF_NOARP, "IFF_NOARP" },
+ { IFF_PROMISC, "IFF_PROMISC" },
+ { IFF_ALLMULTI, "IFF_ALLMULTI" },
++#ifdef IFF_MASTER
+ { IFF_MASTER, "IFF_MASTER" },
++#endif
++#ifdef IFF_SLAVE
+ { IFF_SLAVE, "IFF_SLAVE" },
++#endif
+ { IFF_MULTICAST, "IFF_MULTICAST" },
++#ifdef IFF_PORTSEL
+ { IFF_PORTSEL, "IFF_PORTSEL" },
++#endif
++#ifdef IFF_AUTOMEDIA
+ { IFF_AUTOMEDIA, "IFF_AUTOMEDIA" },
++#endif
+ { 0, NULL }
+ };
+
+--- strace-4.5.11/strace.c
++++ strace-4.5.11/strace.c
+@@ -617,6 +617,23 @@
+ cleanup();
+ exit(1);
+ }
++#ifdef FREEBSD
++ {
++ int status;
++ pid_t err;
++
++ do {
++ err = waitpid(pid, &status, WUNTRACED);
++ } while (err == -1 && errno == EINTR);
++ if (err == -1) {
++ fprintf(stderr,
++ "waitpid() failed: %s\n",
++ strerror(errno));
++ cleanup();
++ exit(1);
++ }
++ }
++#endif
+ #ifdef USE_PROCFS
+ if (proc_open(tcp, 0) < 0) {
+ fprintf(stderr, "trouble opening proc file\n");
diff --git a/dev-util/strace/files/strace-4.5.12-libaio.patch b/dev-util/strace/files/strace-4.5.12-libaio.patch
new file mode 100644
index 0000000..e24d3c3
--- /dev/null
+++ b/dev-util/strace/files/strace-4.5.12-libaio.patch
@@ -0,0 +1,60 @@
+Make libaio support a proper option and update the checks to support
+both new and old versions of libaio.
+
+http://bugs.gentoo.org/103427
+
+--- strace/configure.ac
++++ strace/configure.ac
+@@ -170,6 +170,26 @@
+ struct stat.st_rdev])
+ AC_STAT64
+
++AC_ARG_ENABLE(libaio,
++ AC_HELP_STRING([--enable-libaio],[enable support for libaio @<:@default=auto@:>@]),
++ [enable_libaio=$enableval],
++ [enable_libaio=auto]
++)
++if test "x$enable_libaio" != "xno" ; then
++ AC_CHECK_HEADER([libaio.h],[have_libaio=yes],[have_libaio=no])
++ if test "x$enable_libaio$have_libaio" = "xyesno" ; then
++ AC_MSG_ERROR(Could not detect libaio.h)
++ elif test "x$have_libaio" = "xyes" ; then
++ AC_DEFINE(HAVE_LIBAIO_H, 1, [System has libaio.h])
++ AC_CHECK_MEMBERS([
++ struct iocb.data,
++ struct iocb.aio_data,
++ struct iocb.key,
++ struct iocb.aio_key],
++ [], [], [#include <libaio.h>])
++ fi
++fi
++
+ AC_TYPE_SIGNAL
+ AC_TYPE_UID_T
+ AC_TYPE_MODE_T
+--- strace/desc.c
++++ strace/desc.c
+@@ -767,7 +767,11 @@
+ continue;
+ }
+ tprintf("{%p, %u, %hu, %hu, %d}",
++#ifdef HAVE_STRUCT_IOCB_AIO_DATA
++ iocb.aio_data, iocb.aio_data,
++#else
+ iocb.data, iocb.key,
++#endif
+ iocb.aio_lio_opcode,
+ iocb.aio_reqprio, iocb.aio_fildes);
+ }
+@@ -793,7 +797,11 @@
+ #ifdef HAVE_LIBAIO_H
+ if (umove(tcp, tcp->u_arg[1], &iocb) == 0) {
+ tprintf("{%p, %u, %hu, %hu, %d}, ",
++#ifdef HAVE_STRUCT_IOCB_AIO_DATA
++ iocb.aio_data, iocb.aio_data,
++#else
+ iocb.data, iocb.key,
++#endif
+ iocb.aio_lio_opcode,
+ iocb.aio_reqprio, iocb.aio_fildes);
+ } else
diff --git a/dev-util/strace/files/strace-4.5.12-quota.patch b/dev-util/strace/files/strace-4.5.12-quota.patch
new file mode 100644
index 0000000..161d0fc
--- /dev/null
+++ b/dev-util/strace/files/strace-4.5.12-quota.patch
@@ -0,0 +1,89 @@
+Changes from upstream cvs to fix breakage with newer glibc's
+
+http://bugs.gentoo.org/102080
+
+--- strace-4.5.12/configure.ac
++++ strace-4.5.12/configure.ac
+@@ -216,6 +216,8 @@
+
+ AC_CHECK_TYPES([struct user_desc],,, [#include <asm/ldt.h>])
+
++AC_CHECK_MEMBERS([struct dqblk.dqb_curblocks],,, [#include <sys/quota.h>])
++
+ AC_CHECK_DECLS([sys_errlist])
+ AC_CHECK_DECLS([sys_siglist, _sys_siglist],,, [#include <signal.h>])
+
+--- strace-4.5.12/resource.c
++++ strace-4.5.12/resource.c
+@@ -464,6 +464,7 @@
+
+ #ifdef LINUX
+
++#define OLD_CMD(c) ((c)<<8)
+ #define NEW_CMD(c) ((0x80<<16)+(c))
+ #define XQM_CMD(c) (('X'<<8)+(c))
+ #define NEW_COMMAND(c) (( ((c) >> SUBCMDSHIFT) & (0x80 << 16)))
+@@ -471,15 +472,15 @@
+ #define OLD_COMMAND(c) (!NEW_COMMAND(c) && !XQM_COMMAND(c))
+
+ static const struct xlat quotacmds[] = {
+- { Q_QUOTAON, "Q_QUOTAON" },
+- { Q_QUOTAOFF, "Q_QUOTAOFF" },
+- { Q_GETQUOTA, "Q_GETQUOTA" },
+- { Q_SETQUOTA, "Q_SETQUOTA" },
+- { Q_SETUSE, "Q_SETUSE" },
+- { Q_SYNC, "Q_SYNC" },
+- { Q_SETQLIM, "Q_SETQLIM" },
+- { Q_GETSTATS, "Q_GETSTATS" },
+- { Q_RSQUASH, "Q_RSQUASH" },
++ { OLD_CMD(0x1), "Q_QUOTAON" },
++ { OLD_CMD(0x2), "Q_QUOTAOFF" },
++ { OLD_CMD(0x3), "Q_GETQUOTA" },
++ { OLD_CMD(0x4), "Q_SETQUOTA" },
++ { OLD_CMD(0x5), "Q_SETUSE" },
++ { OLD_CMD(0x6), "Q_SYNC" },
++ { OLD_CMD(0x7), "Q_SETQLIM" },
++ { OLD_CMD(0x8), "Q_GETSTATS" },
++ { OLD_CMD(0x10),"Q_RSQUASH" },
+ { NEW_CMD(0x1), "Q_SYNC" },
+ { NEW_CMD(0x2), "Q_QUOTAON" },
+ { NEW_CMD(0x3), "Q_QUOTAOFF" },
+@@ -528,21 +529,29 @@
+
+ if (!tcp->u_arg[3])
+ tprintf("NULL");
+- else if (!verbose(tcp) || !OLD_COMMAND(cmd))
++ else if (!verbose(tcp) ||
++#ifdef HAVE_STRUCT_DQBLK_DQB_CURBLOCKS
++ !
++#endif
++ OLD_COMMAND(cmd))
+ tprintf("%#lx", tcp->u_arg[3]);
+ else if (umoven(tcp, tcp->u_arg[3], sizeof(struct dqblk),
+ (char *) &dq) < 0)
+ tprintf("???");
+ else {
+ tprintf("{");
+- tprintf("%u, ", dq.dqb_bhardlimit);
+- tprintf("%u, ", dq.dqb_bsoftlimit);
+- tprintf("%u, ", dq.dqb_curblocks);
+- tprintf("%u, ", dq.dqb_ihardlimit);
+- tprintf("%u, ", dq.dqb_isoftlimit);
+- tprintf("%u, ", dq.dqb_curinodes);
+- tprintf("%lu, ", dq.dqb_btime);
+- tprintf("%lu", dq.dqb_itime);
++ tprintf("%llu, ", (unsigned long long) dq.dqb_bhardlimit);
++ tprintf("%llu, ", (unsigned long long) dq.dqb_bsoftlimit);
++#ifdef HAVE_STRUCT_DQBLK_DQB_CURBLOCKS
++ tprintf("%llu, ", (unsigned long long) dq.dqb_curblocks);
++#else
++ tprintf("%llu, ", (unsigned long long) dq.dqb_curspace);
++#endif
++ tprintf("%llu, ", (unsigned long long) dq.dqb_ihardlimit);
++ tprintf("%llu, ", (unsigned long long) dq.dqb_isoftlimit);
++ tprintf("%llu, ", (unsigned long long) dq.dqb_curinodes);
++ tprintf("%llu, ", (unsigned long long) dq.dqb_btime);
++ tprintf("%llu", (unsigned long long) dq.dqb_itime);
+ tprintf("}");
+ }
+
diff --git a/dev-util/strace/files/strace-4.5.12-superh-update.patch b/dev-util/strace/files/strace-4.5.12-superh-update.patch
new file mode 100644
index 0000000..d402997
--- /dev/null
+++ b/dev-util/strace/files/strace-4.5.12-superh-update.patch
@@ -0,0 +1,24 @@
+Fix configure script to work with targets like 'sh4-unknown-linux-gnu'
+
+--- configure.ac
++++ configure.ac
+@@ -91,14 +91,14 @@
+ arch=hppa
+ AC_DEFINE([HPPA], 1, [Define for the HPPA architecture.])
+ ;;
+-sh)
+- arch=sh
+- AC_DEFINE([SH], 1, [Define for the SH architecture.])
+- ;;
+-sh64)
++sh64*)
+ arch=sh64
+ AC_DEFINE([SH64], 1, [Define for the SH64 architecture.])
+ ;;
++sh*)
++ arch=sh
++ AC_DEFINE([SH], 1, [Define for the SH architecture.])
++ ;;
+ x86?64*)
+ arch=x86_64
+ AC_DEFINE([X86_64], 1, [Define for the AMD x86-64 architecture.])
diff --git a/dev-util/strace/files/strace-4.5.14-CTL_PROC.patch b/dev-util/strace/files/strace-4.5.14-CTL_PROC.patch
new file mode 100644
index 0000000..f172917
--- /dev/null
+++ b/dev-util/strace/files/strace-4.5.14-CTL_PROC.patch
@@ -0,0 +1,17 @@
+fix building with 2.6.18+ headers
+
+http://bugs.gentoo.org/150907
+
+--- strace-4.5.14/system.c
++++ strace-4.5.14/system.c
+@@ -1591,6 +1591,10 @@
+ #endif
+
+ #ifdef LINUX
++/* linux-2.6.18+ has dropped this enum */
++#ifndef CTL_PROC
++# define CTL_PROC 4
++#endif
+ static const struct xlat sysctl_root[] = {
+ { CTL_KERN, "CTL_KERN" },
+ { CTL_VM, "CTL_VM" },
diff --git a/dev-util/strace/files/strace-4.5.14-PT_GETSIGINFO.patch b/dev-util/strace/files/strace-4.5.14-PT_GETSIGINFO.patch
new file mode 100644
index 0000000..3e2ba7e
--- /dev/null
+++ b/dev-util/strace/files/strace-4.5.14-PT_GETSIGINFO.patch
@@ -0,0 +1,18 @@
+strace assumes that if PT_GETSIGINFO is defined, you're building for ia64 as
+this was the only architecture that exported PT_GETSIGINFO via glibc userspace
+headers. with newer glibc's, support for PT_GETSIGINFO has been added to all
+linux architectures so we can no longer assume PT_GETSIGINFO == ia64.
+
+http://bugs.gentoo.org/149945
+
+--- strace.c 11 Oct 2006 22:55:25 -0000 1.71
++++ strace.c 11 Oct 2006 23:11:44 -0000 1.72
+@@ -2261,7 +2261,7 @@ Process %d attached (waiting for parent)
+ if (!cflag
+ && (qual_flags[WSTOPSIG(status)] & QUAL_SIGNAL)) {
+ unsigned long addr = 0, pc = 0;
+-#ifdef PT_GETSIGINFO
++#if defined(PT_CR_IPSR) && defined(PT_CR_IIP) && defined(PT_GETSIGINFO)
+ # define PSR_RI 41
+ struct siginfo si;
+ unsigned long psr;
diff --git a/dev-util/strace/files/strace-4.5.15-mips-sigcontext.patch b/dev-util/strace/files/strace-4.5.15-mips-sigcontext.patch
new file mode 100644
index 0000000..7917a1e
--- /dev/null
+++ b/dev-util/strace/files/strace-4.5.15-mips-sigcontext.patch
@@ -0,0 +1,22 @@
+--- signal.c.orig
++++ signal.c
+@@ -67,6 +67,7 @@
+
+ #ifdef LINUX
+
++#include <linux/version.h>
+ #ifdef IA64
+ # include <asm/ptrace_offsets.h>
+ #endif /* !IA64 */
+@@ -1435,7 +1436,11 @@
+ if (umove(tcp, sp, &sc) < 0)
+ return 0;
+ tcp->u_arg[0] = 1;
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
+ tcp->u_arg[1] = sc.sc_sigset;
++#else
++ tcp->u_arg[1] = sc.sc_hi2;
++#endif
+ } else {
+ tcp->u_rval = tcp->u_error = 0;
+ if(tcp->u_arg[0] == 0)
diff --git a/dev-util/strace/files/strace-4.5.15-mips-sprintsigmask.patch b/dev-util/strace/files/strace-4.5.15-mips-sprintsigmask.patch
new file mode 100644
index 0000000..2f7c2ac
--- /dev/null
+++ b/dev-util/strace/files/strace-4.5.15-mips-sprintsigmask.patch
@@ -0,0 +1,13 @@
+local sprintsigmask() now takes three args rather than two
+
+--- signal.c
++++ signal.c
+@@ -1440,7 +1440,7 @@ struct tcb *tcp;
+ tcp->u_rval = tcp->u_error = 0;
+ if(tcp->u_arg[0] == 0)
+ return 0;
+- tcp->auxstr = sprintsigmask("mask now ", tcp->u_arg[1]);
++ tcp->auxstr = sprintsigmask("mask now ", tcp->u_arg[1], 0);
+ return RVAL_NONE | RVAL_STR;
+ }
+ return 0;
diff --git a/dev-util/strace/files/strace-4.5.8-ia64.patch b/dev-util/strace/files/strace-4.5.8-ia64.patch
new file mode 100644
index 0000000..922f62c
--- /dev/null
+++ b/dev-util/strace/files/strace-4.5.8-ia64.patch
@@ -0,0 +1,97 @@
+Remove some obsolete ia64-related hacks from the strace source
+08 Feb 2005 agriffis@gentoo.org
+
+--- strace-4.5.8/process.c
++++ strace-4.5.8/process.c
+@@ -82,14 +82,10 @@
+
+ #ifdef HAVE_LINUX_PTRACE_H
+ #undef PTRACE_SYSCALL
+-# ifdef HAVE_STRUCT_IA64_FPREG
+-# define ia64_fpreg XXX_ia64_fpreg
+-# endif
+ # ifdef HAVE_STRUCT_PT_ALL_USER_REGS
+ # define pt_all_user_regs XXX_pt_all_user_regs
+ # endif
+ #include <linux/ptrace.h>
+-# undef ia64_fpreg
+ # undef pt_all_user_regs
+ #endif
+
+--- strace-4.5.8/signal.c
++++ strace-4.5.8/signal.c
+@@ -53,14 +53,10 @@
+ #endif
+ #elif defined(HAVE_LINUX_PTRACE_H)
+ #undef PTRACE_SYSCALL
+-# ifdef HAVE_STRUCT_IA64_FPREG
+-# define ia64_fpreg XXX_ia64_fpreg
+-# endif
+ # ifdef HAVE_STRUCT_PT_ALL_USER_REGS
+ # define pt_all_user_regs XXX_pt_all_user_regs
+ # endif
+ #include <linux/ptrace.h>
+-# undef ia64_fpreg
+ # undef pt_all_user_regs
+ #endif
+
+--- strace-4.5.8/syscall.c
++++ strace-4.5.8/syscall.c
+@@ -63,14 +63,10 @@
+ #endif
+ #elif defined(HAVE_LINUX_PTRACE_H)
+ #undef PTRACE_SYSCALL
+-# ifdef HAVE_STRUCT_IA64_FPREG
+-# define ia64_fpreg XXX_ia64_fpreg
+-# endif
+ # ifdef HAVE_STRUCT_PT_ALL_USER_REGS
+ # define pt_all_user_regs XXX_pt_all_user_regs
+ # endif
+ #include <linux/ptrace.h>
+-# undef ia64_fpreg
+ # undef pt_all_user_regs
+ #endif
+
+--- strace-4.5.8/system.c
++++ strace-4.5.8/system.c
+@@ -32,6 +32,23 @@
+
+ #include "defs.h"
+
++#ifdef HAVE_SYS_REG_H
++# include <sys/reg.h>
++# ifndef PTRACE_PEEKUSR
++# define PTRACE_PEEKUSR PTRACE_PEEKUSER
++# endif
++# ifndef PTRACE_POKEUSR
++# define PTRACE_POKEUSR PTRACE_POKEUSER
++# endif
++#elif defined(HAVE_LINUX_PTRACE_H)
++# undef PTRACE_SYSCALL
++# ifdef HAVE_STRUCT_PT_ALL_USER_REGS
++# define pt_all_user_regs XXX_pt_all_user_regs
++# endif
++# include <linux/ptrace.h>
++# undef pt_all_user_regs
++#endif
++
+ #ifdef LINUX
+ #define _LINUX_SOCKET_H
+ #define _LINUX_FS_H
+--- strace-4.5.8/util.c
++++ strace-4.5.8/util.c
+@@ -63,14 +63,10 @@
+ # define PTRACE_PEEKUSR PTRACE_PEEKUSER
+ #elif defined(HAVE_LINUX_PTRACE_H)
+ #undef PTRACE_SYSCALL
+-# ifdef HAVE_STRUCT_IA64_FPREG
+-# define ia64_fpreg XXX_ia64_fpreg
+-# endif
+ # ifdef HAVE_STRUCT_PT_ALL_USER_REGS
+ # define pt_all_user_regs XXX_pt_all_user_regs
+ # endif
+ #include <linux/ptrace.h>
+-# undef ia64_fpreg
+ # undef pt_all_user_regs
+ #endif
+
diff --git a/dev-util/strace/files/strace-dont-use-REG_SYSCALL-for-sh.patch b/dev-util/strace/files/strace-dont-use-REG_SYSCALL-for-sh.patch
new file mode 100644
index 0000000..9030ecc
--- /dev/null
+++ b/dev-util/strace/files/strace-dont-use-REG_SYSCALL-for-sh.patch
@@ -0,0 +1,10 @@
+--- strace/process.c
++++ strace/process.c
+@@ -2663,7 +2663,6 @@ const struct xlat struct_user_offsets[]
+ { 4*REG_GBR, "4*REG_GBR" },
+ { 4*REG_MACH, "4*REG_MACH" },
+ { 4*REG_MACL, "4*REG_MACL" },
+- { 4*REG_SYSCALL, "4*REG_SYSCALL" },
+ { 4*REG_FPUL, "4*REG_FPUL" },
+ { 4*REG_FPREG0, "4*REG_FPREG0" },
+ { 4*(REG_FPREG0+1), "4*REG_FPREG1" },
diff --git a/dev-util/strace/files/strace-fix-arm-bad-syscall.patch b/dev-util/strace/files/strace-fix-arm-bad-syscall.patch
new file mode 100644
index 0000000..125440d
--- /dev/null
+++ b/dev-util/strace/files/strace-fix-arm-bad-syscall.patch
@@ -0,0 +1,20 @@
+http://www.fluff.org/ben/patches/strace/
+
+--- strace-4.5.12-orig/syscall.c 2005-06-08 21:45:28.000000000 +0100
++++ strace-4.5.12/syscall.c 2005-10-25 19:26:39.000000000 +0100
+@@ -1013,6 +1013,15 @@ struct tcb *tcp;
+ /*
+ * Note: we only deal with only 32-bit CPUs here.
+ */
++
++ if (!(tcp->flags & TCB_INSYSCALL) &&
++ (tcp->flags & TCB_WAITEXECVE)) {
++ /* caught a fake syscall from the execve's exit */
++ tcp->flags &= ~TCB_WAITEXECVE;
++ return 0;
++ }
++
++
+ if (regs.ARM_cpsr & 0x20) {
+ /*
+ * Get the Thumb-mode system call number
diff --git a/dev-util/strace/files/strace-superh-update.patch b/dev-util/strace/files/strace-superh-update.patch
new file mode 100644
index 0000000..ff865a2
--- /dev/null
+++ b/dev-util/strace/files/strace-superh-update.patch
@@ -0,0 +1,28 @@
+--- strace/configure
++++ strace/configure
+@@ -1993,19 +1993,19 @@
+ _ACEOF
+
+ ;;
+-sh)
+- arch=sh
++sh64)
++ arch=sh64
+
+ cat >>confdefs.h <<\_ACEOF
+-#define SH 1
++#define SH64 1
+ _ACEOF
+
+ ;;
+-sh64)
+- arch=sh64
++sh*)
++ arch=sh
+
+ cat >>confdefs.h <<\_ACEOF
+-#define SH64 1
++#define SH 1
+ _ACEOF
+
+ ;;
diff --git a/dev-util/strace/files/strace-undef-syscall.patch b/dev-util/strace/files/strace-undef-syscall.patch
new file mode 100644
index 0000000..410e499
--- /dev/null
+++ b/dev-util/strace/files/strace-undef-syscall.patch
@@ -0,0 +1,15 @@
+--- strace-4.5.12/linux/syscallent.h.orig 2005-08-09 01:48:54.000000000 -0600
++++ strace-4.5.12/linux/syscallent.h 2005-08-09 01:50:23.000000000 -0600
+@@ -298,7 +298,11 @@
+ { 3, 0, sys_io_cancel, "io_cancel" }, /* 249 */
+ { 5, TF, sys_fadvise64, "fadvise64" }, /* 250 */
+ { 5, 0, printargs, "SYS_251" }, /* 251 */
+- { 1, TP, sys_exit, "exit_group", __NR_exit_group }, /* 252 */
++ { 1, TP, sys_exit, "exit_group"
++#ifdef __NR_exit_group
++ , __NR_exit_group
++#endif
++ }, /* 252 */
+ { 4, 0, printargs, "lookup_dcookie"}, /* 253 */
+ { 1, 0, sys_epoll_create, "epoll_create" }, /* 254 */
+ { 4, 0, sys_epoll_ctl, "epoll_ctl" }, /* 255 */
diff --git a/dev-util/strace/metadata.xml b/dev-util/strace/metadata.xml
new file mode 100644
index 0000000..96a2d58
--- /dev/null
+++ b/dev-util/strace/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>base-system</herd>
+</pkgmetadata>
diff --git a/dev-util/strace/strace-4.5.15.ebuild b/dev-util/strace/strace-4.5.15.ebuild
new file mode 100644
index 0000000..37c2817
--- /dev/null
+++ b/dev-util/strace/strace-4.5.15.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-util/strace/strace-4.5.15.ebuild,v 1.2 2007/02/19 04:12:57 vapier Exp $
+
+inherit flag-o-matic autotools
+
+DESCRIPTION="A useful diagnostic, instructional, and debugging tool"
+HOMEPAGE="http://sourceforge.net/projects/strace/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2"
+
+LICENSE="as-is"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+IUSE="static aio"
+
+DEPEND="aio? ( dev-libs/libaio )"
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+
+ #epatch "${FILESDIR}"/${PN}-4.5.11-fbsd.patch
+
+ epatch "${FILESDIR}"/strace-dont-use-REG_SYSCALL-for-sh.patch
+ epatch "${FILESDIR}"/${PN}-4.5.12-superh-update.patch
+ epatch "${FILESDIR}"/strace-fix-arm-bad-syscall.patch
+ epatch "${FILESDIR}"/${PN}-4.5.15-mips-sprintsigmask.patch
+ epatch "${FILESDIR}"/${PN}-4.5.12-libaio.patch #103427
+ epatch "${FILESDIR}"/${PN}-4.5.15-mips-sigcontext.patch
+
+ eautoreconf
+}
+
+src_compile() {
+ filter-lfs-flags
+
+ use static && append-ldflags -static
+
+ econf $(use_enable aio libaio) || die
+ emake || die
+}
+
+src_install() {
+ emake install DESTDIR="${D}" || die
+ dodoc ChangeLog CREDITS NEWS PORTING README* TODO
+}
diff --git a/media-libs/mesa/Manifest b/media-libs/mesa/Manifest
new file mode 100644
index 0000000..d4dd7ed
--- /dev/null
+++ b/media-libs/mesa/Manifest
@@ -0,0 +1,24 @@
+AUX 6.5.2-i965-wine-fix.patch 2888 RMD160 e899ac128933eb1a65e5c79de97408679beb2a50 SHA1 741221fba69b3891665e16da5baf6e66be62449d SHA256 bc19f4b5ce44a90c6b2aeab2c1148200539791ff9d0c60c5ffc2d4d8fe5fee78
+MD5 7815fb0ffaf1d8bfa6cf9d3bda43e34a files/6.5.2-i965-wine-fix.patch 2888
+RMD160 e899ac128933eb1a65e5c79de97408679beb2a50 files/6.5.2-i965-wine-fix.patch 2888
+SHA256 bc19f4b5ce44a90c6b2aeab2c1148200539791ff9d0c60c5ffc2d4d8fe5fee78 files/6.5.2-i965-wine-fix.patch 2888
+AUX lib/libGL.la 755 RMD160 a60984e0d56d559c2c15bd4693e01404a7e0a408 SHA1 d6e231ffaccd1b13c3628744031cc761ffaf76d8 SHA256 b32ffd7f3f866da7dbae80ba78b1dc5b4924b33ab133b13397af9cda0a274f91
+MD5 eae9808321f1e10f5cc6520c33914b3e files/lib/libGL.la 755
+RMD160 a60984e0d56d559c2c15bd4693e01404a7e0a408 files/lib/libGL.la 755
+SHA256 b32ffd7f3f866da7dbae80ba78b1dc5b4924b33ab133b13397af9cda0a274f91 files/lib/libGL.la 755
+AUX lib/libGLU.la 752 RMD160 04de8835526a3472480d7c285dd33d497bcc0bd7 SHA1 12c57ac5e7e8a94d4d41b0f37b0fb3f470791c39 SHA256 e28519d7ae719bc106f7d4239799580474d1b69a2254ede3b2179a5e50655fe5
+MD5 9abdd26694e6f1d7bd93193f900acc6c files/lib/libGLU.la 752
+RMD160 04de8835526a3472480d7c285dd33d497bcc0bd7 files/lib/libGLU.la 752
+SHA256 e28519d7ae719bc106f7d4239799580474d1b69a2254ede3b2179a5e50655fe5 files/lib/libGLU.la 752
+AUX mesa-6.5.2-loongson.patch 426 RMD160 00b0f76db3c0fec2768383ad35284905b4793b2d SHA1 0c29f74c34529481aaf165671f90e733ad31feb7 SHA256 8d0a3951b086c18ffdb171b9aea014a69b19d67a9020aa881fcc460ebbd90bf9
+MD5 598c24dccfcdcc99c07d883f7c09f36a files/mesa-6.5.2-loongson.patch 426
+RMD160 00b0f76db3c0fec2768383ad35284905b4793b2d files/mesa-6.5.2-loongson.patch 426
+SHA256 8d0a3951b086c18ffdb171b9aea014a69b19d67a9020aa881fcc460ebbd90bf9 files/mesa-6.5.2-loongson.patch 426
+DIST MesaLib-6.5.2.tar.bz2 3295166 RMD160 9a92d69110c066ae6734bcaafb78f222ac2df6d3 SHA1 ba860bb6ee57c02202342dfd5927464a068ea18f SHA256 137f50a30461d51eb9af5aac737bc788d536354cf47b26129b97bde6e41fb85f
+EBUILD mesa-6.5.2-r1.ebuild 9079 RMD160 1cf3756421c1ee729abe1678a4fb42cfaf66540a SHA1 d47e10012f2e756a5ad1b98aebe2ec086648cfb1 SHA256 540531f75b020e77d57228cc651c1d181f53eafcb3e8858f6213c08ae8650ce9
+MD5 fab8a4011acb9cdb39ee18fa9ebe6956 mesa-6.5.2-r1.ebuild 9079
+RMD160 1cf3756421c1ee729abe1678a4fb42cfaf66540a mesa-6.5.2-r1.ebuild 9079
+SHA256 540531f75b020e77d57228cc651c1d181f53eafcb3e8858f6213c08ae8650ce9 mesa-6.5.2-r1.ebuild 9079
+MD5 c0c5f49d272303a5fb0883697d6594ef files/digest-mesa-6.5.2-r1 247
+RMD160 5e03f47a1a56342ba577b02e917b260302afb1a7 files/digest-mesa-6.5.2-r1 247
+SHA256 f9339d87fc164d7137d1f589bb7a5995d6a19302bf26d4002f92e9bf4d1a9821 files/digest-mesa-6.5.2-r1 247
diff --git a/media-libs/mesa/files/6.5.2-i965-wine-fix.patch b/media-libs/mesa/files/6.5.2-i965-wine-fix.patch
new file mode 100644
index 0000000..63acd15
--- /dev/null
+++ b/media-libs/mesa/files/6.5.2-i965-wine-fix.patch
@@ -0,0 +1,109 @@
+--- a/src/mesa/drivers/dri/i965/brw_context.h
++++ b/src/mesa/drivers/dri/i965/brw_context.h
+@@ -599,6 +599,7 @@ struct brw_context
+
+ struct {
+ struct brw_wm_prog_data *prog_data;
++ struct brw_wm_compile *compile_data;
+
+ /* Input sizes, calculated from active vertex program:
+ */
+diff --git a/src/mesa/drivers/dri/i965/brw_wm.c b/src/mesa/drivers/dri/i965/brw_wm.c
+index 3e2f2d0..0f842d2 100644
+--- a/src/mesa/drivers/dri/i965/brw_wm.c
++++ b/src/mesa/drivers/dri/i965/brw_wm.c
+@@ -138,64 +138,75 @@ static void do_wm_prog( struct brw_conte
+ struct brw_fragment_program *fp,
+ struct brw_wm_prog_key *key)
+ {
+- struct brw_wm_compile c;
++ struct brw_wm_compile *c;
+ const GLuint *program;
+ GLuint program_size;
+
+- memset(&c, 0, sizeof(c));
+- memcpy(&c.key, key, sizeof(*key));
++ c = brw->wm.compile_data;
++ if (c == NULL) {
++ brw->wm.compile_data = calloc(1, sizeof(*brw->wm.compile_data));
++ c = brw->wm.compile_data;
++ } else {
++ memset(c, 0, sizeof(*brw->wm.compile_data));
++ }
++ memcpy(&c->key, key, sizeof(*key));
+
+- c.fp = fp;
+- c.env_param = brw->intel.ctx.FragmentProgram.Parameters;
++ c->fp = fp;
++ c->env_param = brw->intel.ctx.FragmentProgram.Parameters;
+
+
+ /* Augment fragment program. Add instructions for pre- and
+ * post-fragment-program tasks such as interpolation and fogging.
+ */
+- brw_wm_pass_fp(&c);
++ brw_wm_pass_fp(c);
+
+ /* Translate to intermediate representation. Build register usage
+ * chains.
+ */
+- brw_wm_pass0(&c);
++ brw_wm_pass0(c);
+
+ /* Dead code removal.
+ */
+- brw_wm_pass1(&c);
++ brw_wm_pass1(c);
+
+ /* Hal optimization
+ */
+- brw_wm_pass_hal (&c);
++ brw_wm_pass_hal (c);
+
+ /* Register allocation.
+ */
+- c.grf_limit = BRW_WM_MAX_GRF/2;
++ c->grf_limit = BRW_WM_MAX_GRF/2;
+
+ /* This is where we start emitting gen4 code:
+ */
+- brw_init_compile(&c.func);
++ brw_init_compile(&c->func);
+
+- brw_wm_pass2(&c);
++ brw_wm_pass2(c);
+
+- c.prog_data.total_grf = c.max_wm_grf;
+- c.prog_data.total_scratch = c.last_scratch ? c.last_scratch + 0x40 : 0;
++ c->prog_data.total_grf = c->max_wm_grf;
++ if (c->last_scratch) {
++ c->prog_data.total_scratch =
++ c->last_scratch + 0x40;
++ } else {
++ c->prog_data.total_scratch = 0;
++ }
+
+ /* Emit GEN4 code.
+ */
+- brw_wm_emit(&c);
++ brw_wm_emit(c);
+
+ /* get the program
+ */
+- program = brw_get_program(&c.func, &program_size);
++ program = brw_get_program(&c->func, &program_size);
+
+ /*
+ */
+ brw->wm.prog_gs_offset = brw_upload_cache( &brw->cache[BRW_WM_PROG],
+- &c.key,
+- sizeof(c.key),
++ &c->key,
++ sizeof(c->key),
+ program,
+ program_size,
+- &c.prog_data,
++ &c->prog_data,
+ &brw->wm.prog_data );
+ }
+
diff --git a/media-libs/mesa/files/digest-mesa-6.5.2-r1 b/media-libs/mesa/files/digest-mesa-6.5.2-r1
new file mode 100644
index 0000000..ee5bf23
--- /dev/null
+++ b/media-libs/mesa/files/digest-mesa-6.5.2-r1
@@ -0,0 +1,3 @@
+MD5 e4d894181f1859651658b3704633e10d MesaLib-6.5.2.tar.bz2 3295166
+RMD160 9a92d69110c066ae6734bcaafb78f222ac2df6d3 MesaLib-6.5.2.tar.bz2 3295166
+SHA256 137f50a30461d51eb9af5aac737bc788d536354cf47b26129b97bde6e41fb85f MesaLib-6.5.2.tar.bz2 3295166
diff --git a/media-libs/mesa/files/lib/libGL.la b/media-libs/mesa/files/lib/libGL.la
new file mode 100644
index 0000000..cc2fd24
--- /dev/null
+++ b/media-libs/mesa/files/lib/libGL.la
@@ -0,0 +1,32 @@
+# libGL.la - a libtool library file
+# Generated by ltmain.sh - GNU libtool 1.4 (1.920 2001/04/24 23:26:18)
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='libGL.so.1'
+
+# Names of this library.
+library_names='libGL.so.1.2 libGL.so.1 libGL.so'
+
+# The name of the static archive.
+old_library=''
+
+# Libraries that this one depends upon.
+dependency_libs=' -L/usr/${libdir} -lSM -lICE -lXmu -lXt -lXext -lXi -lX11 -ldl -lpthread '
+
+# Version information for libGL.
+current=3
+age=2
+revision=0
+
+# Is this an already installed library?
+installed=yes
+
+# Files to dlopen/dlpreopen
+dlopen=''
+dlpreopen=''
+
+# Directory that this library needs to be installed in:
+libdir='/usr/${libdir}'
diff --git a/media-libs/mesa/files/lib/libGLU.la b/media-libs/mesa/files/lib/libGLU.la
new file mode 100644
index 0000000..cc76b4b
--- /dev/null
+++ b/media-libs/mesa/files/lib/libGLU.la
@@ -0,0 +1,32 @@
+# libGLU.la - a libtool library file
+# Generated by ltmain.sh - GNU libtool 1.4 (1.920 2001/04/24 23:26:18)
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='libGLU.so.1'
+
+# Names of this library.
+library_names='libGLU.so.1.3 libGLU.so.1 libGLU.so'
+
+# The name of the static archive.
+old_library=''
+
+# Libraries that this one depends upon.
+dependency_libs=' -L/usr/lib -lGL -lSM -lICE -lXmu -lXt -lXext -lXi -lX11 -ldl -lpthread '
+
+# Version information for libGLU.
+current=4
+age=3
+revision=0
+
+# Is this an already installed library?
+installed=yes
+
+# Files to dlopen/dlpreopen
+dlopen=''
+dlpreopen=''
+
+# Directory that this library needs to be installed in:
+libdir='/usr/lib'
diff --git a/media-libs/mesa/files/mesa-6.5.2-loongson.patch b/media-libs/mesa/files/mesa-6.5.2-loongson.patch
new file mode 100644
index 0000000..fa82abe
--- /dev/null
+++ b/media-libs/mesa/files/mesa-6.5.2-loongson.patch
@@ -0,0 +1,11 @@
+--- Mesa-6.5.2/include/GL/internal/sarea.h.orig 2007-03-01 05:27:22.000000000 +0800
++++ Mesa-6.5.2/include/GL/internal/sarea.h 2007-03-01 05:27:49.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 --git a/media-libs/mesa/mesa-6.5.2-r1.ebuild b/media-libs/mesa/mesa-6.5.2-r1.ebuild
new file mode 100644
index 0000000..91674f6
--- /dev/null
+++ b/media-libs/mesa/mesa-6.5.2-r1.ebuild
@@ -0,0 +1,335 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-libs/mesa/mesa-6.5.2-r1.ebuild,v 1.1 2007/02/19 22:21:17 joshuabaergen Exp $
+
+inherit eutils toolchain-funcs multilib flag-o-matic portability
+
+OPENGL_DIR="xorg-x11"
+
+MY_PN="${PN/m/M}"
+MY_P="${MY_PN}-${PV}"
+MY_SRC_P="${MY_PN}Lib-${PV}"
+DESCRIPTION="OpenGL-like graphic library for Linux"
+HOMEPAGE="http://mesa3d.sourceforge.net/"
+SRC_URI="mirror://sourceforge/mesa3d/${MY_SRC_P}.tar.bz2"
+LICENSE="LGPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd"
+IUSE_VIDEO_CARDS="
+ video_cards_i810
+ video_cards_mach64
+ video_cards_mga
+ video_cards_none
+ video_cards_r128
+ video_cards_radeon
+ video_cards_s3virge
+ video_cards_savage
+ video_cards_sis
+ video_cards_sunffb
+ video_cards_tdfx
+ video_cards_trident
+ video_cards_via"
+IUSE="${IUSE_VIDEO_CARDS}
+ debug
+ doc
+ hardened
+ motif
+ nptl
+ xcb"
+
+RESTRICT="stricter"
+RDEPEND="dev-libs/expat
+ x11-libs/libX11
+ x11-libs/libXext
+ x11-libs/libXxf86vm
+ x11-libs/libXi
+ x11-libs/libXmu
+ >=x11-libs/libdrm-2.2
+ x11-libs/libICE
+ app-admin/eselect-opengl
+ motif? ( virtual/motif )
+ doc? ( app-doc/opengl-manpages )
+ !<=x11-base/xorg-x11-6.9
+ xcb? ( x11-libs/libxcb )"
+DEPEND="${RDEPEND}
+ dev-util/pkgconfig
+ x11-misc/makedepend
+ x11-proto/inputproto
+ x11-proto/xextproto
+ !hppa? ( x11-proto/xf86driproto )
+ x11-proto/xf86vidmodeproto
+ >=x11-proto/glproto-1.4.8
+ motif? ( x11-proto/printproto )"
+
+S="${WORKDIR}/${MY_P}"
+
+# Think about: ggi, svga, fbcon, no-X configs
+
+if use debug; then
+ if ! has splitdebug ${FEATURES}; then
+ RESTRICT="${RESTRICT} nostrip"
+ fi
+fi
+
+pkg_setup() {
+ if use xcb; then
+ if ! built_with_use x11-libs/libX11 xcb; then
+ msg="You must build libX11 with xcb enabled."
+ eerror ${msg}
+ die ${msg}
+ fi
+ fi
+
+ if use debug; then
+ strip-flags
+ append-flags -g
+ fi
+
+ append-flags -fno-strict-aliasing
+
+ if use x86-fbsd; then
+ CONFIG="freebsd-dri-x86"
+ elif use amd64-fbsd; then
+ CONFIG="freebsd-dri-amd64"
+ elif use kernel_FreeBSD; then
+ CONFIG="freebsd-dri"
+ elif use x86; then
+ CONFIG="linux-dri-x86"
+ elif use amd64; then
+ [[ ${ABI} == "amd64" ]] && CONFIG="linux-dri-x86-64"
+ [[ ${ABI} == "x86" ]] && CONFIG="linux-dri-x86"
+ elif use ppc; then
+ CONFIG="linux-dri-ppc"
+ else
+ CONFIG="linux-dri"
+ fi
+}
+
+src_unpack() {
+ HOSTCONF="${S}/configs/${CONFIG}"
+
+ unpack ${A}
+ cd ${S}
+
+ epatch "${FILESDIR}/${PV}-i965-wine-fix.patch"
+ epatch "${FILESDIR}/${P}-loongson.patch"
+
+ # FreeBSD 6.* doesn't have posix_memalign().
+ [[ ${CHOST} == *-freebsd6.* ]] && sed -i -e "s/-DHAVE_POSIX_MEMALIGN//" configs/freebsd{,-dri}
+
+ # Don't compile debug code with USE=-debug - bug #125004
+ if ! use debug; then
+ einfo "Removing DO_DEBUG defs in dri drivers..."
+ find src/mesa/drivers/dri -name *.[hc] -exec egrep -l "\#define\W+DO_DEBUG\W+1" {} \; | xargs sed -i -re "s/\#define\W+DO_DEBUG\W+1/\#define DO_DEBUG 0/" ;
+ fi
+
+ # Set up libdir
+ echo "LIB_DIR = $(get_libdir)" >> ${HOSTCONF}
+
+ # Set default dri drivers directory
+ echo 'DRI_DRIVER_SEARCH_DIR = /usr/$(LIB_DIR)/dri' >> ${HOSTCONF}
+
+ # Do we want thread-local storage (TLS)?
+ if use nptl; then
+ echo "ARCH_FLAGS += -DGLX_USE_TLS" >> ${HOSTCONF}
+ fi
+
+ echo "X11_INCLUDES = `pkg-config --cflags-only-I x11`" >> ${HOSTCONF}
+ if use xcb; then
+ echo "DEFINES += -DUSE_XCB" >> ${HOSTCONF}
+ echo "X11_INCLUDES += `pkg-config --cflags-only-I xcb` `pkg-config --cflags-only-I x11-xcb` `pkg-config --cflags-only-I xcb-glx`" >> ${HOSTCONF}
+ echo "GL_LIB_DEPS += `pkg-config --libs xcb` `pkg-config --libs x11-xcb` `pkg-config --libs xcb-glx`" >> ${HOSTCONF}
+ fi
+
+ # Configurable DRI drivers
+ if use video_cards_i810; then
+ add_drivers i810 i915 i915tex i965
+ fi
+ if use video_cards_mach64; then
+ add_drivers mach64
+ fi
+ if use video_cards_mga; then
+ add_drivers mga
+ fi
+ if use video_cards_r128; then
+ add_drivers r128
+ fi
+ if use video_cards_radeon; then
+ add_drivers radeon r200 r300
+ fi
+ if use video_cards_s3virge; then
+ add_drivers s3v
+ fi
+ if use video_cards_savage; then
+ add_drivers savage
+ fi
+ if use video_cards_sis; then
+ add_drivers sis
+ fi
+ if use video_cards_sunffb; then
+ add_drivers ffb
+ fi
+ if use video_cards_tdfx; then
+ add_drivers tdfx
+ fi
+ if use video_cards_trident; then
+ add_drivers trident
+ fi
+ if use video_cards_via; then
+ add_drivers unichrome
+ fi
+
+ # Set drivers to everything on which we ran add_drivers()
+ echo "DRI_DIRS = ${DRI_DRIVERS}" >> ${HOSTCONF}
+
+ if use hardened; then
+ einfo "Deactivating assembly code for hardened build"
+ echo "ASM_FLAGS =" >> ${HOSTCONF}
+ echo "ASM_SOURCES =" >> ${HOSTCONF}
+ echo "ASM_API =" >> ${HOSTCONF}
+ fi
+
+ if use sparc; then
+ einfo "Sparc assembly code is not working; deactivating"
+ echo "ASM_FLAGS =" >> ${HOSTCONF}
+ echo "ASM_SOURCES =" >> ${HOSTCONF}
+ fi
+
+ # Replace hardcoded /usr/X11R6 with this
+ echo "EXTRA_LIB_PATH = `pkg-config --libs-only-L x11`" >> ${HOSTCONF}
+
+ echo 'CFLAGS = $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) $(ASM_FLAGS)' >> ${HOSTCONF}
+ echo "OPT_FLAGS = ${CFLAGS}" >> ${HOSTCONF}
+ echo "CC = $(tc-getCC)" >> ${HOSTCONF}
+ echo "CXX = $(tc-getCXX)" >> ${HOSTCONF}
+ # bug #110840 - Build with PIC, since it hasn't been shown to slow it down
+ echo "PIC_FLAGS = -fPIC" >> ${HOSTCONF}
+
+ # Removed glut, since we have separate freeglut/glut ebuilds
+ # Remove EGL, since Brian Paul says it's not ready for a release
+ echo "SRC_DIRS = glx/x11 mesa glu glw" >> ${HOSTCONF}
+
+ # Get rid of glut includes
+ rm -f ${S}/include/GL/glut*h
+
+ # r200 breaks without this, since it's the only EGL-enabled driver so far
+ echo "USING_EGL = 0" >> ${HOSTCONF}
+
+ # Don't build EGL demos. EGL isn't ready for release, plus they produce a
+ # circular dependency with glut.
+ echo "PROGRAM_DIRS =" >> ${HOSTCONF}
+
+ # Documented in configs/default
+ if use motif; then
+ # Add -lXm
+ echo "GLW_LIB_DEPS += -lXm" >> ${HOSTCONF}
+ # Add GLwMDrawA.c
+ echo "GLW_SOURCES += GLwMDrawA.c" >> ${HOSTCONF}
+ fi
+}
+
+src_compile() {
+ emake -j1 ${CONFIG} || die "Build failed"
+}
+
+src_install() {
+ dodir /usr
+ make \
+ INSTALL_DIR="${D}/usr" \
+ DRI_DRIVER_INSTALL_DIR="${D}/usr/\$(LIB_DIR)/dri" \
+ INCLUDE_DIR="${D}/usr/include" \
+ install || die "Installation failed"
+
+ if ! use motif; then
+ rm ${D}/usr/include/GL/GLwMDrawA.h
+ fi
+
+ # Don't install private headers
+ rm ${D}/usr/include/GL/GLw*P.h
+
+ fix_opengl_symlinks
+ dynamic_libgl_install
+
+ # Install libtool archives
+ insinto /usr/$(get_libdir)
+ # (#67729) Needs to be lib, not $(get_libdir)
+ doins ${FILESDIR}/lib/libGLU.la
+ sed -e "s:\${libdir}:$(get_libdir):g" ${FILESDIR}/lib/libGL.la \
+ > ${D}/usr/$(get_libdir)/opengl/xorg-x11/lib/libGL.la
+
+ # On *BSD libcs dlopen() and similar functions are present directly in
+ # libc.so and does not require linking to libdl. portability eclass takes
+ # care of finding the needed library (if needed) witht the dlopen_lib
+ # function.
+ sed -i -e 's:-ldl:'$(dlopen_lib)':g' \
+ ${D}/usr/$(get_libdir)/libGLU.la \
+ ${D}/usr/$(get_libdir)/opengl/xorg-x11/lib/libGL.la
+
+ # Create the two-number versioned libs (.so.#.#), since only .so.# and
+ # .so.#.#.# were made
+ dosym libGLU.so.1.3.060502 /usr/$(get_libdir)/libGLU.so.1.3
+ dosym libGLw.so.1.0.0 /usr/$(get_libdir)/libGLw.so.1.0
+
+ # libGLU doesn't get the plain .so symlink either
+ dosym libGLU.so.1 /usr/$(get_libdir)/libGLU.so
+
+ # Figure out why libGL.so.1.5 is built (directfb), and why it's linked to
+ # as the default libGL.so.1
+}
+
+pkg_postinst() {
+ switch_opengl_implem
+}
+
+fix_opengl_symlinks() {
+ # Remove invalid symlinks
+ local LINK
+ for LINK in $(find ${D}/usr/$(get_libdir) \
+ -name libGL\.* -type l); do
+ rm -f ${LINK}
+ done
+ # Create required symlinks
+ if [[ ${CHOST} == *-freebsd* ]]; then
+ # FreeBSD doesn't use major.minor versioning, so the library is only
+ # libGL.so.1 and no libGL.so.1.2 is ever used there, thus only create
+ # libGL.so symlink and leave libGL.so.1 being the real thing
+ dosym libGL.so.1 /usr/$(get_libdir)/libGL.so
+ else
+ dosym libGL.so.1.2 /usr/$(get_libdir)/libGL.so
+ dosym libGL.so.1.2 /usr/$(get_libdir)/libGL.so.1
+ fi
+}
+
+dynamic_libgl_install() {
+ # next section is to setup the dynamic libGL stuff
+ ebegin "Moving libGL and friends for dynamic switching"
+ dodir /usr/$(get_libdir)/opengl/${OPENGL_DIR}/{lib,extensions,include}
+ local x=""
+ for x in ${D}/usr/$(get_libdir)/libGL.so* \
+ ${D}/usr/$(get_libdir)/libGL.la \
+ ${D}/usr/$(get_libdir)/libGL.a; do
+ if [ -f ${x} -o -L ${x} ]; then
+ # libGL.a cause problems with tuxracer, etc
+ mv -f ${x} ${D}/usr/$(get_libdir)/opengl/${OPENGL_DIR}/lib
+ fi
+ done
+ # glext.h added for #54984
+ for x in ${D}/usr/include/GL/{gl.h,glx.h,glext.h,glxext.h}; do
+ if [ -f ${x} -o -L ${x} ]; then
+ mv -f ${x} ${D}/usr/$(get_libdir)/opengl/${OPENGL_DIR}/include
+ fi
+ done
+ eend 0
+}
+
+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}
+}
+
+add_drivers() {
+ DRI_DRIVERS="${DRI_DRIVERS} $@"
+}
diff --git a/net-p2p/mldonkey/ChangeLog b/net-p2p/mldonkey/ChangeLog
new file mode 100644
index 0000000..c727ef0
--- /dev/null
+++ b/net-p2p/mldonkey/ChangeLog
@@ -0,0 +1,738 @@
+# ChangeLog for net-p2p/mldonkey
+# Copyright 2002-2007 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/net-p2p/mldonkey/ChangeLog,v 1.167 2007/07/09 10:13:16 tove Exp $
+
+ 09 Jul 2007; Jeroen Roovers <jer@gentoo.org> mldonkey-2.8.7.ebuild:
+ Stable for HPPA (bug #184625).
+
+ 08 Jul 2007; Joseph Jezak <josejx@gentoo.org> mldonkey-2.8.7.ebuild:
+ Marked ppc stable for bug #184625.
+
+ 08 Jul 2007; Raúl Porcel <armin76@gentoo.org> mldonkey-2.8.7.ebuild:
+ ia64/x86 stable wrt #184625
+
+ 02 Jul 2007; Piotr Jaroszyński <peper@gentoo.org> mldonkey-2.8.5.ebuild,
+ mldonkey-2.8.7.ebuild:
+ (QA) RESTRICT clean up.
+
+ 13 Jun 2007; Raúl Porcel <armin76@gentoo.org> -mldonkey-2.8.3.ebuild,
+ -mldonkey-2.8.4.ebuild:
+ old
+
+ 13 Jun 2007; Christoph Mende <angelos@gentoo.org> mldonkey-2.8.5.ebuild:
+ Stable on amd64 wrt bug 179882
+
+ 08 Jun 2007; Raúl Porcel <armin76@gentoo.org>
+ files/mldonkey.initd-2.8-r1:
+ Swap one line in the init script, thanks to Jörg Eitemüller <destotelhorus
+ at googlemail dot com> for reporting in bug 181140
+
+*mldonkey-2.8.7 (03 Jun 2007)
+
+ 03 Jun 2007; Raúl Porcel <armin76@gentoo.org> +mldonkey-2.8.7.ebuild:
+ Version bump
+
+ 01 Jun 2007; nixnut <nixnut@gentoo.org> mldonkey-2.8.5.ebuild:
+ Stable on ppc wrt bug 179882
+
+ 28 May 2007; Jeroen Roovers <jer@gentoo.org> mldonkey-2.8.5.ebuild:
+ Stable for HPPA (bug #179882).
+
+ 26 May 2007; Raúl Porcel <armin76@gentoo.org> mldonkey-2.8.5.ebuild:
+ ia64 + x86 stable wrt #179882
+
+ 17 May 2007; Raúl Porcel <armin76@gentoo.org> mldonkey-2.8.3.ebuild,
+ mldonkey-2.8.4.ebuild, mldonkey-2.8.5.ebuild:
+ Remove useless mldonkey script, bug 178883
+
+ 04 May 2007; Raúl Porcel <armin76@gentoo.org> mldonkey-2.8.4.ebuild:
+ ia64 + x86 stable
+
+*mldonkey-2.8.5 (23 Apr 2007)
+
+ 23 Apr 2007; Raúl Porcel <armin76@gentoo.org> +mldonkey-2.8.5.ebuild:
+ Version bump
+
+ 22 Apr 2007; Raúl Porcel <armin76@gentoo.org> mldonkey-2.8.3.ebuild,
+ mldonkey-2.8.4.ebuild:
+ Use doconfd and doinitd, bug 174266
+
+ 10 Apr 2007; Raúl Porcel <armin76@gentoo.org> mldonkey-2.8.3.ebuild,
+ mldonkey-2.8.4.ebuild:
+ Remove idiot batch USE-flag, bug 174021
+
+ 08 Apr 2007; Raúl Porcel <armin76@gentoo.org>
+ -files/mldonkey-2.8.2-avoid_dupl_sending.patch, -mldonkey-2.8.2-r1.ebuild:
+ drop old
+
+ 07 Apr 2007; Christian Faulhammer <opfer@gentoo.org>
+ mldonkey-2.8.3.ebuild:
+ stable amd64, bug 165591
+
+ 06 Apr 2007; Tobias Scherbaum <dertobi123@gentoo.org>
+ mldonkey-2.8.3.ebuild:
+ ppc stable, bug #165591
+
+ 04 Apr 2007; Raúl Porcel <armin76@gentoo.org> mldonkey-2.8.3.ebuild,
+ mldonkey-2.8.4.ebuild:
+ Make install fail if dobin fails, bug 173317
+
+*mldonkey-2.8.4 (02 Apr 2007)
+
+ 02 Apr 2007; Raúl Porcel <armin76@gentoo.org> -files/dp500.patch,
+ -files/mldonkey.confd, -files/mldonkey.initd, -mldonkey-2.7.7.ebuild,
+ mldonkey-2.8.3.ebuild, +mldonkey-2.8.4.ebuild:
+ Version bump, ia64 stable wrt bug 165591 and cleanup old
+
+ 20 Mar 2007; Jeroen Roovers <jer@gentoo.org> mldonkey-2.8.3.ebuild:
+ Stable for HPPA (bug #165591).
+
+ 13 Mar 2007; Raúl Porcel <armin76@gentoo.org> mldonkey-2.8.3.ebuild:
+ x86 stable
+
+ 25 Feb 2007; Matti Bickel <mabi@gentoo.org> mldonkey-2.8.2-r1.ebuild:
+ ppc stable (bug #165591)
+
+ 13 Feb 2007; Steve Dibb <beandog@gentoo.org> mldonkey-2.8.2-r1.ebuild:
+ amd64 stable, bug 165591
+
+*mldonkey-2.8.3 (11 Feb 2007)
+
+ 11 Feb 2007; Raúl Porcel <armin76@gentoo.org> +mldonkey-2.8.3.ebuild:
+ Version bump, bug 166350
+
+ 06 Feb 2007; Jeroen Roovers <jer@gentoo.org> mldonkey-2.8.2-r1.ebuild:
+ Stable for HPPA (bug #165591).
+
+ 06 Feb 2007; Raúl Porcel <armin76@gentoo.org> mldonkey-2.8.2-r1.ebuild:
+ x86 stable wrt bug 165591
+
+ 24 Jan 2007; Raúl Porcel <armin76@gentoo.org>
+ -files/mldonkey-2.7.3-configure.patch, -files/mldonkey-2.7.6-magic.patch,
+ +files/mldonkey.confd-2.8, -files/mldonkey.initd-2.8,
+ +files/mldonkey.initd-2.8-r1, -mldonkey-2.6.4-r2.ebuild,
+ -mldonkey-2.7.3.ebuild, -mldonkey-2.7.6-r1.ebuild, -mldonkey-2.8.2.ebuild,
+ mldonkey-2.8.2-r1.ebuild:
+ Drop old , add new initd script and confd, thanks to Christian Schlotter
+ <again at gmx at de>, bug 141177
+
+ 13 Jan 2007; Raúl Porcel <armin76@gentoo.org> mldonkey-2.7.7.ebuild,
+ mldonkey-2.8.2-r1.ebuild:
+ Change HOMEPAGE, bug 161875
+
+*mldonkey-2.8.2-r1 (12 Jan 2007)
+
+ 12 Jan 2007; Raúl Porcel <armin76@gentoo.org>
+ +files/mldonkey-2.8.2-avoid_dupl_sending.patch, +mldonkey-2.8.2-r1.ebuild:
+ Add new patch, from bug 161169, thanks to spiralvoice <spiralvoice at
+ hotmail dot com>
+
+ 21 Dec 2006; Saleem Abdulrasool <compnerd@gentoo.org>
+ -mldonkey-2.5.16-r9.ebuild:
+ gnome-1.x removal
+
+ 07 Dec 2006; Karol Wojtaszek <sekretarz@gentoo.org>
+ +files/mldonkey.initd-2.8, mldonkey-2.8.2.ebuild:
+ Fixed mldonkey init script to work with new mldonkey-2.8.2, bug #157242
+
+*mldonkey-2.8.2 (02 Dec 2006)
+
+ 02 Dec 2006; Karol Wojtaszek <sekretarz@gentoo.org>
+ +mldonkey-2.8.2.ebuild:
+ Version bump, bug #147718
+
+ 15 Oct 2006; Aron Griffis <agriffis@gentoo.org> mldonkey-2.7.7.ebuild:
+ Mark 2.7.7 stable on ia64. #138373
+
+ 26 Sep 2006; Gustavo Zacarias <gustavoz@gentoo.org> mldonkey-2.7.7.ebuild:
+ Stable on hppa wrt #138373
+
+ 12 Sep 2006; Joshua Jackson <tsunam@gentoo.org> mldonkey-2.7.7.ebuild:
+ Stable x86; bug #137373
+
+ 05 Sep 2006; Joseph Jezak <josejx@gentoo.org> mldonkey-2.7.7.ebuild:
+ Marked ppc stable for bug #138373.
+
+ 02 Sep 2006; <blubb@gentoo.org> mldonkey-2.7.7.ebuild:
+ stable on amd64
+
+ 09 Aug 2006; Joshua Jackson <tsunam@gentoo.org> mldonkey-2.7.7.ebuild:
+ Stable x86; bug #138373
+
+ 05 Jul 2006; Gustavo Zacarias <gustavoz@gentoo.org> mldonkey-2.7.7.ebuild:
+ Keyworded ~sparc wrt #139014, use ~sparc ocaml
+
+*mldonkey-2.7.7 (20 Jun 2006)
+
+ 20 Jun 2006; Jon Hood <squinky86@gentoo.org> -mldonkey-2.7.6.ebuild,
+ +mldonkey-2.7.7.ebuild:
+ Version bump, remove buggy version. Resolves #137314. Thanks spiralvoice
+ <spiralvoice@hotmail.com>!
+
+*mldonkey-2.7.6-r1 (18 Jun 2006)
+
+ 18 Jun 2006; Karol Wojtaszek <sekretarz@gentoo.org>
+ +files/mldonkey-2.7.6-magic.patch, +mldonkey-2.7.6-r1.ebuild:
+ Add patch which fixes a serious performance problem when MLDonkey
+ downloads lots of new files or torrents with a lot (>100) subfiles, bug #136700
+
+ 09 Jun 2006; Karol Wojtaszek <sekretarz@gentoo.org>
+ -mldonkey-2.5.21-r2.ebuild, -mldonkey-2.6.5.ebuild,
+ -mldonkey-2.6.7.ebuild, -mldonkey-2.7.5.ebuild:
+ Ebuild clean up
+
+*mldonkey-2.7.6 (09 Jun 2006)
+
+ 09 Jun 2006; Karol Wojtaszek <sekretarz@gentoo.org>
+ +mldonkey-2.7.6.ebuild:
+ Version bump. Removed threads USE flag. Bug #133944 and #127016
+
+*mldonkey-2.7.5 (18 May 2006)
+
+ 18 May 2006; Jon Hood <squinky86@gentoo.org>
+ -files/mldonkey-2.5.16-configure.patch,
+ -files/mldonkey-2.5.21-configure.patch,
+ -files/mldonkey-2.6.0-gtk2-gentoo.patch, +files/dp500.patch,
+ -mldonkey-2.6.0-r1.ebuild, -mldonkey-2.7.0.ebuild, -mldonkey-2.7.1.ebuild,
+ -mldonkey-2.7.2.ebuild, +mldonkey-2.7.5.ebuild:
+ Version bump, #124199. Thanks to Andreas Calvo <fflipy@hotmail.com>,
+ spiralvoice <spiralvoice@hotmail.com>, and many others in bug #124199 for
+ cleaning this up.
+
+ 27 Apr 2006; Matthieu Sozeau <mattam@gentoo.org>
+ +files/mldonkey-2.7.3-configure.patch, mldonkey-2.7.3.ebuild:
+ Patch for ocaml-3.09.2, may need to be backported.
+
+ 15 Mar 2006; Gustavo Zacarias <gustavoz@gentoo.org> mldonkey-2.7.3.ebuild:
+ Seems to work nice enough, deserves ~hppa
+
+ 10 Mar 2006; Aron Griffis <agriffis@gentoo.org> mldonkey-2.7.3.ebuild:
+ Mark 2.7.3 stable on ia64. #107206
+
+ 28 Jan 2006; Marcin Kryczek <mkay@gentoo.org>
+ -files/mldonkey-2.7.0-endianess.patch.bz2, mldonkey-2.7.0.ebuild:
+ Moving binary patches from CVS to mirrors
+
+ 23 Jan 2006; Marcin Kryczek <mkay@gentoo.org> -mldonkey-2.6.0.ebuild,
+ -mldonkey-2.6.4-r1.ebuild:
+ Removing ebuilds with obsolete gtk2 USE flag
+
+*mldonkey-2.7.3 (19 Jan 2006)
+
+ 19 Jan 2006; Marcin Kryczek <mkay@gentoo.org> +mldonkey-2.7.3.ebuild:
+ Version bump. Adding RESTRICT=nomirror as an upstream developer wished
+
+*mldonkey-2.7.2 (13 Jan 2006)
+
+ 13 Jan 2006; Marcin Kryczek <mkay@gentoo.org> +mldonkey-2.7.2.ebuild:
+ Version bump
+
+ 04 Jan 2006; Karol Wojtaszek <sekretarz@gentoo.org> files/mldonkey.initd:
+ Fixed typos, bug #115226 by Christian Schlotter <again@gmx.de>
+
+ 31 Dec 2005; Simon Stelling <blubb@gentoo.org> mldonkey-2.6.4-r2.ebuild:
+ stable on amd64
+
+*mldonkey-2.7.1 (20 Dec 2005)
+
+ 20 Dec 2005; Karol Wojtaszek <sekretarz@gentoo.org> files/mldonkey.initd,
+ +mldonkey-2.7.1.ebuild:
+ Version bump, bug #115226
+
+ 29 Nov 2005; Karol Wojtaszek <sekretarz@gentoo.org>
+ +files/mldonkey-2.7.0-endianess.patch.bz2, mldonkey-2.7.0.ebuild:
+ Added patch to make mldonkey working on amd64 and other little-endian machines
+
+*mldonkey-2.7.0 (21 Nov 2005)
+
+ 21 Nov 2005; Marcin Kryczek <mkay@gentoo.org> +mldonkey-2.7.0.ebuild:
+ Version bump
+
+ 21 Nov 2005; Marcin Kryczek <mkay@gentoo.org> mldonkey-2.6.7.ebuild:
+ Filtering -fomit-fram-pointer
+
+*mldonkey-2.6.7 (29 Oct 2005)
+
+ 29 Oct 2005; Marcin Kryczek <mkay@gentoo.org> +mldonkey-2.6.7.ebuild:
+ Version bump
+
+ 20 Oct 2005; <mkay@gentoo.org> files/mldonkey.confd, files/mldonkey.initd:
+ Updated start script (and configuration in conf.d). This fixes bug #109469
+ and bug #109604
+
+ 15 Oct 2005; <mkay@gentoo.org> mldonkey-2.6.0.ebuild,
+ mldonkey-2.6.0-r1.ebuild:
+ 2.6.0 version needs ocaml-3.08.3. it won't build with 3.08.4. Fixing deps
+
+*mldonkey-2.6.5 (14 Oct 2005)
+
+ 14 Oct 2005; <mkay@gentoo.org> +mldonkey-2.6.5.ebuild:
+ Version bump. Thanks Benjamin Schleinzer
+
+ 06 Oct 2005; Michael Hanselmann <hansmi@gentoo.org>
+ mldonkey-2.6.4-r2.ebuild:
+ Stable on ppc.
+
+ 02 Oct 2005; <mkay@gentoo.org> mldonkey-2.6.4-r1.ebuild,
+ mldonkey-2.6.4-r2.ebuild:
+ Stable on x86
+
+*mldonkey-2.6.4-r2 (20 Sep 2005)
+*mldonkey-2.6.0-r1 (20 Sep 2005)
+
+ 20 Sep 2005; <mkay@gentoo.org> -files/2.5.28-config.patch,
+ -mldonkey-2.5.16-r10.ebuild, -mldonkey-2.5.27-r1.ebuild,
+ -mldonkey-2.5.28-r4.ebuild, +mldonkey-2.6.0-r1.ebuild,
+ -mldonkey-2.6.2.ebuild, -mldonkey-2.6.3.ebuild, -mldonkey-2.6.4.ebuild,
+ +mldonkey-2.6.4-r2.ebuild:
+ New revision bump without gtk2 flag. Also removing few older versions
+
+ 19 Sep 2005; <mkay@gentoo.org> mldonkey-2.6.2.ebuild,
+ mldonkey-2.6.3.ebuild, mldonkey-2.6.4.ebuild, mldonkey-2.6.4-r1.ebuild:
+ Updated einfo about xpi handler (thanks Qiangning Hong for reporting bug
+ #106136)
+
+ 19 Sep 2005; <mkay@gentoo.org> mldonkey-2.6.4-r1.ebuild:
+ Added checking if gd was built with truetype. Thanks Frittella Laurento for
+ bug #106396
+
+ 18 Sep 2005; <mkay@gentoo.org> files/mldonkey.initd:
+ Fixed init script. Thanks M. Giritli <giritli@sonne.uni-freiburg.de> for bug
+ #103433
+
+ 16 Sep 2005; Ciaran McCreesh <ciaranm@gentoo.org> ChangeLog:
+ Converted to UTF-8, fixed encoding screwups
+
+*mldonkey-2.6.4-r1 (14 Sep 2005)
+
+ 14 Sep 2005; <mkay@gentoo.org> +mldonkey-2.6.4-r1.ebuild:
+ Clean a mess in USE flags - closing bug #103239 (thanks everyone, who takes
+ part in discussion). Also droping 'oldgtk' flag and support for old gui,
+ since it's not maintaned anymore.
+
+*mldonkey-2.6.4 (06 Sep 2005)
+
+ 06 Sep 2005; Martin Holzer <mholzer@gentoo.org> +mldonkey-2.6.4.ebuild:
+ Version bumped.
+
+ 27 Aug 2005; <sekretarz@gentoo.org> mldonkey-2.6.2.ebuild,
+ mldonkey-2.6.3.ebuild:
+ Fixed path to xpi file, bug #103891
+
+ 26 Aug 2005; <sekretarz@gentoo.org> mldonkey-2.6.2.ebuild,
+ mldonkey-2.6.3.ebuild:
+ Added patch to change ed2k_hash name to mld_hash, bug #103693
+
+*mldonkey-2.6.3 (26 Aug 2005)
+
+ 26 Aug 2005; Martin Holzer <mholzer@gentoo.org> +mldonkey-2.6.3.ebuild:
+ Version bumped.
+
+ 21 Aug 2005; <sekretarz@gentoo.org> metadata.xml:
+ Removed squinky86 from metadata.xml on jakub request, bug #103131
+
+ 21 Aug 2005; <sekretarz@gentoo.org> mldonkey-2.6.2.ebuild:
+ Added missing parentheses in DEPEND and RDEPEND. Fixed some typos. Bug
+ #103237 and #103131
+
+*mldonkey-2.6.2 (21 Aug 2005)
+
+ 21 Aug 2005; <sekretarz@gentoo.org> +files/mldonkey-gui.desktop,
+ +mldonkey-2.6.2.ebuild:
+ Version bump, added mozilla use flag and installing ed2k handler for
+ mozilla/firefox, installing of desktop file. Thanks Przemyslaw Maciag
+ <p_maciag@wp.pl> in bug #102097
+
+ 07 Aug 2005; Michael Hanselmann <hansmi@gentoo.org>
+ mldonkey-2.5.16-r9.ebuild:
+ Stable on ppc.
+
+ 25 Jul 2005; <sekretarz@gentoo.org>
+ +files/mldonkey-2.6.0-gtk2-gentoo.patch, mldonkey-2.6.0.ebuild:
+ Fixed compile problems with enabled ekg2, thanks Marcin Kryczek
+ <aye@gentoo.pl> in bug #100120
+
+ 24 Jul 2005; <sekretarz@gentoo.org> mldonkey-2.6.0.ebuild:
+ Turned off batch configure option, cought by Phil
+
+*mldonkey-2.6.0 (23 Jul 2005)
+
+ 23 Jul 2005; <sekretarz@gentoo.org> +mldonkey-2.6.0.ebuild:
+ Version bump, bug #84100
+
+ 06 May 2005; Bryan Østergaard <kloeri@gentoo.org>
+ mldonkey-2.5.16-r10.ebuild:
+ Fix typo, bug 89322.
+
+ 24 Mar 2005; Karol Wojtaszek <sekretarz@gentoo.org> +files/mldonkey.png,
+ mldonkey-2.5.16-r10.ebuild:
+ Add desktop entry when gtk use flag is enabled, bug #83300
+
+*mldonkey-2.5.16-r10 (27 Feb 2005)
+
+ 27 Feb 2005; Jon Hood <squinky86@gentoo.org> +mldonkey-2.5.16-r10.ebuild:
+ Version bump, #80553. Thanks Holger <holger@wizards.de> and Costas
+ <cca@freemail.gr>.
+
+ 05 Feb 2005; Jan Brinkmann <luckyduck@gentoo.org> mldonkey-2.5.16-r9.ebuild:
+ added ~amd64 to KEYWORDS of 2.5.16-r9. fixes #76523
+
+ 29 Nov 2004; Jon Hood <squinky86@gentoo.org> files/mldonkey.initd,
+ -mldonkey-2.5.16-r7.ebuild, -mldonkey-2.5.16-r8.ebuild,
+ mldonkey-2.5.16-r9.ebuild, -mldonkey-2.5.28-r3.ebuild,
+ -mldonkey-2.5.28.ebuild:
+ 2.5.16-r9 stable on x86 due to older versions getting banned, thanks
+ Lorenz Bauer <scahoo@bluebottle.com>, #70659; new init script from
+ Martin Bays <gentoo_bugz@zugzwang.port5.com>, #65245, cleanup old ebuilds.
+
+*mldonkey-2.5.16-r9 (23 Nov 2004)
+
+ 23 Nov 2004; Jon Hood <squinky86@gentoo.org> +mldonkey-2.5.16-r9.ebuild:
+ Version bump irt #70659; thanks Lorenz Bauer <scahoo@bluebottle.com> and
+ Vanquirius <marcelogoes@gmail.com>.
+
+*mldonkey-2.5.28-r4 (24 Oct 2004)
+
+ 24 Oct 2004; Jon Hood <squinky86@gentoo.org> +mldonkey-2.5.28-r4.ebuild:
+ Version bump.
+
+*mldonkey-2.5.28-r3 (18 Oct 2004)
+
+ 18 Oct 2004; Jon Hood <squinky86@gentoo.org> -mldonkey-2.5.28-r1.ebuild,
+ -mldonkey-2.5.28-r2.ebuild, +mldonkey-2.5.28-r3.ebuild:
+ Version bump, remove old versions. Thanks spiralvoice, #66920.
+
+*mldonkey-2.5.28-r2 (05 Oct 2004)
+
+ 05 Oct 2004; Jon Hood <squinky86@gentoo.org> +mldonkey-2.5.28-r2.ebuild:
+ Version bump, new patch_pack.
+
+*mldonkey-2.5.28-r1 (30 Aug 2004)
+
+ 30 Aug 2004; Jon Hood <squinky86@gentoo.org> +mldonkey-2.5.28-r1.ebuild:
+ Version bump; add experimental patch_pack for testing (masked).
+
+ 24 Aug 2004; Jon Hood <squinky86@gentoo.org> +files/2.5.28-config.patch,
+ mldonkey-2.5.28.ebuild:
+ Add configure patch to not install lablgtk if it is not available, #61425.
+
+ 22 Aug 2004; Travis Tilley <lv@gentoo.org> mldonkey-2.5.28.ebuild:
+ added ~amd64 keyword
+
+*mldonkey-2.5.28 (19 Aug 2004)
+
+ 19 Aug 2004; Jon Hood <squinky86@gentoo.org> +mldonkey-2.5.28.ebuild:
+ Version bump, closes #60867.
+
+*mldonkey-2.5.27-r1 (17 Aug 2004)
+
+ 17 Aug 2004; Jon Hood <squinky86@gentoo.org> -mldonkey-2.5.21-r1.ebuild,
+ +mldonkey-2.5.27-r1.ebuild, -mldonkey-2.5.27.ebuild:
+ Version bump, closes #60714.
+
+ 16 Aug 2004; Guy Martin <gmsoft@gentoo.org> mldonkey-2.5.16-r8.ebuild:
+ Marked stable on hppa (#60390).
+
+ 14 Aug 2004; Jon Hood <squinky86@gentoo.org> mldonkey-2.5.27.ebuild:
+ Fix DEPEND on ocaml and gtk2 use invocation; thanks xake and gustavoz, #58891.
+
+*mldonkey-2.5.27 (13 Aug 2004)
+
+ 13 Aug 2004; Jon Hood <squinky86@gentoo.org> -mldonkey-2.5.22-r1.ebuild,
+ +mldonkey-2.5.27.ebuild:
+ Version bump, closes #58891. Thanks Benjamin Schleinzer <thor@4players.de> and
+ spiralvoice <spiralvoice@hotmail.com>. Remove non-working ebuild.
+
+*mldonkey-2.5.16-r8 (08 Aug 2004)
+
+ 08 Aug 2004; Jon Hood <squinky86@gentoo.org> +mldonkey-2.5.16-r8.ebuild:
+ Version bump. Closes #57956.
+
+ 05 Aug 2004; Jon Hood <squinky86@gentoo.org> -mldonkey-2.5.16-r5.ebuild,
+ -mldonkey-2.5.16-r6.ebuild, mldonkey-2.5.16-r7.ebuild:
+ Stable on x86.
+
+ 04 Aug 2004; Jon Hood <squinky86@gentoo.org> files/mldonkey.initd:
+ Fix init script thanks to Antonio <netbix@tiscali.it> in #58331 and
+ Tiv <tivadar.szemethy@vanderbilt.edu> in #59435.
+
+*mldonkey-2.5.22-r1 (03 Aug 2004)
+
+ 03 Aug 2004; Jon Hood <squinky86@gentoo.org> +mldonkey-2.5.22-r1.ebuild:
+ Version bump, masking until issues in #58891 are resolved. Thanks to Benjamin
+ Schleinzer <thor@4players.de> and spiralvoice <spiralvoice@hotmail.com>.
+
+ 30 Jul 2004; Jon Hood <squinky86@gentoo.org> files/mldonkey
+ -mldonkey-2.5.16-r4.ebuild, mldonkey-2.5.16-r6.ebuild,
+ files/mldonkey.initd, -files/97mldonkey,
+ -files/mldonkey-2.5.16-16g.patch, -files/mldonkey-2.5.16-oldbt.patch:
+ fix init script irt #58857
+ Stable on x86; remove old version.
+ Remove unused patches and files
+
+ 27 Jul 2004; Guillaume Destuynder <kang@gentoo.org>
+ mldonkey-2.5.16-r(4,5,6,7).ebuild,
+ mldonkey-2.5.21-r(1,2).ebuild:
+ Fixed #58526, incorrect enewuser usage
+
+ 19 Jul 2004; Jon Hood <squinky86@gentoo.org> mldonkey-2.5.16-r5.ebuild:
+ stable on x86
+
+ 15 Jul 2004; Jon Hood <squinky86@gentoo.org> files/mldonkey:
+ fix mldonkey init script for more options; thanks to Matthias Bernges
+ <matthiasbernges@gmx.de> for the updates
+
+*mldonkey-2.5.16-r7 (06 Jul 2004)
+
+ 06 Jul 2004; Jon Hood <squinky86@gentoo.org> +mldonkey-2.5.16-r7.ebuild:
+ version bump irt #55555, change all ocaml dependencies to >=3.07
+
+ 04 Jul 2004; Jon Hood <squinky86@gentoo.org> mldonkey-2.5.21-r2.ebuild:
+ fix RDEPEND on lablgtk, closes #56081
+
+ 28 Jun 2004; Jon Hood <squinky86@gentoo.org> mldonkey-2.5.16-r6.ebuild,
+ mldonkey-2.5.21-r2.ebuild:
+ ebuild cleanups thanks to spiralvoice in #54530
+
+*mldonkey-2.5.16-r6 (28 Jun 2004)
+
+ 28 Jun 2004; Jon Hood <squinky86@gentoo.org> +mldonkey-2.5.16-r6.ebuild:
+ version bump
+
+ 20 Jun 2004; Jon Hood <squinky86@gentoo.org> -mldonkey-2.5.16-r3.ebuild,
+ mldonkey-2.5.16-r4.ebuild:
+ stable on x86
+
+*mldonkey-2.5.16-r5 (18 Jun 2004)
+
+*mldonkey-2.5.21-r2 (18 Jun 2004)
+
+ 18 Jun 2004; Jon Hood <squinky86@gentoo.org> +mldonkey-2.5.16-r5.ebuild,
+ -mldonkey-2.5.18.ebuild, -mldonkey-2.5.19.ebuild, -mldonkey-2.5.20.ebuild,
+ +mldonkey-2.5.21-r2.ebuild, -mldonkey-2.5.21.ebuild,
+ -files/mldonkey-2.5.18-configure.patch,
+ -files/mldonkey-2.5.19-configure.patch,
+ -files/mldonkey-2.5.20-configure.patch:
+ version bumps; thanks to teedog <teedog@myrealbox.com> in #54260 and #52032;
+ ebuild cleanups (2.5.16 is stable branch, 2.5.21 is testing branch)
+
+*mldonkey-2.5.16-r4 (21 May 2004)
+
+ 15 Jun 2004; Jon Hood <squinky86@gentoo.org> :
+ version bump of prefered branch of mldonkey, thanks to teedog
+ <teedog@myrealbox.com>, #53363
+
+*mldonkey-2.5.21-r1 (21 May 2004)
+
+ 21 May 2004; Jon Hood <squinky86@gentoo.org> -mldonkey-2.5.11.ebuild,
+ -mldonkey-2.5.12.ebuild, -mldonkey-2.5.16-r1.ebuild,
+ -mldonkey-2.5.16-r2.ebuild, mldonkey-2.5.16-r3.ebuild,
+ -mldonkey-2.5.16.ebuild, +mldonkey-2.5.21-r1.ebuild, mldonkey-2.5.21.ebuild,
+ -mldonkey-2.5.4.ebuild:
+ cleanup ebuilds; version bump; apply changes from #51496
+
+ 11 May 2004; Guy Martin <gmsoft@gentoo.org> :
+ Marked stable on hppa.
+
+*mldonkey-2.5.21 (05 May 2004)
+
+ 05 May 2004; Jon Hood <squinky86@gentoo.org>
+ +files/mldonkey-2.5.21-configure.patch, +mldonkey-2.5.21.ebuild:
+ Wow, three version bumps in a day! Recloses #49847.
+
+*mldonkey-2.5.20 (05 May 2004)
+
+ 05 May 2004; Jon Hood <squinky86@gentoo.org>
+ +files/mldonkey-2.5.20-configure.patch, +mldonkey-2.5.20.ebuild:
+ version bump, closes #49847
+
+*mldonkey-2.5.19 (05 May 2004)
+
+ 05 May 2004; Martin Holzer <mholzer@gentoo.org> mldonkey-2.5.19.ebuild,
+ files/mldonkey-2.5.19-configure.patch:
+ Version bumped.
+
+ 26 Apr 2004; Aron Griffis <agriffis@gentoo.org> mldonkey-2.5.11.ebuild,
+ mldonkey-2.5.12.ebuild, mldonkey-2.5.16-r1.ebuild,
+ mldonkey-2.5.16-r2.ebuild, mldonkey-2.5.16.ebuild, mldonkey-2.5.4.ebuild:
+ Add die following econf for bug 48950
+
+*mldonkey-2.5.18 (17 Apr 2004)
+
+ 17 Apr 2004; Martin Holzer <mholzer@gentoo.org> mldonkey-2.5.18.ebuild,
+ files/mldonkey-2.5.18-configure.patch:
+ Version bumped.
+
+ 17 Apr 2004; Martin Holzer <mholzer@gentoo.org> mldonkey-2.5.16-r2.ebuild,
+ mldonkey-2.5.16-r3.ebuild:
+ adding make depend. closes 47329
+
+*mldonkey-2.5.16-r3 (13 Apr 2004)
+
+ 13 Apr 2004; Martin Holzer <mholzer@gentoo.org> mldonkey-2.5.16-r2.ebuild,
+ mldonkey-2.5.16-r3.ebuild:
+ updating patch. big fix for 47329.
+
+*mldonkey-2.5.16-r2 (07 Apr 2004)
+*mldonkey-2.5.16-r1 (07 Apr 2004)
+
+ 07 Apr 2004; Jeremy Huddleston <eradicator@gentoo.org>
+ mldonkey-2.5.16-r1.ebuild, mldonkey-2.5.16-r2.ebuild,
+ files/mldonkey-2.5.16-16g.patch, files/mldonkey-2.5.16-configure.patch,
+ files/mldonkey-2.5.16-oldbt.patch:
+ -r1 has the old, pre 16 bittorrent code. -r2 has threading enabled as two
+ solution options to bug #45471 and #46409.
+
+ 17 Mar 2004; Jeremy Huddleston <eradicator@gentoo.org> files/mldonkey,
+ files/mldonkey.initd:
+ updated init script for small fix. See bug #44563
+
+ 12 Mar 2004; Jeremy Huddleston <eradicator@gentoo.org>
+ mldonkey-2.5.11.ebuild, mldonkey-2.5.12.ebuild, mldonkey-2.5.16.ebuild:
+ Fixed lablgtk DEPEND to accept any 1.x version but not the 2.x versions... bug
+ #44227.
+
+*mldonkey-2.5.16 (10 Mar 2004)
+
+ 10 Mar 2004; Hanno Boeck <hanno@gentoo.org> mldonkey-2.5.16.ebuild:
+ Version bump.
+
+ 24 Feb 2004; Jeremy Huddleston <eradicator@gentoo.org> metadata.xml,
+ mldonkey-2.5.11.ebuild, mldonkey-2.5.12.ebuild:
+ Fixed installed documentation (Bug #41764).
+ Fixed init.d script (Bug #41347).
+
+ 17 Feb 2004; Aron Griffis <agriffis@gentoo.org> mldonkey-2.5.12.ebuild:
+ add ~alpha and ~ia64
+
+*mldonkey-2.5.12 (16 Feb 2004)
+
+ 16 Feb 2004; Martin Holzer <mholzer@gentoo.org> mldonkey-2.5.12.ebuild:
+ Version bumped.
+
+*mldonkey-2.5.11 (11 Feb 2004)
+
+ 11 Feb 2004; Martin Holzer <mholzer@gentoo.org> mldonkey-2.5.11.ebuild:
+ Version bumped.
+
+ 22 Jan 2004; Matthieu Sozeau <mattam@gentoo.org> mldonkey-2.5.3-r1.ebuild,
+ mldonkey-2.5.3-r2.ebuild, mldonkey-2.5.4.ebuild:
+ Changed lablgtk dependancies to =lablgtk-1.2.5 before lablgtk-2 inclusion.
+
+ 18 Dec 2003; Heinrich Wendel <lanius@gentoo.org> mldonkey-2.5.4.ebuild:
+ Moved enewuser to src_install, so the home directory is created.
+ It was in pkg_setup but the image dir will be cleaned before src_install.
+
+ 30 Nov 2003; Jeremy Maitin-Shepard <jbms@gentoo.org>
+ mldonkey-2.5.3-r1.ebuild, mldonkey-2.5.3-r2.ebuild, mldonkey-2.5.4.ebuild:
+ Changed `either' to 'also' in the post-install message.
+ Bug reported by Adam <adam@tpetaccia.com>.
+
+ 19 Nov 2003; Heinrich Wendel <lanius@gentoo.org> mldonkey-2.5.4.ebuild:
+ inherit eutils to fix enewuser, thx to iggy for pointing that out
+
+ 18 Oct 2003; Heinrich Wendel <lanius@gentoo.org> mldonkey-2.5.4.ebuild:
+ fixed compiling with ocaml 3.07
+
+*mldonkey-2.5.4 (17 Oct 2003)
+
+ 17 Oct 2003; Heinrich Wendel <lanius@gentoo.org> mldonkey-2.5-r1.ebuild,
+ mldonkey-2.5.4.ebuild, files/mldonkey:
+ version bump / --enable-batch mode / additionaly docs / bug #30983 / bug #31228
+
+ 07 Oct 2003; Martin Holzer <mholzer@gentoo.org> mldonkey-2.5.3-r1.ebuild,
+ mldonkey-2.5.3-r2.ebuild:
+ fixing ocml version. closes #29996
+
+*mldonkey-2.5.3-r2 (24 Sep 2003)
+
+ 24 Sep 2003; Markus Nigbur <pyrania@gentoo.org> mldonkey-2.5.3-r2.ebuild,
+ files/mldonkey.initd:
+ Bugfixes in the initscript (bug #29374)
+
+ 10 Sep 2003; Caleb Tennis <caleb@gentoo.org> mldonkey-2.5.3-r1.ebuild:
+ Rethink the config files - bug #27005
+
+ 17 Aug 2003; Martin Holzer <mholzer@gentoo.org> mldonkey-2.5.3-r1.ebuild:
+ Marked x86 stable.
+
+*mldonkey-2.5.3-r1 (06 Aug 2003)
+
+ 06 Aug 2003; Caleb Tennis <caleb@gentoo.org> mldonkey-2.5.3-r1.ebuild:
+ Added extra functionality, like a new p2p user and some added features.
+ Thanks to Julian Hoch, this closes bug #25695.
+
+*mldonkey-2.5.3 (17 Jun 2003)
+
+ 17 Jun 2003; Caleb Tennis <caleb@gentoo.org> mldonkey-2.5.3.ebuild:
+ Version bump to 2.5-3. E-Build submitted by Gregorio Guidi (bug #22605).
+
+*mldonkey-2.5-r1 (02 Jun 2003)
+
+ 02 Jun 2003; Caleb Tennis <caleb@gentoo.org> mldonkey-2.5-r1.ebuild, mldonkey:
+ New revision based on the fact the old ebuild (2.5) didn't work 100% properly.
+ Thanks to Gregorio Guidi for the submission - closes bug #20884.
+
+*mldonkey-2.5 (28 May 2003)
+
+ 28 May 2003; Caleb Tennis <caleb@gentoo.org> mldonkey-2.5.ebuild:
+ version bump, thanks to Sridhar Dhanapalan (bug #21764)
+
+*mldonkey-2.04_rc1 (23 Mar 2003)
+
+ 23 Mar 2003; Hannes Mehnert <hannes@gentoo.org> mldonkey-2.04_rc1.ebuild:
+ version bump, thanks to Vesa Kaihlavirta <vpkaihla@cc.jyu.fi> (bug #17365)
+
+*mldonkwy-2.02-r2 (26 Jan 2003)
+
+ 26 Jan 2003; Hannes Mehnert <hannes@gentoo.org> mldonkey-2.02-r2.ebuild:
+ new pango-patches, thanks to spam@matzsoft.de (Mathias Menzel-Nielsen)
+ (bug #14370)
+
+ 14 Jan 2003; Hannes Mehnert <hannes@gentoo.org> mldonkey-2.01-r1.ebuild:
+ fixed SRC_URI
+
+*mldonkey-2.02-r1 (03 Jan 2003)
+
+ 28 Jan 2003; Jon Nall <nall@gentoo.org> mldonkey-2.02-r1.ebuild :
+ added ~ppc
+
+ 03 Jan 2003; Hannes Mehnert <hannes@gentoo.org> mldonkey-2.02-r1.ebuild:
+ added pango patch if USE=mldonkeypango is set.
+
+*mldonkey-2.02 (24 Dec 2002)
+
+ 24 Dec 2002; J.Alberto Suarez L. <bass@gentoo.org> mldonkey-2.02.ebuild:
+ New version.
+ Some changes in the ebuil: removed pango patch, 'N' variable introduced for src.
+ Merry XMas =D
+
+*mldonkey-2.01-r1 (15 Dec 2002)
+
+ 16 Dec 2002; Seemant Kulleen <seemant@gentoo.org> mldonkey-2.01.ebuild
+ mldonkey-2.01-r1.ebuild :
+
+ Moved 2.01 to stable, and changed the configure settings slightly. Should
+ go into /var not /usr/var for the state stuff and use econf instead
+
+ 12 Dec 2002; Hannes Mehnert <hannes@mehnert.org> mldonkey-2.01-r1.ebuild:
+ included patch from http://concept.free.free.fr/mldonkey/
+
+*mldonkey-2.01 (12 Dec 2002)
+
+ 12 Dec 2002; Hannes Mehnert <hannes@mehnert.org> mldonkey-2.01.ebuild:
+ version bump
+
+*mldonkey-2.00-r1 (09 Dec 2002)
+
+ 09 Dec 2002; Hannes Mehnert <hannes@mehnert.org> mldonkey-2.00-r1.ebuild:
+ this ebuild is now from source. Thanks to gentoo-bug@loitsch.org (Christian
+ Loitsch) for submission (bug #9677)
+
+ 26 Jun 2002; Thilo Bangert <bangert@gentoo.org> :
+
+ move to net-p2p
+
+ 16 jun 2002; J. Alberto Suárez L. <bass@gentoo.org> mldonkey-1.16.ebuild :
+
+ First relase
diff --git a/net-p2p/mldonkey/Manifest b/net-p2p/mldonkey/Manifest
new file mode 100644
index 0000000..9daf910
--- /dev/null
+++ b/net-p2p/mldonkey/Manifest
@@ -0,0 +1,40 @@
+AUX mldonkey 336 RMD160 e12f193088e91ddb02baa63533115075abea0dae SHA1 11af8f2912799262112feaa52358cc0fd62abb26 SHA256 38392622dd39cd8d73e9a6944593e82e45ec0d12cc0134fb736d443a9b17f3d7
+MD5 ac93ed074d62909b2a496045f0740127 files/mldonkey 336
+RMD160 e12f193088e91ddb02baa63533115075abea0dae files/mldonkey 336
+SHA256 38392622dd39cd8d73e9a6944593e82e45ec0d12cc0134fb736d443a9b17f3d7 files/mldonkey 336
+AUX mldonkey-Makefile.in-byte-compile.patch 949 RMD160 cc9413ffc3c76603b36731eb9503c81204e4ec24 SHA1 cf69a0c8009e7e056acaddfd7506913926cee58a SHA256 385ad27de9d5df9925112c90f65e34c350bc17b15694d78b34ea0f858420fe2b
+MD5 8a77cef40009ebd0db6b1228a6f0db85 files/mldonkey-Makefile.in-byte-compile.patch 949
+RMD160 cc9413ffc3c76603b36731eb9503c81204e4ec24 files/mldonkey-Makefile.in-byte-compile.patch 949
+SHA256 385ad27de9d5df9925112c90f65e34c350bc17b15694d78b34ea0f858420fe2b files/mldonkey-Makefile.in-byte-compile.patch 949
+AUX mldonkey-gui.desktop 263 RMD160 c8da2a5e90446cefe75e93969b975093b2d367b0 SHA1 6e350814866f741ef76389c98df34af22751e164 SHA256 8ba9aec085500abbc7fcf53cf34a61e23a5b68cdc8b4b856f4395a5729608eb9
+MD5 93e16748ad44af182177978057266aa7 files/mldonkey-gui.desktop 263
+RMD160 c8da2a5e90446cefe75e93969b975093b2d367b0 files/mldonkey-gui.desktop 263
+SHA256 8ba9aec085500abbc7fcf53cf34a61e23a5b68cdc8b4b856f4395a5729608eb9 files/mldonkey-gui.desktop 263
+AUX mldonkey.confd-2.8 887 RMD160 0575b16320fc74fbe417150315d2247a536259d1 SHA1 28000a260fe9b7c216112ba877f55835a09aabd7 SHA256 d395ecece23a23dcb41addf63b70220996011ceb29d8738afb3c048b666cd96e
+MD5 936ea40c208c5c3f294bd39080f966f1 files/mldonkey.confd-2.8 887
+RMD160 0575b16320fc74fbe417150315d2247a536259d1 files/mldonkey.confd-2.8 887
+SHA256 d395ecece23a23dcb41addf63b70220996011ceb29d8738afb3c048b666cd96e files/mldonkey.confd-2.8 887
+AUX mldonkey.initd-2.8-r1 3350 RMD160 2e42afffc1cf4ee00312138b92616b7081549749 SHA1 27c696e27064338683e5a25a79f36599de461f7b SHA256 bf3f3f802d76c024bb2c3ed7079ed788184f11ab5f6fa3b21f3f36f07add8e04
+MD5 b9d3cbb7a1f3a641154fadb933ce9098 files/mldonkey.initd-2.8-r1 3350
+RMD160 2e42afffc1cf4ee00312138b92616b7081549749 files/mldonkey.initd-2.8-r1 3350
+SHA256 bf3f3f802d76c024bb2c3ed7079ed788184f11ab5f6fa3b21f3f36f07add8e04 files/mldonkey.initd-2.8-r1 3350
+AUX mldonkey.png 6835 RMD160 2ef0cbc5be4de95893b43da0281bd52f5aabb314 SHA1 bf61199ffd324558f49940a5ca6a68a36f4656b2 SHA256 c16ecc040b5ea82ed06b04a76c5d7304d7aca2f0854176aa8d78aa90831d8798
+MD5 855aedd7fba1ffe74d7f6c0bce98f45f files/mldonkey.png 6835
+RMD160 2ef0cbc5be4de95893b43da0281bd52f5aabb314 files/mldonkey.png 6835
+SHA256 c16ecc040b5ea82ed06b04a76c5d7304d7aca2f0854176aa8d78aa90831d8798 files/mldonkey.png 6835
+DIST mldonkey-2.8.7.tar.bz2 2713064 RMD160 5392be0982f879e566fb8f8532445b49dde3b121 SHA1 598e1443ac9b7684301892b620e620d11c333001 SHA256 3be67f516a0f100d7f526ac532336f9572b31377e1bbaa0f1cc67433b5d5675e
+EBUILD mldonkey-2.8.7.ebuild 4445 RMD160 bdbda5080b4a5053e0f3e860b2c655e192753beb SHA1 72fdcb784600d1d9e18d9faf6dd8b83d5783e8a9 SHA256 072359831b67da050e42f14928ab1015d8d87c2503021ab2d13bc49b96755325
+MD5 a7111f1a5259bf3438c8b3e5b95cd300 mldonkey-2.8.7.ebuild 4445
+RMD160 bdbda5080b4a5053e0f3e860b2c655e192753beb mldonkey-2.8.7.ebuild 4445
+SHA256 072359831b67da050e42f14928ab1015d8d87c2503021ab2d13bc49b96755325 mldonkey-2.8.7.ebuild 4445
+MISC ChangeLog 26283 RMD160 d7ec51975cc6a88774a84812075c16aeb9a14704 SHA1 5f173e66af4befe053e5ab7aea3189b420fd773c SHA256 a6146f229b47d020afa0e514f0250f909048678af862392ac1e5dc630067f4bd
+MD5 14d80f46a29203a32008f4bf5c9cd740 ChangeLog 26283
+RMD160 d7ec51975cc6a88774a84812075c16aeb9a14704 ChangeLog 26283
+SHA256 a6146f229b47d020afa0e514f0250f909048678af862392ac1e5dc630067f4bd ChangeLog 26283
+MISC metadata.xml 242 RMD160 d0edc89382298dee00d3571b62a5f457ef268751 SHA1 25511186cac54f1353a3347f72da7f5d05b9da57 SHA256 b354d71d5efbed0ff97e27564894438b42a8bd8b577007cadc6972dd37d6b5f8
+MD5 ee159929f3e247f937fe88bb1919d8bd metadata.xml 242
+RMD160 d0edc89382298dee00d3571b62a5f457ef268751 metadata.xml 242
+SHA256 b354d71d5efbed0ff97e27564894438b42a8bd8b577007cadc6972dd37d6b5f8 metadata.xml 242
+MD5 c49497da048b45cc8a76cab5cf68a8b3 files/digest-mldonkey-2.8.7 250
+RMD160 8d1a46460461cf219cd389b198874982b20213b3 files/digest-mldonkey-2.8.7 250
+SHA256 ecf10b70d9f44cc34936503c4bd01670b61be36a4b4da3520aafe73d9952d4b6 files/digest-mldonkey-2.8.7 250
diff --git a/net-p2p/mldonkey/files/digest-mldonkey-2.8.7 b/net-p2p/mldonkey/files/digest-mldonkey-2.8.7
new file mode 100644
index 0000000..f2edf9c
--- /dev/null
+++ b/net-p2p/mldonkey/files/digest-mldonkey-2.8.7
@@ -0,0 +1,3 @@
+MD5 bfb30ebcb48f0a9ec0f44f41559afd38 mldonkey-2.8.7.tar.bz2 2713064
+RMD160 5392be0982f879e566fb8f8532445b49dde3b121 mldonkey-2.8.7.tar.bz2 2713064
+SHA256 3be67f516a0f100d7f526ac532336f9572b31377e1bbaa0f1cc67433b5d5675e mldonkey-2.8.7.tar.bz2 2713064
diff --git a/net-p2p/mldonkey/files/mldonkey b/net-p2p/mldonkey/files/mldonkey
new file mode 100755
index 0000000..6a407cd
--- /dev/null
+++ b/net-p2p/mldonkey/files/mldonkey
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+. /etc/conf.d/mldonkey
+
+if [ ! -d ${HOME}/.mldonkey ] ; then
+ echo "Creating subdirectory \".mldonkey\" in your home"
+ echo "to store config files and downloaded files..."
+
+ if ! mkdir ${HOME}/.mldonkey ; then
+ echo "Creation of subdirectory failed! Exiting..."
+ exit 1
+ fi
+fi
+
+cd ${HOME}/.mldonkey && exec /usr/bin/mlnet
diff --git a/net-p2p/mldonkey/files/mldonkey-Makefile.in-byte-compile.patch b/net-p2p/mldonkey/files/mldonkey-Makefile.in-byte-compile.patch
new file mode 100644
index 0000000..2c9bad5
--- /dev/null
+++ b/net-p2p/mldonkey/files/mldonkey-Makefile.in-byte-compile.patch
@@ -0,0 +1,22 @@
+--- Makefile.in.orig 2007-07-18 02:15:44.000000000 +0800
++++ Makefile.in 2007-07-18 02:47:15.000000000 +0800
+@@ -1514,6 +1514,9 @@
+ opt: $(RESFILE) $(TMPSOURCES) $(TARGETS)
+
+ byte: $(TMPSOURCES) $(foreach target, $(TARGETS), $(target).byte)
++ for i in $(foreach target, $(TARGETS), $(target).byte); do \
++ cp $$i $${i/.byte/}; \
++ done
+
+ static: $(foreach target, $(TARGETS), $(target).static)
+
+@@ -1662,6 +1665,9 @@
+ cd $(LOCAL)/ocamlopt-$(REQUIRED_OCAML); $(MAKE)
+
+ utils.byte: mld_hash.byte make_torrent.byte copysources.byte get_range.byte subconv.byte
++ for i in $^ ; do\
++ cp $$i $${i/.byte/}; \
++ done
+ utils.opt: svg_converter mld_hash make_torrent copysources get_range subconv
+ utils.opt.static: svg_converter mld_hash.static make_torrent.static copysources.static get_range.static subconv.static
+ utils.byte.static: mld_hash.byte.static make_torrent.byte.static copysources.byte.static get_range.byte.static subconv.byte.static
diff --git a/net-p2p/mldonkey/files/mldonkey-gui.desktop b/net-p2p/mldonkey/files/mldonkey-gui.desktop
new file mode 100644
index 0000000..fdda462
--- /dev/null
+++ b/net-p2p/mldonkey/files/mldonkey-gui.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Version=0.9.4
+Encoding=UTF-8
+Name=MLDonkey GUI
+Comment=MLDonkey graphical interface
+Comment[pl]=Graficzny interfejs do programu MLDonkey
+Exec=mlgui
+Icon=mldonkey.png
+Terminal=false
+Type=Application
+Categories=GTK;Network;P2P;
+# vi: encoding=utf-8
diff --git a/net-p2p/mldonkey/files/mldonkey.confd-2.8 b/net-p2p/mldonkey/files/mldonkey.confd-2.8
new file mode 100644
index 0000000..1d1f282
--- /dev/null
+++ b/net-p2p/mldonkey/files/mldonkey.confd-2.8
@@ -0,0 +1,39 @@
+# /etc/conf.d/mldonkey
+# Config file for mldonkey control script
+
+# Change the following vars only if you know
+# what you're doing, there's no checking for
+# invalid data yet!
+
+# owner of mlnet process (don't change, must be existing)
+USER="p2p"
+
+# mldonkey's working dir (must be existing)
+MLDONKEY_DIR="/home/p2p/mldonkey"
+
+# logfile (/dev/null for nowhere)
+LOG="/var/log/mldonkey.log"
+
+# set to true, if you have enabled logging to syslog in MLDonkey with
+# set log_to_syslog true
+USE_LOGGER=false
+
+# bandwidth control, values in kb/s
+LOW_DOWN="6"
+LOW_UP="2"
+HIGH_DOWN="30"
+HIGH_UP="10"
+
+# nice level, 0<x<19, more nice -> less cpuspeed consumed
+NICE="19"
+
+# mldonkey server ip, usually localhost
+SERVER="localhost"
+
+# port for webinterface, usually 4080
+PORT="4080"
+
+# to enable password restricted access,
+# uncomment and set BOTH following vars:
+#USERNAME="admin"
+#PASSWORD=""
diff --git a/net-p2p/mldonkey/files/mldonkey.initd-2.8-r1 b/net-p2p/mldonkey/files/mldonkey.initd-2.8-r1
new file mode 100644
index 0000000..312ea69
--- /dev/null
+++ b/net-p2p/mldonkey/files/mldonkey.initd-2.8-r1
@@ -0,0 +1,147 @@
+#!/sbin/runscript
+
+opts="start stop restart reload slow fast info"
+
+MLDONKEY_BINARY=${MLDONKEY_BINARY:-/usr/bin/mlnet}
+MLDONKEY_TIMEOUT=${TIMEOUT:-10}
+
+depend() {
+ need net
+ ${USE_LOGGER} && use logger
+}
+
+start() {
+ ebegin "Starting ${SVCNAME}"
+
+ if [ -z "${MLDONKEY_DIR}" ]; then
+ ewarn "mldonkey's start script has been changed. You should remove"
+ ewarn "BASEDIR and SUBDIR from /etc/conf.d/mldonkey and set MLDONKEY_DIR"
+ ewarn "to the correct value (you probably want"
+ ewarn "MLDONKEY_DIR=${BASEDIR}/${SUBDIR})"
+ MLDONKEY_DIR=${BASEDIR}/${SUBDIR}
+ einfo "Using ${MLDONKEY_DIR} as working directory"
+ fi
+
+ local result=0
+ if [ ! -d ${MLDONKEY_DIR} ]; then
+ einfo "Directory ${MLDONKEY_DIR} not existing, trying to create..."
+ if `mkdir -p ${MLDONKEY_DIR} 2>/dev/null`; then
+ chown ${USER}:users ${MLDONKEY_DIR}
+ else
+ eerror "Directory ${MLDONKEY_DIR} could not be created!"
+ ((result++))
+ fi
+ fi
+
+ cd ${MLDONKEY_DIR}
+ env MLDONKEY_DIR=${MLDONKEY_DIR} start-stop-daemon --quiet --start \
+ -c ${USER} -N ${NICE} -x ${MLDONKEY_BINARY} &>${LOG} &
+ sleep 5
+
+ if ! pgrep -u ${USER} mlnet >/dev/null; then
+ eerror "${SVCNAME} could not be started! Check logfile: ${LOG}"
+ ((result++))
+ fi
+
+ eend $result
+}
+
+setup_uri() {
+ BASE="http://"
+ if [[ -n ${USERNAME} && -n ${PASSWORD} ]]; then
+ BASE=${BASE}${USERNAME}:${PASSWORD}@
+ fi
+ BASE=${BASE}${SERVER}:${PORT}
+}
+
+stop() {
+ ebegin "Stopping ${SVCNAME} -- please wait"
+
+ setup_uri
+ wget --spider --timeout=${MLDONKEY_TIMEOUT} ${BASE}/submit?q=close_fds -q
+ wget --spider --timeout=${MLDONKEY_TIMEOUT} ${BASE}/submit?q=save -q
+ wget --spider --timeout=${MLDONKEY_TIMEOUT} ${BASE}/submit?q=kill -q
+
+ # give it a chance to die:
+ local timeout=${MLDONKEY_TIMEOUT}
+ while [ $timeout -gt 0 ] && pgrep -u ${USER} mlnet &>/dev/null; do
+ sleep 1
+ ((timeout--))
+ done
+
+ start-stop-daemon --oknodo --stop -x ${MLDONKEY_BINARY} &>${LOG}
+
+ eend $?
+}
+
+restart() {
+ svc_stop
+ sleep 5
+ svc_start
+}
+
+reload() {
+ if ! service_started ${SVCNAME}; then
+ eerror "${SVCNAME} is not started"
+ return 0
+ fi
+
+ ebegin "Reloading ${SVCNAME}"
+
+ start-stop-daemon --stop --signal HUP --oknodo \
+ --exec ${MLDONKEY_BINARY} &>${LOG}
+
+ eend $?
+}
+
+slow() {
+ if ! service_started ${SVCNAME}; then
+ start_service ${SVCNAME}
+ fi
+
+ ebegin "Reducing bandwidth to ${LOW_DOWN}k/${LOW_UP}k"
+
+ setup_uri
+ wget --spider --timeout=${MLDONKEY_TIMEOUT} \
+ ${BASE}/submit?q=set+max_hard_download_rate+${LOW_DOWN} -q
+ wget --spider --timeout=${MLDONKEY_TIMEOUT} \
+ ${BASE}/submit?q=set+max_hard_upload_rate+${LOW_UP} -q
+
+ eend $?
+}
+
+fast() {
+ if ! service_started ${SVCNAME}; then
+ start_service ${SVCNAME}
+ fi
+
+ ebegin "Increasing bandwidth to ${HIGH_DOWN}k/${HIGH_UP}k"
+
+ setup_uri
+ wget --spider --timeout=${MLDONKEY_TIMEOUT} \
+ ${BASE}/submit?q=set+max_hard_upload_rate+${HIGH_UP} -q
+ wget --spider --timeout=${MLDONKEY_TIMEOUT} \
+ ${BASE}/submit?q=set+max_hard_download_rate+${HIGH_DOWN} -q
+
+
+ eend $?
+}
+
+
+info() {
+ if ! service_started ${SVCNAME}; then
+ eerror "${SVCNAME} is not started"
+ return 0
+ fi
+
+ setup_uri
+ local result=$(/usr/bin/wget --timeout=${MLDONKEY_TIMEOUT} \
+ -O - ${BASE}/submit?q=vo 2> /dev/null | \
+ /bin/grep -C1 max_hard_upload | \
+ /bin/grep value=\" | /bin/cut -d\" -f2)
+ if [[ ${result} -eq ${LOW_UP} ]]; then
+ einfo "${SVCNAME} runs slow"
+ else
+ einfo "${SVCNAME} runs fast"
+ fi
+}
diff --git a/net-p2p/mldonkey/files/mldonkey.png b/net-p2p/mldonkey/files/mldonkey.png
new file mode 100644
index 0000000..e43f94d
--- /dev/null
+++ b/net-p2p/mldonkey/files/mldonkey.png
Binary files differ
diff --git a/net-p2p/mldonkey/metadata.xml b/net-p2p/mldonkey/metadata.xml
new file mode 100644
index 0000000..fb26f9f
--- /dev/null
+++ b/net-p2p/mldonkey/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>net-p2p</herd>
+<longdescription>An ocaml client to access the eDonkey network.</longdescription>
+</pkgmetadata>
diff --git a/net-p2p/mldonkey/mldonkey-2.8.7.ebuild b/net-p2p/mldonkey/mldonkey-2.8.7.ebuild
new file mode 100644
index 0000000..e74d573
--- /dev/null
+++ b/net-p2p/mldonkey/mldonkey-2.8.7.ebuild
@@ -0,0 +1,172 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-p2p/mldonkey/mldonkey-2.8.7.ebuild,v 1.5 2007/07/09 04:31:52 jer Exp $
+
+inherit flag-o-matic
+
+IUSE="doc fasttrack gd gnutella gtk guionly magic"
+
+DESCRIPTION="MLDonkey is a multi-network P2P application written in Ocaml, coming with its own Gtk GUI, web and telnet interface."
+HOMEPAGE="http://mldonkey.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 hppa ia64 ppc ~sparc x86"
+RESTRICT="mirror strip"
+
+RDEPEND="dev-lang/perl
+ guionly? ( >=gnome-base/librsvg-2.4.0
+ >=dev-ml/lablgtk-2.6 )
+ gtk? ( >=gnome-base/librsvg-2.4.0
+ >=dev-ml/lablgtk-2.6 )
+ gd? ( >=media-libs/gd-2.0.28 )
+ magic? ( sys-apps/file )"
+
+DEPEND="${RDEPEND}
+ >=sys-devel/autoconf-2.58
+ >=dev-lang/ocaml-3.08.3"
+
+MLUSER="p2p"
+
+pkg_setup() {
+ if use gtk; then
+ echo ""
+ einfo "If the compile with gui fails, and you have updated Ocaml"
+ einfo "recently, you may have forgotten that you need to run"
+ einfo "/usr/portage/dev-lang/ocaml/files/ocaml-rebuild.sh"
+ einfo "to learn which ebuilds you need to recompile"
+ einfo "each time you update Ocaml to a different version"
+ einfo "see the Ocaml ebuild for details"
+ echo ""
+ fi
+
+ if use gtk && !(built_with_use dev-ml/lablgtk svg); then
+ eerror "dev-ml/lablgtk must be built with the 'svg' USE flag to use the gtk gui"
+ die "Recompile dev-ml/lablgtk with enabled svg USE flag"
+ fi
+
+ if use gd && !(built_with_use media-libs/gd truetype); then
+ eerror "media-libs/gd must be built with 'truetype' to compile"
+ eerror "MLDonkey with gd support"
+ die "Recompile media-libs/gd with enabled truetype USE flag"
+ fi
+}
+
+src_unpack() {
+ unpack ${A} && cd "${S}"
+
+
+ export WANT_AUTOCONF=2.5
+ cd "${S}"/config
+ epatch ${FILESDIR}/${PN}-Makefile.in-byte-compile.patch
+ autoconf
+ cd "${S}"
+}
+
+src_compile() {
+ append-ldflags -Wl,-z,noexecstack
+ if use mips ; then
+ filter-flags "-mips?"
+ replace-cpu-flags mips? mips1
+ fi
+
+ # the dirs are not (yet) used, but it doesn't hurt to specify them anyway
+
+ # onlygui Disable all nets support, build only chosen GUI
+
+ if use gtk || use guionly; then
+ myconf="--enable-gui=newgui2"
+ else
+ myconf="--disable-gui"
+ fi
+
+ if use guionly; then
+ myconf="${myconf} --disable-multinet --disable-donkey"
+ fi
+
+ cd ${S}
+ econf \
+ --sysconfdir=/etc/mldonkey \
+ --sharedstatedir=/var/mldonkey \
+ --localstatedir=/var/mldonkey \
+ --enable-checks \
+ --disable-batch \
+ $(use_enable fasttrack) \
+ $(use_enable gnutella) \
+ $(use_enable gnutella gnutella2) \
+ $(use_enable gd) \
+ $(use_enable magic) \
+ ${myconf} || die "econf failed"
+
+ export OCAMLRUNPARAM="l=256M"
+ emake || die "emake failed"
+
+ if ! use guionly; then
+ emake utils || die "emake utils failed"
+ fi;
+}
+
+src_install() {
+ if ! use guionly; then
+ dobin mlnet mld_hash get_range copysources make_torrent subconv \
+ || die "dobin failed"
+
+ newconfd "${FILESDIR}/mldonkey.confd-2.8" mldonkey
+ fperms 600 /etc/conf.d/mldonkey
+ newinitd "${FILESDIR}/mldonkey.initd-2.8-r1" mldonkey
+ fi
+
+ if use gtk; then
+ dobin mlgui mlguistarter || die "dobin failed"
+ domenu ${FILESDIR}/${PN}-gui.desktop
+ doicon ${FILESDIR}/${PN}.png
+ fi
+
+ if use doc ; then
+ cd ${S}/distrib
+ dodoc ChangeLog *.txt
+ dohtml *.html
+
+ insinto /usr/share/doc/${PF}/scripts
+ doins kill_mldonkey mldonkey_command mldonkey_previewer make_buginfo
+
+ cd ${S}/docs
+ dodoc *.txt *.tex *.pdf
+ dohtml *.html
+
+ cd ${S}/docs/developers
+ dodoc *.txt *.tex
+
+ cd ${S}/docs/images
+ insinto /usr/share/doc/${PF}/html/images
+ doins *
+ fi
+}
+
+pkg_preinst() {
+ if ! use guionly; then
+ enewuser ${MLUSER} -1 /bin/bash /home/p2p users
+ fi
+}
+
+pkg_postinst() {
+ if ! use guionly; then
+ echo
+ einfo "If you want to start MLDonkey as a system service, use"
+ einfo "the /etc/init.d/mldonkey script. To control bandwidth, use"
+ einfo "the 'slow' and 'fast' arguments. Be sure to have a look at"
+ einfo "/etc/conf.d/mldonkey also."
+ echo
+ einfo "Attention: 2.6 has changed the inifiles structure, so downgrading"
+ einfo "will be problematic."
+ einfo "User settings (admin) are transferred to users.ini from "
+ einfo "downloads.ini"
+ einfo "Old ini files are automatically converted to the new format"
+ echo
+ else
+ echo
+ einfo "Simply run mlgui to start the chosen MLDonkey gui."
+ einfo "It puts its config files into ~/.mldonkey"
+ fi
+}
diff --git a/profiles/default-linux/mips/2007.0/loongson/n32/make.defaults b/profiles/default-linux/mips/2007.0/loongson/n32/make.defaults
new file mode 100644
index 0000000..ebfbe70
--- /dev/null
+++ b/profiles/default-linux/mips/2007.0/loongson/n32/make.defaults
@@ -0,0 +1,27 @@
+# Copyright 2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/profiles/default-linux/mips/2007.0/cobalt/n32/make.defaults,v 1.1 2007/02/11 11:20:43 eroyf Exp $
+
+# IP22/IP32 N32 Generic Profile
+# Also Catalyst Build Profile for N32
+
+ARCH="mips"
+PROFILE_ARCH="cobalt"
+
+# The n32 userland needs a 64bit compiler and CHOST
+CHOST="mips64el-unknown-linux-gnu"
+
+# Sandbox is broken on mips (Bug #45814)
+FEATURES="-sandbox ccache autoconfig"
+
+# Compiler flags
+# We build a *minimum* of mips3, because IP22/IP32 are, at minimum, mips3 capable
+# systems (IP22 R4x00 systems are mips3; IP32 is mips4). Enforce n32 as the default
+# ABI as well.
+CFLAGS="-O2 -pipe -march=mips3 -mabi=n32"
+CXXFLAGS=${CFLAGS}
+
+ACCEPT_KEYWORDS="mips"
+
+USE="readline fortran gpm berkdb gdbm tcpd pam libwww ssl nls perl python sdl mips n32"
+STAGE1_USE="mips n32 cobalt"
diff --git a/profiles/default-linux/mips/2007.0/loongson/n32/nptl/make.defaults b/profiles/default-linux/mips/2007.0/loongson/n32/nptl/make.defaults
new file mode 100644
index 0000000..cc6f22e
--- /dev/null
+++ b/profiles/default-linux/mips/2007.0/loongson/n32/nptl/make.defaults
@@ -0,0 +1,27 @@
+# Copyright 2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/profiles/default-linux/mips/2007.0/cobalt/n32/nptl/make.defaults,v 1.1 2007/02/11 11:20:43 eroyf Exp $
+
+# IP22/IP32 N32/NPTL Generic Profile
+# Also Catalyst Build Profile for N32/NPTL
+
+ARCH="mips"
+PROFILE_ARCH="cobalt"
+
+# The n32 userland needs a 64bit compiler and CHOST
+CHOST="mips64el-unknown-linux-gnu"
+
+# Sandbox is broken on mips (Bug #45814)
+FEATURES="-sandbox ccache autoconfig"
+
+# Compiler flags
+# We build a *minimum* of mips3, because IP22/IP32 are, at minimum, mips3 capable
+# systems (IP22 R4x00 systems are mips3; IP32 is mips4). Enforce n32 as the default
+# ABI as well.
+CFLAGS="-O2 -pipe -march=mips3 -mabi=n32"
+CXXFLAGS=${CFLAGS}
+
+ACCEPT_KEYWORDS="mips"
+
+USE="readline fortran gpm berkdb gdbm tcpd pam libwww ssl nls perl python sdl mips n32 nptl nptlonly"
+STAGE1_USE="mips n32 nptl nptlonly cobalt"
diff --git a/profiles/default-linux/mips/2007.0/loongson/n32/nptl/package.mask b/profiles/default-linux/mips/2007.0/loongson/n32/nptl/package.mask
new file mode 100644
index 0000000..6111fdd
--- /dev/null
+++ b/profiles/default-linux/mips/2007.0/loongson/n32/nptl/package.mask
@@ -0,0 +1,8 @@
+# Copyright 2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/profiles/default-linux/mips/2007.0/cobalt/n32/nptl/package.mask,v 1.1 2007/02/11 11:20:43 eroyf Exp $
+
+# Unmask gcc-4.x and glibc-2.4
+->=sys-devel/gcc-4.0
+->=sys-libs/glibc-2.4
+->=sys-kernel/mips-sources-2.6.17
diff --git a/profiles/default-linux/mips/2007.0/loongson/n32/nptl/parent b/profiles/default-linux/mips/2007.0/loongson/n32/nptl/parent
new file mode 100644
index 0000000..f3229c5
--- /dev/null
+++ b/profiles/default-linux/mips/2007.0/loongson/n32/nptl/parent
@@ -0,0 +1 @@
+..
diff --git a/profiles/default-linux/mips/2007.0/loongson/n32/nptl/use.mask b/profiles/default-linux/mips/2007.0/loongson/n32/nptl/use.mask
new file mode 100644
index 0000000..27ddea3
--- /dev/null
+++ b/profiles/default-linux/mips/2007.0/loongson/n32/nptl/use.mask
@@ -0,0 +1,8 @@
+# Copyright 2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/profiles/default-linux/mips/2007.0/cobalt/n32/nptl/use.mask,v 1.1 2007/02/11 11:20:43 eroyf Exp $
+
+# Unmask nptl
+-nptl
+-nptlonly
+
diff --git a/profiles/default-linux/mips/2007.0/loongson/n32/parent b/profiles/default-linux/mips/2007.0/loongson/n32/parent
new file mode 100644
index 0000000..f3229c5
--- /dev/null
+++ b/profiles/default-linux/mips/2007.0/loongson/n32/parent
@@ -0,0 +1 @@
+..
diff --git a/profiles/default-linux/mips/2007.0/loongson/n32/use.mask b/profiles/default-linux/mips/2007.0/loongson/n32/use.mask
new file mode 100644
index 0000000..93957db
--- /dev/null
+++ b/profiles/default-linux/mips/2007.0/loongson/n32/use.mask
@@ -0,0 +1,6 @@
+# Copyright 2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/profiles/default-linux/mips/2007.0/cobalt/n32/use.mask,v 1.1 2007/02/11 11:20:43 eroyf Exp $
+
+# Unmask n32
+-n32
diff --git a/profiles/default-linux/mips/2007.0/loongson/o32/make.defaults b/profiles/default-linux/mips/2007.0/loongson/o32/make.defaults
new file mode 100644
index 0000000..9c84570
--- /dev/null
+++ b/profiles/default-linux/mips/2007.0/loongson/o32/make.defaults
@@ -0,0 +1,26 @@
+# Copyright 2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/profiles/default-linux/mips/2007.0/cobalt/o32/make.defaults,v 1.1 2007/02/11 11:20:44 eroyf Exp $
+
+# Cobalt O32 Profile
+# Also Catalyst Build Profile for Cobalt O32
+
+ARCH="mips"
+PROFILE_ARCH="cobalt"
+
+# Cobalt systems are Little-Endian, and do not support (yet) 64bit kernels
+CHOST="mipsel-unknown-linux-gnu"
+
+# Sandbox is broken on mips (Bug #45814)
+FEATURES="-sandbox ccache autoconfig"
+
+# Compiler flags
+# We build as R5000, because Cobalts have an RM5231A CPU in them. Enforce o32
+# as the default ABI as well.
+CFLAGS="-O2 -pipe -march=r5000 -mabi=32"
+CXXFLAGS=${CFLAGS}
+
+ACCEPT_KEYWORDS="mips"
+
+USE="readline fortran gpm berkdb gdbm tcpd pam libwww ssl nls perl python sdl mips cobalt"
+STAGE1_USE="mips cobalt"
diff --git a/profiles/default-linux/mips/2007.0/loongson/o32/nptl/make.defaults b/profiles/default-linux/mips/2007.0/loongson/o32/nptl/make.defaults
new file mode 100644
index 0000000..801946c
--- /dev/null
+++ b/profiles/default-linux/mips/2007.0/loongson/o32/nptl/make.defaults
@@ -0,0 +1,26 @@
+# Copyright 2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/profiles/default-linux/mips/2007.0/cobalt/o32/nptl/make.defaults,v 1.1 2007/02/11 11:20:44 eroyf Exp $
+
+# Cobalt O32/NPTL Profile
+# Also Catalyst Build Profile for Cobalt O32/NPTL
+
+ARCH="mips"
+PROFILE_ARCH="cobalt"
+
+# Cobalt systems are Little-Endian, and do not support (yet) 64bit kernels
+CHOST="mipsel-unknown-linux-gnu"
+
+# Sandbox is broken on mips (Bug #45814)
+FEATURES="-sandbox ccache autoconfig"
+
+# Compiler flags
+# We build as R5000, because Cobalts have an RM5231A CPU in them. Enforce o32
+# as the default ABI as well.
+CFLAGS="-O2 -pipe -march=r5000 -mabi=32"
+CXXFLAGS=${CFLAGS}
+
+ACCEPT_KEYWORDS="mips"
+
+USE="readline fortran gpm berkdb gdbm tcpd pam libwww ssl nls perl python sdl mips cobalt nptl nptlonly"
+STAGE1_USE="mips cobalt nptl nptlonly"
diff --git a/profiles/default-linux/mips/2007.0/loongson/o32/nptl/package.mask b/profiles/default-linux/mips/2007.0/loongson/o32/nptl/package.mask
new file mode 100644
index 0000000..619b7cb
--- /dev/null
+++ b/profiles/default-linux/mips/2007.0/loongson/o32/nptl/package.mask
@@ -0,0 +1,6 @@
+# Copyright 2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/profiles/default-linux/mips/2007.0/cobalt/o32/nptl/package.mask,v 1.1 2007/02/11 11:20:44 eroyf Exp $
+
+# Unmask glibc-2.4
+->=sys-libs/glibc-2.4
diff --git a/profiles/default-linux/mips/2007.0/loongson/o32/nptl/parent b/profiles/default-linux/mips/2007.0/loongson/o32/nptl/parent
new file mode 100644
index 0000000..f3229c5
--- /dev/null
+++ b/profiles/default-linux/mips/2007.0/loongson/o32/nptl/parent
@@ -0,0 +1 @@
+..
diff --git a/profiles/default-linux/mips/2007.0/loongson/o32/nptl/use.mask b/profiles/default-linux/mips/2007.0/loongson/o32/nptl/use.mask
new file mode 100644
index 0000000..f5c1a2e
--- /dev/null
+++ b/profiles/default-linux/mips/2007.0/loongson/o32/nptl/use.mask
@@ -0,0 +1,8 @@
+# Copyright 2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/profiles/default-linux/mips/2007.0/cobalt/o32/nptl/use.mask,v 1.1 2007/02/11 11:20:44 eroyf Exp $
+
+# Unmask nptl
+-nptl
+-nptlonly
+
diff --git a/profiles/default-linux/mips/2007.0/loongson/o32/parent b/profiles/default-linux/mips/2007.0/loongson/o32/parent
new file mode 100644
index 0000000..f3229c5
--- /dev/null
+++ b/profiles/default-linux/mips/2007.0/loongson/o32/parent
@@ -0,0 +1 @@
+..
diff --git a/profiles/default-linux/mips/2007.0/loongson/package.mask b/profiles/default-linux/mips/2007.0/loongson/package.mask
new file mode 100644
index 0000000..21a82e9
--- /dev/null
+++ b/profiles/default-linux/mips/2007.0/loongson/package.mask
@@ -0,0 +1,10 @@
+# for gorg to function properly
+>dev-libs/libxml2-2.6.26
+>dev-libs/libxslt-1.1.17
+
+# forget why to mask it
+>app-text/poppler-0.5.3
+
+# newer qt doesn't build
+>x11-libs/qt-3.3.4-r8
+>media-libs/freetype-2.1.10-r2
diff --git a/profiles/default-linux/mips/2007.0/loongson/package.provided b/profiles/default-linux/mips/2007.0/loongson/package.provided
new file mode 100644
index 0000000..7689658
--- /dev/null
+++ b/profiles/default-linux/mips/2007.0/loongson/package.provided
@@ -0,0 +1 @@
+sys-kernel/mips-sources-2.6.20.11
diff --git a/profiles/default-linux/mips/2007.0/loongson/parent b/profiles/default-linux/mips/2007.0/loongson/parent
new file mode 100644
index 0000000..45d0298
--- /dev/null
+++ b/profiles/default-linux/mips/2007.0/loongson/parent
@@ -0,0 +1 @@
+../../../../../../../../usr/portage/profiles/default-linux/mips/2007.0
diff --git a/profiles/default-linux/mips/2007.0/loongson/use.mask b/profiles/default-linux/mips/2007.0/loongson/use.mask
new file mode 100644
index 0000000..3aaa154
--- /dev/null
+++ b/profiles/default-linux/mips/2007.0/loongson/use.mask
@@ -0,0 +1,11 @@
+# Copyright 2006 Gentoo Foundation.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/profiles/default-linux/mips/2007.0/cobalt/use.mask,v 1.1 2007/02/11 11:20:43 eroyf Exp $
+
+# Cobalt only does mips32, thus it doesn't know about n32/n64 (yet)
+n32
+n64
+-dri
+-video_cards_radeon
+-arts
+-mad
diff --git a/profiles/profile.desc b/profiles/profile.desc
new file mode 100644
index 0000000..83bb0a3
--- /dev/null
+++ b/profiles/profile.desc
@@ -0,0 +1 @@
+mips default-linux/mips/2007.0/loongson/o32/nptl stable
diff --git a/profiles/repo_name b/profiles/repo_name
new file mode 100644
index 0000000..a8f1585
--- /dev/null
+++ b/profiles/repo_name
@@ -0,0 +1 @@
+loongson
diff --git a/x11-base/xorg-server/ChangeLog b/x11-base/xorg-server/ChangeLog
new file mode 100644
index 0000000..01538b2
--- /dev/null
+++ b/x11-base/xorg-server/ChangeLog
@@ -0,0 +1,1175 @@
+# ChangeLog for x11-base/xorg-server
+# Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/x11-base/xorg-server/ChangeLog,v 1.219 2007/02/19 21:34:17 joshuabaergen Exp $
+
+*xorg-server-1.2.0-r1 (19 Feb 2007)
+
+ 19 Feb 2007; Joshua Baergen <joshuabaergen@gentoo.org>
+ +files/1.2.0-server-damage-version.patch,
+ +files/1.2.0-server-randr-version.patch, +xorg-server-1.2.0-r1.ebuild:
+ Fix several issues:
+
+ Bug #163613 - Server should report its damage implementation version rather
+ than the protocol header version. (Todd Merrill)
+
+ Bug #164146 - Xprint file locations have changed since 1.1, so fix the ebuild
+ to find them correctly. (Ed Catmur)
+
+ Bug #167651 - Server should report its randr implementation version rather
+ than the protocol header version. (Me)
+
+ 24 Jan 2007; Donnie Berkholz <dberkholz@gentoo.org>;
+ -files/1.0.2-Xprint-xprintdir.patch, -files/1.0.2-dbe-render.diff,
+ -files/1.0.2-fix-readKernelMapping-overrun.patch,
+ -files/1.0.2-fix-rom-read-dualhead.patch,
+ -files/1.0.2-fix-xorgconfig-rgbpath-and-mouse.patch,
+ -files/1.0.2-try-to-fix-xorgcfg.patch, -files/x11r7.0-setuid.diff,
+ -files/xorg-server-1.0.2-64bit-fix-for-glx.patch,
+ -files/xorg-server-1.0.2-64bit-fix-have-dix-config.patch,
+ -files/xorg-server-1.0.2-64bit-fix-indirect-vertex-array.patch,
+ -files/xorg-server-1.0.2-Sbus.patch,
+ -files/xorg-server-1.0.2-Xprt-build.patch,
+ -files/xorg-server-1.0.2-sparc64-cfbrrop-fix.patch,
+ -files/xorg-server-1.0.2-xprint-init.patch,
+ -files/CVE-2006-1526-xrender-mitri.patch, -xorg-server-1.0.2-r8.ebuild:
+ Stop supporting Xorg 7.0.
+
+ 24 Jan 2007; Donnie Berkholz <dberkholz@gentoo.org>;
+ -files/1.0.99.901-Xprint-xprintdir.patch,
+ -files/xorg-server-1.1.99.901-GetDrawableAttributes.patch,
+ -files/1.1.99.903-sparc-includes.patch,
+ -files/xorg-server-1.1.0-setuid.diff, -files/1.1.99.903-mesa-6.5.2.patch,
+ -xorg-server-1.0.2-r7.ebuild, -xorg-server-1.1.0-r1.ebuild,
+ -xorg-server-1.1.1.ebuild, -xorg-server-1.1.1-r2.ebuild,
+ -xorg-server-1.1.1-r3.ebuild, -xorg-server-1.1.99.903-r1.ebuild:
+ Clean up.
+
+*xorg-server-1.2.0 (24 Jan 2007)
+
+ 24 Jan 2007; Donnie Berkholz <dberkholz@gentoo.org>;
+ +xorg-server-1.2.0.ebuild:
+ Bump. Upstream incorporated some version of all of our patches, so no more
+ need for the aiglx USE flag.
+
+ 22 Jan 2007; Steve Dibb <beandog@gentoo.org> xorg-server-1.0.2-r8.ebuild,
+ xorg-server-1.1.1-r4.ebuild:
+ amd64 stable, bug 157421
+
+ 22 Jan 2007; Donnie Berkholz <dberkholz@gentoo.org>;
+ +files/1.1.1-fixdualhead.patch, +files/1.1.99.903-sparc-includes.patch,
+ +files/1.1.1-sparc-includes.patch, xorg-server-1.1.1-r4.ebuild,
+ xorg-server-1.1.99.903-r1.ebuild:
+ (#159671) Fix sparc build with current kernel headers. (#159375) Fix dual
+ head when direct rendering is enabled. No revision bump because these affect
+ a minority of users.
+
+ 15 Jan 2007; Tim Yamin <plasmaroo@gentoo.org> xorg-server-1.1.1-r4.ebuild:
+ Stable on IA64; bug #157421.
+
+ 15 Jan 2007; Bryan Østergaard <kloeri@gentoo.org>
+ xorg-server-1.1.1-r4.ebuild:
+ Stable on Alpha, bug 157421.
+
+ 14 Jan 2007; René Nussbaumer <killerfox@gentoo.org>
+ xorg-server-1.1.1-r4.ebuild:
+ Stable on hppa. See bug #157421.
+
+ 14 Jan 2007; Markus Rothe <corsair@gentoo.org>
+ xorg-server-1.0.2-r8.ebuild, xorg-server-1.1.1-r4.ebuild:
+ Stable on ppc64; bug #157421
+
+ 14 Jan 2007; Ferris McCormick <fmccor@gentoo.org>
+ xorg-server-1.1.1-r4.ebuild:
+ Stable on sparc --- Security Bug #157421 --- everything as expected.
+
+ 13 Jan 2007; Andrej Kacian <ticho@gentoo.org> xorg-server-1.0.2-r8.ebuild,
+ xorg-server-1.1.1-r4.ebuild:
+ Stable on x86, bug #157421.
+
+ 13 Jan 2007; Tobias Scherbaum <dertobi123@gentoo.org>
+ xorg-server-1.1.1-r4.ebuild:
+ Stable on ppc wrt bug #157421.
+
+*xorg-server-1.1.1-r4 (13 Jan 2007)
+*xorg-server-1.0.2-r8 (13 Jan 2007)
+
+ 13 Jan 2007; Joshua Baergen <joshuabaergen@gentoo.org>
+ +files/1.0.2-dbe-render.diff, +files/1.1.1-dbe-render.diff,
+ +xorg-server-1.0.2-r8.ebuild, +xorg-server-1.1.1-r4.ebuild:
+ Fix multiple vulnerabilities in Render and DBE extensions. (Bug #157421)
+
+ 07 Dec 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ xorg-server-1.1.1-r3.ebuild:
+ Only apply the GLX endianness fix if AIGLX is enabled, since it fixes one of
+ the AIGLX patches. Thanks to Elisamuel Resto and Mike Auty for figuring out
+ what the problem was. Closes bug #157401.
+
+ 07 Dec 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ xorg-server-1.2.99.0.ebuild:
+ Build against the Mesa 6.5.2 release instead of the snapshot.
+
+*xorg-server-1.1.1-r3 (07 Dec 2006)
+
+ 07 Dec 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ +files/1.1.1-fix_big_endian_glx.patch, +xorg-server-1.1.1-r3.ebuild:
+ Fix GLX endianness on big endian systems. This gets rid of the funky colours
+ on systems such as PPC when running Compiz/Beryl. (Bug #156715, Rasmus Wiman)
+
+ 05 Dec 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-1.1.99.903-r1.ebuild, xorg-server-1.2.99.0.ebuild:
+ Require kbproto 1.0.3.
+
+*xorg-server-1.1.99.903-r1 (04 Dec 2006)
+
+ 04 Dec 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ +files/1.1.99.903-mesa-6.5.2.patch, -xorg-server-1.1.99.903.ebuild,
+ +xorg-server-1.1.99.903-r1.ebuild:
+ Build the 7.2 server against Mesa 6.5.2. Includes a patch from Hanno Böck.
+
+*xorg-server-1.1.99.903 (02 Dec 2006)
+
+ 02 Dec 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ +files/xorg-server-1.1.99.901-GetDrawableAttributes.patch,
+ -xorg-server-1.1.99.902.ebuild, +xorg-server-1.1.99.903.ebuild:
+ Version bump for 7.2RC3. Includes several more bugfixes.
+
+ A patch has been added from upstream Bugzilla that fixes Compiz/AIGLX
+ operation on the server. It's unknown if the patch has any negative
+ side-effects yet, so it's hidden behind USE="aiglx" again.
+
+ 01 Dec 2006; Gustavo Zacarias <gustavoz@gentoo.org>
+ xorg-server-1.1.1-r1.ebuild:
+ Stable on hppa wrt #144549
+
+ 14 Nov 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ xorg-server-1.1.99.902.ebuild:
+ xorgcfg appears to build OK again - re-enable it.
+
+*xorg-server-1.1.99.902 (13 Nov 2006)
+
+ 13 Nov 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ -xorg-server-1.1.99.901.ebuild, +xorg-server-1.1.99.902.ebuild:
+ Bump for 7.2RC2. Brings quite a few more bugfixes.
+
+*xorg-server-1.1.1-r2 (09 Nov 2006)
+
+ 09 Nov 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ +files/1.1.1-fix_acpi_tokenize.patch, +xorg-server-1.1.1-r2.ebuild:
+ Fix X crashes when opening/closing laptop lids on some laptops. (Bug #152184,
+ Wendall Cada for the report)
+
+ 05 Nov 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ +files/1.2.99.0-fix-sysconfdir-references.patch:
+ Add missing patch.
+
+ 04 Nov 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ xorg-server-1.2.99.0.ebuild:
+ SDL is also currently broken in 1.2.99.0 according to Daniel Stone.
+
+ 04 Nov 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ xorg-server-1.2.99.0.ebuild:
+ 1.2.99.0:
+ - xprint is broken (bug #154067, Cyrill Helg)
+ - fix install location of dbus configuration file
+
+ 04 Nov 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ xorg-server-1.2.99.0.ebuild:
+ Add DBUS dependency. Bump dependencies on evdev, keyboard and mouse drivers
+ to enforce input hotplug-compatible versions.
+
+ 03 Nov 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ xorg-server-1.2.99.0.ebuild:
+ Add 'dbus' USE-flag and disable dmx correctly.
+
+ 03 Nov 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ xorg-server-1.2.99.0.ebuild:
+ 1.2.99 needs libdrm >= 2.2. Thanks to steev again.
+
+ 03 Nov 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ xorg-server-1.2.99.0.ebuild:
+ 1.2.99 depends on inputproto >=1.4. Thanks to Steev for the catch.
+
+ 03 Nov 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ xorg-server-1.2.99.0.ebuild:
+ Eradicate all references to the currently broken DMX. (Jakub Moc, bug #153928)
+
+*xorg-server-1.2.99.0 (03 Nov 2006)
+
+ 03 Nov 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ +xorg-server-1.2.99.0.ebuild:
+ Add initial input hotplug development release.
+
+*xorg-server-1.1.99.901 (30 Oct 2006)
+
+ 30 Oct 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ +xorg-server-1.1.99.901.ebuild:
+ Add 7.2RC1 server snapshot. xorgcfg is broken (probably minorly), and compiz
+ compatibility patches are also broken. Loads of fixes and changes since 7.1.
+
+ 25 Oct 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-1.1.1-r1.ebuild:
+ Unbreaking kdrive, part 4: Move all the kdrive setup code out to a separate
+ function kdrive_setup(). Make variables local to that function.
+
+ 25 Oct 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-1.1.1-r1.ebuild:
+ Unbreaking kdrive, part 3: Build fbdev and vesa for all cases in which other
+ servers require them. This replaces the existing fix for bug #136370 and
+ should also fix bug #152797.
+
+ 25 Oct 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-1.1.1-r1.ebuild:
+ Unbreaking kdrive, part 2: Instead of checking whether a certain VIDEO_CARDS
+ setting is in a long list of invalid cards for non-x86 systems, check
+ whether it's the single valid setting; Check whether VIDEO_CARDS settings
+ are valid kdrive servers before moving into the more complex processing.
+
+ 25 Oct 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-1.1.1-r1.ebuild:
+ Unbreaking kdrive, part 1: Fix logic and variable names when forcing
+ fbdev/vesa on for Xati; Don't skip binary drivers, it needlessly complicates
+ the code for no useful end result.
+
+ 18 Oct 2006; Aron Griffis <agriffis@gentoo.org>
+ xorg-server-1.1.1-r1.ebuild:
+ Mark 1.1.1-r1 stable on alpha. #144549
+
+ 17 Oct 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ xorg-server-1.1.1-r1.ebuild:
+ Don't try to install xorg.conf.example if the xorg server isn't built. (Bug
+ #151670, Balint Dobai-Pataky)
+
+ 15 Oct 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ xorg-server-1.1.1-r1.ebuild:
+ Don't try to install xorg.conf.example with USE="minimal". (Bug #151421,
+ George Kargiotakis)
+
+ 14 Oct 2006; Aron Griffis <agriffis@gentoo.org>
+ xorg-server-1.1.1-r1.ebuild:
+ Mark 1.1.1-r1 stable on ia64. #144549
+
+ 13 Oct 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ xorg-server-1.1.1-r1.ebuild:
+ AMD64/x86 stable for bug #144549 (X7.1).
+
+ 13 Oct 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ xorg-server-1.1.1-r1.ebuild:
+ Hide AIGLX patches behind the "aiglx" USE flag, since the patches seem to
+ cause some EXA slowdowns (bug #147841, reported by Giacomo Perale).
+
+ 12 Oct 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ xorg-server-1.1.1-r1.ebuild:
+ Really fix bug #150052.
+
+ 12 Oct 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ +files/xorg-conf-example.patch, xorg-server-1.1.1-r1.ebuild:
+ Install xorg.conf.example like 6.x did. (Bug #138623, requested by
+ Christopher Covington; patch written by Donnie and I) Don't build kdrive
+ servers that use vm86.h on non-x86 systems. (Bug #150052, Shvetsov Alex)
+
+ 06 Oct 2006; Chris Gianelloni <wolf31o2@gentoo.org>
+ xorg-server-1.1.0-r1.ebuild, xorg-server-1.1.1.ebuild,
+ xorg-server-1.1.1-r1.ebuild:
+ Remove references to nvidia-glx now that it has been removed from the tree.
+
+ 20 Sep 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ files/1.1.1-sparc64-ati-lockups.patch:
+ Base ifdef on __sparc__ rather than __sparc64__. The issue happens on 64-bit
+ kernel/32-bit userland, so sparc64 isn't defined when building the userland.
+
+ 20 Sep 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-1.1.1-r1.ebuild:
+ Use new glproto for eye candy to work properly.
+
+ 16 Sep 2006; Hanno Boeck <hanno@gentoo.org> xorg-server-1.1.1-r1.ebuild:
+ Fix download URLs.
+
+ 16 Sep 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-1.1.1-r1.ebuild:
+ Use Mesa 6.5.1 instead of a random prerelease snapshot.
+
+ 15 Sep 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ -files/1.1.1-remove-altix.patch, +files/1.1.1-sparc64-ati-lockups.patch,
+ xorg-server-1.1.1.ebuild, xorg-server-1.1.1-r1.ebuild:
+ Use upstream's fix for sparc mach64 lockups. An 18-line patch instead of a
+ 582-line patch is a good thing.
+
+ 12 Sep 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-1.1.0-r1.ebuild, xorg-server-1.1.1.ebuild,
+ xorg-server-1.1.1-r1.ebuild:
+ Some comments got displaced to the wrong spot.
+
+ 12 Sep 2006; Gustavo Zacarias <gustavoz@gentoo.org>
+ xorg-server-1.1.1.ebuild:
+ Stable on hppa
+
+ 08 Sep 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-1.0.2-r7.ebuild, xorg-server-1.1.0-r1.ebuild,
+ xorg-server-1.1.1.ebuild, xorg-server-1.1.1-r1.ebuild:
+ (#128448) Depend on xplsprinters if USE=xprint, because it's used in profile
+ scripts.
+
+ 06 Sep 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ +files/xorg-x11-server-1.1.1-mesa-6.5.1.patch:
+ Forgot to cvs add the patch, thanks fmccor.
+
+*xorg-server-1.1.1-r1 (05 Sep 2006)
+
+ 05 Sep 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ +files/01-no-move-damage.patch, +files/02-dont-backfill-bg-none.patch,
+ +files/03-tfp-damage.patch, +files/04-mesa-copy-sub-buffer.patch,
+ +files/05-offscreen-pixmaps.patch, +files/06-aiglx-happy-vt-switch.patch,
+ +files/xorg-server-1.1.1-install-libxf86config-headers.patch,
+ +files/1.1.1-fix-xrandr-zoom-keys.patch, +xorg-server-1.1.1-r1.ebuild:
+ Bump. (#145797) Add patches for AIGLX+compiz. (#146197) Fix resolution
+ switching with ctrl-alt-+/-. Install libxf86config + headers for
+ pyxf86config, and extramodes and vesamodes for system-config-display. Do
+ correct bash substitution for nvidia kdrive server. This uses a mesa
+ snapshot in anticipation of the 6.5.1 release. Some changes will need to
+ happen to get it back to using a standard Mesa release tarball.
+
+ 03 Sep 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ xorg-server-1.1.0-r1.ebuild, xorg-server-1.1.1.ebuild:
+ kdrive's VESA driver does not build on AMD64. (Bruno Roggeri, bug #145274)
+
+ 27 Aug 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-1.1.0-r1.ebuild, xorg-server-1.1.1.ebuild:
+ Remove trailing whitespace.
+
+ 27 Aug 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-1.1.0-r1.ebuild, xorg-server-1.1.1.ebuild:
+ Allow 7.1-compatible nvidia-drivers and nvidia-legacy-drivers.
+
+ 26 Aug 2006; Hanno Boeck <hanno@gentoo.org> xorg-server-1.1.0-r1.ebuild,
+ xorg-server-1.1.1.ebuild:
+ linuxwacom moved from x11-misc to x11-drivers.
+
+ 22 Aug 2006; Ferris McCormick <fmccor@gentoo.org>
+ xorg-server-1.1.1.ebuild:
+ Stable on sparc, Bug #144549 --- Thanks to dberkholz for incorporating
+ remove-altix patch.
+
+ 22 Aug 2006; Stephen P. Becker <geoman@gentoo.org>
+ xorg-server-1.1.1.ebuild:
+ stable on mips, bug 144549
+
+ 21 Aug 2006; Markus Rothe <corsair@gentoo.org> xorg-server-1.1.1.ebuild:
+ Stable on ppc64; bug #144549
+
+ 21 Aug 2006; Joseph Jezak <josejx@gentoo.org> xorg-server-1.1.1.ebuild:
+ Marked ppc stable for bug #144549.
+
+ 20 Aug 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ +files/1.1.1-remove-altix.patch, xorg-server-1.1.1.ebuild:
+ (fd.o #3914) Altix support breaks some sparc64 systems with Mach64 video, so
+ conditionally patch it out. This patch will be maintained and forward-ported
+ by the sparc team. This is the last stable blocker for modular X on sparc.
+
+ 18 Aug 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-1.1.1.ebuild:
+ Move architecture-specific video driver defaults into profiles.
+
+ 12 Aug 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-1.1.0-r1.ebuild, xorg-server-1.1.1.ebuild:
+ libdmx and dmxproto should be in USE=dmx dep, not USE=minimal.
+
+ 02 Aug 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-1.1.0-r1.ebuild, xorg-server-1.1.1.ebuild:
+ Add VIDEO_CARDS=fglrx back in, now that there's a compatible driver.
+
+ 19 Jul 2006; Guy Martin <gmsoft@gentoo.org> xorg-server-1.0.2-r7.ebuild:
+ Stable on hppa.
+
+ 16 Jul 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ xorg-server-1.1.0-r1.ebuild:
+ Add the warning to this version too.
+
+ 16 Jul 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ xorg-server-1.1.1.ebuild:
+ Add some warnings about the change in reduced blanking behaviour. (Bug
+ #135544, Steffen Strobel)
+
+ 11 Jul 2006; Aron Griffis <agriffis@gentoo.org>
+ xorg-server-1.1.0-r1.ebuild:
+ Mark 1.1.0-r1 stable on ia64
+
+ 09 Jul 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-1.1.1.ebuild:
+ Also don't build xorgcfg on USE=minimal.
+
+ 09 Jul 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ -xorg-server-1.0.2-r6.ebuild:
+ Pull old version.
+
+*xorg-server-1.1.1 (09 Jul 2006)
+
+ 09 Jul 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ +xorg-server-1.1.1.ebuild:
+ Bump. Bunches of rendering and crasher fixes, incorporates security fix and
+ the 2 xprint patches, and more.
+
+ 07 Jul 2006; Donnie Berkholz <dberkholz@gentoo.org>; ChangeLog:
+ Update to my new email address.
+
+ 06 Jul 2006; Chris Gianelloni <wolf31o2@gentoo.org>
+ xorg-server-1.1.0-r1.ebuild:
+ Added blocker on x11-drivers/nvidia-drivers and
+ x11-drivers/nvidia-legacy-drivers since they don't work on 1.1 yet.
+
+ 01 Jul 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ files/x11r7.0-setuid.diff, files/xorg-server-1.1.0-setuid.diff:
+ Fix the setuid patches. (Thanks to Rudo Thomas for the catch in bug #138688)
+
+ 01 Jul 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-1.1.0-r1.ebuild:
+ ppc/sparc/mips/alpha/arm/sh stable
+
+ 30 Jun 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-1.1.0-r1.ebuild:
+ sparc shouldn't pull in vesa and vga.
+
+ 30 Jun 2006; Markus Rothe <corsair@gentoo.org>
+ xorg-server-1.1.0-r1.ebuild:
+ Stable on ppc64
+
+ 30 Jun 2006; Chris Gianelloni <wolf31o2@gentoo.org>
+ xorg-server-1.0.2-r7.ebuild:
+ Stable on amd64.
+
+ 30 Jun 2006; Markus Rothe <corsair@gentoo.org>
+ xorg-server-1.0.2-r7.ebuild:
+ Stable on ppc64
+
+ 30 Jun 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-1.0.2-r7.ebuild:
+ x86 stable.
+
+*xorg-server-1.0.2-r7 (30 Jun 2006)
+
+ 30 Jun 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ +files/1.0.2-fix-rom-read-dualhead.patch, +xorg-server-1.0.2-r7.ebuild:
+ Fix dual-head.
+
+ 30 Jun 2006; Stephen P. Becker <geoman@gentoo.org>
+ xorg-server-1.1.0-r1.ebuild:
+ added video_cards_impact to IUSE_VIDEO_CARDS, enable it for mips users
+
+ 27 Jun 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ xorg-server-1.1.0-r1.ebuild:
+ Only pull in loadable drivers if the xorg USE-flag is set. (bug #135873)
+
+ 28 Jun 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-1.1.0-r1.ebuild:
+ Fix typo video_cards_3dfx > video_cards_tdfx (Jakub Moc).
+
+ 26 Jun 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ xorg-server-1.1.0-r1.ebuild:
+ Fix kdrive+ATI build. (Priit Laes, bug #136370)
+
+ 26 Jun 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ xorg-server-1.1.0-r1.ebuild:
+ Allow USE="-* minimal" for xorg-server so that Xvfb can be built by itself.
+ (Patch by Ed Catmur, bug #137991)
+
+ 21 Jun 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-1.1.0-r1.ebuild:
+ Fix up VIDEO_CARDS for mips, they don't want ati, mga, sisusb.
+
+*xorg-server-1.1.0-r1 (20 Jun 2006)
+*xorg-server-1.0.2-r6 (20 Jun 2006)
+
+ 20 Jun 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ +files/xorg-server-1.1.0-setuid.diff, +files/x11r7.0-setuid.diff,
+ -xorg-server-1.0.2-r4.ebuild, -xorg-server-1.0.2-r5.ebuild,
+ +xorg-server-1.0.2-r6.ebuild, -xorg-server-1.1.0.ebuild,
+ +xorg-server-1.1.0-r1.ebuild:
+ Security bump. Failure to check the return value of setuid() in a privileged
+ process could be used by a local user for file overwriting and possible
+ privilege escalation in corner cases. See
+ http://lists.freedesktop.org/archives/xorg/2006-June/016146.html for more
+ information.
+
+ 17 Jun 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ xorg-server-1.1.0.ebuild:
+ Drop nvidia and fglrx flags for now and block all nvidia-glx and ati-drivers
+ versions since neither of the binary drivers are supported currently.
+ (Jakub Moc, bug #136788)
+
+*xorg-server-1.0.2-r5 (11 Jun 2006)
+
+ 11 Jun 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ +files/1.0.2-fix-readKernelMapping-overrun.patch,
+ +xorg-server-1.0.2-r5.ebuild:
+ Fix an overrun that was causing various issues on VT switch. This is already
+ fixed in 1.1. (Matthias Dahl, bug #127608)
+
+ 04 Jun 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ xorg-server-1.1.0.ebuild:
+ Ensure eautoreconf gets run when building xprint and kdrive. (Walter Meinl,
+ bug #135263)
+
+ 04 Jun 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ xorg-server-1.1.0.ebuild:
+ Have the ebuild fail if no server will be built, instead of appearing to
+ complete successfully but not installing enough binaries for a usable X.
+ (Bug #132140)
+
+*xorg-server-1.1.0 (23 May 2006)
+
+ 23 May 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ -xorg-server-1.0.99.903.ebuild, +xorg-server-1.1.0.ebuild:
+ Bump for 7.1 final. Includes various crash fixes, etc.
+
+ 14 May 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-1.0.2-r4.ebuild:
+ Force on xorg-x11 opengl implem for compile, to ensure we have recent enough
+ glxtokens.h. Reported by johey on freenode.
+
+ 14 May 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-1.0.99.903.ebuild:
+ (#133295) Fix kdrive build when s3 is on, because it also sedded out the s3
+ from the middle of sis300. Also a fix for turning off sis300 at all. Fixes
+ by Kent Fredric.
+
+ 14 May 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-1.0.2-r4.ebuild, xorg-server-1.0.99.903.ebuild:
+ Add RESTRICT=stricter, because FEATURES=stricter dies on installing anything
+ suid with lazy bindings. The X server needs lazy bindings because of how its
+ module loading works. Hopefully at some point, upstream will change this.
+ Suggested by Kevin F. Quinn.
+
+ 13 May 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ xorg-server-1.0.99.903.ebuild:
+ Move driver dependencies from the meta-ebuild to xorg-server as a
+ PDEPEND. (Michal Suchanek, bug #132696)
+
+*xorg-server-1.0.99.903 (13 May 2006)
+
+ 13 May 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ -xorg-server-1.0.99.902-r1.ebuild, +xorg-server-1.0.99.903.ebuild:
+ Bump to 7.1RC3.
+
+ 13 May 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ xorg-server-1.0.2-r4.ebuild, xorg-server-1.0.99.902-r1.ebuild:
+ Force update to libxkbui-1.0.2 per dberkholz' suggestion, hopefully fixing
+ _XkbStrCaseCmp-related issues.
+
+*xorg-server-1.0.99.902-r1 (02 May 2006)
+*xorg-server-1.0.2-r4 (02 May 2006)
+
+ 02 May 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ +files/CVE-2006-1526-xrender-mitri.patch, -xorg-server-1.0.2-r3.ebuild,
+ +xorg-server-1.0.2-r4.ebuild, -xorg-server-1.0.99.902.ebuild,
+ +xorg-server-1.0.99.902-r1.ebuild:
+ Security bump and remove all affected versions. Please see Bug #130979 for
+ details.
+
+ 30 Apr 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ -files/1.0.99.901-fix-kdrive-build.patch,
+ -files/1.0.99.901-wrap-sdk-headers.patch,
+ -xorg-server-1.0.99.901-r1.ebuild:
+ Pull old 7.1RC ebuild.
+
+ 30 Apr 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-1.0.99.902.ebuild:
+ (#131817) Move the nptl diemsg out of an if, since we also use it in the else.
+
+*xorg-server-1.0.99.902 (29 Apr 2006)
+
+ 29 Apr 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ +xorg-server-1.0.99.902.ebuild:
+ Version bump. Includes quite a few bugfixes.
+
+ 24 Apr 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-1.0.99.901-r1.ebuild:
+ We don't need to apply the xf86Sbus.h creation patch anymore. It was
+ applying successfully by appending itself to the already-complete file in
+ the tarball.
+
+ 23 Apr 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-1.0.99.901-r1.ebuild:
+ Fix the USE=-xorg build, can't do use_with() on mesa-source because it won't
+ accept the --without option.
+
+ 23 Apr 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ files/digest-xorg-server-1.0.99.901-r1:
+ Fix digest.
+
+ 23 Apr 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ +files/xorg-server-1.0.2-Xprt-build.patch,
+ +files/1.0.2-Xprint-xprintdir.patch,
+ +files/xorg-server-1.0.2-xprint-init.patch,
+ +files/1.0.99.901-Xprint-xprintdir.patch, xorg-server-1.0.2-r3.ebuild,
+ xorg-server-1.0.99.901-r1.ebuild:
+ (#128448) Fix xprint (Ed Catmur). Still needs a dep added on xplsprinters
+ when xprint is in USE, but arches haven't keyworded it yet.
+
+*xorg-server-1.0.99.901-r1 (21 Apr 2006)
+
+ 21 Apr 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ +files/1.0.99.901-fix-kdrive-build.patch,
+ +files/1.0.99.901-wrap-sdk-headers.patch, -xorg-server-1.0.99.901.ebuild,
+ +xorg-server-1.0.99.901-r1.ebuild:
+ Add option to build kdrive, tiny X servers; also add VIDEO_CARDS settings to
+ select kdrive servers to build. Add option to build AIGLX with TLS support
+ (USE=nptl) -- mesa and xorg-server must be in sync on this. Update some
+ deps: glproto, scrnsaverproto. Don't need to inherit flag-o-matic, x-modular
+ eclass does this for us. Make Xdmx build its own USE flag, instead of part
+ of minimal. Force xorg-x11 OpenGL to build, because it needs a newer
+ glxtokens.h than some binary drivers provide. Add a server_based_install()
+ function for any actions dependent on which servers get built. Add USE=xorg
+ to build the Xorg X server, which will be on by default.
+
+ 17 Apr 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ xorg-server-1.0.2-r3.ebuild:
+ Drop the mesa version check since it shouldn't be required.
+
+ 17 Apr 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-1.0.99.901.ebuild:
+ AIGLX defaults on, don't need to enable it.
+
+*xorg-server-1.0.99.901 (14 Apr 2006)
+
+ 14 Apr 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ xorg-server-1.0.2-r3.ebuild, -xorg-server-1.0.99.2.ebuild,
+ +xorg-server-1.0.99.901.ebuild:
+ Bump xorg-server for 7.1RC1. Change Mesa dependencies on all servers to
+ account for the changed paths in Mesa 6.5-r2.
+
+*xorg-server-1.0.99.2 (12 Apr 2006)
+
+ 12 Apr 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ +xorg-server-1.0.99.2.ebuild:
+ Add a xorg-server snapshot from upstream. This snapshot compiles against Mesa
+ 6.5 and has AIGLX enabled.
+
+ 31 Mar 2006; Diego Pettenò <flameeyes@gentoo.org>
+ xorg-server-1.0.2-r3.ebuild:
+ Add ~x86-fbsd keyword.
+
+ 31 Mar 2006; Donnie Berkholz <dberkholz@gentoo.org>; ChangeLog:
+ Only need that ChangeLog message once.
+
+*xorg-server-1.0.2-r3 (31 Mar 2006)
+
+ 31 Mar 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ +files/xorg-server-1.0.2-64bit-fix-for-glx.patch,
+ -xorg-server-1.0.2-r2.ebuild, +xorg-server-1.0.2-r3.ebuild:
+ Really fix 64-bit direct rendering. glcontextmodes.[ch] doesn't include
+ glheader.h, so it also needs to include dix-config.h.
+
+*xorg-server-1.0.2-r2 (28 Mar 2006)
+
+ 28 Mar 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ +files/xorg-server-1.0.2-64bit-fix-have-dix-config.patch,
+ +files/xorg-server-1.0.2-64bit-fix-indirect-vertex-array.patch,
+ -xorg-server-1.0.2-r1.ebuild, +xorg-server-1.0.2-r2.ebuild:
+ Re-add 64-bit direct rendering patches that got lost in the 1.0.2 bump.
+
+ 24 Mar 2006; Donnie Berkholz <dberkholz@gentoo.org>; +files/xprint.init,
+ xorg-server-1.0.2-r1.ebuild:
+ (#127425) Install xprint init scripts and directories, patch by Ed Catmur.
+
+ 24 Mar 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-1.0.2-r1.ebuild:
+ Re-add font-adobe-75dpi to RDEPEND, caught by Jonathan Adamczewski.
+
+ 24 Mar 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-1.0.2-r1.ebuild:
+ Add deps on compositeproto 0.3 and fixesproto 4.0, otherwise build may break
+ with overlay window patch.
+
+*xorg-server-1.0.2-r1 (24 Mar 2006)
+
+ 24 Mar 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ -xorg-server-1.0.2.ebuild, +xorg-server-1.0.2-r1.ebuild:
+ (#127333) Fix crashing of pretty much all gtk+-2 apps. We had the
+ client-side updates to composite and fixes extensions, but we didn't let the
+ server know about them, which resulted in lots of BadRequests.
+
+ 23 Mar 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-1.0.2.ebuild:
+ Depends on media-fonts/font-adobe-75dpi for xorgcfg.
+
+ 23 Mar 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ +files/1.0.2-fix-xorgconfig-rgbpath-and-mouse.patch,
+ +files/1.0.2-try-to-fix-xorgcfg.patch, xorg-server-1.0.2.ebuild:
+ (#117299) Fix xorgconfig, which was producing an invalid RgbPath setting.
+ (#117071) Attempt to fix xorgcfg. I couldn't test without /etc/X11/xorg.conf
+ because it was producing invalid modes on my monitor, but it worked when
+ xorg.conf was present.
+
+*xorg-server-1.0.2 (21 Mar 2006)
+
+ 21 Mar 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ -files/xorg-server-1.0.1-64bit-fix-have-dix-config.patch,
+ -files/xorg-server-1.0.1-64bit-fix-indirect-vertex-array.patch,
+ -files/xorg-server-1.0.1-Sbus.patch,
+ -files/xorg-server-1.0.1-amd64-fix-for-glx.patch,
+ -files/xorg-server-1.0.1-backtrace.patch,
+ +files/xorg-server-1.0.2-Sbus.patch,
+ +files/xorg-server-1.0.2-sparc64-cfbrrop-fix.patch,
+ -xorg-server-1.0.1-r4.ebuild, +xorg-server-1.0.2.ebuild:
+ (#125803) Fix local root vulnerability present in 6.8.99.x and newer. This
+ does NOT affect 6.8.2.
+
+*xorg-server-1.0.1-r4 (19 Feb 2006)
+
+ 19 Feb 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ +files/xorg-server-1.0.1-64bit-fix-have-dix-config.patch,
+ +files/xorg-server-1.0.1-64bit-fix-indirect-vertex-array.patch,
+ -xorg-server-1.0.1-r3.ebuild, +xorg-server-1.0.1-r4.ebuild:
+ Really fix GLX on 64-bit systems.
+
+ 14 Feb 2006; Markus Rothe <corsair@gentoo.org>
+ xorg-server-1.0.1-r3.ebuild:
+ Added ~ppc64
+
+*xorg-server-1.0.1-r3 (13 Feb 2006)
+
+ 13 Feb 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ +files/xorg-server-1.0.1-amd64-fix-for-glx.patch,
+ -xorg-server-1.0.1-r2.ebuild, +xorg-server-1.0.1-r3.ebuild:
+ (#122140) Add patch to fix OpenGL on amd64, thanks to Igor V. Kovalenko
+ <garrison@mail.ru>. Also update to Mesa 6.4.2 tarball so people only need to
+ download one version of it.
+
+ 06 Feb 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-1.0.1-r2.ebuild:
+ Add an OR dependency with xkbdata for new x11-misc/xkeyboard-config, and
+ prefer it over xkbdata.
+
+ 03 Feb 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-1.0.1-r2.ebuild:
+ (#121394) Filter -fweb, because it causes window corruption.
+
+ 31 Jan 2006; Rene Nussbaumer <killerfox@gentoo.org>
+ xorg-server-1.0.1-r2.ebuild:
+ Unstable on hppa.
+
+*xorg-server-1.0.1-r2 (26 Jan 2006)
+
+ 26 Jan 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ +files/xorg-server-1.0.1-backtrace.patch, -xorg-server-1.0.1.ebuild,
+ -xorg-server-1.0.1-r1.ebuild, +xorg-server-1.0.1-r2.ebuild:
+ Fix the automatic backtraces at the bottom of /var/log/Xorg.*.log on segfaults.
+
+ 19 Jan 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ xorg-server-1.0.1.ebuild, xorg-server-1.0.1-r1.ebuild:
+ Update the license.
+
+ 04 Jan 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-1.0.1-r1.ebuild:
+ No need to specify configure options that are the default.
+
+ 04 Jan 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-1.0.1-r1.ebuild:
+ No need to manually create Xorg -> X symlink anymore.
+
+*xorg-server-1.0.1-r1 (03 Jan 2006)
+
+ 03 Jan 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ +xorg-server-1.0.1-r1.ebuild:
+ Fix the libglx* relocation routine to look in the right place so that xorg-x11
+ will play nice with eselect. Bug #117100.
+
+ 26 Dec 2005; Stefaan De Roeck <stefaan@gentoo.org>
+ xorg-server-1.0.1.ebuild:
+ Marked ~alpha
+
+*xorg-server-1.0.1 (23 Dec 2005)
+
+ 23 Dec 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ +files/xorg-server-1.0.1-Sbus.patch, -xorg-server-0.99.4-r2.ebuild,
+ -xorg-server-1.0.0.ebuild, +xorg-server-1.0.1.ebuild:
+ Bump for 7.0. (#111361) Add patch to fix sparc build.
+
+*xorg-server-1.0.0 (17 Dec 2005)
+
+ 17 Dec 2005; Joshua Baergen <joshuabaergen@gentoo.org>
+ +xorg-server-1.0.0.ebuild:
+ Bump for 7.0RC4.
+
+ 09 Dec 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ -files/fix-xkb-compile-path-2.patch:
+ Unused file.
+
+ 09 Dec 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ -xorg-server-0.99.2-r2.ebuild, -xorg-server-0.99.3.ebuild,
+ -xorg-server-0.99.3-r1.ebuild, -xorg-server-0.99.4.ebuild,
+ -xorg-server-0.99.4-r1.ebuild:
+ Pull old versions.
+
+*xorg-server-0.99.4-r2 (06 Dec 2005)
+
+ 06 Dec 2005; Joshua Baergen <joshuabaergen@gentoo.org>
+ +xorg-server-0.99.4-r2.ebuild:
+ Build against Mesa 6.4.1 instead of Mesa 6.4. Caught by dagb.
+
+*xorg-server-0.99.4-r1 (05 Dec 2005)
+
+ 05 Dec 2005; Joshua Baergen <joshuabaergen@gentoo.org>
+ +xorg-server-0.99.4-r1.ebuild:
+ It would appear that libglx (silently) fails to build if libdrm is not >=
+ version 2. Rev-bump so that anyone who has merged this already gets a forced
+ re-merge and thus gets a working glx extension.
+
+*xorg-server-0.99.4 (04 Dec 2005)
+
+ 04 Dec 2005; Joshua Baergen <joshuabaergen@gentoo.org>
+ +xorg-server-0.99.4.ebuild:
+ Bump for 7.0RC3.
+
+ 14 Nov 2005; Joshua Baergen <joshuabaergen@gentoo.org>
+ +files/fix-xkb-compile-path-2.patch, -files/fix-xkb-compile-path.patch,
+ xorg-server-0.99.3-r1.ebuild:
+ Remove CVS tags from patch as they don't do anything but break installs.
+ Fixes bug #112476.
+
+*xorg-server-0.99.3-r1 (14 Nov 2005)
+
+ 14 Nov 2005; Joshua Baergen <joshuabaergen@gentoo.org>
+ +files/fix-xkb-compile-path.patch, +xorg-server-0.99.3-r1.ebuild:
+ Fix xkb issue spotted by dberkholz.
+
+*xorg-server-0.99.3 (11 Nov 2005)
+
+ 11 Nov 2005; Joshua Baergen <joshuabaergen@gentoo.org>
+ +xorg-server-0.99.3.ebuild:
+ Bump for 7.0RC2.
+
+*xorg-server-0.99.2-r2 (09 Nov 2005)
+
+ 09 Nov 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ -xorg-server-0.99.2-r1.ebuild, +xorg-server-0.99.2-r2.ebuild:
+ Build against mesa 6.4 instead of 6.3.2.
+
+ 31 Oct 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ -xorg-server-0.99.1_p20051013-r1.ebuild, -xorg-server-0.99.2.ebuild:
+ Pull old versions.
+
+ 29 Oct 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-0.99.2-r1.ebuild:
+ Note that X->Xorg symlink will be taken care of for any new snapshots, so we
+ can remove the line from the ebuild.
+
+ 20 Oct 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-0.99.2-r1.ebuild:
+ Use --enable-install-setuid instead of manually changing permissions.
+
+*xorg-server-0.99.2-r1 (20 Oct 2005)
+
+ 20 Oct 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ +xorg-server-0.99.2-r1.ebuild:
+ (#109926) No need to specify xkb path anymore, it's wrong now as well.
+
+*xorg-server-0.99.2 (20 Oct 2005)
+
+ 20 Oct 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ +xorg-server-0.99.2.ebuild:
+ Bump for 7.0 RC1.
+
+ 19 Oct 2005; Stephen P. Becker <geoman@gentoo.org>
+ xorg-server-0.99.1_p20051013-r1.ebuild:
+ added ~mips keyword
+
+ 17 Oct 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-0.99.1_p20051013-r1.ebuild:
+ (#109354) In some mystical way all the dependency changes got reverted in
+ the new revision.
+
+ 16 Oct 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ -files/0.99.1-r10-check-for-glproto.patch,
+ -files/0.99.1-r10_CAN-2005-2495.patch, -files/fix-transparencies.patch,
+ -xorg-server-0.99.1-r10.ebuild, -xorg-server-0.99.1_p20051013.ebuild:
+ Pull old ebuilds.
+
+*xorg-server-0.99.1_p20051013-r1 (16 Oct 2005)
+
+ 16 Oct 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ +xorg-server-0.99.1_p20051013-r1.ebuild:
+ (#109467) Set a non-broken default font path so things like Xvfb actually work.
+
+ 15 Oct 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-0.99.1_p20051013.ebuild:
+ Add x11-libs/libXtst for dmx.
+
+ 15 Oct 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-0.99.1_p20051013.ebuild:
+ (#109354) Add lots of deps -- libXaw, libXpm, libXxf86misc, libXxf86vm. Add
+ notes on which parts depend on them.
+
+ 14 Oct 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-0.99.1_p20051013.ebuild:
+ Also wrap dmxproto dep in minimal USE.
+
+ 14 Oct 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-0.99.1_p20051013.ebuild:
+ (#109124) Add dep on libdmx, within check for USE=minimal. Also move libXres
+ dep within there, because it's for dmx.
+
+ 14 Oct 2005; Joshua Baergen <joshuabaergen@gentoo.org>
+ xorg-server-0.99.1_p20051013.ebuild:
+ Add missing deps (x11-libs/libXres and x11-libs/libxkbui).
+
+ 14 Oct 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ -files/0.99.1-r9_CAN-2005-2495.patch,
+ -files/0.99.1-r9-check-for-glproto.patch, -xorg-server-0.99.1-r9.ebuild:
+ Drop old revision.
+
+*xorg-server-0.99.1_p20051013 (14 Oct 2005)
+
+ 14 Oct 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ +xorg-server-0.99.1_p20051013.ebuild:
+ Update to today's CVS. Enable xprint USE flag. Stop filtering
+ -fomit-frame-pointer, because it works now. Add dep on
+ >=x11-proto/glproto-1.4.1_pre20051013 to fix build breakage.
+
+ 04 Oct 2005; Joshua Baergen <joshuabaergen@gentoo.org>
+ +files/0.99.1-r10-check-for-glproto.patch,
+ +files/0.99.1-r10_CAN-2005-2495.patch:
+ Oops, forgot the version-dependent patches.
+
+*xorg-server-0.99.1-r10 (04 Oct 2005)
+
+ 04 Oct 2005; Joshua Baergen <joshuabaergen@gentoo.org>
+ +files/fix-transparencies.patch, +xorg-server-0.99.1-r10.ebuild:
+ Added fix for OO/wine transparencies from bug #96053. Thanks to bartron for
+ both patches.
+
+ 27 Sep 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-0.99.1-r9.ebuild:
+ As of 20050927, xprint will require mkfontdir/mkfontscale for XpConfig.
+
+ 13 Sep 2005; Joshua Baergen <joshuabaergen@gentoo.org>
+ -files/0.99.1-r6-check-for-glproto.patch,
+ -files/0.99.1-r8-check-for-glproto.patch, -files/fix-xnest.patch,
+ -files/make-fbcompose-endian-safe.patch, -xorg-server-0.99.1-r7.ebuild,
+ -xorg-server-0.99.1-r8.ebuild:
+ Remove old versions and patches.
+
+*xorg-server-0.99.1-r9 (13 Sep 2005)
+
+ 13 Sep 2005; Joshua Baergen <joshuabaergen@gentoo.org>
+ +files/0.99.1-r9_CAN-2005-2495.patch,
+ +files/0.99.1-r9-check-for-glproto.patch, +xorg-server-0.99.1-r9.ebuild:
+ Bump to include security fix from bug #105688.
+
+ 12 Sep 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-0.99.1-r8.ebuild:
+ Add some deps so we get a server that actually runs after emerging it. In
+ specific: media-fonts/font-misc-misc media-fonts/font-cursor-misc
+ x11-misc/xbitmaps x11-misc/xkbdata x11-apps/iceauth x11-apps/rgb
+ x11-apps/xauth x11-apps/xinit.
+
+ 09 Sep 2005; Donnie Berkholz <dberkholz@gentoo.org>; +metadata.xml:
+ Add metadata.
+
+*xorg-server-0.99.1-r8 (08 Sep 2005)
+
+ 08 Sep 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ +files/0.99.1-r8-check-for-glproto.patch, +xorg-server-0.99.1-r8.ebuild:
+ Update to CVS HEAD as of 20050907. Update glproto patch to apply cleanly.
+
+ 06 Sep 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-0.99.1-r7.ebuild:
+ Make --enable-xcsecurity always on, remove nvidia USE.
+
+ 03 Sep 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ xorg-server-0.99.1-r7.ebuild:
+ Changed opengl-update envocation to use eselect instead.
+
+ 03 Sep 2005; Doug Goldstein <cardoe@gentoo.org>
+ +xorg-server-0.99.1-r7.ebuild, -xorg-server-0.99.1-r6.ebuild:
+ Added support for the XCSecurity option, which is what's needed to make
+ binary Nvidia drivers work
+
+ 02 Sep 2005; Joshua Baergen <joshuabaergen@gentoo.org>
+ -files/0.99.1-r5-check-for-glproto.patch,
+ +files/0.99.1-r6-check-for-glproto.patch:
+ Apparently this patch has a package revision-based name.
+
+ 02 Sep 2005; Joshua Baergen <joshuabaergen@gentoo.org>
+ +files/make-fbcompose-endian-safe.patch, -xorg-server-0.99.1-r5.ebuild,
+ +xorg-server-0.99.1-r6.ebuild:
+ Makes certain draw code endian-safe. Should fix things for big-endian
+ arches. Thanks to Stanislaw Skowronek and geoman in bug #104318.
+
+*xorg-server-0.99.1-r6 (02 Sep 2005)
+
+ 02 Sep 2005; Joshua Baergen <joshuabaergen@gentoo.org>
+ +files/make-fbcompose-endian-safe.patch, -xorg-server-0.99.1-r5.ebuild,
+ +xorg-server-0.99.1-r6.ebuild:
+ Added fix to make colour calculations endian safe. Thanks to Stanislaw
+ Skowronek for the patch and geoman for the heads-up. Fixes bug #104318.
+
+ 30 Aug 2005; Herbie Hopkins <herbs@gentoo.org>
+ xorg-server-0.99.1-r5.ebuild:
+ s/lib/$(get_libdir)
+
+ 23 Aug 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ -files/check-for-glproto.patch, -files/fix-xf86misc-typo.patch,
+ -files/xorg-server-0.99.1-x86_64-1.patch, -xorg-server-0.99.1-r4.ebuild:
+ Pull old version.
+
+ 23 Aug 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ +files/0.99.1-r5-check-for-glproto.patch, xorg-server-0.99.1-r5.ebuild:
+ (#fd.o 3990) Add 0.99.1-r5-check-for-glproto.patch. Pass
+ --with-xkb-path=/usr/lib/X11/xkb in attempt to get VT switching closer to
+ working. Update CVS patch to 20050822-1, which makes xprint almost work.
+
+*xorg-server-0.99.1-r5 (22 Aug 2005)
+
+ 22 Aug 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ +files/fix-xnest.patch, +xorg-server-0.99.1-r5.ebuild:
+ Update to CVS as of 20050822. This should make amd64 and sparc work. Update
+ included mesa to 6.3.2. Stop forcing glx on, it's on by default. Add
+ --disable-static so we don't build .a files for server modules. Add
+ fix-xnest.patch to fix breakage in the Xnest linking, caused by the
+ configure.ac reworking a couple of days ago.
+
+ 21 Aug 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-0.99.1-r4.ebuild:
+ xprint build is broken; force it off.
+
+ 21 Aug 2005; Luca Barbato <lu_zero@gentoo.org>
+ xorg-server-0.99.1-r4.ebuild:
+ Marked ~ppc
+
+ 21 Aug 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ -files/xorg-composite.patch, -files/xorg-server-fbmmx-local.patch,
+ -xorg-server-0.99.1.ebuild, -xorg-server-0.99.1-r1.ebuild,
+ -xorg-server-0.99.1-r2.ebuild, -xorg-server-0.99.1-r3.ebuild:
+ Drop old versions.
+
+*xorg-server-0.99.1-r4 (21 Aug 2005)
+
+ 21 Aug 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ +xorg-server-0.99.1-r4.ebuild:
+ Update to today's CVS. This adds a USE flag for xprint. Also, get rid of the
+ glx USE flag, because everybody should get it.
+
+ 20 Aug 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-0.99.1.ebuild, xorg-server-0.99.1-r1.ebuild,
+ xorg-server-0.99.1-r2.ebuild, xorg-server-0.99.1-r3.ebuild:
+ panoramixproto moved to xineramaproto.
+
+ 17 Aug 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ +files/xorg-server-fbmmx-local.patch, xorg-server-0.99.1-r3.ebuild:
+ (fd.o #4073) Fix compilation failures at fbmmx.c. Patch from Diego Pettenò
+ <flameeyes@gentoo.org>.
+
+ 16 Aug 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-0.99.1-r3.ebuild:
+ Wrap opengl things in `if use glx..`
+
+ 15 Aug 2005; Herbie Hopkins <herbs@gentoo.org>
+ xorg-server-0.99.1-r3.ebuild:
+ Marked ~amd64.
+
+ 14 Aug 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ +files/xorg-server-0.99.1-x86_64-1.patch, xorg-server-0.99.1-r3.ebuild:
+ Add xorg-server-0.99.1-x86_64-1.patch to fix configure.ac on amd64.
+
+ 14 Aug 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-0.99.1-r3.ebuild:
+ Wrap pkg_postrm() module dir removal in ! has_version.
+
+ 12 Aug 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-0.99.1-r3.ebuild:
+ No longer necessary to force --enable-composite; it's on by default.
+
+ 12 Aug 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-0.99.1-r3.ebuild:
+ Update opengl-update dependency to 2.2.3 for proper handling of
+ /usr/libdir/modules/extensions/.
+
+ 12 Aug 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-0.99.1-r3.ebuild:
+ Remove xinerama USE flag; building without it causes major issues.
+
+ 12 Aug 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-0.99.1-r3.ebuild:
+ Add pkg_postrm() to get rid of /usr/lib/xorg/modules. This should make
+ things work better for people crazy enough to downgrade to monolithic.
+
+*xorg-server-0.99.1-r3 (12 Aug 2005)
+
+ 12 Aug 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ +xorg-server-0.99.1-r3.ebuild:
+ Set /usr/bin/Xorg suid so it starts.
+
+ 12 Aug 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-0.99.1-r2.ebuild:
+ Fix the patch that mysteriously broke.
+
+ 12 Aug 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ +files/check-for-glproto.patch, +files/fix-xf86misc-typo.patch,
+ +xorg-server-0.99.1-r2.ebuild:
+ Re-add, this time with a huge patch on the mirror.
+
+ 12 Aug 2005; Diego Pettenò <flameeyes@gentoo.org>
+ -files/check-for-glproto.patch, -files/fix-xf86misc-typo.patch,
+ -files/xorg-server-0.99.1-update-to-CVS-HEAD-20050811.patch,
+ -xorg-server-0.99.1-r2.ebuild:
+ Removed 0.99.1-r2 version (3.3MB patch is not good).
+
+*xorg-server-0.99.1-r2 (12 Aug 2005)
+
+ 12 Aug 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ +files/check-for-glproto.patch, +files/fix-xf86misc-typo.patch,
+ +files/xorg-server-0.99.1-update-to-CVS-HEAD-20050811.patch,
+ +xorg-server-0.99.1-r2.ebuild:
+ Add xorg-server-0.99.1-update-to-CVS-HEAD-20050811.patch to fix big-endian
+ breakage, composite, some other stuff. Split out non-composite things from
+ xorg-composite.patch to check-for-glproto.patch and fix-xf86misc-typo.patch.
+
+ 11 Aug 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-0.99.1-r1.ebuild:
+ Make an X->Xorg symlink in here until upstream can make one.
+
+ 11 Aug 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-0.99.1-r1.ebuild:
+ Add more deps: inputproto, bigreqsproto, xcmiscproto. All reported by aaronf0.
+
+ 10 Aug 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-0.99.1-r1.ebuild:
+ Move confopts into pkg_setup(), and therefore also CONFIGURE_OPTIONS.
+
+*xorg-server-0.99.1-r1 (10 Aug 2005)
+
+ 10 Aug 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ +xorg-server-0.99.1-r1.ebuild:
+ Rev bump to make sure people get working GL setup.
+
+ 10 Aug 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-0.99.1.ebuild:
+ Add GL handling, /usr/lib/opengl, opengl-update, etc.
+
+ 10 Aug 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-0.99.1.ebuild:
+ Add dep on x11-proto/kbproto, again from aaronf0.
+
+ 10 Aug 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-0.99.1.ebuild:
+ Add dep on fontsproto, reported by aaronf0 on irc.
+
+ 09 Aug 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-0.99.1.ebuild:
+ (#101883) Add trapproto and panoramixproto as deps.
+
+ 08 Aug 2005; Ferris McCormick <fmccor@gentoo.org>
+ xorg-server-0.99.1.ebuild:
+ Add ~sparc keyword (prepare for X Modular testing).
+
+ 08 Aug 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ xorg-server-0.99.1.ebuild:
+ (#101749) Add dependencies on videoproto, scrnsaverproto and evieext.
+ Reported by Georgi Georgiev <chutz@gg3.net>.
+
+*xorg-server-0.99.1 (08 Aug 2005)
+
+ 08 Aug 2005; Donnie Berkholz <dberkholz@gentoo.org>;
+ +files/xorg-composite.patch, +xorg-server-0.99.1.ebuild:
+ Initial commit for modular X.
+
diff --git a/x11-base/xorg-server/Manifest b/x11-base/xorg-server/Manifest
new file mode 100644
index 0000000..0881330
--- /dev/null
+++ b/x11-base/xorg-server/Manifest
@@ -0,0 +1,124 @@
+AUX 01-no-move-damage.patch 1149 RMD160 f40d73e020376e1b9603dfa5ceb2fd0b48b45e31 SHA1 b8adef394d05a8769627d71b8da302f7fc3622d5 SHA256 9396f282e3d62927e86c4aa38b0d6245b83ca8e2ea48624f22c3c6d35751d997
+MD5 0faff1bfae0c6378fae5d2875fb3972c files/01-no-move-damage.patch 1149
+RMD160 f40d73e020376e1b9603dfa5ceb2fd0b48b45e31 files/01-no-move-damage.patch 1149
+SHA256 9396f282e3d62927e86c4aa38b0d6245b83ca8e2ea48624f22c3c6d35751d997 files/01-no-move-damage.patch 1149
+AUX 02-dont-backfill-bg-none.patch 581 RMD160 b38e5b7c945434e6b60748a5f853d7eb773f3427 SHA1 862c2435249d475dd7fdd229449a89b8e2f2207b SHA256 fe5e71b9b5cb7ea4b484e76015bf364e7e1e307c1d35ed3497dc30c9b75dc7ea
+MD5 016e4e9f4bf2296ac756b476ff2c0495 files/02-dont-backfill-bg-none.patch 581
+RMD160 b38e5b7c945434e6b60748a5f853d7eb773f3427 files/02-dont-backfill-bg-none.patch 581
+SHA256 fe5e71b9b5cb7ea4b484e76015bf364e7e1e307c1d35ed3497dc30c9b75dc7ea files/02-dont-backfill-bg-none.patch 581
+AUX 03-tfp-damage.patch 5982 RMD160 7b044a9d151bdd573c80b93b7249888184fad782 SHA1 30c64426cb9db4e1fbabbd8bb8af92b3f7ed682d SHA256 dcc6fe0f6d4031b345e8f3a5a0f5bfbbf43db9ce972fb4ca7b58961fb178da59
+MD5 5994755d0cda4a71d78529f34bf798c7 files/03-tfp-damage.patch 5982
+RMD160 7b044a9d151bdd573c80b93b7249888184fad782 files/03-tfp-damage.patch 5982
+SHA256 dcc6fe0f6d4031b345e8f3a5a0f5bfbbf43db9ce972fb4ca7b58961fb178da59 files/03-tfp-damage.patch 5982
+AUX 04-mesa-copy-sub-buffer.patch 11609 RMD160 d525afd68510bed628742c28d29eec7c47e0592b SHA1 c9a654962fa930b3cced371ba9737f140c46612e SHA256 daeef79d8bd3ae91f2906f7fa62f15892307bfb5f1650ef832bd490a2d6606f5
+MD5 406413344cfe615626dc73f02c1baf5c files/04-mesa-copy-sub-buffer.patch 11609
+RMD160 d525afd68510bed628742c28d29eec7c47e0592b files/04-mesa-copy-sub-buffer.patch 11609
+SHA256 daeef79d8bd3ae91f2906f7fa62f15892307bfb5f1650ef832bd490a2d6606f5 files/04-mesa-copy-sub-buffer.patch 11609
+AUX 05-offscreen-pixmaps.patch 1548 RMD160 e0f87c88379861340524847a57bf72119256a610 SHA1 c57a9aafec35b8158098751028a76a2979379625 SHA256 73be09f2f3756021bd6261fc05733eb39084c2190e7ca107bfa01c7d447a34a6
+MD5 8cae706ff61477f510f9f14b3d64fea9 files/05-offscreen-pixmaps.patch 1548
+RMD160 e0f87c88379861340524847a57bf72119256a610 files/05-offscreen-pixmaps.patch 1548
+SHA256 73be09f2f3756021bd6261fc05733eb39084c2190e7ca107bfa01c7d447a34a6 files/05-offscreen-pixmaps.patch 1548
+AUX 06-aiglx-happy-vt-switch.patch 6043 RMD160 fce467afaa3988b511b9796af164f36172bf6b7b SHA1 ad8eaa9c48699501145a15cc22b98e88a2c4a0f2 SHA256 112f1cccc0f3e1af1d76109e845c0e89462b6e95c2fd1cc80ca9370806a617dc
+MD5 e9248d96ffd078829f56f3d8075a5304 files/06-aiglx-happy-vt-switch.patch 6043
+RMD160 fce467afaa3988b511b9796af164f36172bf6b7b files/06-aiglx-happy-vt-switch.patch 6043
+SHA256 112f1cccc0f3e1af1d76109e845c0e89462b6e95c2fd1cc80ca9370806a617dc files/06-aiglx-happy-vt-switch.patch 6043
+AUX 1.1.1-dbe-render.diff 5323 RMD160 cbddae4efaa558f3c4ea0b256bd14cc005251493 SHA1 67cfe51fdf314db3cf712cb180bdc7635788ffa3 SHA256 0c0e0c6c8e7f1928d595c90cccfa2dacdcdf52656271b2fea52f202597e5d7ab
+MD5 cffab2cec60a2af892e2853840cf2659 files/1.1.1-dbe-render.diff 5323
+RMD160 cbddae4efaa558f3c4ea0b256bd14cc005251493 files/1.1.1-dbe-render.diff 5323
+SHA256 0c0e0c6c8e7f1928d595c90cccfa2dacdcdf52656271b2fea52f202597e5d7ab files/1.1.1-dbe-render.diff 5323
+AUX 1.1.1-fix-xrandr-zoom-keys.patch 6332 RMD160 cec1b86e0a6ea88e1e65543046fd1b91ab112b04 SHA1 ebaea3bdff2564d898fe0f1bcacdafcbcfe4b9f6 SHA256 b7bb87d2170f2dd369a8b3a496dae0e93792419ccc7c78449e9affc8f07650ac
+MD5 919801a6a806a9cf93777ee8bb4367bc files/1.1.1-fix-xrandr-zoom-keys.patch 6332
+RMD160 cec1b86e0a6ea88e1e65543046fd1b91ab112b04 files/1.1.1-fix-xrandr-zoom-keys.patch 6332
+SHA256 b7bb87d2170f2dd369a8b3a496dae0e93792419ccc7c78449e9affc8f07650ac files/1.1.1-fix-xrandr-zoom-keys.patch 6332
+AUX 1.1.1-fix_acpi_tokenize.patch 737 RMD160 23e67ce9e8122c163b9baa78ee517abd382e46a9 SHA1 4c0a41a8dc060442fdfbc35f05e58134bd5c2eb0 SHA256 f3ed429b3b5c36f0efa06c11ddbd1dfbf929f031ec6365c5f47a75f7a182367b
+MD5 8753388aa11cec9eab4123a0803aaf66 files/1.1.1-fix_acpi_tokenize.patch 737
+RMD160 23e67ce9e8122c163b9baa78ee517abd382e46a9 files/1.1.1-fix_acpi_tokenize.patch 737
+SHA256 f3ed429b3b5c36f0efa06c11ddbd1dfbf929f031ec6365c5f47a75f7a182367b files/1.1.1-fix_acpi_tokenize.patch 737
+AUX 1.1.1-fix_big_endian_glx.patch 655 RMD160 aa6377a33c015af994053add2c5571a13bd0658a SHA1 9133c745ebe3b1dd39518b245c4836c9a53f40d6 SHA256 2b9f53f31fe9f4e36db01fcbf74745fddfa70a28e41614da608c53af81993dbf
+MD5 87c7bd720ae0573bf5ed8d5879bd781b files/1.1.1-fix_big_endian_glx.patch 655
+RMD160 aa6377a33c015af994053add2c5571a13bd0658a files/1.1.1-fix_big_endian_glx.patch 655
+SHA256 2b9f53f31fe9f4e36db01fcbf74745fddfa70a28e41614da608c53af81993dbf files/1.1.1-fix_big_endian_glx.patch 655
+AUX 1.1.1-fixdualhead.patch 625 RMD160 2b91d2feb1605c7fb7731e888f391e07ac6d6c67 SHA1 364b7d6ec0bb55547d81ff3ccbd84b41f5b537dd SHA256 e16f498897e470dbefb6ac38f73393b091b9bdd2f306f0441502eaaaa0d3bd61
+MD5 1b43b231253a92ff4c82565b94cb7158 files/1.1.1-fixdualhead.patch 625
+RMD160 2b91d2feb1605c7fb7731e888f391e07ac6d6c67 files/1.1.1-fixdualhead.patch 625
+SHA256 e16f498897e470dbefb6ac38f73393b091b9bdd2f306f0441502eaaaa0d3bd61 files/1.1.1-fixdualhead.patch 625
+AUX 1.1.1-sparc-includes.patch 1216 RMD160 fcfe14696821581f316413564c6a3f787dae3937 SHA1 55270574dbbc95cac7d8102a7a855e5c8800439f SHA256 1b80656cf450f0df3d25cda3e57909ff71834ad489d6033f9d16e2d6d76e34d4
+MD5 0600d155724d1a1c64ee02bfffca20ff files/1.1.1-sparc-includes.patch 1216
+RMD160 fcfe14696821581f316413564c6a3f787dae3937 files/1.1.1-sparc-includes.patch 1216
+SHA256 1b80656cf450f0df3d25cda3e57909ff71834ad489d6033f9d16e2d6d76e34d4 files/1.1.1-sparc-includes.patch 1216
+AUX 1.1.1-sparc64-ati-lockups.patch 652 RMD160 7d642aa1c0153a4c48b8d2338b1afafdbc130852 SHA1 31f3b422d4dc621a7638cf4f9b388ce6a5cccec4 SHA256 0db8886c157b253449057865c938b63aa8a4f11d746e5df4ed2a12b75d718c51
+MD5 b20d4cd92f74e0722b9cf2e5f0704655 files/1.1.1-sparc64-ati-lockups.patch 652
+RMD160 7d642aa1c0153a4c48b8d2338b1afafdbc130852 files/1.1.1-sparc64-ati-lockups.patch 652
+SHA256 0db8886c157b253449057865c938b63aa8a4f11d746e5df4ed2a12b75d718c51 files/1.1.1-sparc64-ati-lockups.patch 652
+AUX 1.2.0-client-leak.patch 363 RMD160 788a7468df4305319ee3a05137ce0b90e76b982a SHA1 67ee249858947cea7fcd9a08db3ff3e81cd0036e SHA256 5969bf63e88ab4030c6913237379b76fb55e9e1f249a058eb17487a4b7103b87
+MD5 c46eeebdde41ceb57f1dca6ef4b1a8b7 files/1.2.0-client-leak.patch 363
+RMD160 788a7468df4305319ee3a05137ce0b90e76b982a files/1.2.0-client-leak.patch 363
+SHA256 5969bf63e88ab4030c6913237379b76fb55e9e1f249a058eb17487a4b7103b87 files/1.2.0-client-leak.patch 363
+AUX 1.2.0-server-damage-version.patch 1322 RMD160 25ba5ce01bc338d3a906ec959a0f1ad3303c5dd2 SHA1 129565a0151d42b85c43f273da507396111bdc9b SHA256 28a049c39e7995f7768eed34993f12252da416093e2f919c1ae84cb2dfee9f09
+MD5 789e294aaa7f8a03551f639dc022c568 files/1.2.0-server-damage-version.patch 1322
+RMD160 25ba5ce01bc338d3a906ec959a0f1ad3303c5dd2 files/1.2.0-server-damage-version.patch 1322
+SHA256 28a049c39e7995f7768eed34993f12252da416093e2f919c1ae84cb2dfee9f09 files/1.2.0-server-damage-version.patch 1322
+AUX 1.2.0-server-randr-version.patch 444 RMD160 05a4c38c141bf5dddd1f94eb61dba62b79f17658 SHA1 5faef7578c55439433b10731c87d82536db7232b SHA256 226560c2d5c0c76987e2e315c2eef805e96ee9189aa3394148968fa13392f17e
+MD5 e14a71605039b6cded7ce9541ded2f1e files/1.2.0-server-randr-version.patch 444
+RMD160 05a4c38c141bf5dddd1f94eb61dba62b79f17658 files/1.2.0-server-randr-version.patch 444
+SHA256 226560c2d5c0c76987e2e315c2eef805e96ee9189aa3394148968fa13392f17e files/1.2.0-server-randr-version.patch 444
+AUX 1.2.99.0-fix-sysconfdir-references.patch 421 RMD160 4af58784b1af8c02ebe395530da3e0a3f619c9a9 SHA1 3c836428f18aa6e42a8ab243c59c9693af57100e SHA256 216905a6ac45ae01cbec53c5a8a5ebd53e9c8f647e91d57d926f9109a73cef24
+MD5 cceefbe34d34bd2d776d95d63851ec51 files/1.2.99.0-fix-sysconfdir-references.patch 421
+RMD160 4af58784b1af8c02ebe395530da3e0a3f619c9a9 files/1.2.99.0-fix-sysconfdir-references.patch 421
+SHA256 216905a6ac45ae01cbec53c5a8a5ebd53e9c8f647e91d57d926f9109a73cef24 files/1.2.99.0-fix-sysconfdir-references.patch 421
+AUX xorg-conf-example.patch 1924 RMD160 04325d6624ad01ee69702b069be3665b5e96b647 SHA1 2d7b8328c695dc179e4f6e1d0e4609bb449159ee SHA256 ceb0dd0ccc6b02a026b599f1c838fc0a0c3f789f58407e85ee783ddaf9989350
+MD5 f2c08e04fd4d36bf1e9e5fd25102c243 files/xorg-conf-example.patch 1924
+RMD160 04325d6624ad01ee69702b069be3665b5e96b647 files/xorg-conf-example.patch 1924
+SHA256 ceb0dd0ccc6b02a026b599f1c838fc0a0c3f789f58407e85ee783ddaf9989350 files/xorg-conf-example.patch 1924
+AUX xorg-server-1.1.1-install-libxf86config-headers.patch 422 RMD160 297df8f5478195a8e0c0589436c9dad457c91539 SHA1 435f5d3c410a7e17b31c27c44a1f36145db626ea SHA256 85de5a76afb5a6c6ab0ac0d0f7d7decad99035cbbc04362e69a1627f04d86269
+MD5 f17556037156af0294c22e094172d1f6 files/xorg-server-1.1.1-install-libxf86config-headers.patch 422
+RMD160 297df8f5478195a8e0c0589436c9dad457c91539 files/xorg-server-1.1.1-install-libxf86config-headers.patch 422
+SHA256 85de5a76afb5a6c6ab0ac0d0f7d7decad99035cbbc04362e69a1627f04d86269 files/xorg-server-1.1.1-install-libxf86config-headers.patch 422
+AUX xorg-server-1.2.0-loongson.patch 1931 RMD160 cc84def06fdfa7099342411baa037529166f56c0 SHA1 3596b2abaab7f58e78722988f9e4f1ca97bd7cd3 SHA256 e77dad77f9c36053ddc52f2aa6af7fc6c65b24a9d8456ac346382ca2a18b6d90
+MD5 eb8a89c732436e561035fc866162eedb files/xorg-server-1.2.0-loongson.patch 1931
+RMD160 cc84def06fdfa7099342411baa037529166f56c0 files/xorg-server-1.2.0-loongson.patch 1931
+SHA256 e77dad77f9c36053ddc52f2aa6af7fc6c65b24a9d8456ac346382ca2a18b6d90 files/xorg-server-1.2.0-loongson.patch 1931
+AUX xorg-server-1.3.0.0-loongson.patch 1931 RMD160 cc84def06fdfa7099342411baa037529166f56c0 SHA1 3596b2abaab7f58e78722988f9e4f1ca97bd7cd3 SHA256 e77dad77f9c36053ddc52f2aa6af7fc6c65b24a9d8456ac346382ca2a18b6d90
+MD5 eb8a89c732436e561035fc866162eedb files/xorg-server-1.3.0.0-loongson.patch 1931
+RMD160 cc84def06fdfa7099342411baa037529166f56c0 files/xorg-server-1.3.0.0-loongson.patch 1931
+SHA256 e77dad77f9c36053ddc52f2aa6af7fc6c65b24a9d8456ac346382ca2a18b6d90 files/xorg-server-1.3.0.0-loongson.patch 1931
+AUX xorg-x11-server-1.1.1-mesa-6.5.1.patch 1684 RMD160 8a6142a781d0ee626b4569f2324c6884234c7856 SHA1 287d09b104826c0ac852d401457c230fa96f7296 SHA256 8428c09c0bd11e7db9fbf0807754312cfb7c2659b2c203f8ad9741fc35c356c0
+MD5 f6f3f09436867be5b09782fed580b6f3 files/xorg-x11-server-1.1.1-mesa-6.5.1.patch 1684
+RMD160 8a6142a781d0ee626b4569f2324c6884234c7856 files/xorg-x11-server-1.1.1-mesa-6.5.1.patch 1684
+SHA256 8428c09c0bd11e7db9fbf0807754312cfb7c2659b2c203f8ad9741fc35c356c0 files/xorg-x11-server-1.1.1-mesa-6.5.1.patch 1684
+AUX xprint.init 598 RMD160 85de6a023912d8ac40cba4f32b5559655e0e281e SHA1 1590a29e11f813bb1353b4cc815708e97bfbb96b SHA256 9474c19d125d9534b93c038cba7c4bdc7c45bf3ed51279ff2e130fe031a15c13
+MD5 9bf4e36931c99f405aa6766ff5614e51 files/xprint.init 598
+RMD160 85de6a023912d8ac40cba4f32b5559655e0e281e files/xprint.init 598
+SHA256 9474c19d125d9534b93c038cba7c4bdc7c45bf3ed51279ff2e130fe031a15c13 files/xprint.init 598
+DIST MesaLib-6.5.2.tar.bz2 3295166 RMD160 9a92d69110c066ae6734bcaafb78f222ac2df6d3 SHA1 ba860bb6ee57c02202342dfd5927464a068ea18f SHA256 137f50a30461d51eb9af5aac737bc788d536354cf47b26129b97bde6e41fb85f
+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
+EBUILD xorg-server-1.2.0-r1.ebuild 16442 RMD160 ac4717116f699a89feb7070b57123cfc7bc2dc07 SHA1 8996dccbdbfe6c1a54122bf8ffc3a22886646c5b SHA256 becbdd3224bc6acc1cd1bf7933000d2a1f99042cb59ab074419b8057ee7f4e13
+MD5 e70fcb819cdf4877377b74d7a1b7b98b xorg-server-1.2.0-r1.ebuild 16442
+RMD160 ac4717116f699a89feb7070b57123cfc7bc2dc07 xorg-server-1.2.0-r1.ebuild 16442
+SHA256 becbdd3224bc6acc1cd1bf7933000d2a1f99042cb59ab074419b8057ee7f4e13 xorg-server-1.2.0-r1.ebuild 16442
+EBUILD xorg-server-1.2.0-r2.ebuild 16479 RMD160 3274a5a2bcbb4c650642a692a6b0eb08707c2515 SHA1 2b0b7ce45032e44f6e4bdb699d9ced9839173ca0 SHA256 74009fe505532f613e8c3d609af91c1837822e9b4c1ac114a2c9ca9cf94ff536
+MD5 4de5a292b9d36612ea3716164210a96a xorg-server-1.2.0-r2.ebuild 16479
+RMD160 3274a5a2bcbb4c650642a692a6b0eb08707c2515 xorg-server-1.2.0-r2.ebuild 16479
+SHA256 74009fe505532f613e8c3d609af91c1837822e9b4c1ac114a2c9ca9cf94ff536 xorg-server-1.2.0-r2.ebuild 16479
+EBUILD xorg-server-1.3.0.0.ebuild 16332 RMD160 96f7260adacacec77d9eff7a1459c87a9b9d5ae8 SHA1 c10e6ea1dcab9e7a2f0231c4372aa065d1ec9fea SHA256 582a8abbfcd8962944b5a751a0ce385add7d33354e905b1ef52e6b55d747c7dc
+MD5 23808a3e81201ffca520193a0140fbb2 xorg-server-1.3.0.0.ebuild 16332
+RMD160 96f7260adacacec77d9eff7a1459c87a9b9d5ae8 xorg-server-1.3.0.0.ebuild 16332
+SHA256 582a8abbfcd8962944b5a751a0ce385add7d33354e905b1ef52e6b55d747c7dc xorg-server-1.3.0.0.ebuild 16332
+MISC ChangeLog 46548 RMD160 fd66dad1dc5b8181e294f00b2d867e273f375fed SHA1 c1c264afd91f7d13bd8c4cd5d8d03cc9327e1e14 SHA256 ae56c39d52f287b2e1e0c5be5bffe5207fbc60e0cbf906a15f50f7f849bd69d7
+MD5 e31a590302270c7d0072ec4c5e2b8cde ChangeLog 46548
+RMD160 fd66dad1dc5b8181e294f00b2d867e273f375fed ChangeLog 46548
+SHA256 ae56c39d52f287b2e1e0c5be5bffe5207fbc60e0cbf906a15f50f7f849bd69d7 ChangeLog 46548
+MISC metadata.xml 156 RMD160 c1274bdccf57603d580de0075ba07a35b7509560 SHA1 6f78f604e3d079d39189b40aaaa1ddb06182ad91 SHA256 5101ab0d4cc8c7125eea733c44e86962769bd77acaf53b69223b9cadcdd29055
+MD5 a37bab73e2f24b213932c30997d3d360 metadata.xml 156
+RMD160 c1274bdccf57603d580de0075ba07a35b7509560 metadata.xml 156
+SHA256 5101ab0d4cc8c7125eea733c44e86962769bd77acaf53b69223b9cadcdd29055 metadata.xml 156
+MD5 92aecc687a1f65f481da05e14bab56c3 files/digest-xorg-server-1.2.0-r1 506
+RMD160 2816986513ee6479e25d5c213f00ceb38b905ccb files/digest-xorg-server-1.2.0-r1 506
+SHA256 4cd7c7723d603c993f0cc320ebf294ff367030d2d5c0bb1a9d4d02221235ef07 files/digest-xorg-server-1.2.0-r1 506
+MD5 92aecc687a1f65f481da05e14bab56c3 files/digest-xorg-server-1.2.0-r2 506
+RMD160 2816986513ee6479e25d5c213f00ceb38b905ccb files/digest-xorg-server-1.2.0-r2 506
+SHA256 4cd7c7723d603c993f0cc320ebf294ff367030d2d5c0bb1a9d4d02221235ef07 files/digest-xorg-server-1.2.0-r2 506
+MD5 f5088a38f31782713a97f0cf19bfbbd1 files/digest-xorg-server-1.3.0.0 512
+RMD160 70dafff2a513850c2631793f877a2ffe294758c6 files/digest-xorg-server-1.3.0.0 512
+SHA256 ae8d04a5e64f7aedd5cc910085a1db5ce1638012a3bfedeab142ce99b0d3968a files/digest-xorg-server-1.3.0.0 512
diff --git a/x11-base/xorg-server/files/01-no-move-damage.patch b/x11-base/xorg-server/files/01-no-move-damage.patch
new file mode 100644
index 0000000..4278043
--- /dev/null
+++ b/x11-base/xorg-server/files/01-no-move-damage.patch
@@ -0,0 +1,33 @@
+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
new file mode 100644
index 0000000..9a5cacd
--- /dev/null
+++ b/x11-base/xorg-server/files/02-dont-backfill-bg-none.patch
@@ -0,0 +1,21 @@
+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
new file mode 100644
index 0000000..942d44e
--- /dev/null
+++ b/x11-base/xorg-server/files/03-tfp-damage.patch
@@ -0,0 +1,211 @@
+--- ./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
new file mode 100644
index 0000000..2b62dad
--- /dev/null
+++ b/x11-base/xorg-server/files/04-mesa-copy-sub-buffer.patch
@@ -0,0 +1,361 @@
+--- ./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
new file mode 100644
index 0000000..3841b04
--- /dev/null
+++ b/x11-base/xorg-server/files/05-offscreen-pixmaps.patch
@@ -0,0 +1,55 @@
+--- ./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
new file mode 100644
index 0000000..314f1f0
--- /dev/null
+++ b/x11-base/xorg-server/files/06-aiglx-happy-vt-switch.patch
@@ -0,0 +1,241 @@
+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
new file mode 100644
index 0000000..d2f27e5
--- /dev/null
+++ b/x11-base/xorg-server/files/1.1.1-dbe-render.diff
@@ -0,0 +1,183 @@
+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
new file mode 100644
index 0000000..fc9bd8d
--- /dev/null
+++ b/x11-base/xorg-server/files/1.1.1-fix-xrandr-zoom-keys.patch
@@ -0,0 +1,186 @@
+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
new file mode 100644
index 0000000..407617f
--- /dev/null
+++ b/x11-base/xorg-server/files/1.1.1-fix_acpi_tokenize.patch
@@ -0,0 +1,21 @@
+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
new file mode 100644
index 0000000..5bc902b
--- /dev/null
+++ b/x11-base/xorg-server/files/1.1.1-fix_big_endian_glx.patch
@@ -0,0 +1,24 @@
+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
new file mode 100644
index 0000000..7b0513d
--- /dev/null
+++ b/x11-base/xorg-server/files/1.1.1-fixdualhead.patch
@@ -0,0 +1,28 @@
+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
new file mode 100644
index 0000000..3408d20
--- /dev/null
+++ b/x11-base/xorg-server/files/1.1.1-sparc-includes.patch
@@ -0,0 +1,28 @@
+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
new file mode 100644
index 0000000..d44d969
--- /dev/null
+++ b/x11-base/xorg-server/files/1.1.1-sparc64-ati-lockups.patch
@@ -0,0 +1,18 @@
+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
new file mode 100644
index 0000000..02e52db
--- /dev/null
+++ b/x11-base/xorg-server/files/1.2.0-client-leak.patch
@@ -0,0 +1,11 @@
+--- 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
new file mode 100644
index 0000000..e03ae0e
--- /dev/null
+++ b/x11-base/xorg-server/files/1.2.0-server-damage-version.patch
@@ -0,0 +1,38 @@
+--- 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
new file mode 100644
index 0000000..05432b6
--- /dev/null
+++ b/x11-base/xorg-server/files/1.2.0-server-randr-version.patch
@@ -0,0 +1,13 @@
+--- 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
new file mode 100644
index 0000000..7d5b8ab
--- /dev/null
+++ b/x11-base/xorg-server/files/1.2.99.0-fix-sysconfdir-references.patch
@@ -0,0 +1,11 @@
+--- 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/digest-xorg-server-1.2.0-r1 b/x11-base/xorg-server/files/digest-xorg-server-1.2.0-r1
new file mode 100644
index 0000000..a78fe15
--- /dev/null
+++ b/x11-base/xorg-server/files/digest-xorg-server-1.2.0-r1
@@ -0,0 +1,6 @@
+MD5 e4d894181f1859651658b3704633e10d MesaLib-6.5.2.tar.bz2 3295166
+RMD160 9a92d69110c066ae6734bcaafb78f222ac2df6d3 MesaLib-6.5.2.tar.bz2 3295166
+SHA256 137f50a30461d51eb9af5aac737bc788d536354cf47b26129b97bde6e41fb85f MesaLib-6.5.2.tar.bz2 3295166
+MD5 ea291c89e68832d570d9d5e007218bd6 xorg-server-1.2.0.tar.bz2 6014596
+RMD160 0bbc5ccb5cbbe7627b4f09f17848b188e8be2a50 xorg-server-1.2.0.tar.bz2 6014596
+SHA256 e3e56b35ee13098f4ee79948beb20bfc9a06d1a7a35fb906405ff1531b92bb85 xorg-server-1.2.0.tar.bz2 6014596
diff --git a/x11-base/xorg-server/files/digest-xorg-server-1.2.0-r2 b/x11-base/xorg-server/files/digest-xorg-server-1.2.0-r2
new file mode 100644
index 0000000..a78fe15
--- /dev/null
+++ b/x11-base/xorg-server/files/digest-xorg-server-1.2.0-r2
@@ -0,0 +1,6 @@
+MD5 e4d894181f1859651658b3704633e10d MesaLib-6.5.2.tar.bz2 3295166
+RMD160 9a92d69110c066ae6734bcaafb78f222ac2df6d3 MesaLib-6.5.2.tar.bz2 3295166
+SHA256 137f50a30461d51eb9af5aac737bc788d536354cf47b26129b97bde6e41fb85f MesaLib-6.5.2.tar.bz2 3295166
+MD5 ea291c89e68832d570d9d5e007218bd6 xorg-server-1.2.0.tar.bz2 6014596
+RMD160 0bbc5ccb5cbbe7627b4f09f17848b188e8be2a50 xorg-server-1.2.0.tar.bz2 6014596
+SHA256 e3e56b35ee13098f4ee79948beb20bfc9a06d1a7a35fb906405ff1531b92bb85 xorg-server-1.2.0.tar.bz2 6014596
diff --git a/x11-base/xorg-server/files/digest-xorg-server-1.3.0.0 b/x11-base/xorg-server/files/digest-xorg-server-1.3.0.0
new file mode 100644
index 0000000..e7c3cc0
--- /dev/null
+++ b/x11-base/xorg-server/files/digest-xorg-server-1.3.0.0
@@ -0,0 +1,6 @@
+MD5 e4d894181f1859651658b3704633e10d MesaLib-6.5.2.tar.bz2 3295166
+RMD160 9a92d69110c066ae6734bcaafb78f222ac2df6d3 MesaLib-6.5.2.tar.bz2 3295166
+SHA256 137f50a30461d51eb9af5aac737bc788d536354cf47b26129b97bde6e41fb85f MesaLib-6.5.2.tar.bz2 3295166
+MD5 a51a7d482e3c689394755bb17bda8526 xorg-server-1.3.0.0.tar.bz2 5968263
+RMD160 1a4fecd73aed0d5adabe84066c24ce69dc2c2dc1 xorg-server-1.3.0.0.tar.bz2 5968263
+SHA256 93c656f142f37607c15372dd24c5de9eab82cd79c5d60449174a928d345c2975 xorg-server-1.3.0.0.tar.bz2 5968263
diff --git a/x11-base/xorg-server/files/xorg-conf-example.patch b/x11-base/xorg-server/files/xorg-conf-example.patch
new file mode 100644
index 0000000..8ec7476
--- /dev/null
+++ b/x11-base/xorg-server/files/xorg-conf-example.patch
@@ -0,0 +1,56 @@
+--- 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
new file mode 100644
index 0000000..07b5219
--- /dev/null
+++ b/x11-base/xorg-server/files/xorg-server-1.1.1-install-libxf86config-headers.patch
@@ -0,0 +1,19 @@
+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
new file mode 100644
index 0000000..04ee66e
--- /dev/null
+++ b/x11-base/xorg-server/files/xorg-server-1.2.0-loongson.patch
@@ -0,0 +1,51 @@
+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.3.0.0-loongson.patch b/x11-base/xorg-server/files/xorg-server-1.3.0.0-loongson.patch
new file mode 100644
index 0000000..04ee66e
--- /dev/null
+++ b/x11-base/xorg-server/files/xorg-server-1.3.0.0-loongson.patch
@@ -0,0 +1,51 @@
+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-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
new file mode 100644
index 0000000..48f4380
--- /dev/null
+++ b/x11-base/xorg-server/files/xorg-x11-server-1.1.1-mesa-6.5.1.patch
@@ -0,0 +1,54 @@
+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/xprint.init b/x11-base/xorg-server/files/xprint.init
new file mode 100644
index 0000000..e5fed1b
--- /dev/null
+++ b/x11-base/xorg-server/files/xprint.init
@@ -0,0 +1,30 @@
+#!/sbin/runscript
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-base/xorg-server/files/xprint.init,v 1.1 2006/03/24 18:45:00 spyderous Exp $
+
+opts="${opts} get_xpserverlist lsprinters"
+
+depend() {
+ use cupsd
+}
+
+start() {
+ ebegin "Starting xprint"
+ /usr/lib/misc/xprint start > /dev/null
+ eend $?
+}
+
+get_xpserverlist() {
+ /usr/lib/misc/xprint get_xpserverlist
+}
+
+lsprinters() {
+ /usr/lib/misc/xprint lsprinters
+}
+
+stop() {
+ ebegin "Stopping xprint"
+ /usr/lib/misc/xprint stop > /dev/null
+ eend $?
+}
diff --git a/x11-base/xorg-server/metadata.xml b/x11-base/xorg-server/metadata.xml
new file mode 100644
index 0000000..01c4c00
--- /dev/null
+++ b/x11-base/xorg-server/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>x11</herd>
+</pkgmetadata>
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
new file mode 100644
index 0000000..b51b108
--- /dev/null
+++ b/x11-base/xorg-server/xorg-server-1.2.0-r1.ebuild
@@ -0,0 +1,530 @@
+# 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
new file mode 100644
index 0000000..a55b6bb
--- /dev/null
+++ b/x11-base/xorg-server/xorg-server-1.2.0-r2.ebuild
@@ -0,0 +1,531 @@
+# 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.ebuild
new file mode 100644
index 0000000..48e94c2
--- /dev/null
+++ b/x11-base/xorg-server/xorg-server-1.3.0.0.ebuild
@@ -0,0 +1,527 @@
+# 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.3.0.0.ebuild,v 1.7 2007/05/05 16:07:09 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_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
+ x11-libs/libXfixes )
+ !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-1.2.1
+ x11-proto/renderproto
+ >=x11-proto/fixesproto-4
+ >=x11-proto/damageproto-1.1
+ 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_nvidia? ( || (
+ >=x11-drivers/nvidia-drivers-1.0.8774
+ >=x11-drivers/nvidia-legacy-drivers-1.0.7184
+ )
+ )
+ !x11-drivers/ati-drivers
+ )"
+LICENSE="${LICENSE} MIT"
+
+PATCHES="${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-drivers/xf86-video-ati/ChangeLog b/x11-drivers/xf86-video-ati/ChangeLog
new file mode 100644
index 0000000..d5d361a
--- /dev/null
+++ b/x11-drivers/xf86-video-ati/ChangeLog
@@ -0,0 +1,226 @@
+# ChangeLog for x11-drivers/xf86-video-ati
+# Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/x11-drivers/xf86-video-ati/ChangeLog,v 1.46 2007/01/24 06:56:51 dberkholz Exp $
+
+ 24 Jan 2007; Donnie Berkholz <dberkholz@gentoo.org>;
+ -xf86-video-ati-6.5.8.0.ebuild:
+ Stop supporting Xorg 7.0.
+
+ 21 Oct 2006; Emanuele Giaquinta <exg@gentoo.org>
+ xf86-video-ati-6.6.3.ebuild:
+ Stable on ppc.
+
+ 18 Oct 2006; Aron Griffis <agriffis@gentoo.org>
+ xf86-video-ati-6.6.3.ebuild:
+ Mark 6.6.3 stable on alpha. #144549
+
+ 17 Oct 2006; Gustavo Zacarias <gustavoz@gentoo.org>
+ xf86-video-ati-6.6.3.ebuild:
+ Stable on sparc
+
+ 16 Oct 2006; Markus Rothe <corsair@gentoo.org>
+ xf86-video-ati-6.6.3.ebuild:
+ Stable on ppc64
+
+ 14 Oct 2006; Aron Griffis <agriffis@gentoo.org>
+ xf86-video-ati-6.6.3.ebuild:
+ Mark 6.6.3 stable on ia64. #144549
+
+ 13 Oct 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ xf86-video-ati-6.6.3.ebuild:
+ AMD64/x86 stable for bug #144549 (X7.1).
+
+ 11 Oct 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ xf86-video-ati-6.5.8.0.ebuild, xf86-video-ati-6.6.1.ebuild,
+ xf86-video-ati-6.6.3.ebuild:
+ Update description to be less generic.
+
+ 05 Oct 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ xf86-video-ati-6.5.8.0.ebuild, xf86-video-ati-6.6.1.ebuild,
+ xf86-video-ati-6.6.3.ebuild:
+ Add dependency on x11-proto/glproto when dri is enabled. (Diego Pettenò, bug
+ #150035)
+
+ 04 Oct 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ -files/xf86-video-ati-6.5.7.3-hangup-ppc.patch,
+ -xf86-video-ati-6.5.7.3.ebuild, -xf86-video-ati-6.6.0.ebuild,
+ -xf86-video-ati-6.6.2.ebuild:
+ Clean up.
+
+*xf86-video-ati-6.6.3 (04 Oct 2006)
+
+ 04 Oct 2006; Donnie Berkholz <dberkholz@gentoo.org>;
+ +xf86-video-ati-6.6.3.ebuild:
+ Bump, fixes rn50/M6/M7 and some other misc stuff.
+
+ 05 Sep 2006; Donnie Berkholz <dberkholz@gentoo.org>; +files/ati.xinf,
+ +files/r128.xinf, +files/radeon.xinf:
+ Add hwdata files for system-config-display.
+
+*xf86-video-ati-6.6.2 (25 Aug 2006)
+
+ 25 Aug 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ +xf86-video-ati-6.6.2.ebuild:
+ Version bump. Lots of fixes, especially for r300 stability.
+
+ 10 Jul 2006; Aron Griffis <agriffis@gentoo.org>
+ xf86-video-ati-6.6.1.ebuild:
+ Mark 6.6.1 stable on ia64
+
+ 01 Jul 2006; Donnie Berkholz <spyderous@gentoo.org>;
+ xf86-video-ati-6.6.1.ebuild:
+ stable on ppc sparc alpha arm sh
+
+ 30 Jun 2006; Markus Rothe <corsair@gentoo.org>
+ xf86-video-ati-6.6.1.ebuild:
+ Stable on ppc64
+
+ 30 Jun 2006; Chris Gianelloni <wolf31o2@gentoo.org>
+ xf86-video-ati-6.5.8.0.ebuild:
+ Stable on amd64.
+
+ 30 Jun 2006; Markus Rothe <corsair@gentoo.org>
+ xf86-video-ati-6.5.8.0.ebuild:
+ Stable on ppc64
+
+ 30 Jun 2006; Donnie Berkholz <spyderous@gentoo.org>;
+ xf86-video-ati-6.5.8.0.ebuild:
+ x86 stable.
+
+*xf86-video-ati-6.6.1 (16 Jun 2006)
+
+ 16 Jun 2006; Donnie Berkholz <spyderous@gentoo.org>;
+ +xf86-video-ati-6.6.1.ebuild:
+ Bump. Fixes PCIE suspend/resume, lots of EXA fixes, interrupt handling, and
+ more.
+
+ 05 Jun 2006; Diego Pettenò <flameeyes@gentoo.org>
+ xf86-video-ati-6.6.0.ebuild:
+ Add ~x86-fbsd keyword.
+
+*xf86-video-ati-6.5.8.0 (29 Apr 2006)
+
+ 29 Apr 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ +xf86-video-ati-6.5.8.0.ebuild:
+ Version bump. Includes the memory map fixes that are in the 6.6 series.
+
+ 16 Apr 2006; Diego Pettenò <flameeyes@gentoo.org>
+ xf86-video-ati-6.5.7.3.ebuild:
+ Add ~x86-fbsd keyword.
+
+*xf86-video-ati-6.6.0 (14 Apr 2006)
+
+ 14 Apr 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ +xf86-video-ati-6.6.0.ebuild:
+ Bump for 7.1 RC1.
+
+ 21 Mar 2006; Luca Barbato <lu_zero@gentoo.org>
+ +files/xf86-video-ati-6.5.7.3-hangup-ppc.patch,
+ xf86-video-ati-6.5.7.3.ebuild:
+ Fixed hangup on new Apple PowerBook (rev 5,6 and 5,8), thanks to the people
+ in #mklinux for pointing it (and the ubuntu's mantainer)
+
+ 23 Feb 2006; Stefaan De Roeck <stefaan@gentoo.org>
+ xf86-video-ati-6.5.7.3.ebuild:
+ Marked ~alpha (bug #122726)
+
+ 14 Feb 2006; Markus Rothe <corsair@gentoo.org>
+ xf86-video-ati-6.5.7.3.ebuild:
+ Added ~ppc64
+
+ 26 Dec 2005; Joshua Baergen <joshuabaergen@gentoo.org>
+ -xf86-video-ati-6.5.7.1.ebuild, -xf86-video-ati-6.5.7.2.ebuild:
+ Pull old versions.
+
+*xf86-video-ati-6.5.7.3 (23 Dec 2005)
+
+ 23 Dec 2005; Joshua Baergen <joshuabaergen@gentoo.org>
+ +xf86-video-ati-6.5.7.3.ebuild:
+ Bump for 7.0.
+
+*xf86-video-ati-6.5.7.2 (18 Dec 2005)
+
+ 18 Dec 2005; Joshua Baergen <joshuabaergen@gentoo.org>
+ +xf86-video-ati-6.5.7.2.ebuild:
+ Bump for 7.0RC4.
+
+ 09 Dec 2005; Joshua Baergen <joshuabaergen@gentoo.org>
+ files/digest-xf86-video-ati-6.5.7.1, Manifest:
+ Update digest to match patch introduced by x-modular.eclass changes.
+
+ 09 Dec 2005; Donnie Berkholz <spyderous@gentoo.org>;
+ -xf86-video-ati-6.5.6.1.ebuild, -xf86-video-ati-6.5.7.ebuild:
+ Pull old versions.
+
+ 04 Dec 2005; Joshua Baergen <joshuabaergen@gentoo.org>
+ xf86-video-ati-6.5.7.1.ebuild:
+ Repoman fix.
+
+*xf86-video-ati-6.5.7.1 (04 Dec 2005)
+
+ 04 Dec 2005; Joshua Baergen <joshuabaergen@gentoo.org>
+ +xf86-video-ati-6.5.7.1.ebuild:
+ Bump for 7.0RC3.
+
+*xf86-video-ati-6.5.7 (11 Nov 2005)
+
+ 11 Nov 2005; Joshua Baergen <joshuabaergen@gentoo.org>
+ +xf86-video-ati-6.5.7.ebuild:
+ Bump for 7.0RC2.
+
+ 31 Oct 2005; Donnie Berkholz <spyderous@gentoo.org>;
+ -xf86-video-ati-6.5.6_p20050903.ebuild:
+ Pull old versions.
+
+*xf86-video-ati-6.5.6.1 (20 Oct 2005)
+
+ 20 Oct 2005; Joshua Baergen <joshuabaergen@gentoo.org>
+ +xf86-video-ati-6.5.6.1.ebuild:
+ Bump for 7.0 RC1.
+
+ 14 Oct 2005; <dang@gentoo.org> xf86-video-ati-6.5.6_p20050903.ebuild:
+ Marked ~amd64
+
+ 09 Sep 2005; Donnie Berkholz <spyderous@gentoo.org>; +metadata.xml:
+ Add metadata.
+
+ 08 Sep 2005; Joshua Baergen <joshuabaergen@gentoo.org> ChangeLog:
+ Fixed changelog entry.
+
+*xf86-video-ati-6.5.6_p20050903 (08 Sep 2005)
+
+ 08 Sep 2005; Joshua Baergen <joshuabaergen@gentoo.org>
+ -xf86-video-ati-6.5.6-r2.ebuild, +xf86-video-ati-6.5.6_p20050903.ebuild:
+ Fixed package name to properly reflect snapshot taken.
+
+*xf86-video-ati-6.5.6-r2 (03 Sep 2005)
+
+ 03 Sep 2005; Joshua Baergen <joshuabaergen@gentoo.org>
+ -files/detect-dga-cpio-etc-per-platform.patch,
+ -xf86-video-ati-6.5.6.ebuild, -xf86-video-ati-6.5.6-r1.ebuild,
+ +xf86-video-ati-6.5.6-r2.ebuild:
+ New CVS snapshot of driver which includes previous patch. Old versions
+ removed.
+
+ 20 Aug 2005; Luca Barbato <lu_zero@gentoo.org>
+ xf86-video-ati-6.5.6.ebuild, xf86-video-ati-6.5.6-r1.ebuild:
+ Marked ~ppc
+
+*xf86-video-ati-6.5.6-r1 (16 Aug 2005)
+
+ 16 Aug 2005; Donnie Berkholz <spyderous@gentoo.org>;
+ +files/detect-dga-cpio-etc-per-platform.patch,
+ +xf86-video-ati-6.5.6-r1.ebuild:
+ Add detect-dga-cpio-etc-per-platform.patch, which should make things work
+ for ppc.
+
+ 08 Aug 2005; Ferris McCormick <fmccor@gentoo.org>
+ xf86-video-ati-6.5.6.ebuild:
+ Add ~sparc keyword (X modular testing).
+
+*xf86-video-ati-6.5.6 (08 Aug 2005)
+
+ 08 Aug 2005; Donnie Berkholz <spyderous@gentoo.org>;
+ +xf86-video-ati-6.5.6.ebuild:
+ Initial commit for modular X.
+
diff --git a/x11-drivers/xf86-video-ati/Manifest b/x11-drivers/xf86-video-ati/Manifest
new file mode 100644
index 0000000..8b32bf5
--- /dev/null
+++ b/x11-drivers/xf86-video-ati/Manifest
@@ -0,0 +1,33 @@
+AUX ati.xinf 2028 RMD160 0f57c7452bbf9d2d8d0a96f6f480b98e8a5c6d5f SHA1 51dc48aba9d3e2613d230837d369ebcab86b4c5c SHA256 79540e91ab1baf462ded22a5ef0f3cff0d95bef22db4ec13ea7101dbff29aa74
+MD5 2f03c4efec1e15ea956f71ea176f1653 files/ati.xinf 2028
+RMD160 0f57c7452bbf9d2d8d0a96f6f480b98e8a5c6d5f files/ati.xinf 2028
+SHA256 79540e91ab1baf462ded22a5ef0f3cff0d95bef22db4ec13ea7101dbff29aa74 files/ati.xinf 2028
+AUX r128.xinf 2491 RMD160 02f5ae030596643bdc2ce4982ee47fdbdf656f95 SHA1 cee72fd687711845f4fc435cac00b715fc19b1d3 SHA256 d8f50f12b291d526353aa5d76c95137dafbff22bf47cbb751b686252d104279b
+MD5 90347d243457b28896016a106075b4c8 files/r128.xinf 2491
+RMD160 02f5ae030596643bdc2ce4982ee47fdbdf656f95 files/r128.xinf 2491
+SHA256 d8f50f12b291d526353aa5d76c95137dafbff22bf47cbb751b686252d104279b files/r128.xinf 2491
+AUX radeon.xinf 12504 RMD160 48b32c2d4acc1edff0e814a173ecce1b6026ba7c SHA1 1f4d98536d013d3ac6999781578d381bbd94023f SHA256 f23555826bfce07dfaafba60957e347e36fdb694c71bc3ad39d172e3863e7c96
+MD5 c6d461a6bc57ca3b478e57e2981b22be files/radeon.xinf 12504
+RMD160 48b32c2d4acc1edff0e814a173ecce1b6026ba7c files/radeon.xinf 12504
+SHA256 f23555826bfce07dfaafba60957e347e36fdb694c71bc3ad39d172e3863e7c96 files/radeon.xinf 12504
+AUX xf86-video-ati-6.6.3-loongson.patch 135098 RMD160 c1c1b8c6550aba12c5f5a988feee1b67aa1ef213 SHA1 73e824c929c7b6dbd8677f2e55bf4cf95e524885 SHA256 ec8fe6bf23fa1b9dbd24578f535b49413bc67f9b1085998cce35598a0ffb79fb
+MD5 c0acdc48ddd5e186e093562f5066ff89 files/xf86-video-ati-6.6.3-loongson.patch 135098
+RMD160 c1c1b8c6550aba12c5f5a988feee1b67aa1ef213 files/xf86-video-ati-6.6.3-loongson.patch 135098
+SHA256 ec8fe6bf23fa1b9dbd24578f535b49413bc67f9b1085998cce35598a0ffb79fb files/xf86-video-ati-6.6.3-loongson.patch 135098
+DIST x11-driver-patches-1.tar.bz2 389 RMD160 0c57d4b235d83f3d7c46691c13857fd121ddec2d SHA1 6e2ac0cd255d3c4dc97d35092fe3ef64a71d7ac5 SHA256 64787d5b57d2845c0fa9297a9d924093ba191fc3551798239d9983f0bcca9b3e
+DIST xf86-video-ati-6.6.3.tar.bz2 723083 RMD160 a1c24c13ea88fa38f34e3f0540b53082ab2ae129 SHA1 b911df1f4b41ad37028c708e2c95e5a729a32ede SHA256 d08a429e1fb1620ae81839181a4dc6cd579d52fc440d44d7bba36d19be355780
+EBUILD xf86-video-ati-6.6.3.ebuild 1006 RMD160 b618894f109f7aac682534334dc97a9043158c94 SHA1 65a0803eec49f78d02c234b88140fdec7ad200e9 SHA256 392134dc74e3aa575e2af93f4003ccd9c4725ddaaa84a4a4af6ca741b1e2a48c
+MD5 572193d9a7dee5151cb3f589f063048b xf86-video-ati-6.6.3.ebuild 1006
+RMD160 b618894f109f7aac682534334dc97a9043158c94 xf86-video-ati-6.6.3.ebuild 1006
+SHA256 392134dc74e3aa575e2af93f4003ccd9c4725ddaaa84a4a4af6ca741b1e2a48c xf86-video-ati-6.6.3.ebuild 1006
+MISC ChangeLog 7054 RMD160 649c4a01d9a8ad41a0e0c623f081c56cf922bf27 SHA1 71c5d66e2f7c53a6a96f1308f240ec6dce0a9d2c SHA256 e8a95443d757f21f0e62a6075ff0881d8cd9b3a7e5aaad838ae57d99e4825708
+MD5 82d03ed4cf7a8e32549dc5acb22a56be ChangeLog 7054
+RMD160 649c4a01d9a8ad41a0e0c623f081c56cf922bf27 ChangeLog 7054
+SHA256 e8a95443d757f21f0e62a6075ff0881d8cd9b3a7e5aaad838ae57d99e4825708 ChangeLog 7054
+MISC metadata.xml 156 RMD160 c1274bdccf57603d580de0075ba07a35b7509560 SHA1 6f78f604e3d079d39189b40aaaa1ddb06182ad91 SHA256 5101ab0d4cc8c7125eea733c44e86962769bd77acaf53b69223b9cadcdd29055
+MD5 a37bab73e2f24b213932c30997d3d360 metadata.xml 156
+RMD160 c1274bdccf57603d580de0075ba07a35b7509560 metadata.xml 156
+SHA256 5101ab0d4cc8c7125eea733c44e86962769bd77acaf53b69223b9cadcdd29055 metadata.xml 156
+MD5 369c667080f0c9a3a0e65e51ca6aa3a4 files/digest-xf86-video-ati-6.6.3 521
+RMD160 894c71494ff0f9a494ed2587db6214822a7bd70d files/digest-xf86-video-ati-6.6.3 521
+SHA256 d9617e668c1b1d805d2087ada6de81ff2379dffa9b99aa29e0458343240ce9ca files/digest-xf86-video-ati-6.6.3 521
diff --git a/x11-drivers/xf86-video-ati/files/ati.xinf b/x11-drivers/xf86-video-ati/files/ati.xinf
new file mode 100644
index 0000000..b089297
--- /dev/null
+++ b/x11-drivers/xf86-video-ati/files/ati.xinf
@@ -0,0 +1,39 @@
+alias pcivideo:v00001002d00004158sv*sd*bc*sc*i* ati
+alias pcivideo:v00001002d00004354sv*sd*bc*sc*i* ati
+alias pcivideo:v00001002d00004358sv*sd*bc*sc*i* ati
+alias pcivideo:v00001002d00004554sv*sd*bc*sc*i* ati
+alias pcivideo:v00001002d00004654sv*sd*bc*sc*i* ati
+alias pcivideo:v00001002d00004742sv*sd*bc*sc*i* ati
+alias pcivideo:v00001002d00004744sv*sd*bc*sc*i* ati
+alias pcivideo:v00001002d00004747sv*sd*bc*sc*i* ati
+alias pcivideo:v00001002d00004749sv*sd*bc*sc*i* ati
+alias pcivideo:v00001002d0000474Csv*sd*bc*sc*i* ati
+alias pcivideo:v00001002d0000474Dsv*sd*bc*sc*i* ati
+alias pcivideo:v00001002d0000474Esv*sd*bc*sc*i* ati
+alias pcivideo:v00001002d0000474Fsv*sd*bc*sc*i* ati
+alias pcivideo:v00001002d00004750sv*sd*bc*sc*i* ati
+alias pcivideo:v00001002d00004751sv*sd*bc*sc*i* ati
+alias pcivideo:v00001002d00004752sv*sd*bc*sc*i* ati
+alias pcivideo:v00001002d00004753sv*sd*bc*sc*i* ati
+alias pcivideo:v00001002d00004754sv*sd*bc*sc*i* ati
+alias pcivideo:v00001002d00004755sv*sd*bc*sc*i* ati
+alias pcivideo:v00001002d00004756sv*sd*bc*sc*i* ati
+alias pcivideo:v00001002d00004757sv*sd*bc*sc*i* ati
+alias pcivideo:v00001002d00004758sv*sd*bc*sc*i* ati
+alias pcivideo:v00001002d00004759sv*sd*bc*sc*i* ati
+alias pcivideo:v00001002d0000475Asv*sd*bc*sc*i* ati
+alias pcivideo:v00001002d00004C42sv*sd*bc*sc*i* ati
+alias pcivideo:v00001002d00004C44sv*sd*bc*sc*i* ati
+alias pcivideo:v00001002d00004C47sv*sd*bc*sc*i* ati
+alias pcivideo:v00001002d00004C49sv*sd*bc*sc*i* ati
+alias pcivideo:v00001002d00004C4Dsv*sd*bc*sc*i* ati
+alias pcivideo:v00001002d00004C4Esv*sd*bc*sc*i* ati
+alias pcivideo:v00001002d00004C50sv*sd*bc*sc*i* ati
+alias pcivideo:v00001002d00004C51sv*sd*bc*sc*i* ati
+alias pcivideo:v00001002d00004C52sv*sd*bc*sc*i* ati
+alias pcivideo:v00001002d00004C53sv*sd*bc*sc*i* ati
+alias pcivideo:v00001002d00004C54sv*sd*bc*sc*i* ati
+alias pcivideo:v00001002d00005354sv*sd*bc*sc*i* ati
+alias pcivideo:v00001002d00005654sv*sd*bc*sc*i* ati
+alias pcivideo:v00001002d00005655sv*sd*bc*sc*i* ati
+alias pcivideo:v00001002d00005656sv*sd*bc*sc*i* ati
diff --git a/x11-drivers/xf86-video-ati/files/digest-xf86-video-ati-6.6.3 b/x11-drivers/xf86-video-ati/files/digest-xf86-video-ati-6.6.3
new file mode 100644
index 0000000..4c939fc
--- /dev/null
+++ b/x11-drivers/xf86-video-ati/files/digest-xf86-video-ati-6.6.3
@@ -0,0 +1,6 @@
+MD5 1b8cfd2923836ee93eda69abe50dda04 x11-driver-patches-1.tar.bz2 389
+RMD160 0c57d4b235d83f3d7c46691c13857fd121ddec2d x11-driver-patches-1.tar.bz2 389
+SHA256 64787d5b57d2845c0fa9297a9d924093ba191fc3551798239d9983f0bcca9b3e x11-driver-patches-1.tar.bz2 389
+MD5 f6d559f9d20f61567d381916b376590f xf86-video-ati-6.6.3.tar.bz2 723083
+RMD160 a1c24c13ea88fa38f34e3f0540b53082ab2ae129 xf86-video-ati-6.6.3.tar.bz2 723083
+SHA256 d08a429e1fb1620ae81839181a4dc6cd579d52fc440d44d7bba36d19be355780 xf86-video-ati-6.6.3.tar.bz2 723083
diff --git a/x11-drivers/xf86-video-ati/files/r128.xinf b/x11-drivers/xf86-video-ati/files/r128.xinf
new file mode 100644
index 0000000..7101783
--- /dev/null
+++ b/x11-drivers/xf86-video-ati/files/r128.xinf
@@ -0,0 +1,47 @@
+alias pcivideo:v00001002d00004C45sv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d00004C46sv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d00004D46sv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d00004D4Csv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d00005041sv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d00005042sv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d00005043sv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d00005044sv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d00005045sv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d00005046sv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d00005047sv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d00005048sv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d00005049sv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d0000504Asv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d0000504Bsv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d0000504Csv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d0000504Dsv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d0000504Esv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d0000504Fsv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d00005050sv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d00005051sv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d00005052sv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d00005053sv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d00005054sv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d00005055sv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d00005056sv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d00005057sv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d00005058sv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d00005245sv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d00005246sv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d00005247sv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d0000524Bsv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d0000524Csv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d00005345sv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d00005346sv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d00005347sv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d00005348sv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d0000534Bsv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d0000534Csv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d0000534Dsv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d0000534Esv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d00005446sv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d0000544Csv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d00005452sv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d00005453sv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d00005454sv*sd*bc*sc*i* r128
+alias pcivideo:v00001002d00005455sv*sd*bc*sc*i* r128
diff --git a/x11-drivers/xf86-video-ati/files/radeon.xinf b/x11-drivers/xf86-video-ati/files/radeon.xinf
new file mode 100644
index 0000000..1eaf4e1
--- /dev/null
+++ b/x11-drivers/xf86-video-ati/files/radeon.xinf
@@ -0,0 +1,197 @@
+# Secret decoder ring:
+# R100: Original radeon through 7500 (rv200 counts as R100)
+# R200: 8500 through 9250
+# R300: 9500 through X600
+# R400: X700 through X850
+# R500: X1xxx
+#
+# TODO: add mobility series info
+#
+# There are lots of "secondary" PCI IDs for that other OS; we don't list
+# them here and the driver ignores them anyway.
+
+alias pcivideo:v00001002d00003150sv*sd*bc*sc*i* radeon # M24
+alias pcivideo:v00001002d00003151sv*sd*bc*sc*i* radeon # XXX not in pci.ids
+alias pcivideo:v00001002d00003152sv*sd*bc*sc*i* radeon # M22
+alias pcivideo:v00001002d00003153sv*sd*bc*sc*i* radeon # XXX not in pci.ids
+alias pcivideo:v00001002d00003154sv*sd*bc*sc*i* radeon # M24
+alias pcivideo:v00001002d00003156sv*sd*bc*sc*i* radeon # XXX not in pci.ids
+alias pcivideo:v00001002d00003E50sv*sd*bc*sc*i* radeon # rv380
+alias pcivideo:v00001002d00003E51sv*sd*bc*sc*i* radeon # XXX not in pci.ids
+alias pcivideo:v00001002d00003E52sv*sd*bc*sc*i* radeon # XXX not in pci.ids
+alias pcivideo:v00001002d00003E53sv*sd*bc*sc*i* radeon # XXX not in pci.ids
+alias pcivideo:v00001002d00003E54sv*sd*bc*sc*i* radeon # rv380
+alias pcivideo:v00001002d00003E56sv*sd*bc*sc*i* radeon # XXX not in pci.ids
+alias pcivideo:v00001002d00004136sv*sd*bc*sc*i* radeon # IGP 320M
+alias pcivideo:v00001002d00004137sv*sd*bc*sc*i* radeon # IGP 3[345]0
+alias pcivideo:v00001002d00004144sv*sd*bc*sc*i* radeon # R300 AD
+alias pcivideo:v00001002d00004145sv*sd*bc*sc*i* radeon # R300 AE
+alias pcivideo:v00001002d00004146sv*sd*bc*sc*i* radeon # R300 AF
+alias pcivideo:v00001002d00004147sv*sd*bc*sc*i* radeon # R300 AG
+alias pcivideo:v00001002d00004148sv*sd*bc*sc*i* radeon # R350 AH
+alias pcivideo:v00001002d00004149sv*sd*bc*sc*i* radeon # R350 AI
+alias pcivideo:v00001002d0000414Asv*sd*bc*sc*i* radeon # R350 AJ
+alias pcivideo:v00001002d0000414Bsv*sd*bc*sc*i* radeon # R350 AK
+alias pcivideo:v00001002d00004150sv*sd*bc*sc*i* radeon # RV350 AP
+alias pcivideo:v00001002d00004151sv*sd*bc*sc*i* radeon # RV350 AQ
+alias pcivideo:v00001002d00004152sv*sd*bc*sc*i* radeon # RV350 AR
+alias pcivideo:v00001002d00004153sv*sd*bc*sc*i* radeon # RV350 AS
+alias pcivideo:v00001002d00004154sv*sd*bc*sc*i* radeon # RV350 AT
+alias pcivideo:v00001002d00004155sv*sd*bc*sc*i* radeon # RV350 AU
+alias pcivideo:v00001002d00004156sv*sd*bc*sc*i* radeon # RV350 AV
+alias pcivideo:v00001002d00004157sv*sd*bc*sc*i* radeon # RV350 AW
+alias pcivideo:v00001002d00004237sv*sd*bc*sc*i* radeon # 7000 IGP
+alias pcivideo:v00001002d00004242sv*sd*bc*sc*i* radeon # R200 BB
+alias pcivideo:v00001002d00004243sv*sd*bc*sc*i* radeon # R200 DC
+alias pcivideo:v00001002d00004336sv*sd*bc*sc*i* radeon # Mobility U1
+alias pcivideo:v00001002d00004337sv*sd*bc*sc*i* radeon # IGP 3[345]0M
+alias pcivideo:v00001002d00004437sv*sd*bc*sc*i* radeon # Mobility 7000 IGP
+alias pcivideo:v00001002d00004964sv*sd*bc*sc*i* radeon # RV250 Id
+alias pcivideo:v00001002d00004965sv*sd*bc*sc*i* radeon # RV250 Ie
+alias pcivideo:v00001002d00004966sv*sd*bc*sc*i* radeon # RV250 If
+alias pcivideo:v00001002d00004967sv*sd*bc*sc*i* radeon # RV250 Ig
+alias pcivideo:v00001002d00004A48sv*sd*bc*sc*i* radeon # R420 JH
+alias pcivideo:v00001002d00004A49sv*sd*bc*sc*i* radeon # R420 JI
+alias pcivideo:v00001002d00004A4Asv*sd*bc*sc*i* radeon # R420 JJ
+alias pcivideo:v00001002d00004A4Bsv*sd*bc*sc*i* radeon # R420 JK
+alias pcivideo:v00001002d00004A4Csv*sd*bc*sc*i* radeon # R420 JL
+alias pcivideo:v00001002d00004A4Dsv*sd*bc*sc*i* radeon # R420 JM
+alias pcivideo:v00001002d00004A4Esv*sd*bc*sc*i* radeon # M18 JN
+alias pcivideo:v00001002d00004A50sv*sd*bc*sc*i* radeon # R420 JP
+alias pcivideo:v00001002d00004A54sv*sd*bc*sc*i* radeon # R420 JT
+alias pcivideo:v00001002d00004B49sv*sd*bc*sc*i* radeon # R480
+alias pcivideo:v00001002d00004B4Asv*sd*bc*sc*i* radeon # XXX not in pci.ids
+alias pcivideo:v00001002d00004B4Bsv*sd*bc*sc*i* radeon # R480
+alias pcivideo:v00001002d00004B4Csv*sd*bc*sc*i* radeon # R481
+alias pcivideo:v00001002d00004C57sv*sd*bc*sc*i* radeon # M7 LW
+alias pcivideo:v00001002d00004C58sv*sd*bc*sc*i* radeon # M7 LX
+alias pcivideo:v00001002d00004C59sv*sd*bc*sc*i* radeon # M6 LY
+alias pcivideo:v00001002d00004C5Asv*sd*bc*sc*i* radeon # M6 LZ
+alias pcivideo:v00001002d00004C64sv*sd*bc*sc*i* radeon # M9 Ld
+alias pcivideo:v00001002d00004C65sv*sd*bc*sc*i* radeon # M9 Le
+alias pcivideo:v00001002d00004C66sv*sd*bc*sc*i* radeon # R250 Lf
+alias pcivideo:v00001002d00004C67sv*sd*bc*sc*i* radeon # R250 Lg
+# alias pcivideo:v00001002d00004C6Esv*sd*bc*sc*i* radeon # secondary
+alias pcivideo:v00001002d00004E44sv*sd*bc*sc*i* radeon # R300 ND
+alias pcivideo:v00001002d00004E45sv*sd*bc*sc*i* radeon # R300 NE
+alias pcivideo:v00001002d00004E46sv*sd*bc*sc*i* radeon # RV350 NF
+alias pcivideo:v00001002d00004E47sv*sd*bc*sc*i* radeon # R300 NG
+alias pcivideo:v00001002d00004E48sv*sd*bc*sc*i* radeon # R350 NH
+alias pcivideo:v00001002d00004E49sv*sd*bc*sc*i* radeon # R350 NI
+alias pcivideo:v00001002d00004E4Asv*sd*bc*sc*i* radeon # RV350 NJ
+alias pcivideo:v00001002d00004E4Bsv*sd*bc*sc*i* radeon # R350 NK
+alias pcivideo:v00001002d00004E50sv*sd*bc*sc*i* radeon # RV350 NP
+alias pcivideo:v00001002d00004E51sv*sd*bc*sc*i* radeon # M10 NQ
+alias pcivideo:v00001002d00004E52sv*sd*bc*sc*i* radeon # RV350 NR
+alias pcivideo:v00001002d00004E53sv*sd*bc*sc*i* radeon # M10 NS
+alias pcivideo:v00001002d00004E54sv*sd*bc*sc*i* radeon # M10 NT
+alias pcivideo:v00001002d00004E56sv*sd*bc*sc*i* radeon # M10 NV
+# 4F72? seems unlikely, in a secondary range.
+alias pcivideo:v00001002d00005144sv*sd*bc*sc*i* radeon # R100 QD
+alias pcivideo:v00001002d00005145sv*sd*bc*sc*i* radeon # R100 QE
+alias pcivideo:v00001002d00005146sv*sd*bc*sc*i* radeon # R100 QF
+alias pcivideo:v00001002d00005147sv*sd*bc*sc*i* radeon # R100 QG
+# old school method of doing magic names for subdevices
+# alias pcivideo:v00001002d00005148sv00001002sd0000010Abc*sc*i* radeon
+# alias pcivideo:v00001002d00005148sv00001002sd00000152bc*sc*i* radeon
+# alias pcivideo:v00001002d00005148sv00001002sd00000162bc*sc*i* radeon
+# alias pcivideo:v00001002d00005148sv00001002sd00000172bc*sc*i* radeon
+alias pcivideo:v00001002d00005148sv*sd*bc*sc*i* radeon # R200 QH
+alias pcivideo:v00001002d00005149sv*sd*bc*sc*i* radeon # R200 QI
+alias pcivideo:v00001002d0000514Asv*sd*bc*sc*i* radeon # R200 QJ
+alias pcivideo:v00001002d0000514Bsv*sd*bc*sc*i* radeon # R200 QK
+alias pcivideo:v00001002d0000514Csv*sd*bc*sc*i* radeon # R200 QL
+alias pcivideo:v00001002d0000514Dsv*sd*bc*sc*i* radeon # R200 QM
+alias pcivideo:v00001002d0000514Esv*sd*bc*sc*i* radeon # R200 QN
+alias pcivideo:v00001002d0000514Fsv*sd*bc*sc*i* radeon # R200 QO
+alias pcivideo:v00001002d00005154sv*sd*bc*sc*i* radeon # R200 QT
+alias pcivideo:v00001002d00005155sv*sd*bc*sc*i* radeon # R200 QU
+alias pcivideo:v00001002d00005157sv*sd*bc*sc*i* radeon # RV200 QW
+alias pcivideo:v00001002d00005158sv*sd*bc*sc*i* radeon # RV200 QX
+# alias pcivideo:v00001002d00005159sv00001002sd0000000Bbc*sc*i* radeon
+# alias pcivideo:v00001002d00005159sv00001002sd0000013Abc*sc*i* radeon
+alias pcivideo:v00001002d00005159sv*sd*bc*sc*i* radeon # RV200 QY
+alias pcivideo:v00001002d0000515Asv*sd*bc*sc*i* radeon # RV200 QZ
+alias pcivideo:v00001002d0000515Esv*sd*bc*sc*i* radeon # ES1000
+alias pcivideo:v00001002d0000515Fsv*sd*bc*sc*i* radeon # ES1000 (?)
+alias pcivideo:v00001002d00005168sv*sd*bc*sc*i* radeon # R200 Qh
+alias pcivideo:v00001002d00005169sv*sd*bc*sc*i* radeon # R200 Qi
+alias pcivideo:v00001002d0000516Asv*sd*bc*sc*i* radeon # R200 Qj
+alias pcivideo:v00001002d0000516Bsv*sd*bc*sc*i* radeon # R200 Qk
+alias pcivideo:v00001002d0000516Csv*sd*bc*sc*i* radeon # R200 Ql
+alias pcivideo:v00001002d00005460sv*sd*bc*sc*i* radeon # M22
+alias pcivideo:v00001002d00005461sv*sd*bc*sc*i* radeon # M24
+alias pcivideo:v00001002d00005462sv*sd*bc*sc*i* radeon # M22
+alias pcivideo:v00001002d00005463sv*sd*bc*sc*i* radeon # XXX not in pci.ids
+alias pcivideo:v00001002d00005464sv*sd*bc*sc*i* radeon # M22
+alias pcivideo:v00001002d00005465sv*sd*bc*sc*i* radeon # XXX not in pci.ids
+alias pcivideo:v00001002d00005466sv*sd*bc*sc*i* radeon # XXX not in pci.ids
+alias pcivideo:v00001002d00005467sv*sd*bc*sc*i* radeon # XXX not in pci.ids
+alias pcivideo:v00001002d00005548sv*sd*bc*sc*i* radeon # R423 UH
+alias pcivideo:v00001002d00005549sv*sd*bc*sc*i* radeon # R423 UI
+alias pcivideo:v00001002d0000554Asv*sd*bc*sc*i* radeon # R423 UJ
+alias pcivideo:v00001002d0000554Bsv*sd*bc*sc*i* radeon # R423 UK
+alias pcivideo:v00001002d0000554Csv*sd*bc*sc*i* radeon # XXX not in pci.ids
+alias pcivideo:v00001002d0000554Dsv*sd*bc*sc*i* radeon # R430 UM
+alias pcivideo:v00001002d0000554Esv*sd*bc*sc*i* radeon # XXX not in pci.ids
+alias pcivideo:v00001002d0000554Fsv*sd*bc*sc*i* radeon # R430 UO
+alias pcivideo:v00001002d00005550sv*sd*bc*sc*i* radeon # R423 UP
+alias pcivideo:v00001002d00005551sv*sd*bc*sc*i* radeon # R423 UQ
+alias pcivideo:v00001002d00005552sv*sd*bc*sc*i* radeon # R423 UR
+alias pcivideo:v00001002d00005554sv*sd*bc*sc*i* radeon # R423 UT
+alias pcivideo:v00001002d0000564Asv*sd*bc*sc*i* radeon # M26
+alias pcivideo:v00001002d0000564Bsv*sd*bc*sc*i* radeon # M26
+alias pcivideo:v00001002d0000564Fsv*sd*bc*sc*i* radeon # M26
+alias pcivideo:v00001002d00005652sv*sd*bc*sc*i* radeon # M26
+alias pcivideo:v00001002d00005653sv*sd*bc*sc*i* radeon # M26
+alias pcivideo:v00001002d00005834sv*sd*bc*sc*i* radeon # RS300M
+alias pcivideo:v00001002d00005835sv*sd*bc*sc*i* radeon # RS300M
+alias pcivideo:v00001002d00005836sv*sd*bc*sc*i* radeon # XXX not in pci.ids
+alias pcivideo:v00001002d00005837sv*sd*bc*sc*i* radeon # XXX not in pci.ids
+alias pcivideo:v00001002d00005944sv*sd*bc*sc*i* radeon # RV280
+alias pcivideo:v00001002d00005954sv*sd*bc*sc*i* radeon # RS480
+alias pcivideo:v00001002d00005955sv*sd*bc*sc*i* radeon # RS482
+alias pcivideo:v00001002d00005960sv*sd*bc*sc*i* radeon # RV280
+alias pcivideo:v00001002d00005961sv*sd*bc*sc*i* radeon # RV280
+alias pcivideo:v00001002d00005962sv*sd*bc*sc*i* radeon # RV280
+alias pcivideo:v00001002d00005964sv*sd*bc*sc*i* radeon # RV280
+alias pcivideo:v00001002d00005965sv*sd*bc*sc*i* radeon # XXX not in pci.ids
+alias pcivideo:v00001002d00005969sv*sd*bc*sc*i* radeon # ES1000
+alias pcivideo:v00001002d00005974sv*sd*bc*sc*i* radeon # RS482
+alias pcivideo:v00001002d00005975sv*sd*bc*sc*i* radeon # RS482
+alias pcivideo:v00001002d00005A41sv*sd*bc*sc*i* radeon # RS400
+alias pcivideo:v00001002d00005A42sv*sd*bc*sc*i* radeon # RS400
+alias pcivideo:v00001002d00005A61sv*sd*bc*sc*i* radeon # RC410
+alias pcivideo:v00001002d00005A62sv*sd*bc*sc*i* radeon # RC410
+alias pcivideo:v00001002d00005B60sv*sd*bc*sc*i* radeon # RV370
+alias pcivideo:v00001002d00005B61sv*sd*bc*sc*i* radeon # XXX not in pci.ids
+alias pcivideo:v00001002d00005B62sv*sd*bc*sc*i* radeon # RV380
+alias pcivideo:v00001002d00005B63sv*sd*bc*sc*i* radeon # RV370
+alias pcivideo:v00001002d00005B64sv*sd*bc*sc*i* radeon # RV370
+alias pcivideo:v00001002d00005B65sv*sd*bc*sc*i* radeon # RV370
+alias pcivideo:v00001002d00005B66sv*sd*bc*sc*i* radeon # XXX not in pci.ids
+alias pcivideo:v00001002d00005B67sv*sd*bc*sc*i* radeon # XXX not in pci.ids
+alias pcivideo:v00001002d00005B70sv*sd*bc*sc*i* radeon # RV370
+alias pcivideo:v00001002d00005B72sv*sd*bc*sc*i* radeon # RV380
+alias pcivideo:v00001002d00005C61sv*sd*bc*sc*i* radeon # M9+
+alias pcivideo:v00001002d00005C63sv*sd*bc*sc*i* radeon # M9+
+alias pcivideo:v00001002d00005D48sv*sd*bc*sc*i* radeon # M28
+alias pcivideo:v00001002d00005D49sv*sd*bc*sc*i* radeon # M28
+alias pcivideo:v00001002d00005D4Asv*sd*bc*sc*i* radeon # M28
+alias pcivideo:v00001002d00005D4Csv*sd*bc*sc*i* radeon # XXX not in pci.ids
+alias pcivideo:v00001002d00005D4Dsv*sd*bc*sc*i* radeon # R480
+alias pcivideo:v00001002d00005D4Esv*sd*bc*sc*i* radeon # XXX not in pci.ids
+alias pcivideo:v00001002d00005D4Fsv*sd*bc*sc*i* radeon # R480
+alias pcivideo:v00001002d00005D50sv*sd*bc*sc*i* radeon # XXX not in pci.ids
+alias pcivideo:v00001002d00005D52sv*sd*bc*sc*i* radeon # R480
+alias pcivideo:v00001002d00005D57sv*sd*bc*sc*i* radeon # R423
+alias pcivideo:v00001002d00005E48sv*sd*bc*sc*i* radeon # RV410
+alias pcivideo:v00001002d00005E49sv*sd*bc*sc*i* radeon # RV410
+alias pcivideo:v00001002d00005E4Asv*sd*bc*sc*i* radeon # RV410
+alias pcivideo:v00001002d00005E4Bsv*sd*bc*sc*i* radeon # RV410
+alias pcivideo:v00001002d00005E4Csv*sd*bc*sc*i* radeon # RV410
+alias pcivideo:v00001002d00005E4Dsv*sd*bc*sc*i* radeon # RV410
+alias pcivideo:v00001002d00005F57sv*sd*bc*sc*i* radeon # R423
+alias pcivideo:v00001002d00007834sv*sd*bc*sc*i* radeon # 9100 IGP
+alias pcivideo:v00001002d00007835sv*sd*bc*sc*i* radeon # 9200 IGP
+alias pcivideo:v00001002d00007C37sv*sd*bc*sc*i* radeon # RV350
diff --git a/x11-drivers/xf86-video-ati/files/xf86-video-ati-6.6.3-loongson.patch b/x11-drivers/xf86-video-ati/files/xf86-video-ati-6.6.3-loongson.patch
new file mode 100644
index 0000000..e5be904
--- /dev/null
+++ b/x11-drivers/xf86-video-ati/files/xf86-video-ati-6.6.3-loongson.patch
@@ -0,0 +1,4764 @@
+diff -urN -X /home/zhangle/exec/dontdiff xserver-xorg-video-ati-6.6.3.orig/README.tvout xserver-xorg-video-ati-6.6.3/README.tvout
+--- xserver-xorg-video-ati-6.6.3.orig/README.tvout 1970-01-01 08:00:00.000000000 +0800
++++ xserver-xorg-video-ati-6.6.3/README.tvout 2007-01-08 12:48:05.000000000 +0800
+@@ -0,0 +1,237 @@
++
++
++ *******************************************************
++ ** XFree86 driver for TV output on ATI Radeon cards **
++ *******************************************************
++
++Copyright (c) 2003-2004, by Federico Ulivi <fulivi@lycos.com>
++Released under the GNU General Public License, version 2.
++
++1. About this driver
++--------------------
++
++This driver was developped as a part of ati.2 project. Its purpose
++is to enable the TV output of ATI Radeon cards when running the
++XFree86 graphical environment.
++
++2. Status of the driver
++-----------------------
++
++The driver is in early development stage. It currently works with
++those cards having a Rage Theater chip for TV output or with cards
++having the tv module inside the Radeon chip (ERT, Embedded Rage
++Theater, is my name for the latter).
++The driver was successfully tested on these cards:
++- Radeon 7200 / European model (TV out hw: RT 100)
++- Radeon 9000 (TV out hw: ERT)
++- Radeon 9200SE (TV out hw: ERT)
++- Radeon 7000 (TV out hw: ERT)
++
++3. Making it work
++-----------------
++
++The driver is always loaded by the Radeon driver. If you need to
++disable this auto-loading mechanism, just set the "TVOutput" option
++(see below) to "NOLOAD".
++In principle the driver should coexist with video grabbing functions,
++especially on those AIW cards where TV output is done by ERT
++inside Radeon.
++
++Principle of operation of the driver is very simple. Driver enables
++tv output whenever the current screen resolution and tv standard match
++one of a set of pre-computed combinations. In all other cases tv output
++is simply kept disabled.
++The driver currently works in the so-called "clone" mode only. This means
++that the image on the TV screen is exactly the same as the one on the
++monitor.
++
++The driver is enabled by adding a "TVOutput" line in the "device"
++section of XF86Config-4 file (this file is usually located in /etc/X11
++directory). Syntax of this option is very simple:
++
++Section "Device"
++ ..
++ ..
++ Option "TVOuput" "<name of tv standard>"
++EndSection
++
++Names of recognized TV standards are:
++"NTSC"
++"NTSC-J"
++"PAL"
++"PAL-CN"
++"PAL-M"
++"PAL-N"
++"PAL-60"
++
++If "TVOutput" is not present or its value is invalid, TV output is kept disabled.
++
++In the current version of the driver these are the recognized TV standard &
++resolution combinations:
++
++PAL 800x600
++NTSC 800x600
++
++More combinations will be added in future releases.
++
++4. XV Interface
++---------------
++
++The driver has an external interface through some Xv attributes.
++You can change the value of these attributes by using the tvo_set utility
++(see below).
++
++XV_TVO_STANDARD Settable/Gettable
++ This is the tv standard in use by the driver. Its value is encoded
++ according to this table:
++
++ 0 NTSC
++ 1 PAL
++ 2 PAL-M
++ 3 PAL-60
++ 4 NTSC-J
++ 5 PAL-CN
++ 6 PAL-N
++ 7 Keep TV off
++
++XV_TVO_MODE_COMPAT Gettable
++ This attribute is set to 1 whenever TV output is enabled, i.e.
++ whenever the current resolution & tv standard combination is
++ recognized by the driver.
++
++XV_TVO_HPOS Settable/Gettable
++5].
++ This attribute defines the horizontal position of the TV image.
++ Higher values shift the image to the right, lower values to the left.
++
++XV_TVO_VPOS Settable/Gettable
++5].
++ This attribute defines the vertical position of the TV image.
++ Higher values shift the image upward, lower values downward.
++
++XV_TVO_HSIZE Settable/Gettable
++5].
++ This attribute is used to set the horizontal size of TV image.
++ Higher values enlarge TV lines, lower values reduce them.
++
++Default value for XV_TVO_HPOS, XV_TVO_VPOS & XV_TVO_HSIZE just after
++X Window start is 0.
++
++You might ask where a vertical size attribute has gone. It was not included
++because it's quite hard to implement (it requires changing many timings in
++the CRTC). For the moment I'm not planning to work on it.
++
++5. tvo_set utility
++------------------
++
++tvo_set is a command line utility that is used to change TV output
++attributes while X Window is running. It offers a somewhat more
++friendly interface to XV_TVO_* attributes.
++
++This is how to compile tvo_set:
++- cd to tvo_set directory
++- xmkmf
++- make
++- make install
++Last step should place the executable (tvo_set) in /usr/X11R6/bin.
++
++This is the invocation syntax:
++tvo_set [-display host:dpy] [<cmd> <attribute> [<value>]]
++
++tvo_set is not case sensitive for <cmd>, <attribute> & <value>
++fields.
++When no <cmd> is given, tvo_set just dumps the current state of
++TV attributes.
++
++Recognized commands:
++set <attribute> <value> Set <attribute> to <value>
++inc <attribute> Increment <attribute> by 1
++dec <attribute> Decrement <attribute> by 1
++zero <attribute> Set <attribute> to 0
++
++Recognized values for <attribute> field:
++hpos Horizontal position
++vpos Vertical position
++hsize Horizontal size
++std TV Standard
++
++When setting "std" attribute, both the numeric value and the name of the
++standard are valid, see following table.
++
++Table of TV standards:
++0 NTSC
++1 PAL
++2 PAL-M
++3 PAL-60
++4 NTSC-J
++5 PAL-CN
++6 PAL-N
++7 OFF
++
++Examples:
++"tvo_set set std ntsc"
++ Set standard to NTSC
++
++"tvo_set set std off"
++ Turn off TV output
++
++"tvo_set set hsize 5"
++ Set hsize to 5
++
++"tvo_set inc hpos"
++ Shift image a bit to the right (increment hpos by 1)
++
++"tvo_set zero vpos"
++ Restore default value for vpos
++
++
++6. WARNING
++----------
++
++It's important that you are aware of the fact that, when TV output is active,
++the monitor is driven at the same vertical refresh frequency as that of the
++TV output. This means 50 or 60 Hz according to the standard you're using.
++NO CHECK IS DONE IN THE DRIVER ABOUT THE CAPABILITY OF THE MONITOR TO
++SUSTAIN THESE FREQUENCIES. You should look up in the monitor manual
++and check that 50/60 Hz is within the limits. IT IS POTENTIALLY HARMFUL
++TO THE MONITOR TO BE DRIVEN AT A FREQUENCY OUTSIDE ITS OPERATING RANGE.
++
++Note, however, that most monitors should accept a 60 Hz vertical frequency,
++since this is used in standard VGA modes. You should really check for 50 Hz
++compatibility if you are going to use any related standard (PAL mostly).
++ATI manuals recommend checking for 50 Hz compatibility (they take
++60 Hz for granted).
++
++One last thing: I did no testing on cards having DVI/LCD outputs
++so I'm not sure about the driver behaviour with this kind of displays.
++Be warned.
++
++6. Credits
++----------
++
++Vladimir Dergachev For leading the GATOS project, for all the good
++ advices he gave me about dealing with ATI and for
++ all his precious technical hints.
++
++ATI external developer office
++ For providing me the Rage Theater documentation.
++
++7. Revision history
++--------------------
++
++
++2003-09-23
++==========
++
++Initial release
++
++2003-11-26
++==========
++
++Support for ERT added
++
++2004-01-27
++==========
++
++Support for sizing/positioning of TV image added
++
+diff -urN -X /home/zhangle/exec/dontdiff xserver-xorg-video-ati-6.6.3.orig/src/Makefile.am xserver-xorg-video-ati-6.6.3/src/Makefile.am
+--- xserver-xorg-video-ati-6.6.3.orig/src/Makefile.am 2007-03-01 00:15:43.000000000 +0800
++++ xserver-xorg-video-ati-6.6.3/src/Makefile.am 2007-01-08 12:48:05.000000000 +0800
+@@ -89,6 +89,15 @@
+ theatre_detect_drv_la_SOURCES = \
+ theatre_detect.c theatre_detect_module.c
+
++theater_out_drv_la_LTLIBRARIES = theater_out_drv.la
++theater_out_drv_la_LDFLAGS = -module -avoid-version
++theater_out_drv_ladir = @moduledir@/multimedia
++theater_out_drv_la_CFLAGS = \
++ $(AM_CFLAGS) -DMICROC_DIR=\"$(theater_out_drv_ladir)\"
++theater_out_drv_la_SOURCES = \
++ theater_out.c theater_out_module.c
++
++
+ theatre_drv_la_LTLIBRARIES = theatre_drv.la
+ theatre_drv_la_LDFLAGS = -module -avoid-version
+ theatre_drv_ladir = @moduledir@/multimedia
+@@ -190,6 +199,7 @@
+ radeon_sarea.h \
+ radeon_version.h \
+ radeon_video.h \
++ theater_out.h \
+ theatre200.h \
+ theatre_detect.h \
+ theatre.h \
+diff -urN -X /home/zhangle/exec/dontdiff xserver-xorg-video-ati-6.6.3.orig/src/radeon_driver.c xserver-xorg-video-ati-6.6.3/src/radeon_driver.c
+--- xserver-xorg-video-ati-6.6.3.orig/src/radeon_driver.c 2007-03-01 00:18:42.000000000 +0800
++++ xserver-xorg-video-ati-6.6.3/src/radeon_driver.c 2007-01-25 15:15:22.000000000 +0800
+@@ -76,6 +76,7 @@
+ #include "radeon_macros.h"
+ #include "radeon_probe.h"
+ #include "radeon_version.h"
++#include "theater_out.h"
+ #include "radeon_mergedfb.h"
+
+ #ifdef XF86DRI
+@@ -196,6 +197,7 @@
+ { OPTION_RAGE_THEATRE_COMPOSITE_PORT, "RageTheatreCompositePort", OPTV_INTEGER, {0}, FALSE },
+ { OPTION_RAGE_THEATRE_SVIDEO_PORT, "RageTheatreSVideoPort", OPTV_INTEGER, {0}, FALSE },
+ { OPTION_TUNER_TYPE, "TunerType", OPTV_INTEGER, {0}, FALSE },
++ { OPTION_TV_OUTPUT, "TVOutput", OPTV_ANYSTR, {0}, FALSE },
+ { OPTION_RAGE_THEATRE_MICROC_PATH, "RageTheatreMicrocPath", OPTV_STRING, {0}, FALSE },
+ { OPTION_RAGE_THEATRE_MICROC_TYPE, "RageTheatreMicrocType", OPTV_STRING, {0}, FALSE },
+ #endif
+@@ -5707,8 +5709,8 @@
+ int hasDRI = 0;
+ #ifdef RENDER
+ int subPixelOrder = SubPixelUnknown;
+- char* s;
+ #endif
++ char* s;
+
+ RADEONTRACE(("RADEONScreenInit %lx %ld\n",
+ pScrn->memPhysBase, pScrn->fbOffset));
+@@ -5728,6 +5730,30 @@
+
+ info->PaletteSavedOnVT = FALSE;
+
++ RADEONTRACE(("Allocating VIP interface"));
++ info->VIP = RADEONAllocateVIP(pScrn);
++
++ if ((s = xf86GetOptValString(info->Options , OPTION_TV_OUTPUT)) != NULL && xf86NameCmp(s , "NOLOAD") != 0)
++ {
++ RADEONTRACE(("TVOutput opt = %s\n" , s));
++ if(!xf86LoadSubModule(pScrn , "theater_out"))
++ {
++ RADEONTRACE(("Failed to find theater_out module\n"));
++ xf86DrvMsg(pScrn->scrnIndex , X_ERROR , "Unable to load TV output module\n");
++ info->theaterOut = NULL;
++ }
++ else
++ {
++ RADEONTRACE(("Found theater_out module\n"));
++ xf86LoaderReqSymbols(THEATER_OUT_SYMBOLS , NULL);
++
++ info->theaterOut = xf86_detectTheaterOut(pScrn , FALSE,info->VIP);
++ if (info->theaterOut != NULL)
++ xf86_initTheaterOut(info->theaterOut , s);
++ }
++
++ }
++
+ RADEONSave(pScrn);
+
+ if ((!info->IsSecondary) && info->IsMobility) {
+@@ -6168,7 +6194,8 @@
+
+ /* Init Xv */
+ RADEONTRACE(("Initializing Xv\n"));
+- RADEONInitVideo(pScreen);
++// RADEONInitVideo(pScreen);
++ RADEONInitVideo(pScreen , info->VIP , TRUE);
+
+ if(info->MergedFB)
+ /* need this here to fix up sarea values */
+@@ -6408,7 +6435,10 @@
+ OUTREG(RADEON_OVR_WID_TOP_BOTTOM, restore->ovr_wid_top_bottom);
+ OUTREG(RADEON_OV0_SCALE_CNTL, restore->ov0_scale_cntl);
+ OUTREG(RADEON_SUBPIC_CNTL, restore->subpic_cntl);
+- OUTREG(RADEON_VIPH_CONTROL, restore->viph_control);
++// OUTREG(RADEON_VIPH_CONTROL, restore->viph_control);
++/*
++ * fulivi: removed. It messes the VIP access up
++ */
+ OUTREG(RADEON_I2C_CNTL_1, restore->i2c_cntl_1);
+ OUTREG(RADEON_GEN_INT_CNTL, restore->gen_int_cntl);
+ OUTREG(RADEON_CAP0_TRIG_CNTL, restore->cap0_trig_cntl);
+@@ -6494,6 +6524,7 @@
+ OUTREG(RADEON_CRTC_OFFSET, restore->crtc_offset);
+ OUTREG(RADEON_CRTC_OFFSET_CNTL, restore->crtc_offset_cntl);
+ OUTREG(RADEON_CRTC_PITCH, restore->crtc_pitch);
++ OUTREG(RADEON_DISP_OUTPUT_CNTL, restore->disp_output_cntl),
+ OUTREG(RADEON_DISP_MERGE_CNTL, restore->disp_merge_cntl);
+ OUTREG(RADEON_CRTC_MORE_CNTL, restore->crtc_more_cntl);
+
+@@ -6676,12 +6707,42 @@
+ ~(RADEON_P2PLL_ATOMIC_UPDATE_W));
+ }
+
++static CARD8 RADEONComputePLLGain(CARD16 reference_freq,
++ CARD16 ref_div,
++ CARD16 fb_div)
++{
++ unsigned vcoFreq;
++
++ vcoFreq = ((unsigned)reference_freq * fb_div) / ref_div;
++
++ /*
++ * This is orribly crude: the VCO frequency range is divided into
++ * 3 parts, each part having a fixed PLL gain value.
++ */
++ if (vcoFreq >= 30000)
++ /*
++ * [300..max] MHz : 7
++ */
++ return 7;
++ else if (vcoFreq >= 18000)
++ /*
++ * [180..300) MHz : 4
++ */
++ return 4;
++ else
++ /*
++ * [0..180) MHz : 1
++ */
++ return 1;
++}
++
+ /* Write PLL registers */
+ static void RADEONRestorePLLRegisters(ScrnInfoPtr pScrn,
+ RADEONSavePtr restore)
+ {
+ RADEONInfoPtr info = RADEONPTR(pScrn);
+ unsigned char *RADEONMMIO = info->MMIO;
++ CARD8 pllGain;
+
+ if (info->IsMobility) {
+ /* A temporal workaround for the occational blanking on certain laptop panels.
+@@ -6704,15 +6765,20 @@
+ OUTPLLP(pScrn, RADEON_VCLK_ECP_CNTL,
+ RADEON_VCLK_SRC_SEL_CPUCLK,
+ ~(RADEON_VCLK_SRC_SEL_MASK));
++ pllGain = RADEONComputePLLGain(info->pll.reference_freq,
++ restore->ppll_ref_div & RADEON_PPLL_REF_DIV_MASK,
++ restore->ppll_div_3 & RADEON_PPLL_FB3_DIV_MASK);
+
+ OUTPLLP(pScrn,
+ RADEON_PPLL_CNTL,
+ RADEON_PPLL_RESET
+ | RADEON_PPLL_ATOMIC_UPDATE_EN
+- | RADEON_PPLL_VGA_ATOMIC_UPDATE_EN,
++ | RADEON_PPLL_VGA_ATOMIC_UPDATE_EN
++ | ((CARD32)pllGain << RADEON_PPLL_PVG_SHIFT),
+ ~(RADEON_PPLL_RESET
+ | RADEON_PPLL_ATOMIC_UPDATE_EN
+- | RADEON_PPLL_VGA_ATOMIC_UPDATE_EN));
++ | RADEON_PPLL_VGA_ATOMIC_UPDATE_EN
++ | RADEON_PPLL_PVG_MASK));
+
+ OUTREGP(RADEON_CLOCK_CNTL_INDEX,
+ RADEON_PLL_DIV_SEL,
+@@ -6772,9 +6838,8 @@
+
+ usleep(50000); /* Let the clock to lock */
+
+- OUTPLLP(pScrn, RADEON_VCLK_ECP_CNTL,
+- RADEON_VCLK_SRC_SEL_PPLLCLK,
+- ~(RADEON_VCLK_SRC_SEL_MASK));
++ OUTPLL(pScrn, RADEON_VCLK_ECP_CNTL , restore->vclk_ecp_cntl);
++ RADEONTRACE(("VCLK_ECP_CNTL = %08X\n" , restore->vclk_ecp_cntl));
+ }
+
+
+@@ -7197,6 +7262,7 @@
+ save->crtc_offset = INREG(RADEON_CRTC_OFFSET);
+ save->crtc_offset_cntl = INREG(RADEON_CRTC_OFFSET_CNTL);
+ save->crtc_pitch = INREG(RADEON_CRTC_PITCH);
++ save->disp_output_cntl = INREG(RADEON_DISP_OUTPUT_CNTL);
+ save->disp_merge_cntl = INREG(RADEON_DISP_MERGE_CNTL);
+ save->crtc_more_cntl = INREG(RADEON_CRTC_MORE_CNTL);
+
+@@ -7266,6 +7332,7 @@
+ save->ppll_ref_div = INPLL(pScrn, RADEON_PPLL_REF_DIV);
+ save->ppll_div_3 = INPLL(pScrn, RADEON_PPLL_DIV_3);
+ save->htotal_cntl = INPLL(pScrn, RADEON_HTOTAL_CNTL);
++ save->vclk_ecp_cntl= INPLL(pScrn, RADEON_VCLK_ECP_CNTL);
+
+ RADEONTRACE(("Read: 0x%08x 0x%08x 0x%08lx\n",
+ save->ppll_ref_div,
+@@ -7275,6 +7342,7 @@
+ save->ppll_ref_div & RADEON_PPLL_REF_DIV_MASK,
+ save->ppll_div_3 & RADEON_PPLL_FB3_DIV_MASK,
+ (save->ppll_div_3 & RADEON_PPLL_POST3_DIV_MASK) >> 16));
++ RADEONTRACE(("Read VCLK_ECP_CNTL = %08x\n" , save->vclk_ecp_cntl));
+ }
+
+ /* Read PLL registers */
+@@ -7383,6 +7451,12 @@
+ RADEONSaveMode(pScrn, save);
+ if (!info->IsSecondary)
+ RADEONSaveSurfaces(pScrn, save);
++
++ /*
++ * Save initial RT state
++ */
++ if(info->theaterOut != NULL)
++ xf86_theaterOutSave(info->theaterOut , pScrn);
+ }
+
+ /* Restore the original (text) mode */
+@@ -7424,7 +7498,11 @@
+ RADEONRestoreMode(pScrn, restore);
+ if (!info->IsSecondary)
+ RADEONRestoreSurfaces(pScrn, restore);
+-
++ /*
++ * Restore RT state
++ */
++ if (info->theaterOut != NULL)
++ xf86_theaterOutRestore(info->theaterOut , pScrn);
+ #if 0
+ /* Temp fix to "solve" VT switch problems. When switching VTs on
+ * some systems, the console can either hang or the fonts can be
+@@ -8175,7 +8253,9 @@
+ save->crtc2_gen_cntl = (RADEON_CRTC2_EN | (format << 8));
+ save->fp2_h_sync_strt_wid = save->crtc2_h_sync_strt_wid;
+ save->fp2_v_sync_strt_wid = save->crtc2_v_sync_strt_wid;
+- save->fp2_gen_cntl = info->SavedReg.fp2_gen_cntl | RADEON_FP2_ON;
++ save->fp2_gen_cntl = info->SavedReg.fp2_gen_cntl
++ | RADEON_FP2_SRC_SEL_CRTC2
++ | RADEON_FP2_ON;
+ save->fp2_gen_cntl &= ~(RADEON_FP2_BLANK_EN);
+
+ if ((info->ChipFamily == CHIP_FAMILY_R200) ||
+@@ -8521,15 +8601,17 @@
+ pll->reference_freq);
+ save->post_div = post_div->divider;
+
+- RADEONTRACE(("dc=%ld, of=%ld, fd=%d, pd=%d\n",
++/* RADEONTRACE(("dc=%ld, of=%ld, fd=%d, pd=%d\n",
+ save->dot_clock_freq,
+ save->pll_output_freq,
+ save->feedback_div,
+ save->post_div));
++*/
+
+ save->ppll_ref_div = pll->reference_div;
+ save->ppll_div_3 = (save->feedback_div | (post_div->bitvalue << 16));
+ save->htotal_cntl = 0;
++ save->vclk_ecp_cntl = (save->vclk_ecp_cntl & ~RADEON_VCLK_SRC_SEL_MASK) | RADEON_VCLK_SRC_SEL_PPLLCLK;
+ }
+
+ /* Define PLL2 registers for requested video mode */
+@@ -8583,11 +8665,12 @@
+ pll->reference_freq);
+ save->post_div_2 = post_div->divider;
+
+- RADEONTRACE(("dc=%ld, of=%ld, fd=%d, pd=%d\n",
++/* RADEONTRACE(("dc=%ld, of=%ld, fd=%d, pd=%d\n",
+ save->dot_clock_freq_2,
+ save->pll_output_freq_2,
+ save->feedback_div_2,
+ save->post_div_2));
++*/
+
+ save->p2pll_ref_div = pll->reference_div;
+ save->p2pll_div_0 = (save->feedback_div_2 |
+@@ -8663,6 +8746,12 @@
+
+ info->Flags = mode->Flags;
+
++ /*
++ * Some registers are initialized from text mode state
++ */
++ save->disp_output_cntl = RADEONPTR(pScrn)->SavedReg.disp_output_cntl;
++ save->vclk_ecp_cntl = RADEONPTR(pScrn)->SavedReg.vclk_ecp_cntl;
++
+ RADEONInitMemMapRegisters(pScrn, save, info);
+ RADEONInitCommonRegisters(save, info);
+ if (info->IsSecondary) {
+@@ -8730,9 +8819,25 @@
+
+ if (!RADEONInit(pScrn, mode, &info->ModeReg)) return FALSE;
+
++ /*
++ * Define RT state
++ */
++ if (info->theaterOut != NULL)
++ {
++ Bool res = xf86_theaterOutInit(info->theaterOut , mode , &info->ModeReg);
++ RADEONTRACE(("theaterOutInit returns %d\n" , res));
++ }
++
+ pScrn->vtSema = TRUE;
+ RADEONBlank(pScrn);
+ RADEONRestoreMode(pScrn, &info->ModeReg);
++
++ /*
++ * Set RT to new mode
++ */
++ if (info->theaterOut != NULL)
++ xf86_theaterOutRestoreMode(info->theaterOut , pScrn);
++
+ RADEONUnblank(pScrn);
+
+ info->CurrentLayout.mode = mode;
+@@ -10126,3 +10231,80 @@
+ pScrn->FreeScreen = RADEONFreeScreen;
+ pScrn->ValidMode = RADEONValidMode;
+ }
++
++/*
++ * fulivi: interface functions between RADEONSet/GetPortAttribute (in radeon_video.c) and
++ * theater_out module.
++ */
++static void RADEONRedoSwitchMode(ScrnInfoPtr pScrn)
++{
++ int scrnIndex = pScrn->scrnIndex;
++
++ /*
++ * It seems that last parameter (flags) is not used
++ */
++ RADEONSwitchMode(scrnIndex , pScrn->currentMode , 0);
++}
++
++void RADEONTheaterOutSetStandard(ScrnInfoPtr pScrn,
++ TVStd std)
++{
++ RADEONInfoPtr info = RADEONPTR(pScrn);
++
++ RADEONTRACE(("RADEONTheaterOutSetStandard std = %d" , std));
++
++ if (info->theaterOut != NULL && xf86_theaterOutSetStandard(info->theaterOut , std))
++ RADEONRedoSwitchMode(pScrn);
++}
++
++TVStd RADEONTheaterOutGetStandard(ScrnInfoPtr pScrn)
++{
++ RADEONInfoPtr info = RADEONPTR(pScrn);
++
++ if (info->theaterOut != NULL)
++ return xf86_theaterOutGetStandard(info->theaterOut);
++ else
++ return TV_STD_KEEP_OFF;
++}
++
++Bool RADEONTheaterOutGetCompatMode(ScrnInfoPtr pScrn)
++{
++ RADEONInfoPtr info = RADEONPTR(pScrn);
++
++ if (info->theaterOut != NULL)
++ return xf86_theaterOutGetCompatMode(info->theaterOut);
++ else
++ return FALSE;
++}
++
++void RADEONTheaterOutSetAttr(ScrnInfoPtr pScrn,
++ TheaterOutAttr attr,
++ int value)
++{
++ RADEONInfoPtr info = RADEONPTR(pScrn);
++
++ if (info->theaterOut != NULL)
++ xf86_theaterOutSetAttr(info->theaterOut , attr , value);
++}
++
++int RADEONTheaterOutGetAttr(ScrnInfoPtr pScrn,
++ TheaterOutAttr attr)
++{
++ RADEONInfoPtr info = RADEONPTR(pScrn);
++
++ if (info->theaterOut != NULL)
++ return xf86_theaterOutGetAttr(info->theaterOut , attr);
++ else
++ return 0;
++}
++
++void RADEONTheaterOutGetAttrLimits(ScrnInfoPtr pScrn,
++ TheaterOutAttr attr,
++ int *maxValue,
++ int *minValue)
++{
++ RADEONInfoPtr info = RADEONPTR(pScrn);
++
++ if (info->theaterOut != NULL)
++ xf86_theaterOutGetAttrLimits(info->theaterOut , attr , maxValue , minValue);
++}
+diff -urN -X /home/zhangle/exec/dontdiff xserver-xorg-video-ati-6.6.3.orig/src/radeon.h xserver-xorg-video-ati-6.6.3/src/radeon.h
+--- xserver-xorg-video-ati-6.6.3.orig/src/radeon.h 2007-03-01 00:15:31.000000000 +0800
++++ xserver-xorg-video-ati-6.6.3/src/radeon.h 2007-01-08 12:48:04.000000000 +0800
+@@ -41,10 +41,12 @@
+ #include <stdlib.h> /* For abs() */
+ #include <unistd.h> /* For usleep() */
+
++#include "radeon_version.h"
+ #include "xf86str.h"
+ #include "compiler.h"
+ #include "xf86fbman.h"
+
++#include "generic_bus.h"
+ /* PCI support */
+ #include "xf86Pci.h"
+
+@@ -130,6 +132,7 @@
+ OPTION_RAGE_THEATRE_COMPOSITE_PORT,
+ OPTION_RAGE_THEATRE_SVIDEO_PORT,
+ OPTION_TUNER_TYPE,
++ OPTION_TV_OUTPUT,
+ OPTION_RAGE_THEATRE_MICROC_PATH,
+ OPTION_RAGE_THEATRE_MICROC_TYPE,
+ #endif
+@@ -292,6 +295,8 @@
+ unsigned ppll_div_3;
+ CARD32 htotal_cntl;
+
++ CARD32 vclk_ecp_cntl;
++
+ /* Computed values for PLL2 */
+ CARD32 dot_clock_freq_2;
+ CARD32 pll_output_freq_2;
+@@ -710,6 +715,8 @@
+ char* RageTheatreMicrocPath;
+ char* RageTheatreMicrocType;
+ Bool MM_TABLE_valid;
++ GENERIC_BUS_Ptr VIP;
++ struct TheaterOut *theaterOut;
+ struct {
+ CARD8 table_revision;
+ CARD8 table_size;
+@@ -806,6 +813,8 @@
+ info->fifo_slots -= entries; \
+ } while (0)
+
++#include "theater_out.h"
++
+ extern RADEONEntPtr RADEONEntPriv(ScrnInfoPtr pScrn);
+ extern void RADEONWaitForFifoFunction(ScrnInfoPtr pScrn, int entries);
+ extern void RADEONWaitForIdleMMIO(ScrnInfoPtr pScrn);
+@@ -816,6 +825,13 @@
+ extern void RADEONDoAdjustFrame(ScrnInfoPtr pScrn, int x, int y,
+ int clone);
+
++extern void RADEONTheaterOutSetStandard(ScrnInfoPtr, TVStd);
++extern TVStd RADEONTheaterOutGetStandard(ScrnInfoPtr);
++extern Bool RADEONTheaterOutGetCompatMode(ScrnInfoPtr);
++extern void RADEONTheaterOutSetAttr(ScrnInfoPtr, TheaterOutAttr, int);
++extern int RADEONTheaterOutGetAttr(ScrnInfoPtr, TheaterOutAttr);
++extern void RADEONTheaterOutGetAttrLimits(ScrnInfoPtr, TheaterOutAttr, int *, int *);
++
+ extern void RADEONEngineReset(ScrnInfoPtr pScrn);
+ extern void RADEONEngineFlush(ScrnInfoPtr pScrn);
+ extern void RADEONEngineRestore(ScrnInfoPtr pScrn);
+@@ -847,7 +863,10 @@
+
+ extern int RADEONMinBits(int val);
+
+-extern void RADEONInitVideo(ScreenPtr pScreen);
++extern GENERIC_BUS_Ptr RADEONAllocateVIP(ScrnInfoPtr pScrn);
++
++extern void RADEONInitVideo(ScreenPtr pScreen , GENERIC_BUS_Ptr VIP , Bool loadTheatre);
++
+ extern void RADEONResetVideo(ScrnInfoPtr pScrn);
+ extern void R300CGWorkaround(ScrnInfoPtr pScrn);
+
+diff -urN -X /home/zhangle/exec/dontdiff xserver-xorg-video-ati-6.6.3.orig/src/radeon_reg.h xserver-xorg-video-ati-6.6.3/src/radeon_reg.h
+--- xserver-xorg-video-ati-6.6.3.orig/src/radeon_reg.h 2007-03-01 00:15:33.000000000 +0800
++++ xserver-xorg-video-ati-6.6.3/src/radeon_reg.h 2007-01-08 12:48:05.000000000 +0800
+@@ -1223,6 +1223,9 @@
+ # define RADEON_PPLL_SLEEP (1 << 1)
+ # define RADEON_PPLL_ATOMIC_UPDATE_EN (1 << 16)
+ # define RADEON_PPLL_VGA_ATOMIC_UPDATE_EN (1 << 17)
++# define RADEON_PPLL_PVG_MASK (7 << 11)
++# define RADEON_PPLL_PVG_SHIFT 11
++
+ # define RADEON_PPLL_ATOMIC_UPDATE_VSYNC (1 << 18)
+ #define RADEON_PPLL_DIV_0 0x0004 /* PLL */
+ #define RADEON_PPLL_DIV_1 0x0005 /* PLL */
+diff -urN -X /home/zhangle/exec/dontdiff xserver-xorg-video-ati-6.6.3.orig/src/radeon_video.c xserver-xorg-video-ati-6.6.3/src/radeon_video.c
+--- xserver-xorg-video-ati-6.6.3.orig/src/radeon_video.c 2007-03-01 00:15:41.000000000 +0800
++++ xserver-xorg-video-ati-6.6.3/src/radeon_video.c 2007-01-08 12:48:05.000000000 +0800
+@@ -75,7 +75,7 @@
+
+ static void RADEONInitOffscreenImages(ScreenPtr);
+
+-static XF86VideoAdaptorPtr RADEONSetupImageVideo(ScreenPtr);
++static XF86VideoAdaptorPtr RADEONSetupImageVideo(ScreenPtr , GENERIC_BUS_Ptr , Bool);
+ static int RADEONSetPortAttribute(ScrnInfoPtr, Atom, INT32, pointer);
+ static int RADEONGetPortAttribute(ScrnInfoPtr, Atom ,INT32 *, pointer);
+ static void RADEONStopVideo(ScrnInfoPtr, pointer, Bool);
+@@ -117,6 +117,23 @@
+
+ static Atom xvOvAlpha, xvGrAlpha, xvAlphaMode;
+
++static Atom xvTvoStandard , xvTvoModeCompat;
++
++typedef struct
++{
++ char *name;
++ TheaterOutAttr attr;
++ Atom atom;
++} TVOAttr;
++
++static
++TVOAttr theaterOutAttrs[] =
++{
++ {"XV_TVO_HPOS" , THEATER_OUT_HPOS , 0 },
++ {"XV_TVO_VPOS" , THEATER_OUT_VPOS , 0 },
++ {"XV_TVO_HSIZE" , THEATER_OUT_HSIZE , 0 }
++};
++#define N_TVO_ATTRS (sizeof(theaterOutAttrs) / sizeof(theaterOutAttrs[ 0 ]))
+
+ #define GET_PORT_PRIVATE(pScrn) \
+ (RADEONPortPrivPtr)((RADEONPTR(pScrn))->adaptor->pPortPrivates[0].ptr)
+@@ -135,14 +152,14 @@
+ }
+ #endif /* USE_EXA */
+
+-void RADEONInitVideo(ScreenPtr pScreen)
++void RADEONInitVideo(ScreenPtr pScreen , GENERIC_BUS_Ptr VIP , Bool loadTheatre)
+ {
+ ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ XF86VideoAdaptorPtr *adaptors, *newAdaptors = NULL;
+ XF86VideoAdaptorPtr newAdaptor = NULL;
+ int num_adaptors;
+
+- newAdaptor = RADEONSetupImageVideo(pScreen);
++ newAdaptor = RADEONSetupImageVideo(pScreen , VIP , loadTheatre);
+ RADEONInitOffscreenImages(pScreen);
+ num_adaptors = xf86XVListGenericAdaptors(pScrn, &adaptors);
+
+@@ -235,7 +252,8 @@
+
+ #endif
+
+-#define NUM_ATTRIBUTES 22
++//#define NUM_ATTRIBUTES 22
++#define NUM_ATTRIBUTES 22+5
+ #define NUM_DEC_ATTRIBUTES (NUM_ATTRIBUTES+12)
+
+ static XF86AttributeRec Attributes[NUM_DEC_ATTRIBUTES+1] =
+@@ -251,6 +269,13 @@
+ {XvSettable | XvGettable, 0, 255, "XV_OVERLAY_ALPHA"},
+ {XvSettable | XvGettable, 0, 255, "XV_GRAPHICS_ALPHA"},
+ {XvSettable | XvGettable, 0, 1, "XV_ALPHA_MODE"},
++
++ {XvSettable | XvGettable, 0, TV_STD_N_STANDARDS-1, "XV_TVO_STANDARD"},
++ { XvGettable, 0, ~0, "XV_TVO_MODE_COMPAT"},
++ {XvSettable | XvGettable, -1000, 1000, "XV_TVO_HPOS"},
++ {XvSettable | XvGettable, -1000, 1000, "XV_TVO_VPOS"},
++ {XvSettable | XvGettable, -1000, 1000, "XV_TVO_HSIZE"},
++
+ {XvSettable | XvGettable, -1000, 1000, "XV_BRIGHTNESS"},
+ {XvSettable | XvGettable, -1000, 1000, "XV_CONTRAST"},
+ {XvSettable | XvGettable, -1000, 1000, "XV_SATURATION"},
+@@ -1056,6 +1081,7 @@
+ RADEONPortPrivPtr pPriv = info->adaptor->pPortPrivates[0].ptr;
+ char tmp[200];
+
++ unsigned i;
+ /* this function is called from ScreenInit. pScreen is used
+ by XAA internally, but not valid until ScreenInit finishs.
+ */
+@@ -1068,6 +1094,18 @@
+ xvDeviceID = MAKE_ATOM("XV_DEVICE_ID");
+ xvLocationID = MAKE_ATOM("XV_LOCATION_ID");
+ xvDumpStatus = MAKE_ATOM("XV_DUMP_STATUS");
++
++ xvTvoStandard = MAKE_ATOM("XV_TVO_STANDARD");
++ xvTvoModeCompat = MAKE_ATOM("XV_TVO_MODE_COMPAT");
++
++ for (i = 0; i < N_TVO_ATTRS; i++)
++ {
++ char *name;
++ name = theaterOutAttrs[ i ].name;
++ theaterOutAttrs[ i ].atom = MakeAtom(name, strlen(name), TRUE);
++
++ RADEONTRACE(("RADEONResetVideo,name=%s,atom=%d\n",name,theaterOutAttrs[ i ].atom));
++ }
+
+ xvBrightness = MAKE_ATOM("XV_BRIGHTNESS");
+ xvSaturation = MAKE_ATOM("XV_SATURATION");
+@@ -1270,7 +1308,7 @@
+ }
+
+ static XF86VideoAdaptorPtr
+-RADEONAllocAdaptor(ScrnInfoPtr pScrn)
++RADEONAllocAdaptor(ScrnInfoPtr pScrn, GENERIC_BUS_Ptr VIP)
+ {
+ XF86VideoAdaptorPtr adapt;
+ RADEONInfoPtr info = RADEONPTR(pScrn);
+@@ -1396,7 +1434,9 @@
+ #endif
+
+ /* Initialize VIP bus */
+- RADEONVIP_init(pScrn, pPriv);
++// RADEONVIP_init(pScrn, pPriv);
++ pPriv->VIP = VIP;
++
+ info->adaptor = adapt;
+
+ if(!xf86LoadSubModule(pScrn,"theatre_detect"))
+@@ -1478,13 +1518,14 @@
+ }
+
+ static XF86VideoAdaptorPtr
+-RADEONSetupImageVideo(ScreenPtr pScreen)
++RADEONSetupImageVideo(ScreenPtr pScreen , GENERIC_BUS_Ptr VIP , Bool loadTheatre)
+ {
+ ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ RADEONPortPrivPtr pPriv;
+ XF86VideoAdaptorPtr adapt;
++ unsigned i;
+
+- if(!(adapt = RADEONAllocAdaptor(pScrn)))
++ if(!(adapt = RADEONAllocAdaptor(pScrn, VIP)))
+ return NULL;
+
+ adapt->type = XvWindowMask | XvInputMask | XvImageMask;
+@@ -1510,6 +1551,26 @@
+ adapt->PutImage = RADEONPutImage;
+ adapt->QueryImageAttributes = RADEONQueryImageAttributes;
+
++ /*
++ * fulivi: set limits of theater_out attributes
++ */
++ for (i = 0; i < N_TVO_ATTRS; i++)
++ {
++ int maxValue;
++ int minValue;
++ unsigned j;
++
++ RADEONTheaterOutGetAttrLimits(pScrn , theaterOutAttrs[ i ].attr , &maxValue , &minValue);
++
++ for (j = 0; i < NUM_DEC_ATTRIBUTES; j++)
++ if (strcmp(theaterOutAttrs[ i ].name , Attributes[ j ].name) == 0)
++ {
++ Attributes[ j ].min_value = minValue;
++ Attributes[ j ].max_value = maxValue;
++ break;
++ }
++ }
++
+ pPriv = (RADEONPortPrivPtr)(adapt->pPortPrivates[0].ptr);
+ REGION_NULL(pScreen, &(pPriv->clip));
+
+@@ -1812,8 +1873,24 @@
+ RADEON_TDA9885_SetEncoding(pPriv);
+ }
+ }
+- else
+- return BadMatch;
++ else if (attribute == xvTvoStandard)
++ {
++ value = ClipValue(value , 0 , TV_STD_N_STANDARDS-1);
++ RADEONTheaterOutSetStandard(pScrn , (TVStd)value);
++ }
++ else
++ {
++ unsigned i;
++
++ for (i = 0; i < N_TVO_ATTRS; i++)
++ if (theaterOutAttrs[ i ].atom == attribute)
++ {
++ RADEONTheaterOutSetAttr(pScrn , theaterOutAttrs[ i ].attr , value);
++ break;
++ }
++ if (i == N_TVO_ATTRS)
++ return BadMatch;
++ }
+
+ if (setTransform)
+ {
+@@ -1917,8 +1994,22 @@
+ *value = pPriv->instance_id;
+ else if(attribute == xvAdjustment)
+ *value = pPriv->adjustment;
+- else
+- return BadMatch;
++ else if(attribute == xvTvoStandard)
++ *value = (INT32)RADEONTheaterOutGetStandard(pScrn);
++ else if(attribute == xvTvoModeCompat)
++ *value = (INT32)RADEONTheaterOutGetCompatMode(pScrn);
++ else {
++ unsigned i;
++
++ for (i = 0; i < N_TVO_ATTRS; i++) {
++ if (theaterOutAttrs[ i ].atom == attribute) {
++ *value = (INT32)RADEONTheaterOutGetAttr(pScrn , theaterOutAttrs[ i].attr);
++ break;
++ }
++ }
++ if (i == N_TVO_ATTRS)
++ return BadMatch;
++ }
+
+ return Success;
+ }
+diff -urN -X /home/zhangle/exec/dontdiff xserver-xorg-video-ati-6.6.3.orig/src/radeon_video.h xserver-xorg-video-ati-6.6.3/src/radeon_video.h
+--- xserver-xorg-video-ati-6.6.3.orig/src/radeon_video.h 2007-03-01 00:15:27.000000000 +0800
++++ xserver-xorg-video-ati-6.6.3/src/radeon_video.h 2007-01-08 12:48:05.000000000 +0800
+@@ -47,6 +47,8 @@
+ GENERIC_BUS_Ptr VIP;
+ TheatrePtr theatre;
+
++/* TheaterOutPtr theaterOut; */
++
+ Bool video_stream_active;
+ int encoding;
+ CARD32 frequency;
+diff -urN -X /home/zhangle/exec/dontdiff xserver-xorg-video-ati-6.6.3.orig/src/radeon_vip.c xserver-xorg-video-ati-6.6.3/src/radeon_vip.c
+--- xserver-xorg-video-ati-6.6.3.orig/src/radeon_vip.c 2007-03-01 00:15:29.000000000 +0800
++++ xserver-xorg-video-ati-6.6.3/src/radeon_vip.c 2007-01-08 12:48:05.000000000 +0800
+@@ -342,6 +342,7 @@
+
+ void RADEONVIP_init(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv)
+ {
++/*
+ pPriv->VIP=xcalloc(1,sizeof(GENERIC_BUS_Rec));
+ pPriv->VIP->scrnIndex=pScrn->scrnIndex;
+ pPriv->VIP->DriverPrivate.ptr=pPriv;
+@@ -352,4 +353,31 @@
+ pPriv->VIP->fifo_write=RADEONVIP_fifo_write;
+
+ RADEONVIP_reset(pScrn, pPriv);
++*/
+ }
++
++/*
++ * fulivi: This new function was created because I needed VIP access from radeon_driver module
++ * (where port private data doesn't exist)
++ */
++GENERIC_BUS_Ptr
++RADEONAllocateVIP(
++ ScrnInfoPtr pScrn
++ )
++{
++ GENERIC_BUS_Ptr VIP=NULL;
++
++ VIP = xcalloc(1 , sizeof(GENERIC_BUS_Rec));
++ VIP->DriverPrivate.ptr = NULL; /* Nobody seems to use this */
++ VIP->scrnIndex = pScrn->scrnIndex;
++ VIP->ioctl = RADEONVIP_ioctl;
++ VIP->read = RADEONVIP_read;
++ VIP->write = RADEONVIP_write;
++ VIP->fifo_read=RADEONVIP_fifo_read;
++ VIP->fifo_write=RADEONVIP_fifo_write;
++
++ RADEONVIP_reset(pScrn,NULL);
++
++ return VIP;
++}
++
+diff -urN -X /home/zhangle/exec/dontdiff xserver-xorg-video-ati-6.6.3.orig/src/theater_out.c xserver-xorg-video-ati-6.6.3/src/theater_out.c
+--- xserver-xorg-video-ati-6.6.3.orig/src/theater_out.c 1970-01-01 08:00:00.000000000 +0800
++++ xserver-xorg-video-ati-6.6.3/src/theater_out.c 2007-01-08 12:48:05.000000000 +0800
+@@ -0,0 +1,2804 @@
++/*********************************************************************
++ *
++ * $Id: theater_out.c,v 1.1.2.3 2004/01/27 22:50:35 fulivi Exp $
++ *
++ * Main file for tv output handling of ATI Rage Theater chip
++ *
++ * Copyright (C) 2003 Federico Ulivi
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ *
++ * AUTHORS: F.Ulivi
++ * NOTES:
++ * $Log: theater_out.c,v $
++ * Revision 1.1.2.3 2004/01/27 22:50:35 fulivi
++ * Support for positioning/sizing of image added
++ *
++ * Revision 1.1.1.1.2.12 2004/01/18 22:59:29 fede
++ * hSize handling added
++ * Functions for get/setting h/v pos/size replaced by
++ * theaterOutSetAttr/theaterOutGetAttr/theaterOutGetAttrLimits
++ *
++ * Revision 1.1.1.1.2.11 2004/01/11 21:29:04 fede
++ * Fixes in H/V position handling
++ *
++ * Revision 1.1.1.1.2.10 2004/01/05 00:08:16 fede
++ * Functions for setting H/V position added
++ * Functions for setting/getting on/off attribute removed
++ *
++ * Revision 1.1.2.2 2003/11/26 19:50:10 fulivi
++ * Support for ERT added
++ *
++ * Revision 1.1.1.1.2.9 2003/11/25 20:46:44 fede
++ * "enabled" state removed
++ * Handling of disabled tv output fixed
++ *
++ * Revision 1.1.1.1.2.8 2003/11/23 00:47:28 fede
++ * Major cleanup of #define names
++ *
++ * Revision 1.1.1.1.2.7 2003/11/17 22:26:12 fede
++ * Support for tv standards added
++ * Support for NTSC added
++ *
++ * Revision 1.1.1.1.2.6 2003/10/14 18:40:34 fede
++ * Autodetection of ERT moved to front
++ * Some minor cleanups
++ *
++ * Revision 1.1.1.1.2.5 2003/10/11 12:29:50 fede
++ * Support for ERT added
++ *
++ * Revision 1.1 2003/09/28 21:42:37 fulivi
++ * Theater_out module added
++ *
++ * Revision 1.1.1.1.2.4 2003/09/28 15:11:57 fede
++ * Some minor aesthetic changes
++ *
++ * Revision 1.1.1.1.2.2 2003/08/31 13:35:58 fede
++ * Adapted for XFree86
++ *
++ * Revision 1.1.1.1.2.1 2003/08/09 23:20:46 fede
++ * Switched to memory mapped IO
++ * Some magic numbers turned into named constants
++ *
++ * Revision 1.1.1.1 2003/07/24 15:37:27 fede
++ * Initial version
++ *
++ *
++ *********************************************************************/
++
++#include "xf86.h"
++#include "generic_bus.h"
++#include "theatre_reg.h"
++#include "radeon_reg.h"
++#include "radeon_macros.h"
++#include "theater_out.h"
++#define RADEON_NAME "RADEON"
++
++#undef read
++#undef write
++#undef ioctl
++
++#if RADEON_DEBUG
++#define RTTRACE(x) \
++do { \
++ ErrorF("(**) %s(%d): ", RADEON_NAME, 0); \
++ ErrorF x; \
++} while (0);
++#else
++#define RTTRACE(x)
++#endif
++
++/**********************************************************************
++ *
++ * MASK_N_BIT
++ *
++ **********************************************************************/
++
++#define MASK_N_BIT(n) (1UL << (n))
++
++/**********************************************************************
++ *
++ * Constants
++ *
++ **********************************************************************/
++
++/*
++ * Reference frequency
++ * FIXME: This should be extracted from BIOS data
++ */
++#define REF_FREQUENCY 27000
++
++#define TV_PLL_FINE_INI 0X10000000
++
++/*
++ * VIP_TV_PLL_CNTL
++ */
++#define VIP_TV_PLL_CNTL_M_SHIFT 0
++#define VIP_TV_PLL_CNTL_NLO 0x1ff
++#define VIP_TV_PLL_CNTL_NLO_SHIFT 8
++#define VIP_TV_PLL_CNTL_NHI 0x600
++#define VIP_TV_PLL_CNTL_NHI_SHIFT (21-9)
++#define VIP_TV_PLL_CNTL_P_SHIFT 24
++
++/*
++ * VIP_CRT_PLL_CNTL
++ */
++#define VIP_CRT_PLL_CNTL_M 0xff
++#define VIP_CRT_PLL_CNTL_M_SHIFT 0
++#define VIP_CRT_PLL_CNTL_NLO 0x1ff
++#define VIP_CRT_PLL_CNTL_NLO_SHIFT 8
++#define VIP_CRT_PLL_CNTL_NHI 0x600
++#define VIP_CRT_PLL_CNTL_NHI_SHIFT (21-9)
++#define VIP_CRT_PLL_CNTL_CLKBY2 MASK_N_BIT(25)
++
++/*
++ * Value for VIP_PLL_CNTL0
++ */
++#define VIP_PLL_CNTL0_INI 0x00acac18
++#define VIP_PLL_CNTL0_TVSLEEPB MASK_N_BIT(3)
++#define VIP_PLL_CNTL0_CRTSLEEPB MASK_N_BIT(4)
++
++/*
++ * Value for VIP_PLL_TEST_CNTL
++ */
++#define VIP_PLL_TEST_CNTL_INI 0
++
++/*
++ * VIP_CLOCK_SEL_CNTL
++ */
++#define VIP_CLOCK_SEL_CNTL_INI 0x33
++#define VIP_CLOCK_SEL_CNTL_BYTCLK_SHIFT 2
++#define VIP_CLOCK_SEL_CNTL_BYTCLK 0xc
++#define VIP_CLOCK_SEL_CNTL_REGCLK MASK_N_BIT(5)
++#define VIP_CLOCK_SEL_CNTL_BYTCLKD_SHIFT 8
++
++/*
++ * Value for VIP_CLKOUT_CNTL
++ */
++#define VIP_CLKOUT_CNTL_INI 0x29
++
++/*
++ * Value for VIP_SYNC_LOCK_CNTL
++ */
++#define VIP_SYNC_LOCK_CNTL_INI 0x01000000
++
++/*
++ * Value for VIP_TVO_SYNC_PAT_EXPECT
++ */
++#define VIP_TVO_SYNC_PAT_EXPECT_INI 0x00000001
++
++/*
++ * VIP_RGB_CNTL
++ */
++#define VIP_RGB_CNTL_RGB_IS_888_PACK MASK_N_BIT(0)
++
++/*
++ * Value for VIP_VSCALER_CNTL2
++ */
++#define VIP_VSCALER_CNTL2_INI 0x10000000
++
++/*
++ * Value for VIP_Y_FALL_CNTL
++ */
++/* #define VIP_Y_FALL_CNTL_INI 0x00010200 */
++#define VIP_Y_FALL_CNTL_INI 0x80030400
++
++/*
++ * VIP_UV_ADR
++ */
++#define VIP_UV_ADR_INI 0xc8
++#define VIP_UV_ADR_HCODE_TABLE_SEL 0x06000000
++#define VIP_UV_ADR_HCODE_TABLE_SEL_SHIFT 25
++#define VIP_UV_ADR_VCODE_TABLE_SEL 0x18000000
++#define VIP_UV_ADR_VCODE_TABLE_SEL_SHIFT 27
++#define VIP_UV_ADR_MAX_UV_ADR 0x000000ff
++#define VIP_UV_ADR_MAX_UV_ADR_SHIFT 0
++#define VIP_UV_ADR_TABLE1_BOT_ADR 0x0000ff00
++#define VIP_UV_ADR_TABLE1_BOT_ADR_SHIFT 8
++#define VIP_UV_ADR_TABLE3_TOP_ADR 0x00ff0000
++#define VIP_UV_ADR_TABLE3_TOP_ADR_SHIFT 16
++#define MAX_FIFO_ADDR_RT 0x1a7
++#define MAX_FIFO_ADDR_ERT 0x1ff
++
++/*
++ * VIP_HOST_RD_WT_CNTL
++ */
++#define VIP_HOST_RD_WT_CNTL_RD MASK_N_BIT(12)
++#define VIP_HOST_RD_WT_CNTL_RD_ACK MASK_N_BIT(13)
++#define VIP_HOST_RD_WT_CNTL_WT MASK_N_BIT(14)
++#define VIP_HOST_RD_WT_CNTL_WT_ACK MASK_N_BIT(15)
++
++/*
++ * Value for VIP_SYNC_CNTL
++ */
++#define VIP_SYNC_CNTL_INI 0x28
++
++/*
++ * VIP_VSCALER_CNTL1
++ */
++#define VIP_VSCALER_CNTL1_UV_INC 0xffff
++#define VIP_VSCALER_CNTL1_UV_INC_SHIFT 0
++
++/*
++ * VIP_TIMING_CNTL
++ */
++#define VIP_TIMING_CNTL_UV_OUT_POST_SCALE_SHIFT 24
++#define VIP_TIMING_CNTL_INI 0x000b0000
++#define VIP_TIMING_CNTL_H_INC_SHIFT 0
++#define VIP_TIMING_CNTL_H_INC 0xfff
++
++/*
++ * Value for VIP_PRE_DAC_MUX_CNTL
++ */
++#define VIP_PRE_DAC_MUX_CNTL_INI 0x0000000f
++
++/*
++ * VIP_TV_DAC_CNTL
++ */
++#define VIP_TV_DAC_CNTL_NBLANK MASK_N_BIT(0)
++#define VIP_TV_DAC_CNTL_DASLEEP MASK_N_BIT(3)
++#define VIP_TV_DAC_CNTL_BGSLEEP MASK_N_BIT(6)
++
++/*
++ * Value for VIP_FRAME_LOCK_CNTL
++ */
++#define VIP_FRAME_LOCK_CNTL_INI 0x0000000f
++
++/*
++ * Value for VIP_HW_DEBUG
++ */
++#define VIP_HW_DEBUG_INI 0x00000200
++
++/*
++ * VIP_MASTER_CNTL
++ */
++#define VIP_MASTER_CNTL_TV_ASYNC_RST MASK_N_BIT(0)
++#define VIP_MASTER_CNTL_CRT_ASYNC_RST MASK_N_BIT(1)
++#define VIP_MASTER_CNTL_RESTART_PHASE_FIX MASK_N_BIT(3)
++#define VIP_MASTER_CNTL_TV_FIFO_ASYNC_RST MASK_N_BIT(4)
++#define VIP_MASTER_CNTL_VIN_ASYNC_RST MASK_N_BIT(5)
++#define VIP_MASTER_CNTL_AUD_ASYNC_RST MASK_N_BIT(6)
++#define VIP_MASTER_CNTL_DVS_ASYNC_RST MASK_N_BIT(7)
++#define VIP_MASTER_CNTL_CRT_FIFO_CE_EN MASK_N_BIT(9)
++#define VIP_MASTER_CNTL_TV_FIFO_CE_EN MASK_N_BIT(10)
++#define VIP_MASTER_CNTL_ON_INI (VIP_MASTER_CNTL_RESTART_PHASE_FIX | \
++ VIP_MASTER_CNTL_VIN_ASYNC_RST | \
++ VIP_MASTER_CNTL_AUD_ASYNC_RST | \
++ VIP_MASTER_CNTL_DVS_ASYNC_RST | \
++ VIP_MASTER_CNTL_CRT_FIFO_CE_EN | \
++ VIP_MASTER_CNTL_TV_FIFO_CE_EN)
++#define VIP_MASTER_CNTL_OFF_INI (VIP_MASTER_CNTL_TV_ASYNC_RST | \
++ VIP_MASTER_CNTL_CRT_ASYNC_RST | \
++ VIP_MASTER_CNTL_RESTART_PHASE_FIX | \
++ VIP_MASTER_CNTL_TV_FIFO_ASYNC_RST | \
++ VIP_MASTER_CNTL_VIN_ASYNC_RST | \
++ VIP_MASTER_CNTL_AUD_ASYNC_RST | \
++ VIP_MASTER_CNTL_DVS_ASYNC_RST | \
++ VIP_MASTER_CNTL_CRT_FIFO_CE_EN | \
++ VIP_MASTER_CNTL_TV_FIFO_CE_EN)
++
++/*
++ * Value for VIP_LINEAR_GAIN_SETTINGS
++ */
++#define VIP_LINEAR_GAIN_SETTINGS_INI 0x01000100
++
++/*
++ * Value for VIP_GAIN_LIMIT_SETTINGS_INI
++ */
++#define VIP_GAIN_LIMIT_SETTINGS_INI 0x017f05ff
++
++/*
++ * Value for VIP_UPSAMP_AND_GAIN_CNTL
++ */
++#define VIP_UPSAMP_AND_GAIN_CNTL_INI 0x00000005
++
++/*
++ * RADEON_VCLK_ECP_CNTL
++ */
++#define RADEON_VCLK_ECP_CNTL_BYTECLK_POSTDIV 0x00030000
++#define RADEON_VCLK_ECP_CNTL_BYTECLK_NODIV 0x00000000
++
++/*
++ * RADEON_PLL_TEST_CNTL
++ */
++#define RADEON_PLL_TEST_CNTL_PLL_MASK_READ_B MASK_N_BIT(9)
++
++/*
++ * RADEON_DAC_CNTL
++ */
++#define RADEON_DAC_CNTL_DAC_TVO_EN MASK_N_BIT(10)
++
++#define RADEON_PPLL_POST3_DIV_BY_2 0x10000
++#define RADEON_PPLL_POST3_DIV_BY_3 0x40000
++#define RADEON_PPLL_FB3_DIV_SHIFT 0
++#define RADEON_PPLL_POST3_DIV_SHIFT 16
++
++/*
++ * RADEON_DISP_MERGE_CNTL
++ */
++//#define RADEON_DISP_MERGE_CNTL 0xd60
++#define RADEON_DISP_MERGE_CNTL_INI 0xffff0000
++
++/*
++ * RADEON_HTOTAL_CNTL
++ */
++#define RADEON_HTOTAL_CNTL_HTOT_PIX_SLIP_SHIFT 0
++#define RADEON_HTOTAL_CNTL_HTOT_CNTL_VGA_EN MASK_N_BIT(28)
++
++/*
++ * RADEON_DISP_OUTPUT_CNTL
++ */
++#define RADEON_DISP_TV_SOURCE MASK_N_BIT(16)
++#define RADEON_DISP_TV_MODE_MASK (3 << 17)
++#define RADEON_DISP_TV_MODE_888 (0 << 17)
++#define RADEON_DISP_TV_MODE_565 (1 << 17)
++#define RADEON_DISP_TV_YG_DITH_EN MASK_N_BIT(19)
++#define RADEON_DISP_TV_CBB_CRR_DITH_EN MASK_N_BIT(20)
++#define RADEON_DISP_TV_BIT_WIDTH MASK_N_BIT(21)
++#define RADEON_DISP_TV_SYNC_MODE_MASK (3 << 22)
++#define RADEON_DISP_TV_SYNC_COLOR_MASK (3 << 25)
++
++/*
++ * ERT registers
++ */
++#define TV_MASTER_CNTL 0x0800
++#define TV_MASTER_CNTL_TVCLK_ALWAYS_ON MASK_N_BIT(30)
++#define TV_MASTER_CNTL_TV_ON MASK_N_BIT(31)
++#define TV_MASTER_CNTL_ON_INI (VIP_MASTER_CNTL_VIN_ASYNC_RST | \
++ VIP_MASTER_CNTL_CRT_FIFO_CE_EN | \
++ VIP_MASTER_CNTL_TV_FIFO_CE_EN | \
++ TV_MASTER_CNTL_TVCLK_ALWAYS_ON | \
++ TV_MASTER_CNTL_TV_ON)
++#define TV_MASTER_CNTL_OFF_INI (VIP_MASTER_CNTL_TV_ASYNC_RST | \
++ VIP_MASTER_CNTL_CRT_ASYNC_RST | \
++ VIP_MASTER_CNTL_TV_FIFO_ASYNC_RST | \
++ VIP_MASTER_CNTL_CRT_FIFO_CE_EN | \
++ VIP_MASTER_CNTL_TV_FIFO_CE_EN | \
++ TV_MASTER_CNTL_TVCLK_ALWAYS_ON)
++#define TV_RGB_CNTL 0x0804
++#define TV_RGB_CNTL_INI 0x007b0004
++#define TV_SYNC_CNTL 0x0808
++#define TV_HTOTAL 0x080c
++#define TV_HDISP 0x0810
++#define TV_HSTART 0x0818
++#define TV_HCOUNT 0x081c
++#define TV_VTOTAL 0x0820
++#define TV_VDISP 0x0824
++#define TV_VCOUNT 0x0828
++#define TV_FTOTAL 0x082c
++#define TV_FCOUNT 0x0830
++#define TV_FRESTART 0x0834
++#define TV_HRESTART 0x0838
++#define TV_VRESTART 0x083c
++#define TV_HOST_READ_DATA 0x0840
++#define TV_HOST_WRITE_DATA 0x0844
++#define TV_HOST_RD_WT_CNTL 0x0848
++#define TV_VSCALER_CNTL1 0x084c
++#define TV_VSCALER_CNTL1_RESTART_FIELD MASK_N_BIT(29)
++#define TV_TIMING_CNTL 0x0850
++#define TV_VSCALER_CNTL2 0x0854
++#define TV_Y_FALL_CNTL 0x0858
++#define TV_Y_RISE_CNTL 0x085c
++#define TV_Y_SAWTOOTH_CNTL 0x0860
++#define TV_UPSAMP_AND_GAIN_CNTL 0x0864
++#define TV_GAIN_LIMIT_SETTINGS 0x0868
++#define TV_LINEAR_GAIN_SETTINGS 0x086c
++#define TV_MODULATOR_CNTL1 0x0870
++#define TV_MODULATOR_CNTL2 0x0874
++#define TV_PRE_DAC_MUX_CNTL 0x0888
++#define TV_DAC_CNTL 0x088c
++#define TV_DAC_CNTL_NBLANK MASK_N_BIT(0)
++#define TV_DAC_CNTL_NHOLD MASK_N_BIT(1)
++#define TV_DAC_CNTL_BGSLEEP MASK_N_BIT(6)
++#define TV_DAC_CNTL_RDACPD MASK_N_BIT(24)
++#define TV_DAC_CNTL_GDACPD MASK_N_BIT(25)
++#define TV_DAC_CNTL_BDACPD MASK_N_BIT(26)
++#define TV_CRC_CNTL 0x0890
++#define TV_UV_ADR 0x08ac
++
++/*
++ * ERT PLL registers
++ */
++#define TV_PLL_CNTL 0x21
++#define TV_PLL_CNTL1 0x22
++#define TV_PLL_CNTL1_TVPLL_RESET MASK_N_BIT(1)
++#define TV_PLL_CNTL1_TVPLL_SLEEP MASK_N_BIT(3)
++#define TV_PLL_CNTL1_TVPDC_SHIFT 14
++#define TV_PLL_CNTL1_TVPDC_MASK (3 << 14)
++#define TV_PLL_CNTL1_TVCLK_SRC_SEL MASK_N_BIT(30)
++
++/*
++ * Constant upsampler coefficients
++ */
++static
++const
++CARD32 upsamplerCoeffs[] =
++{
++ 0x3f010000,
++ 0x7b008002,
++ 0x00003f01,
++ 0x341b7405,
++ 0x7f3a7617,
++ 0x00003d04,
++ 0x2d296c0a,
++ 0x0e316c2c,
++ 0x00003e7d,
++ 0x2d1f7503,
++ 0x2927643b,
++ 0x0000056f,
++ 0x29257205,
++ 0x25295050,
++ 0x00000572
++};
++#define N_UPSAMPLER_COEFFS (sizeof(upsamplerCoeffs) / sizeof(upsamplerCoeffs[ 0 ]))
++
++/*
++ * Maximum length of horizontal/vertical code timing tables for state storage
++ */
++#define MAX_H_CODE_TIMING_LEN 32
++#define MAX_V_CODE_TIMING_LEN 32
++
++/*
++ * Type of VIP bus
++ */
++#define VIP_TYPE "ATI VIP BUS"
++
++/*
++ * Limits of h/v positions (hPos & vPos in TheaterOutRec)
++ */
++#define MAX_H_POSITION 5 /* Range: [-5..5], negative is on the left, 0 is default, positive is on the right */
++#define MAX_V_POSITION 5 /* Range: [-5..5], negative is up, 0 is default, positive is down */
++
++/*
++ * Unit for hPos (in TV clock periods)
++ */
++#define H_POS_UNIT 10
++
++/*
++ * Indexes in h. code timing table for horizontal line position adjustment
++ */
++#define H_TABLE_POS1 6
++#define H_TABLE_POS2 8
++
++/*
++ * Limits of hor. size (hSize in TheaterOutRec)
++ */
++#define MAX_H_SIZE 5 /* Range: [-5..5], negative is smaller, positive is larger */
++
++/**********************************************************************
++ *
++ * TimingTableEl
++ *
++ * Elements of H/V code timing tables
++ *
++ **********************************************************************/
++
++typedef CARD16 TimingTableEl; /* Bits 0 to 13 only are actually used */
++
++/**********************************************************************
++ *
++ * ModeConstants
++ *
++ * Storage of constants related to a single video mode
++ *
++ **********************************************************************/
++
++typedef struct
++{
++ CARD16 horResolution;
++ CARD16 verResolution;
++ TVStd standard;
++ CARD16 horTotal;
++ CARD16 verTotal;
++ CARD16 horStart;
++ CARD16 horSyncStart;
++ CARD16 verSyncStart;
++ unsigned defRestart;
++ CARD32 vScalerCntl1;
++ CARD32 yRiseCntl;
++ CARD32 ySawtoothCntl;
++ CARD16 crtcPLL_N;
++ CARD8 crtcPLL_M;
++ Bool crtcPLL_divBy2;
++ CARD8 crtcPLL_byteClkDiv;
++ CARD8 crtcPLL_postDiv;
++ Bool use888RGB; /* False: RGB data is 565 packed (2 bytes/pixel) */
++ /* True : RGB data is 888 packed (3 bytes/pixel) */
++ unsigned pixToTV;
++ CARD8 byteClkDelay;
++ CARD32 tvoDataDelayA;
++ CARD32 tvoDataDelayB;
++ const TimingTableEl *horTimingTable;
++ const TimingTableEl *verTimingTable;
++} ModeConstants;
++
++/**********************************************************************
++ *
++ * TheaterState
++ *
++ * Storage of RT state
++ *
++ **********************************************************************/
++
++typedef struct
++{
++ CARD32 clkout_cntl;
++ CARD32 clock_sel_cntl;
++ CARD32 crc_cntl;
++ CARD32 crt_pll_cntl;
++ CARD32 dfrestart;
++ CARD32 dhrestart;
++ CARD32 dvrestart;
++ CARD32 frame_lock_cntl;
++ CARD32 gain_limit_settings;
++ CARD32 hdisp;
++ CARD32 hstart;
++ CARD32 htotal;
++ CARD32 hw_debug;
++ CARD32 linear_gain_settings;
++ CARD32 master_cntl;
++ CARD32 modulator_cntl1;
++ CARD32 modulator_cntl2;
++ CARD32 pll_cntl0;
++ CARD32 pll_test_cntl;
++ CARD32 pre_dac_mux_cntl;
++ CARD32 rgb_cntl;
++ CARD32 sync_cntl;
++ CARD32 sync_lock_cntl;
++ CARD32 sync_size;
++ CARD32 timing_cntl;
++ CARD32 tvo_data_delay_a;
++ CARD32 tvo_data_delay_b;
++ CARD32 tvo_sync_pat_expect;
++ CARD32 tvo_sync_threshold;
++ CARD32 tv_dac_cntl;
++ CARD32 tv_pll_cntl;
++ CARD32 tv_pll_fine_cntl;
++ CARD32 upsamp_and_gain_cntl;
++ CARD32 upsamp_coeffs[ N_UPSAMPLER_COEFFS ];
++ CARD32 uv_adr;
++ CARD32 vdisp;
++ CARD32 vftotal;
++ CARD32 vscaler_cntl1;
++ CARD32 vscaler_cntl2;
++ CARD32 vtotal;
++ CARD32 y_fall_cntl;
++ CARD32 y_rise_cntl;
++ CARD32 y_saw_tooth_cntl;
++ CARD32 disp_merge_cntl;
++
++ TimingTableEl h_code_timing[ MAX_H_CODE_TIMING_LEN ];
++ TimingTableEl v_code_timing[ MAX_V_CODE_TIMING_LEN ];
++} TheaterState , *TheaterStatePtr;
++
++/**********************************************************************
++ *
++ * TheaterOutRec , TheaterOutPtr
++ *
++ * Global state of module
++ *
++ **********************************************************************/
++
++typedef struct TheaterOut
++{
++ GENERIC_BUS_Ptr VIP;
++ unsigned char *MMIO;
++
++ int theatre_num; /* Negative when driving an ERT */
++ /* Positive or null: index of RT on VIP bus */
++
++ TVStd standard;
++ Bool compatibleMode;
++
++ const ModeConstants *currentMode;
++
++ int hPos;
++ int vPos;
++ int hSize;
++
++ TheaterState savedState;
++ TheaterState modeState;
++} TheaterOutRec;
++
++/**********************************************************************
++ *
++ * TVConstants
++ *
++ * Constants that depend on tv standard only
++ *
++ **********************************************************************/
++
++typedef struct
++{
++ CARD8 tvPLL_M;
++ CARD16 tvPLL_N;
++ CARD8 tvPLL_postDiv;
++ CARD32 tvClockT; /* Period of TV clock (unit = 100 psec) */
++ CARD32 modulatorCntl1;
++ CARD32 modulatorCntl2;
++ CARD32 vip_tvDAC_Cntl;
++ CARD32 ert_tvDAC_Cntl;
++ CARD32 vftotal;
++ unsigned linesFrame;
++ unsigned zeroHSize; /* Length of the picture part of a hor. line for hSize = 0 (unit = 100 psec) */
++ unsigned hSizeUnit; /* Value of hSize = 1 (unit = 100 psec) */
++} TVConstants;
++
++/**********************************************************************
++ *
++ * tvStdConsts
++ *
++ * Table of constants for tv standards (index is a TVStd)
++ *
++ **********************************************************************/
++
++static
++const
++TVConstants tvStdConsts[] =
++ {
++ /*
++ * NTSC
++ */
++ {
++ 22, /* tvPLL_M */
++ 175, /* tvPLL_N */
++ 5, /* tvPLL_postDiv */
++ 233, /* tvClockT */
++ 0x60bb468c, /* modulatorCntl1 */
++ 0x00000191, /* modulatorCntl2 */
++ 0x00000113, /* vip_tvDAC_Cntl */
++ 0x00680113, /* ert_tvDAC_Cntl */
++ 1, /* vftotal */
++ 525, /* linesFrame */
++ 479166, /* zeroHSize */
++ 9478 /* hSizeUnit */
++ },
++ /*
++ * PAL
++ */
++ {
++ 113, /* tvPLL_M */
++ 668, /* tvPLL_N */
++ 3, /* tvPLL_postDiv */
++ 188, /* tvClockT */
++ 0x60bb3bcc, /* modulatorCntl1 */
++ 0x003e01b2, /* modulatorCntl2 */
++ 0x00000013, /* vip_tvDAC_Cntl */
++ 0x00680013, /* ert_tvDAC_Cntl */
++ 3, /* vftotal */
++ 625, /* linesFrame */
++ 473200, /* zeroHSize */
++ 9360 /* hSizeUnit */
++ }
++ };
++
++/**********************************************************************
++ *
++ * availableModes
++ *
++ * Table of all allowed modes for tv output
++ *
++ **********************************************************************/
++
++static
++const
++TimingTableEl horTimingNTSC_BIOS[] =
++ {
++ 0x0007,
++ 0x003f,
++ 0x0263,
++ 0x0a24,
++ 0x2a6b,
++ 0x0a36,
++ 0x126d, /* H_TABLE_POS1 */
++ 0x1bfe,
++ 0x1a8f, /* H_TABLE_POS2 */
++ 0x1ec7,
++ 0x3863,
++ 0x1bfe,
++ 0x1bfe,
++ 0x1a2a,
++ 0x1e95,
++ 0x0e31,
++ 0x201b,
++ 0
++ };
++
++static
++const
++TimingTableEl verTimingNTSC_BIOS[] =
++ {
++ 0x2001,
++ 0x200d,
++ 0x1006,
++ 0x0c06,
++ 0x1006,
++ 0x1818,
++ 0x21e3,
++ 0x1006,
++ 0x0c06,
++ 0x1006,
++ 0x1817,
++ 0x21d4,
++ 0x0002,
++ 0
++ };
++
++static
++const
++TimingTableEl horTimingPAL_BIOS[] =
++ {
++ 0x0007,
++ 0x0058,
++ 0x027c,
++ 0x0a31,
++ 0x2a77,
++ 0x0a95,
++ 0x124f, /* H_TABLE_POS1 */
++ 0x1bfe,
++ 0x1b22, /* H_TABLE_POS2 */
++ 0x1ef9,
++ 0x387c,
++ 0x1bfe,
++ 0x1bfe,
++ 0x1b31,
++ 0x1eb5,
++ 0x0e43,
++ 0x201b,
++ 0
++ };
++
++static
++const
++TimingTableEl verTimingPAL_BIOS[] =
++ {
++ 0x2001,
++ 0x200c,
++ 0x1005,
++ 0x0c05,
++ 0x1005,
++ 0x1401,
++ 0x1821,
++ 0x2240,
++ 0x1005,
++ 0x0c05,
++ 0x1005,
++ 0x1401,
++ 0x1822,
++ 0x2230,
++ 0x0002,
++ 0
++ };
++
++static
++const
++ModeConstants availableModes[] =
++ {
++ {
++ 800, /* horResolution */
++ 600, /* verResolution */
++ TV_STD_NTSC, /* standard */
++ 990, /* horTotal */
++ 740, /* verTotal */
++ 813, /* horStart */
++ 824, /* horSyncStart */
++ 632, /* verSyncStart */
++ 625592, /* defRestart */
++ 0x0900b46b, /* vScalerCntl1 */
++ 0x00012c00, /* yRiseCntl */
++ 0x10002d1a, /* ySawtoothCntl */
++ 592, /* crtcPLL_N */
++ 91, /* crtcPLL_M */
++ TRUE, /* crtcPLL_divBy2 */
++ 0, /* crtcPLL_byteClkDiv */
++ 4, /* crtcPLL_postDiv */
++ FALSE, /* use888RGB */
++ 1022, /* pixToTV */
++ 1, /* byteClkDelay */
++ 0x0a0b0907, /* tvoDataDelayA */
++ 0x060a090a, /* tvoDataDelayB */
++ horTimingNTSC_BIOS,/* horTimingTable */
++ verTimingNTSC_BIOS/* verTimingTable */
++ },
++ {
++ 800, /* horResolution */
++ 600, /* verResolution */
++ TV_STD_PAL, /* standard */
++ 1144, /* horTotal */
++ 706, /* verTotal */
++ 812, /* horStart */
++ 824, /* horSyncStart */
++ 669, /* verSyncStart */
++ 696700, /* defRestart */
++ 0x09009097, /* vScalerCntl1 */
++ 0x000007da, /* yRiseCntl */
++ 0x10002426, /* ySawtoothCntl */
++ 1382, /* crtcPLL_N */
++ 231, /* crtcPLL_M */
++ TRUE, /* crtcPLL_divBy2 */
++ 0, /* crtcPLL_byteClkDiv */
++ 4, /* crtcPLL_postDiv */
++ FALSE, /* use888RGB */
++ 759, /* pixToTV */
++ 1, /* byteClkDelay */
++ 0x0a0b0907, /* tvoDataDelayA */
++ 0x060a090a, /* tvoDataDelayB */
++ horTimingPAL_BIOS,/* horTimingTable */
++ verTimingPAL_BIOS /* verTimingTable */
++ }
++ };
++
++#define N_AVAILABLE_MODES (sizeof(availableModes) / sizeof(availableModes[ 0 ]))
++
++/**********************************************************************
++ *
++ * theatre_read
++ *
++ * Read from a RT register
++ *
++ **********************************************************************/
++
++static
++Bool
++theatre_read(
++ TheaterOutPtr t,
++ CARD32 reg,
++ CARD32 *data
++ )
++{
++ if (t->theatre_num < 0)
++ return FALSE;
++
++ return t->VIP->read(t->VIP, ((t->theatre_num & 0x3) << 14) | reg , 4 , (CARD8*)data);
++}
++
++/**********************************************************************
++ *
++ * theatre_write
++ *
++ * Write to a RT register
++ *
++ **********************************************************************/
++
++static
++Bool
++theatre_write(
++ TheaterOutPtr t,
++ CARD32 reg,
++ CARD32 data
++ )
++{
++ if (t->theatre_num < 0)
++ return FALSE;
++
++ return t->VIP->write(t->VIP , ((t->theatre_num & 0x03) << 14) | reg , 4 , (CARD8*)&data);
++}
++
++/**********************************************************************
++ *
++ * ert_read
++ *
++ * Read from an ERT register
++ *
++ **********************************************************************/
++
++static
++void
++ert_read(
++ TheaterOutPtr t,
++ CARD32 reg,
++ CARD32 *data
++ )
++{
++ unsigned char *RADEONMMIO = t->MMIO;
++
++ if (t->theatre_num < 0)
++ *data = INREG(reg);
++}
++
++/**********************************************************************
++ *
++ * ert_write
++ *
++ * Write to an ERT register
++ *
++ **********************************************************************/
++static
++void
++ert_write(
++ TheaterOutPtr t,
++ CARD32 reg,
++ CARD32 data
++ )
++{
++ unsigned char *RADEONMMIO = t->MMIO;
++
++ if (t->theatre_num < 0)
++ OUTREG(reg , data);
++}
++
++/**********************************************************************
++ *
++ * waitPLL_lock
++ *
++ * Wait for PLLs to lock
++ *
++ **********************************************************************/
++
++static
++void
++waitPLL_lock(
++ TheaterOutPtr t,
++ ScrnInfoPtr pScrn,
++ unsigned nTests,
++ unsigned nWaitLoops,
++ unsigned cntThreshold
++ )
++{
++ unsigned char *RADEONMMIO = t->MMIO;
++ CARD32 savePLLTest;
++ unsigned i;
++ unsigned j;
++
++ OUTREG(RADEON_TEST_DEBUG_MUX , (INREG(RADEON_TEST_DEBUG_MUX) & 0xffff60ff) | 0x100);
++
++ savePLLTest = INPLL(pScrn , RADEON_PLL_TEST_CNTL);
++
++ OUTPLL(pScrn , RADEON_PLL_TEST_CNTL , savePLLTest & ~RADEON_PLL_TEST_CNTL_PLL_MASK_READ_B);
++
++ OUTREG8(RADEON_CLOCK_CNTL_INDEX , RADEON_PLL_TEST_CNTL);
++
++ for (i = 0; i < nTests; i++)
++ {
++ OUTREG8(RADEON_CLOCK_CNTL_DATA + 3 , 0);
++
++ for (j = 0; j < nWaitLoops; j++)
++ if (INREG8(RADEON_CLOCK_CNTL_DATA + 3) >= cntThreshold)
++ break;
++ }
++
++ OUTPLL(pScrn , RADEON_PLL_TEST_CNTL , savePLLTest);
++
++ OUTREG(RADEON_TEST_DEBUG_MUX , INREG(RADEON_TEST_DEBUG_MUX) & 0xffffe0ff);
++}
++
++/**********************************************************************
++ *
++ * restorePLL
++ *
++ * Set PLLs for CRTC pixel clock & TV color burst generation
++ *
++ **********************************************************************/
++
++static
++void
++restorePLL(
++ TheaterOutPtr t,
++ ScrnInfoPtr pScrn,
++ TheaterStatePtr restore
++ )
++{
++ unsigned i;
++
++ /*
++ * Set TV PLL
++ */
++ RTTRACE(("restorePLL: TV_PLL_CNTL = %08x\n" , restore->tv_pll_cntl));
++ theatre_write(t , VIP_TV_PLL_CNTL , restore->tv_pll_cntl);
++ theatre_write(t , VIP_TV_PLL_FINE_CNTL , restore->tv_pll_fine_cntl);
++
++ /*
++ * Set CRT PLL (for byte and pixel clock generation)
++ */
++ RTTRACE(("restorePLL: CRT_PLL_CNTL = %08x\n" , restore->crt_pll_cntl));
++ theatre_write(t , VIP_CRT_PLL_CNTL , restore->crt_pll_cntl);
++
++ theatre_write(t , VIP_PLL_CNTL0 , restore->pll_cntl0);
++
++ theatre_write(t , VIP_PLL_TEST_CNTL , restore->pll_test_cntl);
++
++ /*
++ * Set coefficients for upsampler
++ */
++ for (i = 0; i < N_UPSAMPLER_COEFFS; i++)
++ theatre_write(t , VIP_UPSAMP_COEFF0_0 + i * 4 , restore->upsamp_coeffs[ i ]);
++
++ /*
++ * Waiting for PLLs to settle is skipped when restoring a state with stopped PLLs
++ */
++ if ((~restore->pll_cntl0 & (VIP_PLL_CNTL0_TVSLEEPB | VIP_PLL_CNTL0_CRTSLEEPB)) == 0)
++ {
++ waitPLL_lock(t , pScrn , 3000 , 160 , 27);
++
++ theatre_write(t , VIP_CLOCK_SEL_CNTL , restore->clock_sel_cntl & ~VIP_CLOCK_SEL_CNTL_REGCLK);
++
++ waitPLL_lock(t , pScrn , 3000 , 160 , 27);
++ }
++
++ RTTRACE(("restorePLL: CLOCK_SEL_CNTL = %08x\n" , restore->clock_sel_cntl));
++ theatre_write(t , VIP_CLOCK_SEL_CNTL , restore->clock_sel_cntl);
++
++ theatre_write(t , VIP_CLKOUT_CNTL , restore->clkout_cntl);
++}
++
++/**********************************************************************
++ *
++ * restoreTVO_SYNC
++ *
++ * Set TVO_SYNC_* registers
++ *
++ **********************************************************************/
++
++static
++void
++restoreTVO_SYNC(
++ TheaterOutPtr t,
++ TheaterStatePtr restore
++ )
++{
++ theatre_write(t , VIP_SYNC_LOCK_CNTL , restore->sync_lock_cntl);
++ theatre_write(t , VIP_TVO_SYNC_THRESHOLD , restore->tvo_sync_threshold);
++ theatre_write(t , VIP_TVO_SYNC_PAT_EXPECT , restore->tvo_sync_pat_expect);
++}
++
++/**********************************************************************
++ *
++ * restoreTVO_DataDelay
++ *
++ * Set TVO_DATA_DELAY_* registers
++ *
++ **********************************************************************/
++
++static
++void
++restoreTVO_DataDelay(
++ TheaterOutPtr t,
++ TheaterStatePtr restore
++ )
++{
++ theatre_write(t , VIP_TVO_DATA_DELAY_A , restore->tvo_data_delay_a);
++ theatre_write(t , VIP_TVO_DATA_DELAY_B , restore->tvo_data_delay_b);
++}
++
++/**********************************************************************
++ *
++ * restoreRT_HV
++ *
++ * Set RT horizontal/vertical settings
++ *
++ **********************************************************************/
++
++static
++void
++restoreRT_HV(
++ TheaterOutPtr t,
++ TheaterStatePtr restore
++ )
++{
++ theatre_write(t , VIP_RGB_CNTL , restore->rgb_cntl);
++
++ theatre_write(t , VIP_HTOTAL , restore->htotal);
++ theatre_write(t , VIP_HDISP , restore->hdisp);
++ theatre_write(t , VIP_HSTART , restore->hstart);
++
++ theatre_write(t , VIP_VTOTAL , restore->vtotal);
++ theatre_write(t , VIP_VDISP , restore->vdisp);
++
++ theatre_write(t , VIP_VFTOTAL , restore->vftotal);
++
++ theatre_write(t , VIP_SYNC_SIZE , restore->sync_size);
++
++ theatre_write(t , VIP_VSCALER_CNTL1 , restore->vscaler_cntl1);
++ theatre_write(t , VIP_VSCALER_CNTL2 , restore->vscaler_cntl2);
++
++ theatre_write(t , VIP_Y_FALL_CNTL , restore->y_fall_cntl);
++ theatre_write(t , VIP_Y_RISE_CNTL , restore->y_rise_cntl);
++ theatre_write(t , VIP_Y_SAW_TOOTH_CNTL , restore->y_saw_tooth_cntl);
++}
++
++/**********************************************************************
++ *
++ * restoreRestarts
++ *
++ * Set RT D*RESTART registers
++ *
++ **********************************************************************/
++
++static
++void
++restoreRestarts(
++ TheaterOutPtr t,
++ TheaterStatePtr restore
++ )
++{
++ theatre_write(t , VIP_DFRESTART , restore->dfrestart);
++ theatre_write(t , VIP_DHRESTART , restore->dhrestart);
++ theatre_write(t , VIP_DVRESTART , restore->dvrestart);
++}
++
++/**********************************************************************
++ *
++ * writeFIFO
++ *
++ * Write to RT FIFO RAM
++ *
++ **********************************************************************/
++
++static
++void
++writeFIFO(
++ TheaterOutPtr t,
++ CARD16 addr,
++ CARD32 value
++ )
++{
++ CARD32 tmp;
++
++ if (t->theatre_num >= 0)
++ {
++ theatre_write(t , VIP_HOST_WRITE_DATA , value);
++
++ theatre_write(t , VIP_HOST_RD_WT_CNTL , addr | VIP_HOST_RD_WT_CNTL_WT);
++
++ do
++ {
++ if (!theatre_read(t , VIP_HOST_RD_WT_CNTL , &tmp))
++ break;
++ }
++ while ((tmp & VIP_HOST_RD_WT_CNTL_WT_ACK) == 0);
++
++ theatre_write(t , VIP_HOST_RD_WT_CNTL , 0);
++ }
++ else
++ {
++ ert_write(t , TV_HOST_WRITE_DATA , value);
++
++ ert_write(t , TV_HOST_RD_WT_CNTL , addr | VIP_HOST_RD_WT_CNTL_WT);
++
++ do
++ {
++ ert_read(t , TV_HOST_RD_WT_CNTL , &tmp);
++ }
++ while ((tmp & VIP_HOST_RD_WT_CNTL_WT_ACK) == 0);
++
++ ert_write(t , TV_HOST_RD_WT_CNTL , 0);
++ }
++}
++
++/**********************************************************************
++ *
++ * readFIFO
++ *
++ * Read from RT FIFO RAM
++ *
++ **********************************************************************/
++
++static
++void
++readFIFO(
++ TheaterOutPtr t,
++ CARD16 addr,
++ CARD32 *value
++ )
++{
++ CARD32 tmp;
++
++ if (t->theatre_num >= 0)
++ {
++ theatre_write(t , VIP_HOST_RD_WT_CNTL , addr | VIP_HOST_RD_WT_CNTL_RD);
++
++ do
++ {
++ if (!theatre_read(t , VIP_HOST_RD_WT_CNTL , &tmp))
++ break;
++ }
++ while ((tmp & VIP_HOST_RD_WT_CNTL_RD_ACK) == 0);
++
++ theatre_write(t , VIP_HOST_RD_WT_CNTL , 0);
++
++ theatre_read(t , VIP_HOST_READ_DATA , value);
++ }
++ else
++ {
++ ert_write(t , TV_HOST_RD_WT_CNTL , addr | VIP_HOST_RD_WT_CNTL_RD);
++
++ do
++ {
++ ert_read(t , TV_HOST_RD_WT_CNTL , &tmp);
++ }
++ while ((tmp & VIP_HOST_RD_WT_CNTL_RD_ACK) == 0);
++
++ ert_write(t , TV_HOST_RD_WT_CNTL , 0);
++
++ ert_read(t , TV_HOST_READ_DATA , value);
++ }
++}
++
++/**********************************************************************
++ *
++ * getTimingTablesAddr
++ *
++ * Get FIFO addresses of horizontal & vertical code timing tables from
++ * settings of uv_adr register.
++ *
++ **********************************************************************/
++
++static
++void
++getTimingTablesAddr(
++ CARD32 uv_adr,
++ Bool isERT,
++ CARD16 *hTable,
++ CARD16 *vTable
++ )
++{
++ switch ((uv_adr & VIP_UV_ADR_HCODE_TABLE_SEL) >> VIP_UV_ADR_HCODE_TABLE_SEL_SHIFT)
++ {
++ case 0:
++ *hTable = isERT ? MAX_FIFO_ADDR_ERT : MAX_FIFO_ADDR_RT;
++ break;
++
++ case 1:
++ *hTable = ((uv_adr & VIP_UV_ADR_TABLE1_BOT_ADR) >> VIP_UV_ADR_TABLE1_BOT_ADR_SHIFT) * 2;
++ break;
++
++ case 2:
++ *hTable = ((uv_adr & VIP_UV_ADR_TABLE3_TOP_ADR) >> VIP_UV_ADR_TABLE3_TOP_ADR_SHIFT) * 2;
++ break;
++
++ default:
++ /*
++ * Of course, this should never happen
++ */
++ *hTable = 0;
++ break;
++ }
++
++ switch ((uv_adr & VIP_UV_ADR_VCODE_TABLE_SEL) >> VIP_UV_ADR_VCODE_TABLE_SEL_SHIFT)
++ {
++ case 0:
++ *vTable = ((uv_adr & VIP_UV_ADR_MAX_UV_ADR) >> VIP_UV_ADR_MAX_UV_ADR_SHIFT) * 2 + 1;
++ break;
++
++ case 1:
++ *vTable = ((uv_adr & VIP_UV_ADR_TABLE1_BOT_ADR) >> VIP_UV_ADR_TABLE1_BOT_ADR_SHIFT) * 2 + 1;
++ break;
++
++ case 2:
++ *vTable = ((uv_adr & VIP_UV_ADR_TABLE3_TOP_ADR) >> VIP_UV_ADR_TABLE3_TOP_ADR_SHIFT) * 2 + 1;
++ break;
++
++ default:
++ /*
++ * Of course, this should never happen
++ */
++ *vTable = 0;
++ break;
++ }
++}
++
++/**********************************************************************
++ *
++ * saveTimingTables
++ *
++ * Save horizontal/vertical timing code tables
++ *
++ **********************************************************************/
++static
++void
++saveTimingTables(
++ TheaterOutPtr t,
++ TheaterStatePtr save
++ )
++{
++ CARD16 hTable;
++ CARD16 vTable;
++ CARD32 tmp;
++ unsigned i;
++
++ if (t->theatre_num >= 0)
++ {
++ theatre_read(t , VIP_UV_ADR , &save->uv_adr);
++ getTimingTablesAddr(save->uv_adr , FALSE , &hTable , &vTable);
++ }
++ else
++ {
++ ert_read(t , TV_UV_ADR , &save->uv_adr);
++ getTimingTablesAddr(save->uv_adr , TRUE , &hTable , &vTable);
++ }
++
++ /*
++ * Reset FIFO arbiter in order to be able to access FIFO RAM
++ */
++ if (t->theatre_num >= 0)
++ {
++ theatre_write(t ,
++ VIP_MASTER_CNTL ,
++ save->master_cntl |
++ VIP_MASTER_CNTL_CRT_ASYNC_RST |
++ VIP_MASTER_CNTL_TV_FIFO_ASYNC_RST |
++ VIP_MASTER_CNTL_TV_ASYNC_RST);
++ theatre_write(t ,
++ VIP_MASTER_CNTL ,
++ save->master_cntl |
++ VIP_MASTER_CNTL_TV_ASYNC_RST |
++ VIP_MASTER_CNTL_CRT_ASYNC_RST);
++ }
++ else
++ {
++ ert_write(t ,
++ TV_MASTER_CNTL ,
++ save->master_cntl | TV_MASTER_CNTL_TV_ON);
++ }
++
++ RTTRACE(("saveTimingTables: reading timing tables\n"));
++
++ for (i = 0; i < MAX_H_CODE_TIMING_LEN; i += 2)
++ {
++ readFIFO(t , hTable-- , &tmp);
++ save->h_code_timing[ i ] = (CARD16)((tmp >> 14) & 0x3fff);
++ save->h_code_timing[ i + 1 ] = (CARD16)(tmp & 0x3fff);
++
++ if (save->h_code_timing[ i ] == 0 || save->h_code_timing[ i + 1 ] == 0)
++ break;
++ }
++
++ for (i = 0; i < MAX_V_CODE_TIMING_LEN; i += 2)
++ {
++ readFIFO(t , vTable++ , &tmp);
++ save->v_code_timing[ i ] = (CARD16)(tmp & 0x3fff);
++ save->v_code_timing[ i + 1 ] = (CARD16)((tmp >> 14) & 0x3fff);
++
++ if (save->v_code_timing[ i ] == 0 || save->v_code_timing[ i + 1 ] == 0)
++ break;
++ }
++}
++
++/**********************************************************************
++ *
++ * restoreTimingTables
++ *
++ * Load horizontal/vertical timing code tables
++ *
++ **********************************************************************/
++
++static
++void
++restoreTimingTables(
++ TheaterOutPtr t,
++ TheaterStatePtr restore
++ )
++{
++ CARD16 hTable;
++ CARD16 vTable;
++ CARD32 tmp;
++ unsigned i;
++
++ if (t->theatre_num >= 0)
++ {
++ theatre_write(t , VIP_UV_ADR , restore->uv_adr);
++ getTimingTablesAddr(restore->uv_adr , FALSE , &hTable , &vTable);
++ }
++ else
++ {
++ ert_write(t , TV_UV_ADR , restore->uv_adr);
++ getTimingTablesAddr(restore->uv_adr , TRUE , &hTable , &vTable);
++ }
++
++ for (i = 0; i < MAX_H_CODE_TIMING_LEN; i += 2 , hTable--)
++ {
++ tmp = ((CARD32)restore->h_code_timing[ i ] << 14) | ((CARD32)restore->h_code_timing[ i + 1 ]);
++ writeFIFO(t , hTable , tmp);
++ if (restore->h_code_timing[ i ] == 0 || restore->h_code_timing[ i + 1 ] == 0)
++ break;
++ }
++
++ for (i = 0; i < MAX_V_CODE_TIMING_LEN; i += 2 , vTable++)
++ {
++ tmp = ((CARD32)restore->v_code_timing[ i + 1 ] << 14) | ((CARD32)restore->v_code_timing[ i ]);
++ writeFIFO(t , vTable , tmp);
++ if (restore->v_code_timing[ i ] == 0 || restore->v_code_timing[ i + 1 ] == 0)
++ break;
++ }
++}
++
++/**********************************************************************
++ *
++ * restoreOutputStd
++ *
++ * Set tv standard & output muxes
++ *
++ **********************************************************************/
++
++static
++void
++restoreOutputStd(
++ TheaterOutPtr t,
++ TheaterStatePtr restore
++ )
++{
++ theatre_write(t , VIP_SYNC_CNTL , restore->sync_cntl);
++
++ theatre_write(t , VIP_TIMING_CNTL , restore->timing_cntl);
++
++ theatre_write(t , VIP_MODULATOR_CNTL1 , restore->modulator_cntl1);
++ theatre_write(t , VIP_MODULATOR_CNTL2 , restore->modulator_cntl2);
++
++ theatre_write(t , VIP_PRE_DAC_MUX_CNTL , restore->pre_dac_mux_cntl);
++
++ theatre_write(t , VIP_CRC_CNTL , restore->crc_cntl);
++
++ theatre_write(t , VIP_FRAME_LOCK_CNTL , restore->frame_lock_cntl);
++
++ theatre_write(t , VIP_HW_DEBUG , restore->hw_debug);
++}
++
++/**********************************************************************
++ *
++ * enableTV_DAC
++ *
++ * Enable/disable tv output DAC
++ *
++ **********************************************************************/
++
++static
++void
++enableTV_DAC(
++ TheaterOutPtr t,
++ Bool enable
++ )
++{
++ CARD32 tmp;
++
++ theatre_read(t , VIP_TV_DAC_CNTL , &tmp);
++
++ if (enable)
++ {
++ tmp |= VIP_TV_DAC_CNTL_NBLANK;
++ tmp &= ~VIP_TV_DAC_CNTL_DASLEEP;
++ tmp &= ~VIP_TV_DAC_CNTL_BGSLEEP;
++ }
++ else
++ {
++ tmp &= ~VIP_TV_DAC_CNTL_NBLANK;
++ tmp |= VIP_TV_DAC_CNTL_DASLEEP;
++ tmp |= VIP_TV_DAC_CNTL_BGSLEEP;
++ }
++
++ theatre_write(t , VIP_TV_DAC_CNTL , tmp);
++}
++
++/**********************************************************************
++ *
++ * ERT_RestorePLL
++ *
++ * Set ERT PLLs
++ *
++ **********************************************************************/
++static
++void
++ERT_RestorePLL(
++ TheaterOutPtr t,
++ ScrnInfoPtr pScrn,
++ TheaterStatePtr restore
++ )
++{
++ unsigned char *RADEONMMIO = t->MMIO;
++
++ OUTPLLP(pScrn , TV_PLL_CNTL1 , 0 , ~TV_PLL_CNTL1_TVCLK_SRC_SEL);
++ OUTPLL(pScrn , TV_PLL_CNTL , restore->tv_pll_cntl);
++ OUTPLLP(pScrn , TV_PLL_CNTL1 , TV_PLL_CNTL1_TVPLL_RESET , ~TV_PLL_CNTL1_TVPLL_RESET);
++
++ waitPLL_lock(t , pScrn , 200 , 800 , 135);
++
++ OUTPLLP(pScrn , TV_PLL_CNTL1 , 0 , ~TV_PLL_CNTL1_TVPLL_RESET);
++
++ waitPLL_lock(t , pScrn , 300 , 160 , 27);
++ waitPLL_lock(t , pScrn , 200 , 800 , 135);
++
++ OUTPLLP(pScrn , TV_PLL_CNTL1 , 0 , ~0xf);
++ OUTPLLP(pScrn , TV_PLL_CNTL1 , TV_PLL_CNTL1_TVCLK_SRC_SEL , ~TV_PLL_CNTL1_TVCLK_SRC_SEL);
++
++ OUTPLLP(pScrn , TV_PLL_CNTL1 , (1 << TV_PLL_CNTL1_TVPDC_SHIFT) , ~TV_PLL_CNTL1_TVPDC_MASK);
++ OUTPLLP(pScrn , TV_PLL_CNTL1 , 0 , ~TV_PLL_CNTL1_TVPLL_SLEEP);
++}
++
++/**********************************************************************
++ *
++ * ERT_RestoreHV
++ *
++ * Set ERT horizontal/vertical settings
++ *
++ **********************************************************************/
++
++static
++void
++ERT_RestoreHV(
++ TheaterOutPtr t,
++ TheaterStatePtr restore
++ )
++{
++ ert_write(t , TV_RGB_CNTL , restore->rgb_cntl);
++
++ ert_write(t , TV_HTOTAL , restore->htotal);
++ ert_write(t , TV_HDISP , restore->hdisp);
++ ert_write(t , TV_HSTART , restore->hstart);
++
++ ert_write(t , TV_VTOTAL , restore->vtotal);
++ ert_write(t , TV_VDISP , restore->vdisp);
++
++ ert_write(t , TV_FTOTAL , restore->vftotal);
++
++ ert_write(t , TV_VSCALER_CNTL1 , restore->vscaler_cntl1);
++ ert_write(t , TV_VSCALER_CNTL2 , restore->vscaler_cntl2);
++
++ ert_write(t , TV_Y_FALL_CNTL , restore->y_fall_cntl);
++ ert_write(t , TV_Y_RISE_CNTL , restore->y_rise_cntl);
++ ert_write(t , TV_Y_SAWTOOTH_CNTL , restore->y_saw_tooth_cntl);
++}
++
++/**********************************************************************
++ *
++ * ERT_RestoreRestarts
++ *
++ * Set ERT TV_*RESTART registers
++ *
++ **********************************************************************/
++
++static
++void
++ERT_RestoreRestarts(
++ TheaterOutPtr t,
++ TheaterStatePtr restore
++ )
++{
++ ert_write(t , TV_FRESTART , restore->dfrestart);
++ ert_write(t , TV_HRESTART , restore->dhrestart);
++ ert_write(t , TV_VRESTART , restore->dvrestart);
++}
++
++/**********************************************************************
++ *
++ * ERT_RestoreOutputStd
++ *
++ * Set tv standard & output muxes
++ *
++ **********************************************************************/
++static
++void
++ERT_RestoreOutputStd(
++ TheaterOutPtr t,
++ TheaterStatePtr restore
++ )
++{
++ ert_write(t , TV_SYNC_CNTL , restore->sync_cntl);
++
++ ert_write(t , TV_TIMING_CNTL , restore->timing_cntl);
++
++ ert_write(t , TV_MODULATOR_CNTL1 , restore->modulator_cntl1);
++ ert_write(t , TV_MODULATOR_CNTL2 , restore->modulator_cntl2);
++
++ ert_write(t , TV_PRE_DAC_MUX_CNTL , restore->pre_dac_mux_cntl);
++
++ ert_write(t , TV_CRC_CNTL , restore->crc_cntl);
++}
++
++/**********************************************************************
++ *
++ * ERT_IsOn
++ *
++ * Test if tv output would be enabled with a given value in TV_DAC_CNTL
++ *
++ **********************************************************************/
++static
++Bool
++ERT_IsOn(
++ CARD32 tv_dac_cntl
++ )
++{
++ if (tv_dac_cntl & TV_DAC_CNTL_BGSLEEP)
++ return FALSE;
++ else if ((tv_dac_cntl & (TV_DAC_CNTL_RDACPD | TV_DAC_CNTL_GDACPD | TV_DAC_CNTL_BDACPD)) ==
++ (TV_DAC_CNTL_RDACPD | TV_DAC_CNTL_GDACPD | TV_DAC_CNTL_BDACPD))
++ return FALSE;
++ else
++ return TRUE;
++}
++
++/**********************************************************************
++ *
++ * ERT_Restore
++ *
++ * Restore state of ERT
++ *
++ **********************************************************************/
++static
++void
++ERT_Restore(
++ TheaterOutPtr t,
++ ScrnInfoPtr pScrn,
++ TheaterStatePtr restore
++ )
++{
++ RTTRACE(("Entering ERT_Restore\n"));
++
++ ert_write(t ,
++ TV_MASTER_CNTL ,
++ restore->master_cntl | TV_MASTER_CNTL_TV_ON);
++
++ ert_write(t,
++ TV_MASTER_CNTL ,
++ restore->master_cntl |
++ VIP_MASTER_CNTL_TV_ASYNC_RST |
++ VIP_MASTER_CNTL_CRT_ASYNC_RST |
++ VIP_MASTER_CNTL_RESTART_PHASE_FIX |
++ VIP_MASTER_CNTL_TV_FIFO_ASYNC_RST);
++
++ /*
++ * Temporarily turn the TV DAC off
++ */
++ ert_write(t ,
++ TV_DAC_CNTL ,
++ (restore->tv_dac_cntl & ~TV_DAC_CNTL_NBLANK) |
++ TV_DAC_CNTL_BGSLEEP |
++ TV_DAC_CNTL_RDACPD |
++ TV_DAC_CNTL_GDACPD |
++ TV_DAC_CNTL_BDACPD);
++
++ RTTRACE(("ERT_Restore: checkpoint 1\n"));
++ ERT_RestorePLL(t , pScrn , restore);
++
++ RTTRACE(("ERT_Restore: checkpoint 2\n"));
++ ERT_RestoreHV(t , restore);
++
++ ert_write(t,
++ TV_MASTER_CNTL ,
++ restore->master_cntl |
++ VIP_MASTER_CNTL_TV_ASYNC_RST |
++ VIP_MASTER_CNTL_CRT_ASYNC_RST |
++ VIP_MASTER_CNTL_RESTART_PHASE_FIX);
++
++ RTTRACE(("ERT_Restore: checkpoint 3\n"));
++ ERT_RestoreRestarts(t , restore);
++
++ RTTRACE(("ERT_Restore: checkpoint 4\n"));
++
++ /*
++ * Timing tables are only restored when tv output is active
++ */
++ if (ERT_IsOn(restore->tv_dac_cntl))
++ restoreTimingTables(t , restore);
++
++ ert_write(t,
++ TV_MASTER_CNTL ,
++ restore->master_cntl |
++ VIP_MASTER_CNTL_TV_ASYNC_RST |
++ VIP_MASTER_CNTL_RESTART_PHASE_FIX);
++
++ RTTRACE(("ERT_Restore: checkpoint 5\n"));
++ ERT_RestoreOutputStd(t , restore);
++
++ ert_write(t ,
++ TV_MASTER_CNTL ,
++ restore->master_cntl);
++
++ ert_write(t , RADEON_DISP_MERGE_CNTL , restore->disp_merge_cntl);
++
++ ert_write(t , TV_GAIN_LIMIT_SETTINGS , restore->gain_limit_settings);
++ ert_write(t , TV_LINEAR_GAIN_SETTINGS , restore->linear_gain_settings);
++
++ ert_write(t , TV_DAC_CNTL , restore->tv_dac_cntl);
++
++ RTTRACE(("Leaving ERT_Restore\n"));
++}
++
++/**********************************************************************
++ *
++ * RT_Restore
++ *
++ * Restore state of RT
++ *
++ **********************************************************************/
++
++static
++void
++RT_Restore(
++ TheaterOutPtr t,
++ ScrnInfoPtr pScrn,
++ TheaterStatePtr restore
++ )
++{
++ if (t->theatre_num < 0)
++ {
++ ERT_Restore(t , pScrn , restore);
++ return;
++ }
++
++ RTTRACE(("Entering RT_Restore\n"));
++
++ theatre_write(t ,
++ VIP_MASTER_CNTL ,
++ restore->master_cntl |
++ VIP_MASTER_CNTL_TV_ASYNC_RST |
++ VIP_MASTER_CNTL_CRT_ASYNC_RST |
++ VIP_MASTER_CNTL_TV_FIFO_ASYNC_RST);
++
++ /*
++ * Temporarily turn the TV DAC off
++ */
++ theatre_write(t ,
++ VIP_TV_DAC_CNTL ,
++ (restore->tv_dac_cntl & ~VIP_TV_DAC_CNTL_NBLANK) |
++ VIP_TV_DAC_CNTL_DASLEEP |
++ VIP_TV_DAC_CNTL_BGSLEEP);
++
++ RTTRACE(("RT_Restore: checkpoint 1\n"));
++ restoreTVO_SYNC(t , restore);
++
++ RTTRACE(("RT_Restore: checkpoint 2\n"));
++ restorePLL(t , pScrn , restore);
++
++ RTTRACE(("RT_Restore: checkpoint 3\n"));
++ restoreTVO_DataDelay(t , restore);
++
++ RTTRACE(("RT_Restore: checkpoint 4\n"));
++ restoreRT_HV(t , restore);
++
++ theatre_write(t ,
++ VIP_MASTER_CNTL ,
++ restore->master_cntl |
++ VIP_MASTER_CNTL_TV_ASYNC_RST |
++ VIP_MASTER_CNTL_CRT_ASYNC_RST);
++
++ RTTRACE(("RT_Restore: checkpoint 5\n"));
++ restoreRestarts(t , restore);
++
++ RTTRACE(("RT_Restore: checkpoint 6\n"));
++
++ /*
++ * Timing tables are restored when tv output is active
++ */
++ if ((restore->tv_dac_cntl & (VIP_TV_DAC_CNTL_DASLEEP | VIP_TV_DAC_CNTL_BGSLEEP)) == 0)
++ restoreTimingTables(t , restore);
++
++ theatre_write(t ,
++ VIP_MASTER_CNTL ,
++ restore->master_cntl |
++ VIP_MASTER_CNTL_TV_ASYNC_RST);
++
++ RTTRACE(("RT_Restore: checkpoint 7\n"));
++ restoreOutputStd(t , restore);
++
++ theatre_write(t ,
++ VIP_MASTER_CNTL ,
++ restore->master_cntl);
++
++ theatre_write(t , VIP_GAIN_LIMIT_SETTINGS , restore->gain_limit_settings);
++ theatre_write(t , VIP_LINEAR_GAIN_SETTINGS , restore->linear_gain_settings);
++
++ theatre_write(t , VIP_TV_DAC_CNTL , restore->tv_dac_cntl);
++
++ RTTRACE(("Leaving RT_Restore\n"));
++}
++
++/**********************************************************************
++ *
++ * RT_Save
++ *
++ * Save state of RT
++ *
++ **********************************************************************/
++
++static
++void
++RT_Save(
++ TheaterOutPtr t,
++ ScrnInfoPtr pScrn,
++ TheaterStatePtr save
++ )
++{
++ unsigned i;
++
++ RTTRACE(("Entering RT_Save\n"));
++
++ if (t->theatre_num >= 0)
++ {
++ theatre_read(t , VIP_CLKOUT_CNTL , &save->clkout_cntl);
++ theatre_read(t , VIP_CLOCK_SEL_CNTL , &save->clock_sel_cntl);
++ theatre_read(t , VIP_CRC_CNTL , &save->crc_cntl);
++ theatre_read(t , VIP_CRT_PLL_CNTL , &save->crt_pll_cntl);
++ theatre_read(t , VIP_DFRESTART , &save->dfrestart);
++ theatre_read(t , VIP_DHRESTART , &save->dhrestart);
++ theatre_read(t , VIP_DVRESTART , &save->dvrestart);
++ theatre_read(t , VIP_FRAME_LOCK_CNTL , &save->frame_lock_cntl);
++ theatre_read(t , VIP_GAIN_LIMIT_SETTINGS , &save->gain_limit_settings);
++ theatre_read(t , VIP_HDISP , &save->hdisp);
++ theatre_read(t , VIP_HSTART , &save->hstart);
++ theatre_read(t , VIP_HTOTAL , &save->htotal);
++ theatre_read(t , VIP_HW_DEBUG , &save->hw_debug);
++ theatre_read(t , VIP_LINEAR_GAIN_SETTINGS, &save->linear_gain_settings);
++ theatre_read(t , VIP_MASTER_CNTL , &save->master_cntl);
++ theatre_read(t , VIP_MODULATOR_CNTL1 , &save->modulator_cntl1);
++ theatre_read(t , VIP_MODULATOR_CNTL2 , &save->modulator_cntl2);
++ theatre_read(t , VIP_PLL_CNTL0 , &save->pll_cntl0);
++ theatre_read(t , VIP_PLL_TEST_CNTL , &save->pll_test_cntl);
++ theatre_read(t , VIP_PRE_DAC_MUX_CNTL , &save->pre_dac_mux_cntl);
++ theatre_read(t , VIP_RGB_CNTL , &save->rgb_cntl);
++ theatre_read(t , VIP_SYNC_CNTL , &save->sync_cntl);
++ theatre_read(t , VIP_SYNC_LOCK_CNTL , &save->sync_lock_cntl);
++ theatre_read(t , VIP_SYNC_SIZE , &save->sync_size);
++ theatre_read(t , VIP_TIMING_CNTL , &save->timing_cntl);
++ theatre_read(t , VIP_TVO_DATA_DELAY_A , &save->tvo_data_delay_a);
++ theatre_read(t , VIP_TVO_DATA_DELAY_B , &save->tvo_data_delay_b);
++ theatre_read(t , VIP_TVO_SYNC_PAT_EXPECT , &save->tvo_sync_pat_expect);
++ theatre_read(t , VIP_TVO_SYNC_THRESHOLD , &save->tvo_sync_threshold);
++ theatre_read(t , VIP_TV_DAC_CNTL , &save->tv_dac_cntl);
++ theatre_read(t , VIP_TV_PLL_CNTL , &save->tv_pll_cntl);
++ theatre_read(t , VIP_TV_PLL_FINE_CNTL , &save->tv_pll_fine_cntl);
++ theatre_read(t , VIP_UPSAMP_AND_GAIN_CNTL, &save->upsamp_and_gain_cntl);
++ theatre_read(t , VIP_VDISP , &save->vdisp);
++ theatre_read(t , VIP_VFTOTAL , &save->vftotal);
++ theatre_read(t , VIP_VSCALER_CNTL1 , &save->vscaler_cntl1);
++ theatre_read(t , VIP_VSCALER_CNTL2 , &save->vscaler_cntl2);
++ theatre_read(t , VIP_VTOTAL , &save->vtotal);
++ theatre_read(t , VIP_Y_FALL_CNTL , &save->y_fall_cntl);
++ theatre_read(t , VIP_Y_RISE_CNTL , &save->y_rise_cntl);
++ theatre_read(t , VIP_Y_SAW_TOOTH_CNTL , &save->y_saw_tooth_cntl);
++
++ for (i = 0; i < N_UPSAMPLER_COEFFS; i++)
++ theatre_read(t , VIP_UPSAMP_COEFF0_0 + i * 4 , &save->upsamp_coeffs[ i ]);
++
++ /*
++ * Read H/V code timing tables (current tables only are saved)
++ * This step is skipped when tv output is disabled in current RT state
++ * (see RT_Restore)
++ */
++ if ((save->tv_dac_cntl & (VIP_TV_DAC_CNTL_DASLEEP | VIP_TV_DAC_CNTL_BGSLEEP)) == 0)
++ saveTimingTables(t , save);
++ }
++ else
++ {
++ /*
++ * ERT
++ */
++ ert_read(t , TV_CRC_CNTL , &save->crc_cntl);
++ ert_read(t , TV_FRESTART , &save->dfrestart);
++ ert_read(t , TV_HRESTART , &save->dhrestart);
++ ert_read(t , TV_VRESTART , &save->dvrestart);
++ ert_read(t , TV_GAIN_LIMIT_SETTINGS , &save->gain_limit_settings);
++ ert_read(t , TV_HDISP , &save->hdisp);
++ ert_read(t , TV_HSTART , &save->hstart);
++ ert_read(t , TV_HTOTAL , &save->htotal);
++ ert_read(t , TV_LINEAR_GAIN_SETTINGS , &save->linear_gain_settings);
++ ert_read(t , TV_MASTER_CNTL , &save->master_cntl);
++ ert_read(t , TV_RGB_CNTL , &save->rgb_cntl);
++ ert_read(t , TV_MODULATOR_CNTL1 , &save->modulator_cntl1);
++ ert_read(t , TV_MODULATOR_CNTL2 , &save->modulator_cntl2);
++ ert_read(t , TV_PRE_DAC_MUX_CNTL , &save->pre_dac_mux_cntl);
++ ert_read(t , TV_SYNC_CNTL , &save->sync_cntl);
++ ert_read(t , TV_TIMING_CNTL , &save->timing_cntl);
++ ert_read(t , TV_DAC_CNTL , &save->tv_dac_cntl);
++ ert_read(t , TV_UPSAMP_AND_GAIN_CNTL , &save->upsamp_and_gain_cntl);
++ ert_read(t , TV_VDISP , &save->vdisp);
++ ert_read(t , TV_FTOTAL , &save->vftotal);
++ ert_read(t , TV_VSCALER_CNTL1 , &save->vscaler_cntl1);
++ ert_read(t , TV_VSCALER_CNTL2 , &save->vscaler_cntl2);
++ ert_read(t , TV_VTOTAL , &save->vtotal);
++ ert_read(t , TV_Y_FALL_CNTL , &save->y_fall_cntl);
++ ert_read(t , TV_Y_RISE_CNTL , &save->y_rise_cntl);
++ ert_read(t , TV_Y_SAWTOOTH_CNTL , &save->y_saw_tooth_cntl);
++
++ ert_read(t , RADEON_DISP_MERGE_CNTL , &save->disp_merge_cntl);
++
++ save->tv_pll_cntl = INPLL(pScrn , TV_PLL_CNTL);
++
++ /*
++ * Read H/V code timing tables (current tables only are saved)
++ * This step is skipped when tv output is disabled in current RT state
++ * (see RT_Restore)
++ */
++ if (ERT_IsOn(save->tv_dac_cntl))
++ saveTimingTables(t , save);
++ }
++
++
++ RTTRACE(("RT_Save returning\n"));
++}
++
++/**********************************************************************
++ *
++ * computeRestarts
++ *
++ * Compute F,V,H restarts from default restart position and
++ * hPos & vPos
++ * Return TRUE when code timing table was changed
++ *
++ **********************************************************************/
++
++static
++Bool
++computeRestarts(
++ const ModeConstants *constPtr,
++ TVStd tvStd,
++ int hPos,
++ int vPos,
++ int hSize,
++ TheaterStatePtr save
++ )
++{
++ int restart;
++ const TVConstants *pTvStd = &tvStdConsts[ tvStd ];
++ unsigned hTotal;
++ unsigned vTotal;
++ unsigned fTotal;
++ int vOffset;
++ int hOffset;
++ TimingTableEl p1;
++ TimingTableEl p2;
++ Bool hChanged;
++ CARD16 hInc;
++
++ hTotal = constPtr->horTotal;
++ vTotal = constPtr->verTotal;
++ fTotal = pTvStd->vftotal + 1;
++
++ /*
++ * Adjust positions 1&2 in hor. code timing table
++ */
++ hOffset = hPos * H_POS_UNIT;
++
++ p1 = constPtr->horTimingTable[ H_TABLE_POS1 ];
++ p2 = constPtr->horTimingTable[ H_TABLE_POS2 ];
++
++ p1 = (TimingTableEl)((int)p1 + hOffset);
++ p2 = (TimingTableEl)((int)p2 - hOffset);
++
++ hChanged = (p1 != save->h_code_timing[ H_TABLE_POS1 ] ||
++ p2 != save->h_code_timing[ H_TABLE_POS2 ]);
++
++ save->h_code_timing[ H_TABLE_POS1 ] = p1;
++ save->h_code_timing[ H_TABLE_POS2 ] = p2;
++
++ /*
++ * Convert hOffset from n. of TV clock periods to n. of CRTC clock periods (CRTC pixels)
++ */
++ hOffset = (hOffset * (int)(constPtr->pixToTV)) / 1000;
++
++ /*
++ * Adjust restart
++ */
++ restart = constPtr->defRestart;
++
++ /*
++ * Convert vPos TV lines to n. of CRTC pixels
++ * Be verrrrry careful when mixing signed & unsigned values in C..
++ */
++ vOffset = ((int)(vTotal * hTotal) * 2 * vPos) / (int)(pTvStd->linesFrame);
++
++ restart -= vOffset + hOffset;
++
++ RTTRACE(("computeRestarts: def = %u, h = %d , v = %d , p1=%04x , p2=%04x , restart = %d\n" , constPtr->defRestart , hPos , vPos , p1 , p2 , restart));
++
++ save->dhrestart = restart % hTotal;
++ restart /= hTotal;
++ save->dvrestart = restart % vTotal;
++ restart /= vTotal;
++ save->dfrestart = restart % fTotal;
++
++ RTTRACE(("computeRestarts: F/H/V=%u,%u,%u\n" , save->dfrestart , save->dvrestart , save->dhrestart));
++
++ /*
++ * Compute H_INC from hSize
++ */
++ hInc = (CARD16)((int)(constPtr->horResolution * 4096 * pTvStd->tvClockT) /
++ (hSize * (int)(pTvStd->hSizeUnit) + (int)(pTvStd->zeroHSize)));
++ save->timing_cntl = (save->timing_cntl & ~VIP_TIMING_CNTL_H_INC) |
++ ((CARD32)hInc << VIP_TIMING_CNTL_H_INC_SHIFT);
++
++ RTTRACE(("computeRestarts: hSize=%d,hInc=%u\n" , hSize , hInc));
++
++ return hChanged;
++}
++
++/**********************************************************************
++ *
++ * RT_Init
++ *
++ * Define RT state for a given standard/resolution combination
++ *
++ **********************************************************************/
++
++static
++void
++RT_Init(
++ const ModeConstants *constPtr,
++ TVStd tvStd,
++ Bool isErt,
++ Bool enable,
++ int hPos,
++ int vPos,
++ int hSize,
++ TheaterStatePtr save
++ )
++{
++ unsigned i;
++ CARD32 tmp;
++ const TVConstants *pTvStd = &tvStdConsts[ tvStd ];
++
++ save->clkout_cntl = VIP_CLKOUT_CNTL_INI;
++
++ save->clock_sel_cntl = VIP_CLOCK_SEL_CNTL_INI |
++ (constPtr->crtcPLL_byteClkDiv << VIP_CLOCK_SEL_CNTL_BYTCLK_SHIFT) |
++ (constPtr->byteClkDelay << VIP_CLOCK_SEL_CNTL_BYTCLKD_SHIFT);
++
++ save->crc_cntl = 0;
++
++ tmp = ((CARD32)constPtr->crtcPLL_M << VIP_CRT_PLL_CNTL_M_SHIFT) |
++ (((CARD32)constPtr->crtcPLL_N & VIP_CRT_PLL_CNTL_NLO) << VIP_CRT_PLL_CNTL_NLO_SHIFT) |
++ (((CARD32)constPtr->crtcPLL_N & VIP_CRT_PLL_CNTL_NHI) << VIP_CRT_PLL_CNTL_NHI_SHIFT);
++ if (constPtr->crtcPLL_divBy2)
++ tmp |= VIP_CRT_PLL_CNTL_CLKBY2;
++ save->crt_pll_cntl = tmp;
++
++ save->frame_lock_cntl = VIP_FRAME_LOCK_CNTL_INI;
++
++ save->gain_limit_settings = VIP_GAIN_LIMIT_SETTINGS_INI;
++
++ save->hdisp = constPtr->horResolution - 1;
++ save->hstart = constPtr->horStart;
++ save->htotal = constPtr->horTotal - 1;
++
++ save->hw_debug = VIP_HW_DEBUG_INI;
++
++ save->linear_gain_settings = VIP_LINEAR_GAIN_SETTINGS_INI;
++
++ /*
++ * TEST TEST TEST TEST TEST TEST TEST TEST TEST
++ */
++ if (isErt)
++ save->master_cntl = enable ? TV_MASTER_CNTL_ON_INI : TV_MASTER_CNTL_OFF_INI;
++ else
++ save->master_cntl = enable ? VIP_MASTER_CNTL_ON_INI : VIP_MASTER_CNTL_OFF_INI;
++
++ save->modulator_cntl1 = pTvStd->modulatorCntl1;
++ save->modulator_cntl2 = pTvStd->modulatorCntl2;
++
++ save->pll_cntl0 = VIP_PLL_CNTL0_INI;
++ save->pll_test_cntl = VIP_PLL_TEST_CNTL_INI;
++
++ save->pre_dac_mux_cntl = VIP_PRE_DAC_MUX_CNTL_INI;
++
++ if (isErt)
++ save->rgb_cntl = TV_RGB_CNTL_INI;
++ else
++ /*
++ * Instruct RT to accept either 565 or 888 packed pixels
++ */
++ save->rgb_cntl = constPtr->use888RGB ? VIP_RGB_CNTL_RGB_IS_888_PACK : 0;
++
++ save->sync_cntl = VIP_SYNC_CNTL_INI;
++
++ save->sync_lock_cntl = VIP_SYNC_LOCK_CNTL_INI;
++
++ save->sync_size = constPtr->horResolution + 8;
++
++ tmp = (constPtr->vScalerCntl1 >> VIP_VSCALER_CNTL1_UV_INC_SHIFT) & VIP_VSCALER_CNTL1_UV_INC;
++ tmp = ((16384 * 256 * 10) / tmp + 5) / 10;
++ tmp = (tmp << VIP_TIMING_CNTL_UV_OUT_POST_SCALE_SHIFT) |
++ VIP_TIMING_CNTL_INI;
++ save->timing_cntl = tmp;
++
++ save->tvo_data_delay_a = constPtr->tvoDataDelayA;
++ save->tvo_data_delay_b = constPtr->tvoDataDelayB;
++
++ save->tvo_sync_pat_expect = VIP_TVO_SYNC_PAT_EXPECT_INI;
++
++ if (constPtr->use888RGB)
++ save->tvo_sync_threshold = constPtr->horResolution + constPtr->horResolution / 2;
++ else
++ save->tvo_sync_threshold = constPtr->horResolution;
++
++ if (isErt)
++ {
++ if (enable)
++ save->tv_dac_cntl = pTvStd->ert_tvDAC_Cntl;
++ else
++ save->tv_dac_cntl = (pTvStd->ert_tvDAC_Cntl & ~(TV_DAC_CNTL_NBLANK | TV_DAC_CNTL_NHOLD)) |
++ (TV_DAC_CNTL_BGSLEEP | TV_DAC_CNTL_RDACPD | TV_DAC_CNTL_GDACPD | TV_DAC_CNTL_BDACPD);
++ }
++ else
++ {
++ if (enable)
++ save->tv_dac_cntl = pTvStd->vip_tvDAC_Cntl;
++ else
++ save->tv_dac_cntl = (pTvStd->vip_tvDAC_Cntl & ~VIP_TV_DAC_CNTL_NBLANK) |
++ (VIP_TV_DAC_CNTL_DASLEEP | VIP_TV_DAC_CNTL_BGSLEEP);
++ }
++
++ tmp = ((CARD32)(pTvStd->tvPLL_M) << VIP_TV_PLL_CNTL_M_SHIFT) |
++ (((CARD32)(pTvStd->tvPLL_N) & VIP_TV_PLL_CNTL_NLO) << VIP_TV_PLL_CNTL_NLO_SHIFT) |
++ (((CARD32)(pTvStd->tvPLL_N) & VIP_TV_PLL_CNTL_NHI) << VIP_TV_PLL_CNTL_NHI_SHIFT) |
++ ((CARD32)(pTvStd->tvPLL_postDiv) << VIP_TV_PLL_CNTL_P_SHIFT);
++ save->tv_pll_cntl = tmp;
++ save->tv_pll_fine_cntl = TV_PLL_FINE_INI;
++
++ save->upsamp_and_gain_cntl = VIP_UPSAMP_AND_GAIN_CNTL_INI;
++
++ memcpy(&save->upsamp_coeffs[ 0 ] , upsamplerCoeffs , sizeof(save->upsamp_coeffs));
++
++ save->uv_adr = VIP_UV_ADR_INI;
++
++ save->vdisp = constPtr->verResolution - 1;
++ save->vftotal = pTvStd->vftotal;
++
++ save->vscaler_cntl1 = constPtr->vScalerCntl1;
++ if (isErt)
++ save->vscaler_cntl1 |= TV_VSCALER_CNTL1_RESTART_FIELD;
++ save->vscaler_cntl2 = VIP_VSCALER_CNTL2_INI;
++
++ save->vtotal = constPtr->verTotal - 1;
++
++ save->y_fall_cntl = VIP_Y_FALL_CNTL_INI;
++ save->y_rise_cntl = constPtr->yRiseCntl;
++ save->y_saw_tooth_cntl = constPtr->ySawtoothCntl;
++
++ save->disp_merge_cntl = RADEON_DISP_MERGE_CNTL_INI;
++
++ for (i = 0; i < MAX_H_CODE_TIMING_LEN; i++)
++ {
++ if ((save->h_code_timing[ i ] = constPtr->horTimingTable[ i ]) == 0)
++ break;
++ }
++
++ for (i = 0; i < MAX_V_CODE_TIMING_LEN; i++)
++ {
++ if ((save->v_code_timing[ i ] = constPtr->verTimingTable[ i ]) == 0)
++ break;
++ }
++
++ /*
++ * This must be called AFTER loading timing tables as they are modified by this function
++ */
++ computeRestarts(constPtr , tvStd , hPos , vPos , hSize , save);
++}
++
++/**********************************************************************
++ *
++ * RT_InitCRTC
++ *
++ **********************************************************************/
++static
++void
++RT_InitCRTC(
++ const ModeConstants *constPtr,
++ Bool isErt,
++ RADEONSavePtr save
++ )
++{
++ save->crtc_h_total_disp = (((constPtr->horResolution / 8) - 1) << RADEON_CRTC_H_DISP_SHIFT) |
++ (((constPtr->horTotal / 8) - 1) << RADEON_CRTC_H_TOTAL_SHIFT);
++
++ save->crtc_h_sync_strt_wid = (save->crtc_h_sync_strt_wid & ~(RADEON_CRTC_H_SYNC_STRT_PIX | RADEON_CRTC_H_SYNC_STRT_CHAR)) |
++ (((constPtr->horSyncStart / 8) - 1) << RADEON_CRTC_H_SYNC_STRT_CHAR_SHIFT) |
++ (constPtr->horSyncStart & 7);
++
++ save->crtc_v_total_disp = ((constPtr->verResolution - 1) << RADEON_CRTC_V_DISP_SHIFT) |
++ ((constPtr->verTotal - 1) << RADEON_CRTC_V_TOTAL_SHIFT);
++
++ save->crtc_v_sync_strt_wid = (save->crtc_v_sync_strt_wid & ~RADEON_CRTC_V_SYNC_STRT) |
++ ((constPtr->verSyncStart - 1) << RADEON_CRTC_V_SYNC_STRT_SHIFT);
++
++ save->htotal_cntl = ((constPtr->horTotal & 7) << RADEON_HTOTAL_CNTL_HTOT_PIX_SLIP_SHIFT) | RADEON_HTOTAL_CNTL_HTOT_CNTL_VGA_EN;
++
++ if (isErt)
++ {
++ unsigned postDiv;
++
++ save->ppll_ref_div = constPtr->crtcPLL_M;
++
++ switch (constPtr->crtcPLL_postDiv)
++ {
++ case 1:
++ postDiv = 0;
++ break;
++
++ case 2:
++ postDiv = 1;
++ break;
++
++ case 3:
++ postDiv = 4;
++ break;
++
++ case 4:
++ postDiv = 2;
++ break;
++
++ case 6:
++ postDiv = 6;
++ break;
++
++ case 8:
++ postDiv = 3;
++ break;
++
++ case 12:
++ postDiv = 7;
++ break;
++
++ case 16:
++ default:
++ postDiv = 5;
++ break;
++ }
++
++ save->ppll_div_3 = (constPtr->crtcPLL_N << RADEON_PPLL_FB3_DIV_SHIFT) |
++ (postDiv << RADEON_PPLL_POST3_DIV_SHIFT);
++
++ save->vclk_ecp_cntl &= ~RADEON_VCLK_SRC_SEL_MASK;
++ save->vclk_ecp_cntl |= RADEON_VCLK_SRC_SEL_PPLLCLK;
++ }
++ else
++ {
++ save->ppll_div_3 &= ~RADEON_PPLL_POST3_DIV_MASK;
++ save->ppll_div_3 |= (constPtr->use888RGB ? RADEON_PPLL_POST3_DIV_BY_3 : RADEON_PPLL_POST3_DIV_BY_2);
++
++ /*
++ * Set Radeon to be clocked from RT
++ */
++ save->vclk_ecp_cntl &= ~RADEON_VCLK_SRC_SEL_MASK;
++ save->vclk_ecp_cntl |= RADEON_VCLK_SRC_SEL_BYTECLK;
++
++ save->vclk_ecp_cntl &= ~RADEON_VCLK_ECP_CNTL_BYTECLK_POSTDIV;
++ save->vclk_ecp_cntl |= RADEON_VCLK_ECP_CNTL_BYTECLK_NODIV;
++
++ /*
++ * Instruct Radeon to output either 565 or 888 packed pixels
++ */
++ save->disp_output_cntl &=
++ ~(RADEON_DISP_TV_SOURCE |
++ RADEON_DISP_TV_MODE_MASK |
++ RADEON_DISP_TV_CBB_CRR_DITH_EN |
++ RADEON_DISP_TV_BIT_WIDTH |
++ RADEON_DISP_TV_SYNC_MODE_MASK |
++ RADEON_DISP_TV_SYNC_COLOR_MASK);
++ save->disp_output_cntl |= (constPtr->use888RGB ?
++ RADEON_DISP_TV_YG_DITH_EN | RADEON_DISP_TV_MODE_888 :
++ RADEON_DISP_TV_YG_DITH_EN | RADEON_DISP_TV_MODE_565);
++
++ save->crtc_ext_cntl |= RADEON_CRTC_VGA_XOVERSCAN;
++ save->dac_cntl |= RADEON_DAC_CNTL_DAC_TVO_EN;
++ }
++}
++
++/**********************************************************************
++ *
++ * ERTAutoDetect
++ *
++ **********************************************************************/
++static
++Bool
++ERTAutoDetect(
++ ScrnInfoPtr pScrn
++ )
++{
++ RADEONInfoPtr info = RADEONPTR(pScrn);
++ unsigned char *RADEONMMIO = info->MMIO;
++ CARD32 saveReg = INREG(TV_LINEAR_GAIN_SETTINGS);
++ Bool detected = FALSE;
++
++ /*
++ * Ultra-dumb way of detecting an ERT: check that a register is present
++ * @ TV_LINEAR_GAIN_SETTINGS (this is probably one of the most harmless
++ * register to touch)
++ */
++ OUTREG(TV_LINEAR_GAIN_SETTINGS , 0x15500aa);
++
++ if (INREG(TV_LINEAR_GAIN_SETTINGS) == 0x15500aa)
++ {
++ OUTREG(TV_LINEAR_GAIN_SETTINGS , 0x0aa0155);
++ if (INREG(TV_LINEAR_GAIN_SETTINGS) == 0x0aa0155)
++ detected = TRUE;
++ }
++
++ OUTREG(TV_LINEAR_GAIN_SETTINGS , saveReg);
++
++ return detected;
++}
++
++/**********************************************************************
++ *
++ * detectTheaterOut
++ *
++ * Detect presence of a RT chip
++ *
++ **********************************************************************/
++
++TheaterOutPtr
++detectTheaterOut(
++ ScrnInfoPtr pScrn,
++ Bool forceVIP,
++ GENERIC_BUS_Ptr b
++ )
++{
++ RADEONInfoPtr info = RADEONPTR(pScrn);
++ //GENERIC_BUS_Ptr b = info->VIP;
++ TheaterOutPtr t;
++ int i;
++ CARD32 val;
++ char s[20];
++
++ b->ioctl(b , GB_IOCTL_GET_TYPE , 20 , s);
++
++ if (strcmp(VIP_TYPE , s))
++ {
++ xf86DrvMsg(b->scrnIndex , X_ERROR , "detectTheaterOut must be called with bus of type \"%s\", not \"%s\"\n",
++ VIP_TYPE , s);
++ return NULL;
++ }
++
++ t = xcalloc(1 , sizeof(TheaterOutRec));
++ t->theatre_num = -1;
++ t->MMIO = info->MMIO;
++ t->VIP = b;
++
++ if (!forceVIP && ERTAutoDetect(pScrn))
++ xf86DrvMsg(b->scrnIndex , X_INFO , "Embedded Rage Theater detected\n");
++ else
++ {
++ //
++ // Is this really needed?
++ //
++ b->read(b , VIP_VIP_VENDOR_DEVICE_ID , 4 , (CARD8*)&val);
++
++ for (i = 0; i < 4; i++)
++ {
++ if(b->read(b , ((i & 0x03) << 14) | VIP_VIP_VENDOR_DEVICE_ID , 4 , (CARD8*)&val))
++ {
++ if (val)
++ xf86DrvMsg(b->scrnIndex , X_INFO , "Device %d on VIP bus ids as 0x%08x\n" , i , (int)val);
++ if (t->theatre_num >= 0)
++ continue; // already found one instance
++ if (val == RT100_ATI_ID)
++ t->theatre_num = i;
++ }
++ else
++ {
++ xf86DrvMsg(b->scrnIndex , X_INFO , "No response from device %d on VIP bus\n" , i);
++ }
++ }
++ if (t->theatre_num >= 0)
++ {
++ xf86DrvMsg(b->scrnIndex , X_INFO ,
++ "Detected Rage Theatre as device %d on VIP bus\n" , t->theatre_num);
++ theatre_read(t , VIP_VIP_REVISION_ID , &val);
++ xf86DrvMsg(b->scrnIndex , X_INFO , "Detected Rage Theatre revision %8.8X\n" , (int)val);
++ }
++ else
++ {
++ xfree(t);
++ return NULL;
++ }
++ }
++
++ return t;
++}
++
++/**********************************************************************
++ *
++ * initTheaterOut
++ *
++ * Initialization of module
++ *
++ * 's' should be the value of TV_Output option (i.e. the initial TV
++ * standard)
++ *
++ **********************************************************************/
++
++void
++initTheaterOut(
++ TheaterOutPtr t,
++ const char *s
++ )
++{
++ RTTRACE(("Entering initTheaterOut, s = %s\n" , s));
++ /*
++ * TEST TEST TEST TEST TEST TEST TEST TEST TEST
++ */
++ if (xf86NameCmp(s , "NTSC") == 0)
++ t->standard = TV_STD_NTSC;
++ else if (xf86NameCmp(s , "PAL") == 0)
++ t->standard = TV_STD_PAL;
++ else if (xf86NameCmp(s , "PAL-M") == 0)
++ t->standard = TV_STD_PAL_M;
++ else if (xf86NameCmp(s , "PAL-60") == 0)
++ t->standard = TV_STD_PAL_60;
++ else if (xf86NameCmp(s , "NTSC-J") == 0)
++ t->standard = TV_STD_NTSC_J;
++ else if (xf86NameCmp(s , "PAL-CN") == 0)
++ t->standard = TV_STD_PAL_CN;
++ else if (xf86NameCmp(s , "PAL-N") == 0)
++ t->standard = TV_STD_PAL_N;
++ else
++ {
++ xf86DrvMsg(0 , X_WARNING , "Unrecognized TV standard in TVOutput option (%s), TV output is disabled\n" , s);
++ t->standard = TV_STD_KEEP_OFF;
++ }
++ t->compatibleMode = FALSE;
++
++ t->hPos = 0;
++ t->vPos = 0;
++ t->hSize = 0;
++}
++
++/**********************************************************************
++ *
++ * theaterOutSave
++ *
++ * Save current state of RT as initial state (the one that is restored
++ * when switching back to text mode)
++ *
++ **********************************************************************/
++
++void
++theaterOutSave(
++ TheaterOutPtr t,
++ ScrnInfoPtr pScrn
++ )
++{
++ RTTRACE(("Entering theaterOutSave\n"));
++ RT_Save(t , pScrn , &t->savedState);
++}
++
++/**********************************************************************
++ *
++ * theaterOutRestore
++ *
++ * Restore state of RT from initial state (the one saved through
++ * theaterOutSave)
++ *
++ **********************************************************************/
++
++void
++theaterOutRestore(
++ TheaterOutPtr t,
++ ScrnInfoPtr pScrn
++ )
++{
++ RTTRACE(("Entering theaterOutRestore\n"));
++ RT_Restore(t , pScrn , &t->savedState);
++}
++
++/**********************************************************************
++ *
++ * theaterOutInit
++ *
++ * Define state for cloning current CRTC mode on TV output
++ * It works in this way:
++ * 1. It checks if resolution in "mode" parameter is one of those
++ * allowing tv output
++ * 2. If resolution is OK, define RT state according to resolution and
++ * and current settings (tv standard etc.)
++ * If resolution is not ok, define RT state to turn tv output off
++ * 3. If resolution is OK, modify Radeon state to make it correct for
++ * tv output (this is needed,e.g., to set vertical frequency to 50/60 Hz)
++ *
++ * Return value is TRUE when mode is OK for cloning on tv and tv output
++ * is enabled, FALSE otherwise
++ *
++ **********************************************************************/
++
++Bool
++theaterOutInit(
++ TheaterOutPtr t,
++ DisplayModePtr mode,
++ RADEONSavePtr save
++ )
++{
++ const ModeConstants *p;
++ Bool isErt = t->theatre_num < 0;
++
++ RTTRACE(("Entering theaterOutInit: std=%u h=%u v=%u\n" , t->standard , mode->HDisplay , mode->VDisplay));
++
++ t->compatibleMode = FALSE;
++
++ if (t->standard != TV_STD_KEEP_OFF)
++ {
++ /*
++ * Search mode among available ones
++ */
++ for (p = availableModes; p < (availableModes + N_AVAILABLE_MODES); p++)
++ {
++ if (p->horResolution == mode->HDisplay &&
++ p->verResolution == mode->VDisplay &&
++ p->standard == t->standard)
++ {
++ /*
++ * Match found
++ */
++ t->compatibleMode = TRUE;
++ t->currentMode = p;
++
++ RT_Init(p , t->standard , isErt , TRUE , t->hPos , t->vPos , t->hSize , &t->modeState);
++ RT_InitCRTC(p , isErt , save);
++
++ return TRUE;
++ }
++ }
++ }
++
++ /*
++ * Match not found or tv output disabled
++ * First parameter is dummy when setting for no tv output, so any mode
++ * will do (here first mode in table is passed).
++ */
++ RT_Init(availableModes , TV_STD_NTSC , isErt , FALSE , t->hPos , t->vPos , t->hSize , &t->modeState);
++ return FALSE;
++}
++
++/**********************************************************************
++ *
++ * theaterOutRestoreMode
++ *
++ * Set state of RT to the one defined by last call to theaterOutInit
++ *
++ **********************************************************************/
++
++void
++theaterOutRestoreMode(
++ TheaterOutPtr t,
++ ScrnInfoPtr pScrn
++ )
++{
++ RTTRACE(("Entering theaterOutRestoreMode\n"));
++ RT_Restore(t , pScrn , &t->modeState);
++}
++
++/**********************************************************************
++ *
++ * theaterOutSetStandard
++ *
++ * Set TV output standard
++ *
++ * Return value is TRUE when video mode should be set again
++ *
++ **********************************************************************/
++Bool
++theaterOutSetStandard(
++ TheaterOutPtr t,
++ TVStd std
++ )
++{
++ TVStd oldStd = t->standard;
++
++ RTTRACE(("Entering theaterOutSetStandard\n"));
++
++ if (std >= TV_STD_N_STANDARDS)
++ std = TV_STD_KEEP_OFF;
++
++ t->standard = std;
++
++ if (t->compatibleMode)
++ return oldStd != std;
++ else
++ return std != TV_STD_KEEP_OFF && oldStd == TV_STD_KEEP_OFF;
++}
++
++/**********************************************************************
++ *
++ * theaterOutGetStandard
++ *
++ * Get current TV output standard
++ *
++ **********************************************************************/
++TVStd
++theaterOutGetStandard(
++ TheaterOutPtr t
++ )
++{
++ return t->standard;
++}
++
++/**********************************************************************
++ *
++ * theaterOutGetCompatMode
++ *
++ * Return whether the current mode is compatible with tv output or not
++ *
++ **********************************************************************/
++Bool
++theaterOutGetCompatMode(
++ TheaterOutPtr t
++ )
++{
++ return t->compatibleMode;
++}
++
++/**********************************************************************
++ *
++ * updateHVPosition
++ *
++ * Set hw registers for a new h/v position & h size
++ *
++ **********************************************************************/
++static
++void
++updateHVPosition(
++ TheaterOutPtr t
++ )
++{
++ Bool reloadTable;
++
++ reloadTable = computeRestarts(t->currentMode , t->standard , t->hPos , t->vPos , t->hSize , &t->modeState);
++
++ if (t->theatre_num < 0)
++ {
++ ERT_RestoreRestarts(t , &t->modeState);
++ ert_write(t , TV_TIMING_CNTL , t->modeState.timing_cntl);
++
++ if (reloadTable)
++ {
++ ert_write(t,
++ TV_MASTER_CNTL ,
++ t->modeState.master_cntl |
++ VIP_MASTER_CNTL_TV_ASYNC_RST |
++ VIP_MASTER_CNTL_CRT_ASYNC_RST |
++ VIP_MASTER_CNTL_RESTART_PHASE_FIX);
++
++ restoreTimingTables(t , &t->modeState);
++
++ ert_write(t ,
++ TV_MASTER_CNTL ,
++ t->modeState.master_cntl);
++ }
++ }
++ else
++ {
++ restoreRestarts(t , &t->modeState);
++ theatre_write(t , VIP_TIMING_CNTL , t->modeState.timing_cntl);
++
++ if (reloadTable)
++ {
++ theatre_write(t ,
++ VIP_MASTER_CNTL ,
++ t->modeState.master_cntl |
++ VIP_MASTER_CNTL_TV_ASYNC_RST |
++ VIP_MASTER_CNTL_CRT_ASYNC_RST);
++
++ restoreTimingTables(t , &t->modeState);
++
++ theatre_write(t ,
++ VIP_MASTER_CNTL ,
++ t->modeState.master_cntl);
++ }
++ }
++}
++
++/**********************************************************************
++ *
++ * theaterOutSetAttr
++ *
++ * Set an attribute
++ *
++ **********************************************************************/
++void
++theaterOutSetAttr(
++ TheaterOutPtr t,
++ TheaterOutAttr attr,
++ int value
++ )
++{
++ switch (attr)
++ {
++ case THEATER_OUT_HPOS:
++ if (value < -MAX_H_POSITION)
++ t->hPos = -MAX_H_POSITION;
++ else if (value > MAX_H_POSITION)
++ t->hPos = MAX_H_POSITION;
++ else
++ t->hPos = value;
++ break;
++
++ case THEATER_OUT_VPOS:
++ if (value < -MAX_V_POSITION)
++ t->vPos = -MAX_V_POSITION;
++ else if (value > MAX_V_POSITION)
++ t->vPos = MAX_V_POSITION;
++ else
++ t->vPos = value;
++ break;
++
++ case THEATER_OUT_HSIZE:
++ if (value < -MAX_H_SIZE)
++ t->hSize = -MAX_H_SIZE;
++ else if (value > MAX_H_SIZE)
++ t->hSize = MAX_H_SIZE;
++ else
++ t->hSize = value;
++ break;
++
++ default:
++ return;
++ }
++
++ if (t->compatibleMode)
++ updateHVPosition(t);
++}
++
++/**********************************************************************
++ *
++ * theaterOutGetAttr
++ *
++ * Get an attribute
++ *
++ **********************************************************************/
++int
++theaterOutGetAttr(
++ TheaterOutPtr t,
++ TheaterOutAttr attr
++ )
++{
++ switch (attr)
++ {
++ case THEATER_OUT_HPOS:
++ return t->hPos;
++
++ case THEATER_OUT_VPOS:
++ return t->vPos;
++
++ case THEATER_OUT_HSIZE:
++ return t->hSize;
++
++ default:
++ return 0;
++ }
++}
++
++/**********************************************************************
++ *
++ * theaterOutGetAttrLimits
++ *
++ * Get limits for an attribute value
++ *
++ **********************************************************************/
++void
++theaterOutGetAttrLimits(
++ TheaterOutPtr t,
++ TheaterOutAttr attr,
++ int *maxValue,
++ int *minValue
++ )
++{
++ switch (attr)
++ {
++ case THEATER_OUT_HPOS:
++ *maxValue = MAX_H_POSITION;
++ *minValue = -MAX_H_POSITION;
++ break;
++
++ case THEATER_OUT_VPOS:
++ *maxValue = MAX_V_POSITION;
++ *minValue = -MAX_V_POSITION;
++ break;
++
++ case THEATER_OUT_HSIZE:
++ *maxValue = MAX_H_SIZE;
++ *minValue = -MAX_H_SIZE;
++ break;
++
++ default:
++ break;
++ }
++}
+diff -urN -X /home/zhangle/exec/dontdiff xserver-xorg-video-ati-6.6.3.orig/src/theater_out.h xserver-xorg-video-ati-6.6.3/src/theater_out.h
+--- xserver-xorg-video-ati-6.6.3.orig/src/theater_out.h 1970-01-01 08:00:00.000000000 +0800
++++ xserver-xorg-video-ati-6.6.3/src/theater_out.h 2007-01-08 12:48:05.000000000 +0800
+@@ -0,0 +1,370 @@
++/*********************************************************************
++ *
++ * $Id: theater_out.h,v 1.1.2.2 2004/01/27 22:50:35 fulivi Exp $
++ *
++ * Interface file for theater_out module
++ *
++ * Copyright (C) 2003 Federico Ulivi
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ *
++ * AUTHORS: F.Ulivi
++ * NOTES:
++ * $Log: theater_out.h,v $
++ * Revision 1.1.2.2 2004/01/27 22:50:35 fulivi
++ * Support for positioning/sizing of image added
++ *
++ * Revision 1.1.2.9 2004/01/18 23:01:12 fede
++ * Functions for get/setting h/v pos/size replaced by
++ * theaterOutSetAttr/theaterOutGetAttr/theaterOutGetAttrLimits
++ * Circular inclusion with radeon.h fixed
++ *
++ * Revision 1.1.2.8 2004/01/11 21:43:32 fede
++ * Fixed problem with definition of TVStd
++ *
++ * Revision 1.1.2.7 2004/01/05 00:09:59 fede
++ * Functions for setting/getting H/V position added
++ * Functions for setting/getting on/off attribute removed
++ *
++ * Revision 1.1.2.1 2003/11/26 19:50:10 fulivi
++ * Support for ERT added
++ *
++ * Revision 1.1.2.6 2003/11/25 20:44:00 fede
++ * TV_STD_KEEP_OFF added
++ *
++ * Revision 1.1.2.5 2003/10/14 18:41:32 fede
++ * forceERT changed to forceVIP
++ *
++ * Revision 1.1.2.4 2003/10/11 12:30:30 fede
++ * Support for ERT added
++ *
++ * Revision 1.1 2003/09/28 21:42:37 fulivi
++ * Theater_out module added
++ *
++ * Revision 1.1.2.3 2003/09/28 15:26:09 fede
++ * Minor aesthetic changes
++ *
++ * Revision 1.1.2.1 2003/08/31 13:36:35 fede
++ * *** empty log message ***
++ *
++ *
++ *********************************************************************/
++
++#ifndef _THEATER_OUT_H
++#define _THEATER_OUT_H
++
++/**********************************************************************
++ *
++ * TheaterOutPtr
++ *
++ * Pointer to TheaterOut struct. Actual definition is in theater_out.c
++ *
++ **********************************************************************/
++typedef struct TheaterOut *TheaterOutPtr;
++
++/**********************************************************************
++ *
++ * TVStd
++ *
++ * Tv standard
++ *
++ **********************************************************************/
++typedef enum
++ {
++ TV_STD_NTSC,
++ TV_STD_PAL,
++ TV_STD_PAL_M,
++ TV_STD_PAL_60,
++ TV_STD_NTSC_J,
++ TV_STD_PAL_CN,
++ TV_STD_PAL_N,
++ TV_STD_KEEP_OFF,
++ TV_STD_N_STANDARDS /* Must be last */
++ } TVStd;
++
++/**********************************************************************
++ *
++ * TheaterOutAttr
++ *
++ * Integer-valued attributes of this module
++ *
++ **********************************************************************/
++typedef enum
++ {
++ THEATER_OUT_HPOS, /* Horizontal position */
++ THEATER_OUT_VPOS, /* Vertical position */
++ THEATER_OUT_HSIZE /* Horizontal size */
++ } TheaterOutAttr;
++
++#ifndef _RADEON_H_
++#include "radeon.h"
++#endif
++
++/**********************************************************************
++ *
++ * detectTheaterOut
++ *
++ * Detect presence of a RT chip
++ *
++ **********************************************************************/
++
++extern
++TheaterOutPtr
++detectTheaterOut(
++ ScrnInfoPtr pScrn,
++ Bool forceVIP,
++GENERIC_BUS_Ptr b
++ );
++
++/**********************************************************************
++ *
++ * initTheaterOut
++ *
++ * Initialization of module
++ *
++ * 's' should be the value of TV_Output option (i.e. the initial TV
++ * standard)
++ *
++ **********************************************************************/
++
++extern
++void
++initTheaterOut(
++ TheaterOutPtr t,
++ const char *s
++ );
++
++/**********************************************************************
++ *
++ * theaterOutSave
++ *
++ * Save current state of RT as initial state (the one that is restored
++ * when switching back to text mode)
++ *
++ **********************************************************************/
++
++extern
++void
++theaterOutSave(
++ TheaterOutPtr t,
++ ScrnInfoPtr pScrn
++ );
++
++/**********************************************************************
++ *
++ * theaterOutRestore
++ *
++ * Restore state of RT from initial state (the one saved through
++ * theaterOutSave)
++ *
++ **********************************************************************/
++
++extern
++void
++theaterOutRestore(
++ TheaterOutPtr t,
++ ScrnInfoPtr pScrn
++ );
++
++/**********************************************************************
++ *
++ * theaterOutInit
++ *
++ * Define state for cloning current CRTC mode on TV output
++ * It works in this way:
++ * 1. It checks if resolution in "mode" parameter is one of those
++ * allowing tv output
++ * 2. If resolution is OK, define RT state according to resolution and
++ * and current settings (tv standard etc.)
++ * If resolution is not ok, define RT state to turn tv output off
++ * 3. If resolution is OK, modify Radeon state to make it correct for
++ * tv output (this is needed,e.g., to set vertical frequency to 50/60 Hz)
++ *
++ * Return value is TRUE when mode is OK for cloning on tv and tv output
++ * is enabled, FALSE otherwise
++ *
++ **********************************************************************/
++
++extern
++Bool
++theaterOutInit(
++ TheaterOutPtr t,
++ DisplayModePtr mode,
++ RADEONSavePtr save
++ );
++
++/**********************************************************************
++ *
++ * theaterOutRestoreMode
++ *
++ * Set state of RT to the one defined by last call to theaterOutInit
++ *
++ **********************************************************************/
++
++extern
++void
++theaterOutRestoreMode(
++ TheaterOutPtr t,
++ ScrnInfoPtr pScrn
++ );
++
++/**********************************************************************
++ *
++ * theaterOutSetStandard
++ *
++ * Set TV output standard
++ *
++ * Return value is TRUE when video mode should be set again
++ *
++ **********************************************************************/
++
++extern
++Bool
++theaterOutSetStandard(
++ TheaterOutPtr t,
++ TVStd std
++ );
++
++/**********************************************************************
++ *
++ * theaterOutGetStandard
++ *
++ * Get current TV output standard
++ *
++ **********************************************************************/
++extern
++TVStd
++theaterOutGetStandard(
++ TheaterOutPtr t
++ );
++
++/**********************************************************************
++ *
++ * theaterOutGetCompatMode
++ *
++ * Return whether the current mode is compatible with tv output or not
++ *
++ **********************************************************************/
++extern
++Bool
++theaterOutGetCompatMode(
++ TheaterOutPtr t
++ );
++
++/**********************************************************************
++ *
++ * theaterOutSetAttr
++ *
++ * Set an attribute
++ *
++ **********************************************************************/
++extern
++void
++theaterOutSetAttr(
++ TheaterOutPtr t,
++ TheaterOutAttr attr,
++ int value
++ );
++
++/**********************************************************************
++ *
++ * theaterOutGetAttr
++ *
++ * Get an attribute
++ *
++ **********************************************************************/
++extern
++int
++theaterOutGetAttr(
++ TheaterOutPtr t,
++ TheaterOutAttr attr
++ );
++
++/**********************************************************************
++ *
++ * theaterOutGetAttrLimits
++ *
++ * Get limits for an attribute value
++ *
++ **********************************************************************/
++extern
++void
++theaterOutGetAttrLimits(
++ TheaterOutPtr t,
++ TheaterOutAttr attr,
++ int *maxValue,
++ int *minValue
++ );
++
++/**********************************************************************
++ *
++ * THEATER_OUT_SYMBOLS
++ *
++ * Symbol list for module loading
++ *
++ **********************************************************************/
++
++#define THEATER_OUT_SYMBOLS "detectTheaterOut", \
++ "initTheaterOut", \
++ "theaterOutSave", \
++ "theaterOutRestore", \
++ "theaterOutInit", \
++ "theaterOutRestoreMode", \
++ "theaterOutSetStandard", \
++ "theaterOutGetStandard", \
++ "theaterOutGetCompatMode", \
++ "theaterOutSetAttr", \
++ "theaterOutGetAttr", \
++ "theaterOutGetAttrLimits"
++
++/**********************************************************************
++ *
++ * External access to module functions
++ *
++ **********************************************************************/
++
++#ifdef XFree86LOADER
++
++#define xf86_detectTheaterOut ((TheaterOutPtr (*)(ScrnInfoPtr , Bool,GENERIC_BUS_Ptr))LoaderSymbol("detectTheaterOut"))
++#define xf86_initTheaterOut ((void (*)(TheaterOutPtr , const char*))LoaderSymbol("initTheaterOut"))
++#define xf86_theaterOutSave ((void (*)(TheaterOutPtr , ScrnInfoPtr))LoaderSymbol("theaterOutSave"))
++#define xf86_theaterOutRestore ((void (*)(TheaterOutPtr , ScrnInfoPtr))LoaderSymbol("theaterOutRestore"))
++#define xf86_theaterOutInit ((Bool (*)(TheaterOutPtr , DisplayModePtr , RADEONSavePtr))LoaderSymbol("theaterOutInit"))
++#define xf86_theaterOutRestoreMode ((void (*)(TheaterOutPtr , ScrnInfoPtr))LoaderSymbol("theaterOutRestoreMode"))
++#define xf86_theaterOutSetStandard ((Bool (*)(TheaterOutPtr , TVStd))LoaderSymbol("theaterOutSetStandard"))
++#define xf86_theaterOutGetStandard ((TVStd (*)(TheaterOutPtr))LoaderSymbol("theaterOutGetStandard"))
++#define xf86_theaterOutGetCompatMode ((Bool (*)(TheaterOutPtr))LoaderSymbol("theaterOutGetCompatMode"))
++#define xf86_theaterOutSetAttr ((void (*)(TheaterOutPtr , TheaterOutAttr , int))LoaderSymbol("theaterOutSetAttr"))
++#define xf86_theaterOutGetAttr ((int (*)(TheaterOutPtr , TheaterOutAttr))LoaderSymbol("theaterOutGetAttr"))
++#define xf86_theaterOutGetAttrLimits ((void (*)(TheaterOutPtr , TheaterOutAttr , int * , int *))LoaderSymbol("theaterOutGetAttrLimits"))
++
++#else
++
++#define xf86_detectTheaterOut detectTheaterOut
++#define xf86_initTheaterOut initTheaterOut
++#define xf86_theaterOutSave theaterOutSave
++#define xf86_theaterOutRestore theaterOutRestore
++#define xf86_theaterOutInit theaterOutInit
++#define xf86_theaterOutRestoreMode theaterOutRestoreMode
++#define xf86_theaterOutSetStandard theaterOutSetStandard
++#define xf86_theaterOutGetStandard theaterOutGetStandard
++#define xf86_theaterOutGetCompatMode theaterOutGetCompatMode
++#define xf86_theaterOutSetAttr theaterOutSetAttr
++#define xf86_theaterOutGetAttr theaterOutGetAttr
++#define xf86_theaterOutGetAttrLimits theaterOutGetAttrLimits
++
++#endif /* XFree86LOADER */
++
++#endif /* _THEATER_OUT_H */
+diff -urN -X /home/zhangle/exec/dontdiff xserver-xorg-video-ati-6.6.3.orig/src/theater_out_module.c xserver-xorg-video-ati-6.6.3/src/theater_out_module.c
+--- xserver-xorg-video-ati-6.6.3.orig/src/theater_out_module.c 1970-01-01 08:00:00.000000000 +0800
++++ xserver-xorg-video-ati-6.6.3/src/theater_out_module.c 2007-01-08 12:48:04.000000000 +0800
+@@ -0,0 +1,45 @@
++#ifdef HAVE_CONFIG_H
++#include "config.h"
++#endif
++
++#include "xf86Module.h"
++
++static MODULESETUPPROTO(theaterOutSetup);
++
++static
++XF86ModuleVersionInfo
++theaterVersRec =
++{
++ "theater_out", /* modname */
++ MODULEVENDORSTRING, /* vendor */
++ MODINFOSTRING1, /* _modinfo1_ */
++ MODINFOSTRING2, /* _modinfo2_ */
++ XORG_VERSION_CURRENT, /* xf86version */
++ 1, /* majorversion */
++ 0, /* minorversion */
++ 0, /* patchlevel */
++ ABI_CLASS_VIDEODRV, /* abiclass */
++ ABI_VIDEODRV_VERSION, /* abiversion */
++ MOD_CLASS_NONE, /* moduleclass */
++ { 0 , 0 , 0 , 0 } /* checksum */
++};
++
++_X_EXPORT XF86ModuleData
++theater_outModuleData =
++ {
++ &theaterVersRec,
++ theaterOutSetup,
++ NULL
++ };
++
++static
++pointer
++theaterOutSetup(
++ pointer module,
++ pointer opts,
++ int *errmaj,
++ int *errmin
++ )
++{
++ return (pointer)1;
++}
+diff -urN -X /home/zhangle/exec/dontdiff xserver-xorg-video-ati-6.6.3.orig/src/tvo_set/Imakefile xserver-xorg-video-ati-6.6.3/src/tvo_set/Imakefile
+--- xserver-xorg-video-ati-6.6.3.orig/src/tvo_set/Imakefile 1970-01-01 08:00:00.000000000 +0800
++++ xserver-xorg-video-ati-6.6.3/src/tvo_set/Imakefile 2007-01-08 12:48:04.000000000 +0800
+@@ -0,0 +1,38 @@
++@@ -0,0 +1,37 @@
++XCOMM $Id: Imakefile,v 1.1.2.1 2004/01/27 22:55:40 fulivi Exp $
++XCOMM
++XCOMM Imakefile for tvo_set utility
++XCOMM
++XCOMM Copyright (C) 2004 Federico Ulivi
++XCOMM
++XCOMM This program is free software; you can redistribute it and/or modify
++XCOMM it under the terms of the GNU General Public License as published by
++XCOMM the Free Software Foundation; either version 2 of the License, or
++XCOMM (at your option) any later version.
++XCOMM
++XCOMM This program is distributed in the hope that it will be useful,
++XCOMM but WITHOUT ANY WARRANTY; without even the implied warranty of
++XCOMM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++XCOMM GNU General Public License for more details.
++XCOMM
++XCOMM You should have received a copy of the GNU General Public License
++XCOMM along with this program; if not, write to the Free Software
++XCOMM Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++XCOMM
++XCOMM AUTHORS: F.Ulivi
++XCOMM NOTES:
++XCOMM $Log: Imakefile,v $
++XCOMM Revision 1.1.2.1 2004/01/27 22:55:40 fulivi
++XCOMM Initial release
++XCOMM
++XCOMM Revision 1.1.2.1 2004/01/25 23:07:31 fede
++XCOMM *** empty log message ***
++XCOMM
++XCOMM
++
++ DEPLIBS = $(DEPXVLIB) $(DEPXLIB)
++LOCAL_LIBRARIES = $(XVLIB) $(XLIB)
++ SRCS = tvo_set.c
++ OBJS = tvo_set.o
++
++ComplexProgramTargetNoMan(tvo_set)
+diff -urN -X /home/zhangle/exec/dontdiff xserver-xorg-video-ati-6.6.3.orig/src/tvo_set/tvo_set.c xserver-xorg-video-ati-6.6.3/src/tvo_set/tvo_set.c
+--- xserver-xorg-video-ati-6.6.3.orig/src/tvo_set/tvo_set.c 1970-01-01 08:00:00.000000000 +0800
++++ xserver-xorg-video-ati-6.6.3/src/tvo_set/tvo_set.c 2007-01-08 12:48:04.000000000 +0800
+@@ -0,0 +1,472 @@
++/*********************************************************************
++ *
++ * $Id: tvo_set.c,v 1.1.2.1 2004/01/27 22:55:40 fulivi Exp $
++ *
++ * Main (and only) module of tvo_set utility.
++ * The purpose of this utility is to set various parameters of
++ * tv output module.
++ *
++ * Copyright (C) 2004 Federico Ulivi
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ *
++ * AUTHORS: F.Ulivi
++ * NOTES:
++ * $Log: tvo_set.c,v $
++ * Revision 1.1.2.1 2004/01/27 22:55:40 fulivi
++ * Initial release
++ *
++ * Revision 1.1.2.2 2004/01/25 23:07:47 fede
++ * GPL notice added
++ *
++ * Revision 1.1.2.1 2004/01/25 15:09:42 fede
++ * First version
++ *
++ *
++ *********************************************************************/
++
++#include <X11/X.h>
++#include <X11/Xlib.h>
++#include <X11/extensions/Xvlib.h>
++#include <stdio.h>
++#include <stdlib.h>
++#include <errno.h>
++#include <string.h>
++
++/**********************************************************************
++ *
++ * program_name
++ *
++ **********************************************************************/
++static
++const char *program_name;
++
++/**********************************************************************
++ *
++ * Action
++ *
++ **********************************************************************/
++typedef enum
++ {
++ ACT_FULL_DUMP,
++ ACT_SET,
++ ACT_INC,
++ ACT_DEC,
++ ACT_ZERO
++ } Action;
++
++/**********************************************************************
++ *
++ * attrNames / attrData
++ *
++ **********************************************************************/
++typedef struct
++{
++ Atom atom;
++ int minValue;
++ int maxValue;
++} AttrData;
++
++typedef struct
++{
++ char* extName;
++ char* attrName;
++ char* description;
++} AttrName;
++
++static
++const AttrName attrNames[] =
++ {
++ { "hpos" , "XV_TVO_HPOS" , "Horizontal position" },
++ { "vpos" , "XV_TVO_VPOS" , "Vertical position" },
++ { "hsize" , "XV_TVO_HSIZE" , "Horizontal size" },
++ { "std" , "XV_TVO_STANDARD" , "TV Standard" }
++ };
++
++#define N_ATTRS (sizeof(attrNames) / sizeof(attrNames[ 0 ]))
++/*
++ * Index of TV standard attribute
++ */
++#define STD_ATTR 3
++
++static
++AttrData attrData[ N_ATTRS ];
++
++/**********************************************************************
++ *
++ * stdNames
++ *
++ **********************************************************************/
++static
++const char *stdNames[] =
++ {
++ "NTSC",
++ "PAL",
++ "PAL-M",
++ "PAL-60",
++ "NTSC-J",
++ "PAL-CN",
++ "PAL-N",
++ "OFF"
++ };
++#define N_STDS (sizeof(stdNames) / sizeof(stdNames[ 0 ]))
++
++/**********************************************************************
++ *
++ * scanAttributes
++ *
++ **********************************************************************/
++static
++Bool
++subScanAttributes(
++ Display *dpy,
++ XvAttribute *pAttributes,
++ int nAttributes
++ )
++{
++ unsigned i;
++ unsigned j;
++ Atom theAtom;
++
++ for (i = 0; i < N_ATTRS; i++)
++ {
++ const char* name = attrNames[ i ].attrName;
++
++ for (j = 0; j < nAttributes; j++)
++ {
++ if (strcmp(name , pAttributes[ j ].name) == 0)
++ {
++ attrData[ i ].minValue = pAttributes[ j ].min_value;
++ attrData[ i ].maxValue = pAttributes[ j ].max_value;
++ if ((pAttributes[ j ].flags & (XvGettable | XvSettable)) != (XvGettable | XvSettable))
++ return False;
++
++ theAtom = XInternAtom(dpy , name , True);
++ if (theAtom == None)
++ return False;
++
++ attrData[ i ].atom = theAtom;
++
++ break;
++ }
++ }
++ if (j == nAttributes)
++ return False;
++ }
++
++ return True;
++}
++
++static
++Bool
++scanAttributes(
++ Display *dpy,
++ XvPortID portID
++ )
++{
++ XvAttribute *pAttributes;
++ int nAttributes;
++ Bool res = False;
++
++ if ((pAttributes = XvQueryPortAttributes(dpy , portID , &nAttributes)) == 0)
++ return False;
++
++ if (nAttributes > 0)
++ res = subScanAttributes(dpy , pAttributes , nAttributes);
++
++ XFree(pAttributes);
++ return res;
++}
++
++/**********************************************************************
++ *
++ * getAttribute
++ *
++ **********************************************************************/
++static
++void
++getAttribute(
++ Display *dpy,
++ XvPortID portID,
++ int attribute,
++ int *value
++ )
++{
++ if (XvGetPortAttribute(dpy ,
++ portID ,
++ attrData[ attribute ].atom ,
++ value) == Success)
++ return;
++
++ fprintf(stderr , "%s: Unable to get value of attribute %s\n" , program_name , attrNames[ attribute ].attrName);
++ exit(2);
++}
++
++/**********************************************************************
++ *
++ * setAttribute
++ *
++ **********************************************************************/
++static
++void
++setAttribute(
++ Display *dpy,
++ XvPortID portID,
++ int attribute,
++ int value
++ )
++{
++ int dummy;
++
++ if (XvSetPortAttribute(dpy , portID , attrData[ attribute ].atom , value) != Success)
++ {
++ fprintf(stderr , "%s: Unable to set value of attribute %s\n" , program_name , attrNames[ attribute ].attrName);
++ exit(2);
++ }
++
++ getAttribute(dpy , portID , attribute , &dummy);
++}
++
++/**********************************************************************
++ *
++ * parseAttribute
++ *
++ **********************************************************************/
++static
++int
++parseAttribute(
++ const char *name
++ )
++{
++ int i;
++
++ for (i = 0; i < N_ATTRS; i++)
++ if (strcasecmp(name , attrNames[ i ].extName) == 0)
++ return i;
++
++ return -1;
++}
++
++/**********************************************************************
++ *
++ * parseStd
++ *
++ **********************************************************************/
++static
++int
++parseStd(
++ const char *name
++ )
++{
++ int i;
++
++ for (i = 0; i < N_STDS; i++)
++ if (strcasecmp(name , stdNames[ i ]) == 0)
++ return i;
++
++ return -1;
++}
++
++/**********************************************************************
++ *
++ * printUsage
++ *
++ **********************************************************************/
++static
++void
++printUsage(void)
++{
++ unsigned i;
++
++ fprintf(stderr , "Usage:\n"
++ "%s [-display host:dpy] [<cmd> <attribute> [<value>]]\n\n" , program_name);
++ fprintf(stderr , "When <cmd> is absent, a dump of all attributes is done\n");
++ fprintf(stderr , "Allowed <cmd>s:\n"
++ "set <attribute> <value> Set <attribute> to <value>\n"
++ "inc <attribute> Increment <attribute> by 1\n"
++ "dec <attribute> Decrement <attribute> by 1\n"
++ "zero <attribute> Set <attribute> to 0\n"
++ "\nAllowed <attribute>s:\n");
++
++ for (i = 0; i < N_ATTRS; i++)
++ fprintf(stderr , "%-6s %s\n" , attrNames[ i ].extName , attrNames[ i ].description);
++
++ fprintf(stderr , "\nFor %s attribute, both the numeric value and the name of the standard are valid.\n" ,
++ attrNames[ STD_ATTR ].extName);
++
++ fprintf(stderr , "\nAllowed standards:\n");
++
++ for (i = 0; i < N_STDS; i++)
++ fprintf(stderr , "%d %s\n" , i , stdNames[ i ]);
++
++ exit(1);
++}
++
++/**********************************************************************
++ *
++ * main
++ *
++ **********************************************************************/
++int
++main(
++ int argc,
++ char *argv[]
++ )
++{
++ Action action;
++ Display *dpy;
++ char *disname = NULL;
++ unsigned argIdx = 1;
++ int attribute;
++ int value;
++ unsigned ver, rev, eventB, reqB, errorB;
++ XvAdaptorInfo *ainfo;
++ unsigned nadaptors;
++ unsigned i;
++ XvPortID portID;
++
++ program_name = argv[ 0 ];
++
++ if (argc >= 3 &&
++ strcmp(argv[ argIdx ] , "-display") == 0)
++ {
++ argIdx++;
++ disname = argv[ argIdx++ ];
++ }
++
++ if (argIdx < argc)
++ {
++ if (strcasecmp(argv[ argIdx ] , "set") == 0)
++ action = ACT_SET;
++ else if (strcasecmp(argv[ argIdx ] , "inc") == 0)
++ action = ACT_INC;
++ else if (strcasecmp(argv[ argIdx ] , "dec") == 0)
++ action = ACT_DEC;
++ else if (strcasecmp(argv[ argIdx ] , "zero") == 0)
++ action = ACT_ZERO;
++ else
++ printUsage();
++
++ argIdx++;
++ if (argIdx >= argc)
++ printUsage();
++
++ if ((attribute = parseAttribute(argv[ argIdx ])) < 0)
++ {
++ fprintf(stderr , "%s: Unrecognized attribute name (%s)\n" , program_name , argv[ argIdx ]);
++ printUsage();
++ }
++ argIdx++;
++
++ if (action == ACT_SET)
++ {
++ if (argIdx >= argc)
++ printUsage();
++ if (sscanf(argv[ argIdx ] , "%d" , &value) != 1 &&
++ (attribute != STD_ATTR || (value = parseStd(argv[ argIdx ])) < 0))
++ printUsage();
++ }
++ }
++ else
++ action = ACT_FULL_DUMP;
++
++ /*
++ * Open display
++ */
++ if (!(dpy = XOpenDisplay(disname)))
++ {
++ fprintf(stderr , "%s: Unable to open display %s\n" , program_name ,
++ (disname != NULL) ? disname : XDisplayName(NULL));
++ return -1;
++ }
++
++ if (XvQueryExtension(dpy, &ver, &rev, &reqB, &eventB, &errorB) != Success)
++ {
++ fprintf(stderr , "%s: No XV Extension on %s\n" , program_name ,
++ (disname != NULL) ? disname : XDisplayName(NULL));
++ return 0;
++ }
++
++ /*
++ * Use screen #0
++ */
++ XvQueryAdaptors(dpy , RootWindow(dpy , 0) , &nadaptors , &ainfo);
++
++ if (!nadaptors)
++ {
++ fprintf(stderr , "%s: No adaptors present\n" , program_name);
++ return 0;
++ }
++
++ /*
++ * Use adaptor #0
++ */
++ portID = ainfo[ 0 ].base_id;
++ if (!scanAttributes(dpy , portID))
++ {
++ fprintf(stderr , "%s: Invalid attributes in XV adaptor\n" , program_name);
++ return 0;
++ }
++
++ switch (action)
++ {
++ case ACT_FULL_DUMP:
++ for(i = 0; i < nadaptors; i++)
++ {
++ printf("Adaptor #%d: \"%s\"\n" , i , ainfo[ i ].name);
++ printf(" number of ports : %d\n" , ainfo[ i ].num_ports);
++ printf(" port base : %d\n" , ainfo[ i ].base_id);
++ printf(" number of adaptors: %u\n" , ainfo[ i ].num_adaptors);
++ }
++ for (i = 0; i < N_ATTRS; i++)
++ {
++ getAttribute(dpy , portID , i , &value);
++ if (i == STD_ATTR)
++ if (value < 0 || value >= N_STDS)
++ printf ("%s = ??? (%d)\n" , attrNames[ i ].extName , value);
++ else
++ printf ("%s = %s (%d)\n" , attrNames[ i ].extName , stdNames[ value ] , value);
++ else
++ printf("%s = %d\n" , attrNames[ i ].extName , value);
++ }
++ break;
++
++ case ACT_SET:
++ setAttribute(dpy , portID , attribute , value);
++ break;
++
++ case ACT_INC:
++ getAttribute(dpy , portID , attribute , &value);
++ value++;
++ if (value > attrData[ attribute ].maxValue)
++ value = attrData[ attribute ].minValue;
++ setAttribute(dpy , portID , attribute , value);
++ break;
++
++ case ACT_DEC:
++ getAttribute(dpy , portID , attribute , &value);
++ value--;
++ if (value < attrData[ attribute ].minValue)
++ value = attrData[ attribute ].maxValue;
++ setAttribute(dpy , portID , attribute , value);
++ break;
++
++ case ACT_ZERO:
++ setAttribute(dpy , portID , attribute , 0);
++ break;
++ }
++
++ return 0;
++}
diff --git a/x11-drivers/xf86-video-ati/metadata.xml b/x11-drivers/xf86-video-ati/metadata.xml
new file mode 100644
index 0000000..01c4c00
--- /dev/null
+++ b/x11-drivers/xf86-video-ati/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>x11</herd>
+</pkgmetadata>
diff --git a/x11-drivers/xf86-video-ati/xf86-video-ati-6.6.3.ebuild b/x11-drivers/xf86-video-ati/xf86-video-ati-6.6.3.ebuild
new file mode 100644
index 0000000..5fa3bb0
--- /dev/null
+++ b/x11-drivers/xf86-video-ati/xf86-video-ati-6.6.3.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-drivers/xf86-video-ati/xf86-video-ati-6.6.3.ebuild,v 1.10 2006/10/21 14:42:41 exg Exp $
+
+# Must be before x-modular eclass is inherited
+#SNAPSHOT="yes"
+
+inherit x-modular
+
+DESCRIPTION="ATI video driver"
+
+KEYWORDS="alpha amd64 arm ia64 ppc ppc64 sh sparc x86 ~x86-fbsd ~mips"
+IUSE="dri"
+
+RDEPEND=">=x11-base/xorg-server-1.0.99"
+DEPEND="${RDEPEND}
+ x11-proto/fontsproto
+ x11-proto/randrproto
+ x11-proto/videoproto
+ x11-proto/xextproto
+ x11-proto/xineramaproto
+ x11-proto/xf86miscproto
+ x11-proto/xproto
+ dri? ( x11-proto/glproto
+ x11-proto/xf86driproto
+ >=x11-libs/libdrm-2 )"
+
+CONFIGURE_OPTIONS="$(use_enable dri)"
+
+PATCHES="${FILESDIR}/${P}-loongson.patch"
+
+src_unpack() {
+ x-modular_src_unpack
+ eautoreconf
+ elibtoolize
+}
+
+pkg_setup() {
+ if use dri && ! built_with_use x11-base/xorg-server dri; then
+ die "Build x11-base/xorg-server with USE=dri."
+ fi
+}
diff --git a/x11-libs/libdrm/ChangeLog b/x11-libs/libdrm/ChangeLog
new file mode 100644
index 0000000..3b69bd9
--- /dev/null
+++ b/x11-libs/libdrm/ChangeLog
@@ -0,0 +1,154 @@
+# ChangeLog for x11-libs/libdrm
+# Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/x11-libs/libdrm/ChangeLog,v 1.40 2007/01/06 01:03:50 kloeri Exp $
+
+ 06 Jan 2007; Bryan Østergaard <kloeri@gentoo.org> libdrm-2.0.2.ebuild:
+ Stable on Alpha.
+
+*libdrm-2.3.0 (10 Nov 2006)
+
+ 10 Nov 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ -libdrm-2.2.0.ebuild, +libdrm-2.3.0.ebuild:
+ Version bump for 7.2RC2 with support for upcoming X servers. Adds drmOpenOnce
+ and drmCloseOnce and support for the server to use the system libdrm, instead
+ of the (now) removed internal one. These changes are only important for GIT
+ head or >=1.2.99.0 servers.
+
+*libdrm-2.2.0 (02 Nov 2006)
+
+ 02 Nov 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ +libdrm-2.2.0.ebuild:
+ Version bump with a large amount of changes. Notables: Mach64 work and
+ support for the new memory manager.
+
+ 14 Oct 2006; Bryan Østergaard <kloeri@gentoo.org> libdrm-2.0.2.ebuild:
+ Stable on ia64.
+
+ 13 Oct 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ libdrm-2.0.2.ebuild:
+ AMD64/x86 stable for bug #144549 (X7.1).
+
+ 12 Sep 2006; Gustavo Zacarias <gustavoz@gentoo.org> libdrm-2.0.2.ebuild:
+ Stable on hppa
+
+ 04 Sep 2006; Joshua Kinard <kumba@gentoo.org> libdrm-2.0.2.ebuild:
+ Marked stable on mips.
+
+ 24 Aug 2006; Markus Rothe <corsair@gentoo.org> libdrm-2.0.2.ebuild:
+ Stable on ppc64
+
+ 23 Aug 2006; Ferris McCormick <fmccor@gentoo.org> libdrm-2.0.2.ebuild:
+ Stable on sparc (part of general bookkeeping to sync sparc to a known state
+ now that xorg-x11-7.1 is stable on sparc).
+
+ 20 Aug 2006; Donnie Berkholz <dberkholz@gentoo.org>; libdrm-2.0.2.ebuild:
+ Stable on x86/ppc.
+
+ 19 Jul 2006; Guy Martin <gmsoft@gentoo.org> libdrm-2.0.1.ebuild:
+ Stable on hppa.
+
+*libdrm-2.0.2 (14 Jul 2006)
+
+ 14 Jul 2006; Donnie Berkholz <dberkholz@gentoo.org>; +libdrm-2.0.2.ebuild:
+ Bump, change ewarn to elog.
+
+ 10 Jul 2006; Aron Griffis <agriffis@gentoo.org> libdrm-2.0.1.ebuild:
+ Mark 2.0.1 stable on ia64
+
+ 30 Jun 2006; Donnie Berkholz <spyderous@gentoo.org>; libdrm-2.0.1.ebuild:
+ ppc/sparc/mips/alpha/arm/sh stable
+
+ 30 Jun 2006; Donnie Berkholz <spyderous@gentoo.org>; +libdrm-2.0.1.ebuild:
+ Restore mistakenly removed ebuild.
+
+ 30 Jun 2006; Donnie Berkholz <spyderous@gentoo.org>; -libdrm-2.0.ebuild,
+ -libdrm-2.0.1.ebuild:
+ Pull old versions.
+
+ 30 Jun 2006; Chris Gianelloni <wolf31o2@gentoo.org> libdrm-2.0.1.ebuild:
+ Stable on amd64.
+
+ 30 Jun 2006; Markus Rothe <corsair@gentoo.org> libdrm-2.0.1.ebuild:
+ Stable on ppc64
+
+ 30 Jun 2006; Donnie Berkholz <spyderous@gentoo.org>; libdrm-2.0.1.ebuild:
+ x86 stable.
+
+*libdrm-2.0.1 (01 Apr 2006)
+
+ 01 Apr 2006; Joshua Baergen <joshuabaergen@gentoo.org>
+ +libdrm-2.0.1.ebuild:
+ Bump from upstream. Includes some new defines required by Mesa 6.5/HEAD.
+
+ 31 Mar 2006; Diego Pettenò <flameeyes@gentoo.org> libdrm-2.0.ebuild:
+ Add ~x86-fbsd keyword.
+
+ 10 Mar 2006; Donnie Berkholz <spyderous@gentoo.org>; libdrm-2.0.ebuild:
+ (#125506) Use --library for revdep-rebuild, not --soname.
+
+ 09 Mar 2006; Aron Griffis <agriffis@gentoo.org> libdrm-2.0.ebuild:
+ Mark 2.0 ~ia64
+
+ 14 Feb 2006; Markus Rothe <corsair@gentoo.org> libdrm-2.0.ebuild:
+ Added ~ppc64
+
+ 31 Jan 2006; Rene Nussbaumer <killerfox@gentoo.org> libdrm-2.0.ebuild:
+ Unstable on hppa.
+
+ 26 Dec 2005; Stefaan De Roeck <stefaan@gentoo.org> libdrm-2.0.ebuild:
+ Marked ~alpha
+
+ 17 Dec 2005; Joshua Baergen <joshuabaergen@gentoo.org> ChangeLog:
+ Bump for 7.0RC4.
+
+ 09 Dec 2005; Donnie Berkholz <spyderous@gentoo.org>; -libdrm-1.0.1.ebuild,
+ -libdrm-1.0.3.ebuild, -libdrm-1.0.4.ebuild, -libdrm-1.0.5.ebuild:
+ Pull old versions.
+
+ 05 Dec 2005; Joshua Baergen <joshuabaergen@gentoo.org> libdrm-2.0.ebuild:
+ Doh, now libdrm stays...
+
+ 04 Dec 2005; Joshua Baergen <joshuabaergen@gentoo.org> libdrm-2.0.ebuild:
+ Keep the old libdrm.so.1 around so things don't break horribly on upgrade.
+
+*libdrm-2.0 (04 Dec 2005)
+
+ 04 Dec 2005; Joshua Baergen <joshuabaergen@gentoo.org> +libdrm-2.0.ebuild:
+ Version bump.
+
+*libdrm-1.0.5 (31 Oct 2005)
+
+ 31 Oct 2005; Donnie Berkholz <spyderous@gentoo.org>; +libdrm-1.0.5.ebuild:
+ Bump with via fixes.
+
+*libdrm-1.0.4 (20 Oct 2005)
+
+ 20 Oct 2005; Donnie Berkholz <spyderous@gentoo.org>; +libdrm-1.0.4.ebuild:
+ Bump to remove libX11 dependency.
+
+ 09 Sep 2005; Donnie Berkholz <spyderous@gentoo.org>; +metadata.xml:
+ Add metadata.
+
+ 28 Aug 2005; MATSUU Takuto <matsuu@gentoo.org> libdrm-1.0.3.ebuild:
+ Marked ~sh
+
+ 20 Aug 2005; Luca Barbato <lu_zero@gentoo.org> libdrm-1.0.1.ebuild,
+ libdrm-1.0.3.ebuild:
+ Marked ~ppc
+
+*libdrm-1.0.3 (20 Aug 2005)
+
+ 20 Aug 2005; Donnie Berkholz <spyderous@gentoo.org>; +libdrm-1.0.3.ebuild:
+ Bump.
+
+ 15 Aug 2005; Herbie Hopkins <herbs@gentoo.org> libdrm-1.0.1.ebuild:
+ Marked ~amd64
+
+ 09 Aug 2005; Ferris McCormick <fmccor@gentoo.org> libdrm-1.0.1.ebuild:
+ Add ~sparc keyword (X modular testing).
+
+*libdrm-1.0.1 (08 Aug 2005)
+
+ 08 Aug 2005; Donnie Berkholz <spyderous@gentoo.org>; +libdrm-1.0.1.ebuild:
+ Initial commit for modular X.
+
diff --git a/x11-libs/libdrm/Manifest b/x11-libs/libdrm/Manifest
new file mode 100644
index 0000000..9fb5195
--- /dev/null
+++ b/x11-libs/libdrm/Manifest
@@ -0,0 +1,20 @@
+AUX libdrm-loongson.patch 2196 RMD160 a1c39f37c019296513dace34f82793fa6322b750 SHA1 15f736fba60ab5ec56b6b64508cbe6c868fe6d08 SHA256 5348f74d784e8f16f996571656377d8b85473a88ab5df202267e6ffcfa6fa7e4
+MD5 1685c2a276f8c1d4cc6e236bee62ede2 files/libdrm-loongson.patch 2196
+RMD160 a1c39f37c019296513dace34f82793fa6322b750 files/libdrm-loongson.patch 2196
+SHA256 5348f74d784e8f16f996571656377d8b85473a88ab5df202267e6ffcfa6fa7e4 files/libdrm-loongson.patch 2196
+DIST libdrm-2.3.0.tar.gz 391509 RMD160 2ca594cf17fc074b1addd1f370dd3409b5a03dd7 SHA1 fd62459b11c39a58e5b45b8af30a8217d5ce0e1b SHA256 76f90a22e141832bccea3fabf14e2b2a53e1ff72fe8414e2836ea8ac7e2e3dab
+EBUILD libdrm-2.3.0.ebuild 1247 RMD160 39b4260b84811f5566f8b1e0d71e23b3d753b83c SHA1 d84aabc763ec62b41235775b86774813b2c66d32 SHA256 d7ff70ce16c12378f998a4aa2e809c7bb8d44828ee7236d1bce001f66897a30c
+MD5 e3c3b7fde50a87aac1dd42f77b68516f libdrm-2.3.0.ebuild 1247
+RMD160 39b4260b84811f5566f8b1e0d71e23b3d753b83c libdrm-2.3.0.ebuild 1247
+SHA256 d7ff70ce16c12378f998a4aa2e809c7bb8d44828ee7236d1bce001f66897a30c libdrm-2.3.0.ebuild 1247
+MISC ChangeLog 5078 RMD160 82343b31fe834c7f30e822c79e368de8d9e7e84b SHA1 5a7569a17d67ec633a0ada4bfca8bd869abc59fd SHA256 fb3712816e68f0327cf8ed8e070844a425c68fdcefad986ff749aa187926941a
+MD5 1cb96ef63ded9593e726a0a14e46e722 ChangeLog 5078
+RMD160 82343b31fe834c7f30e822c79e368de8d9e7e84b ChangeLog 5078
+SHA256 fb3712816e68f0327cf8ed8e070844a425c68fdcefad986ff749aa187926941a ChangeLog 5078
+MISC metadata.xml 156 RMD160 c1274bdccf57603d580de0075ba07a35b7509560 SHA1 6f78f604e3d079d39189b40aaaa1ddb06182ad91 SHA256 5101ab0d4cc8c7125eea733c44e86962769bd77acaf53b69223b9cadcdd29055
+MD5 a37bab73e2f24b213932c30997d3d360 metadata.xml 156
+RMD160 c1274bdccf57603d580de0075ba07a35b7509560 metadata.xml 156
+SHA256 5101ab0d4cc8c7125eea733c44e86962769bd77acaf53b69223b9cadcdd29055 metadata.xml 156
+MD5 52cd3fd1604c435de6151f308336d76c files/digest-libdrm-2.3.0 238
+RMD160 c99257ce7b06b2114070bd2687cf2715f1bd110b files/digest-libdrm-2.3.0 238
+SHA256 92b955d0d9ce84e83e0d3bc97e755f32c838929215ab60ce3eabc1c38a2eb052 files/digest-libdrm-2.3.0 238
diff --git a/x11-libs/libdrm/files/digest-libdrm-2.3.0 b/x11-libs/libdrm/files/digest-libdrm-2.3.0
new file mode 100644
index 0000000..6644017
--- /dev/null
+++ b/x11-libs/libdrm/files/digest-libdrm-2.3.0
@@ -0,0 +1,3 @@
+MD5 f2f5d3186bee51be49e1389bed39a7ed libdrm-2.3.0.tar.gz 391509
+RMD160 2ca594cf17fc074b1addd1f370dd3409b5a03dd7 libdrm-2.3.0.tar.gz 391509
+SHA256 76f90a22e141832bccea3fabf14e2b2a53e1ff72fe8414e2836ea8ac7e2e3dab libdrm-2.3.0.tar.gz 391509
diff --git a/x11-libs/libdrm/files/libdrm-loongson.patch b/x11-libs/libdrm/files/libdrm-loongson.patch
new file mode 100644
index 0000000..c067c9d
--- /dev/null
+++ b/x11-libs/libdrm/files/libdrm-loongson.patch
@@ -0,0 +1,54 @@
+diff -urN libdrm-2.3.0/libdrm/xf86drm.h libdrm-2.3.0.new/libdrm/xf86drm.h
+--- libdrm-2.3.0/libdrm/xf86drm.h 2006-11-09 05:55:14.000000000 +0800
++++ libdrm-2.3.0.new/libdrm/xf86drm.h 2007-03-01 05:29:41.000000000 +0800
+@@ -346,6 +346,29 @@
+ "r" (new)); \
+ } while(0)
+
++#elif defined(__mips__)
++
++#define DRM_CAS(lock, old, new, ret) \
++ do { \
++ __asm__ __volatile__( \
++ " .set mips3;.set noreorder;\n" \
++ " sync; \n" \
++ " ll %1, %0;\n" \
++ " bne %1, %2, 1f;\n" \
++ " li %1, 1; \n" \
++ " move %1, %3; \n" \
++ " sc %1, %0;\n" \
++ " xori %1, %1, 1\n" \
++ "1: \n" \
++ " .set mips0; .set reorder;\n" \
++ : "=m" (__drm_dummy_lock(lock)),\
++ "=&r" (ret) \
++ : "r" (old), \
++ "r" (new) \
++ :"memory","$8" \
++ ); \
++ } while(0)
++
+ #elif defined(__sparc__)
+
+ #define DRM_CAS(lock,old,new,__ret) \
+@@ -427,7 +450,7 @@
+ #define DRM_CAS(lock,old,new,ret) do { ret=1; } while (0) /* FAST LOCK FAILS */
+ #endif
+
+-#if defined(__alpha__) || defined(__powerpc__)
++#if defined(__alpha__) || defined(__powerpc__) || defined(__mips__)
+ #define DRM_CAS_RESULT(_result) int _result
+ #else
+ #define DRM_CAS_RESULT(_result) char _result
+diff -urN libdrm-2.3.0/shared-core/drm_sarea.h libdrm-2.3.0.new/shared-core/drm_sarea.h
+--- libdrm-2.3.0/shared-core/drm_sarea.h 2006-11-08 12:03:26.000000000 +0800
++++ libdrm-2.3.0.new/shared-core/drm_sarea.h 2007-03-01 05:31:34.000000000 +0800
+@@ -37,6 +37,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 --git a/x11-libs/libdrm/libdrm-2.3.0.ebuild b/x11-libs/libdrm/libdrm-2.3.0.ebuild
new file mode 100644
index 0000000..aa30d01
--- /dev/null
+++ b/x11-libs/libdrm/libdrm-2.3.0.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-libs/libdrm/libdrm-2.3.0.ebuild,v 1.1 2006/11/10 03:48:39 joshuabaergen Exp $
+
+# Must be before x-modular eclass is inherited
+#SNAPSHOT="yes"
+
+inherit x-modular
+
+DESCRIPTION="X.Org libdrm library"
+HOMEPAGE="http://dri.freedesktop.org/"
+SRC_URI="http://dri.freedesktop.org/libdrm/${P}.tar.gz"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd"
+RDEPEND=""
+DEPEND="${RDEPEND}"
+
+src_unpack() {
+ unpack "${A}"
+ cd "${S}"
+ epatch "${FILESDIR}/${PN}-loongson.patch"
+}
+
+pkg_preinst() {
+ x-modular_pkg_preinst
+
+ if [[ -e ${ROOT}/usr/$(get_libdir)/libdrm.so.1 ]] ; then
+ cp -pPR "${ROOT}"/usr/$(get_libdir)/libdrm.so.{1,1.0.0} "${IMAGE}"/usr/$(get_libdir)/
+ fi
+}
+
+pkg_postinst() {
+ x-modular_pkg_postinst
+
+ if [[ -e ${ROOT}/usr/$(get_libdir)/libdrm.so.1 ]] ; then
+ elog "You must re-compile all packages that are linked against"
+ elog "libdrm 1 by using revdep-rebuild from gentoolkit:"
+ elog "# revdep-rebuild --library libdrm.so.1"
+ elog "After this, you can delete /usr/$(get_libdir)/libdrm.so.1"
+ elog "and /usr/$(get_libdir)/libdrm.so.1.0.0 ."
+ epause
+ fi
+}
diff --git a/x11-libs/libdrm/metadata.xml b/x11-libs/libdrm/metadata.xml
new file mode 100644
index 0000000..01c4c00
--- /dev/null
+++ b/x11-libs/libdrm/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>x11</herd>
+</pkgmetadata>