summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBryan Stine <battousai@gentoo.org>2004-04-08 06:20:01 +0000
committerBryan Stine <battousai@gentoo.org>2004-04-08 06:20:01 +0000
commitbff217769c2c90fea79ceea4148907e6f8e4fcda (patch)
tree2cb39cca6ffae56d9c9fdf63f5fda02a6887f4c0 /x11-base
parentMask in-development xfree-drm. (diff)
downloadgentoo-2-bff217769c2c90fea79ceea4148907e6f8e4fcda.tar.gz
gentoo-2-bff217769c2c90fea79ceea4148907e6f8e4fcda.tar.bz2
gentoo-2-bff217769c2c90fea79ceea4148907e6f8e4fcda.zip
Added in-development 4.3.0-r8
Diffstat (limited to 'x11-base')
-rw-r--r--x11-base/xfree-drm/ChangeLog9
-rw-r--r--x11-base/xfree-drm/files/digest-xfree-drm-4.3.0-r84
-rw-r--r--x11-base/xfree-drm/xfree-drm-4.3.0-r8.ebuild270
3 files changed, 282 insertions, 1 deletions
diff --git a/x11-base/xfree-drm/ChangeLog b/x11-base/xfree-drm/ChangeLog
index 4d9ae7783cd7..e2aaad800d2e 100644
--- a/x11-base/xfree-drm/ChangeLog
+++ b/x11-base/xfree-drm/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for x11-base/xfree-drm
# Copyright 2002-2004 Gentoo Technologies, Inc.; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-base/xfree-drm/ChangeLog,v 1.63 2004/03/20 21:21:40 spyderous Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-base/xfree-drm/ChangeLog,v 1.64 2004/04/08 06:20:01 battousai Exp $
+
+*xfree-drm-4.3.0-r8 (06 Apr 2004)
+
+ 06 Apr 2004; Bryan Stine <bryan@gentoo.org> xfree-drm-4.3.0-r8.ebuild:
+ Added in-development version 4.3.0-r8. This is not ready for use yet. Changes
+ from previous include handling 2.6 kernels and the modules.d fix. I may have
+ forgotten something here and there may be more coming.
20 Mar 2004; Donnie Berkholz <spyderous@gentoo.org>;
xfree-drm-4.3.0-r2.ebuild:
diff --git a/x11-base/xfree-drm/files/digest-xfree-drm-4.3.0-r8 b/x11-base/xfree-drm/files/digest-xfree-drm-4.3.0-r8
new file mode 100644
index 000000000000..c5d20145697c
--- /dev/null
+++ b/x11-base/xfree-drm/files/digest-xfree-drm-4.3.0-r8
@@ -0,0 +1,4 @@
+MD5 3bb3c0ac9b5ef19b545701f3d454b0c8 xfree-drm-4.3.0-r8-gentoo-0.4.tar.bz2 16210
+MD5 b1cc5fb755df16855915eb38747982eb linux-drm-4.3.0-kernelsource-20031202.tar.bz2 440304
+MD5 698a248d4192967eb41d9577bed8d75a linux-drm-gatos-4.3.0-kernelsource-20031202.tar.bz2 154684
+MD5 ccd16a915cd22f707ac3aac743b1398d linux-drm-mach64-4.3.0-kernelsource-20031202.tar.bz2 429549
diff --git a/x11-base/xfree-drm/xfree-drm-4.3.0-r8.ebuild b/x11-base/xfree-drm/xfree-drm-4.3.0-r8.ebuild
new file mode 100644
index 000000000000..7b3b4860e499
--- /dev/null
+++ b/x11-base/xfree-drm/xfree-drm-4.3.0-r8.ebuild
@@ -0,0 +1,270 @@
+# Copyright 1999-2004 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-base/xfree-drm/xfree-drm-4.3.0-r8.ebuild,v 1.1 2004/04/08 06:20:01 battousai Exp $
+
+IUSE="gatos"
+IUSE_VIDEO_CARDS="3dfx gamma i810 i830 matrox rage128 radeon sis mach64"
+
+inherit eutils xfree kmod
+
+# Make sure Portage does _NOT_ strip symbols. We will do it later and make sure
+# that only we only strip stuff that are safe to strip ...
+RESTRICT="nostrip"
+
+SNAPSHOT="20031202"
+PATCHVER="0.4"
+PATCHDIR="${WORKDIR}/patch"
+EXCLUDED="${PATCHDIR}/excluded"
+S="${WORKDIR}/drm"
+DESCRIPTION="XFree86 Kernel DRM modules"
+HOMEPAGE="http://dri.sf.net"
+# Use the same patchset for all of them; exclude patches as necessary
+SRC_URI="mirror://gentoo/${PF}-gentoo-${PATCHVER}.tar.bz2
+ mirror://gentoo/linux-drm-${PV}-kernelsource-${SNAPSHOT}.tar.bz2
+ gatos? ( mirror://gentoo/linux-drm-gatos-${PV}-kernelsource-${SNAPSHOT}.tar.bz2 )
+ video_cards_mach64? ( mirror://gentoo/linux-drm-mach64-${PV}-kernelsource-${SNAPSHOT}.tar.bz2 )"
+
+# These sources come from one of these places:
+#
+# http://www.xfree86.org/~alanh/ -- Makefile.linux from DRM snapshots
+# http://people.debian.org/~daenzer/ -- drm-ioremap patch
+# http://dri.sourceforge.net CVS -- xc/xc/programs/Xserver/hw/os-support
+# -- the CVS is at freedesktop.org now, but webpage is still sourceforge
+#
+# We throw all necessary files into one folder and turn that into our tarball.
+# find os-support/ -name *.[ch] -exec cp {} drm/ \;
+# find os-support/linux/drm/kernel/ -maxdepth 1 -type f -exec cp {} drm/ \;
+
+SLOT="${KV}"
+LICENSE="X11"
+KEYWORDS="x86 ~alpha ~ia64 ~ppc"
+
+# Need new portage for USE_EXPAND
+DEPEND=">=x11-base/xfree-${PV}
+ virtual/linux-sources
+ >=sys-apps/portage-2.0.49-r13"
+
+PROVIDE="virtual/drm"
+
+pkg_setup() {
+ # mach64 is exclusive of other modules
+ check_exclusive mach64
+
+ # Require at least one video card
+ if [ -z "${VIDEO_CARDS}" ]
+ then
+ die "Please set at least one video card in VIDEO_CARDS in make.conf or the environment. Possible VIDEO_CARDS values are: ${IUSE_VIDEO_CARDS}."
+ fi
+
+ # gatos doesn't build on anything but radeon
+ if use gatos
+ then
+ if [ ! "`use video_cards_radeon`" -a ! "`use video_cards_rage128`" ]
+ then
+ die "Remove gatos from your USE flags. It does not build for cards other than radeon and rage128."
+ fi
+ is_kernel 2 6 && die "GATOS does not work with 2.6 kernels. Please use a 2.4 kernel."
+ fi
+
+ # Set video cards to build for
+ set_vidcards
+
+ return 0
+}
+
+src_unpack() {
+ if use gatos
+ then
+ unpack linux-drm-gatos-${PV}-kernelsource-${SNAPSHOT}.tar.bz2
+ unpack ${PF}-gentoo-${PATCHVER}.tar.bz2
+ elif use video_cards_mach64
+ then
+ unpack linux-drm-mach64-${PV}-kernelsource-${SNAPSHOT}.tar.bz2
+ unpack ${PF}-gentoo-${PATCHVER}.tar.bz2
+ else # standard case
+ unpack linux-drm-${PV}-kernelsource-${SNAPSHOT}.tar.bz2
+ unpack ${PF}-gentoo-${PATCHVER}.tar.bz2
+ fi
+
+ cd ${S}
+
+ # Move AGP checker and alanh's Makefile over
+ cp ${PATCHDIR}/picker.c ${S}
+ is_kernel 2 4 && cp ${PATCHDIR}/Makefile.linux-2.4 ${S}/Makefile.linux
+ is_kernel 2 6 && cp ${PATCHDIR}/Makefile.linux-2.6 ${S}/Makefile.linux
+
+ patch_prepare
+
+ # Apply patches
+ EPATCH_SUFFIX="patch" epatch ${PATCHDIR}
+ sed -ie "s:/kernel/drivers/char/drm:/xfree-drm:g" Makefile.linux
+}
+
+src_compile() {
+# get_kernel_info
+ ln -sf Makefile.linux Makefile
+ if is_kernel 2 6
+ then
+ einfo "Building DRM (${VIDCARDS}) for kernel 2.6..."
+ unset ARCH
+ make -f Makefile.linux \
+ DRM_MODULES="${VIDCARDS}" \
+ LINUXDIR=//usr/src/linux \
+ LINUXOUTPUT=${KV_OUTPUT} \
+ modules || die "Build failed."
+ else
+ einfo "Building DRM for kernel 2.4..."
+ make ${VIDCARDS} \
+ TREE="/usr/src/linux/include" KV="${KV}" || die "Build failed."
+ fi
+
+ # Build dristat utility (bug #18799)
+ # But, don't do it if the GATOS drivers are being built, since it won't work
+ if [ ! "`use gatos`" ]
+ then
+ make dristat || die
+ fi
+}
+
+src_install() {
+ einfo "installing DRM..."
+ if is_kernel 2 6
+ then
+ MYARCH="$ARCH"
+ if [ "$ARCH" = "x86" ]
+ then
+ MYARCH="i386"
+ fi
+ make -f Makefile.linux \
+ KV="${KV}" \
+ LINUXDIR=/usr/src/linux \
+ LINUXOUTPUT=${KV_OUTPUT} \
+ MODS="${VIDCARDS}" \
+ ARCH="${MYARCH}" \
+ DESTDIR="${D}" \
+ install || die "Install failed."
+ else
+ make \
+ TREE="/usr/src/linux/include" \
+ KV="${KV}" \
+ DESTDIR="${D}" \
+ MODS="${VIDCARDS}" \
+ install || die "Install failed."
+ fi
+ dodoc README*
+ if [ ! "`use gatos`" ]
+ then
+ exeinto /usr/X11R6/bin
+ doexe dristat
+
+ # Strip binaries, leaving /lib/modules untouched (bug #24415)
+ strip_bins \/lib\/modules
+ fi
+
+ # Yoinked from the sys-apps/touchpad ebuild. Thanks to whoever made this.
+ keepdir /etc/modules.d
+ sed 's:%KV%:'${KV}':g' ${FILESDIR}/modules.d-${PN} > ${D}/etc/modules.d/${PN}
+}
+
+pkg_postinst() {
+ if [ "${ROOT}" = "/" ]
+ then
+ /sbin/modules-update
+ fi
+
+ if use video_cards_sis
+ then
+ einfo "SiS direct rendering only works on 300 series chipsets."
+ einfo "SiS framebuffer also needs to be enabled in the kernel."
+ fi
+
+ if use video_cards_mach64
+ then
+ ewarn "The Mach64 DRI driver is insecure."
+ ewarn "Malicious clients can write to system memory."
+ ewarn "For more information, see:"
+ ewarn "http://dri.sourceforge.net/cgi-bin/moin.cgi/ATIMach64?value=CategoryHardwareChipset."
+ fi
+}
+
+
+# Functions used earlier are defined below.
+
+check_exclusive() {
+ # If a certain module is being built, don't allow any others.
+ # Most useful for mach64, since it must be built exclusively
+ # since the two directories are both named drm to make ${S} easier
+
+ local x
+ local c="0"
+ if use video_cards_${1}
+ then
+ for x in ${IUSE_VIDEO_CARDS}
+ do
+ if use video_cards_${x}
+ then
+ c="`expr ${c} + 1`"
+ if [ "${c}" -ge "2" ]
+ then
+ die "You cannot build for ${1} and any other card at the same time."
+ fi
+ fi
+ done
+ fi
+}
+
+set_vidcards() {
+ get_kernel_info
+ VIDCARDS=""
+
+ use video_cards_matrox && \
+ VIDCARDS="${VIDCARDS} mga.${KV_OBJ}"
+ use video_cards_3dfx && \
+ VIDCARDS="${VIDCARDS} tdfx.${KV_OBJ}"
+ use video_cards_rage128 && \
+ VIDCARDS="${VIDCARDS} r128.${KV_OBJ}"
+ use video_cards_radeon && \
+ VIDCARDS="${VIDCARDS} radeon.${KV_OBJ}"
+ use video_cards_sis && \
+ VIDCARDS="${VIDCARDS} sis.${KV_OBJ}"
+ use video_cards_i810 && \
+ VIDCARDS="${VIDCARDS} i810.${KV_OBJ}"
+ use video_cards_i830 && \
+ VIDCARDS="${VIDCARDS} i830.${KV_OBJ}"
+ use video_cards_gamma && \
+ VIDCARDS="${VIDCARDS} gamma.${KV_OBJ}"
+ use video_cards_mach64 && \
+ VIDCARDS="${VIDCARDS} mach64.${KV_OBJ}"
+}
+
+patch_prepare() {
+ # Do patch excluding based on standard, mach64 or gatos here.
+ # Works everywhere:
+ # 002_all_dristat-compile-fix.patch
+
+ is_kernel 2 4 && mv -f ${PATCHDIR}/*2.6* ${EXCLUDED}
+ is_kernel 2 6 && mv -f ${PATCHDIR}/*2.4* ${EXCLUDED}
+
+ if use video_cards_mach64
+ then
+ einfo "Updating for mach64 build..."
+ # Also exclude all non-mach64 patches
+ # mv -f ${PATCHDIR}/3* ${EXCLUDED}
+ mv -f ${PATCHDIR}/004* ${EXCLUDED}
+ mv -f ${PATCHDIR}/1* ${EXCLUDED}
+ mv -f ${PATCHDIR}/3* ${EXCLUDED}
+ elif use gatos
+ then
+ einfo "Updating for gatos build..."
+ # This Makefile.linux might be more work to port to alanh's version
+ # Exclude all non-gatos patches
+ mv -f ${PATCHDIR}/004* ${EXCLUDED}
+ mv -f ${PATCHDIR}/1* ${EXCLUDED}
+ mv -f ${PATCHDIR}/2* ${EXCLUDED}
+ else # standard case
+ einfo "Updating for standard build..."
+ # Exclude all gatos or mach64 patches
+ mv -f ${PATCHDIR}/2* ${EXCLUDED}
+ mv -f ${PATCHDIR}/3* ${EXCLUDED}
+ fi
+}