New snapshot, also installs nouveau now. No more kernel 2.4 support! Should fix bug...
authorBryan Stine <battousai@gentoo.org>
Wed, 14 Mar 2007 17:08:12 +0000 (17:08 +0000)
committerBryan Stine <battousai@gentoo.org>
Wed, 14 Mar 2007 17:08:12 +0000 (17:08 +0000)
Package-Manager: portage-2.1.2.2

x11-base/x11-drm/ChangeLog
x11-base/x11-drm/Manifest
x11-base/x11-drm/files/digest-x11-drm-20070314 [new file with mode: 0644]
x11-base/x11-drm/x11-drm-20070314.ebuild [new file with mode: 0644]

index dbf7fb834a37c408976d4e89c9f356f4ad14a24b..7181aec98c746858e87a106d3c637946e180a327 100644 (file)
@@ -1,6 +1,15 @@
 # ChangeLog for x11-base/x11-drm
 # Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-base/x11-drm/ChangeLog,v 1.50 2007/01/04 07:31:03 battousai Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-base/x11-drm/ChangeLog,v 1.51 2007/03/14 17:08:12 battousai Exp $
+
+*x11-drm-20070314 (14 Mar 2007)
+
+  14 Mar 2007; Bryan Stine <battousai@gentoo.org> +x11-drm-20070314.ebuild:
+  New snapshot of upstream git. Mesa upstream drm has removed support for 2.4
+  kernels, so this ebuild will die if the user attempts to build against such
+  sources. Most likely, this means we'll have to keep 20060608 around. The
+  nouveau module is now installed alongside nv, so users can load the one they
+  want (probably nouveau). The updated snapshot should fix bug #165553.
 
   04 Jan 2007; Bryan Stine <battousai@gentoo.org> x11-drm-20060608.ebuild,
   x11-drm-20060608-r1.ebuild:
index 7a2d7c293117451cf693a6570cc9e2c26c7e9e93..cec2b6d822aed6c457e290448a55217e465311ac 100644 (file)
@@ -4,8 +4,10 @@ RMD160 7bdcba81be1a55311e31ec4ef88dc9c1b7ec85c8 files/modules.d-x11-drm 40
 SHA256 97fb08b2c529d65b415dec23dc7130721be9850129100e4b7063baa1060641e2 files/modules.d-x11-drm 40
 DIST linux-drm-20051223-kernelsource.tar.bz2 560381 RMD160 4f5707a9de908eb1bab44162588d6f29241a9df4 SHA1 705ec2ce431d72292e1ff0ddbcc4b195a7cd8186 SHA256 cdf54b79d06a92afb3d3f68550c5f4864544d03464b3fc1cc0d954eb18cac2ef
 DIST linux-drm-20060608-kernelsource.tar.bz2 568004 RMD160 253608313539a651ad6724bcb67b5f4ab28eaf4f SHA1 466c1410c05f715286cf44437c1946cdaacf2cde SHA256 5f2346f3eba114c4d5655325f3fd51e0b74f6f627bf0c4e435103c8972f52731
+DIST linux-drm-20070314-kernelsource.tar.bz2 424009 RMD160 649e007221b1a92e6604695f9467e065bc90e6b8 SHA1 b8d8c12affaa85d8e9eb025bc3a5516afaf53719 SHA256 ff9b834426fdbcee24991c42acef823c8beab6c15baec0c39e66a5acb790fd69
 DIST x11-drm-20051223-gentoo-0.2.tar.bz2 2451 RMD160 f04dc1d07b81b384d53db68f3b1385693187c283 SHA1 a7a50dbdcb469c0bd32e3e65300ccbe24a72f348 SHA256 1fcab4021db6135d2346a7547f89afda0042fc6cefaaf20ee0db5fed7bd9c4b2
 DIST x11-drm-20060608-gentoo-0.3.tar.bz2 3684 RMD160 ce8b7816048143bf7bf79f755a0380dadb47e1b4 SHA1 33e8bf92569dcf8a61661f9d324211b2746b1c02 SHA256 e39fc9e7dbffdb125afd2d94e5d329ab7d723ad883a23cbd3fa02122622a26dd
+DIST x11-drm-20070314-gentoo-0.1.tar.bz2 980 RMD160 af1d8089b70c62d0c650b25eab0a1bc129c48a7b SHA1 9e1ebfd78d926bf0b299bae6a2088b6e996597f8 SHA256 8e17b5580993e0e42ab76a347ed6edcb561beb9f69ea4baed744add18a0a14f2
 EBUILD x11-drm-20051223.ebuild 6384 RMD160 e28ebee2ce1caf5c90dc2e944a04911ba2c02089 SHA1 eda5b06dfda1efd02c98760b1167247a3a627bcc SHA256 1b38d0282cab1bfbbeb36bade40ea03a3604e8d50121aef958611afcadc464ac
 MD5 95c3e96dee51eaca5684499b709a2b9b x11-drm-20051223.ebuild 6384
 RMD160 e28ebee2ce1caf5c90dc2e944a04911ba2c02089 x11-drm-20051223.ebuild 6384
@@ -18,10 +20,14 @@ EBUILD x11-drm-20060608.ebuild 6379 RMD160 b8340bd8798160685db4442b1e90168cb1add
 MD5 5119f40b8342c2075e6fc15d03848fa6 x11-drm-20060608.ebuild 6379
 RMD160 b8340bd8798160685db4442b1e90168cb1add4b1 x11-drm-20060608.ebuild 6379
 SHA256 b9dbe05bbc3e9e00300877b4ae5efc11983b8ca9c73af3d8a2c6e531aba53d02 x11-drm-20060608.ebuild 6379
-MISC ChangeLog 22581 RMD160 11693756607665e4ae7a9abd25f543e815745c73 SHA1 6bd44d61331a7b7d7f53b3613f093b2440c9bd3b SHA256 01b393832fad9088c7e1806971e19d61d65c7dc7dace0a66054b549613b64485
-MD5 efeca2a2b3c5b2038ab1b797189ea2f1 ChangeLog 22581
-RMD160 11693756607665e4ae7a9abd25f543e815745c73 ChangeLog 22581
-SHA256 01b393832fad9088c7e1806971e19d61d65c7dc7dace0a66054b549613b64485 ChangeLog 22581
+EBUILD x11-drm-20070314.ebuild 8270 RMD160 281915f25e37ac0eb1ea9892dc4e02edd8fc90aa SHA1 99ecedde9cda09013b326d21617b8b9e75c3ab82 SHA256 68392341de8b4bc722650250867f9858d924799371572ffce40f0edf25917667
+MD5 95c3e39530b92bdc4353360de0e5aab8 x11-drm-20070314.ebuild 8270
+RMD160 281915f25e37ac0eb1ea9892dc4e02edd8fc90aa x11-drm-20070314.ebuild 8270
+SHA256 68392341de8b4bc722650250867f9858d924799371572ffce40f0edf25917667 x11-drm-20070314.ebuild 8270
+MISC ChangeLog 23073 RMD160 6f3c8982796af1d2c94ad8e8fb6c11ca6a641083 SHA1 8063d053a992fb2b46f5a594e93e3799919dbfff SHA256 1e3c6417fce83a7187d358cdca03c4b0dbdba642c887a36c2ef52b2e3c825e67
+MD5 73d1bb2bed38c422717cd54d3e93f5d1 ChangeLog 23073
+RMD160 6f3c8982796af1d2c94ad8e8fb6c11ca6a641083 ChangeLog 23073
+SHA256 1e3c6417fce83a7187d358cdca03c4b0dbdba642c887a36c2ef52b2e3c825e67 ChangeLog 23073
 MISC metadata.xml 368 RMD160 cbe279aeafeae0af3633fbd1ecaa59d2f54579b8 SHA1 5104adf2f1ebe1ddffe4ca95e7b5e5f06267f842 SHA256 e73a5c428f39881de8ae5acf40958e8ad37a5fe92c2bb8cc4060704c9be45ef1
 MD5 782be9470cf76716a15aa5a70f4b8af7 metadata.xml 368
 RMD160 cbe279aeafeae0af3633fbd1ecaa59d2f54579b8 metadata.xml 368
@@ -35,3 +41,6 @@ SHA256 cb45eaa431e8989e31bfd73eb7884bbb19a85e7b28fa69cbe4b02af8c61fb272 files/di
 MD5 490da72615811bb65e15c96a25ef07f9 files/digest-x11-drm-20060608-r1 578
 RMD160 af4d50504a817d163cb4d9b1e62789bbed9deac2 files/digest-x11-drm-20060608-r1 578
 SHA256 cb45eaa431e8989e31bfd73eb7884bbb19a85e7b28fa69cbe4b02af8c61fb272 files/digest-x11-drm-20060608-r1 578
+MD5 e25bbc3f7fdfe7e48acfee6b58ee68a3 files/digest-x11-drm-20070314 575
+RMD160 66f11dc980f5e217241494082d2f89ed639a2499 files/digest-x11-drm-20070314 575
+SHA256 834d59112bca50dcf8adc42debd63f41bb8b6789bc2d2bd4e57a4f9c91663418 files/digest-x11-drm-20070314 575
diff --git a/x11-base/x11-drm/files/digest-x11-drm-20070314 b/x11-base/x11-drm/files/digest-x11-drm-20070314
new file mode 100644 (file)
index 0000000..1cf9d3b
--- /dev/null
@@ -0,0 +1,6 @@
+MD5 05d53089e0dcfb98623afd43511badcc linux-drm-20070314-kernelsource.tar.bz2 424009
+RMD160 649e007221b1a92e6604695f9467e065bc90e6b8 linux-drm-20070314-kernelsource.tar.bz2 424009
+SHA256 ff9b834426fdbcee24991c42acef823c8beab6c15baec0c39e66a5acb790fd69 linux-drm-20070314-kernelsource.tar.bz2 424009
+MD5 8861a4259d189dc0847e8e494c254fc6 x11-drm-20070314-gentoo-0.1.tar.bz2 980
+RMD160 af1d8089b70c62d0c650b25eab0a1bc129c48a7b x11-drm-20070314-gentoo-0.1.tar.bz2 980
+SHA256 8e17b5580993e0e42ab76a347ed6edcb561beb9f69ea4baed744add18a0a14f2 x11-drm-20070314-gentoo-0.1.tar.bz2 980
diff --git a/x11-base/x11-drm/x11-drm-20070314.ebuild b/x11-base/x11-drm/x11-drm-20070314.ebuild
new file mode 100644 (file)
index 0000000..9857d53
--- /dev/null
@@ -0,0 +1,345 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-base/x11-drm/x11-drm-20070314.ebuild,v 1.1 2007/03/14 17:08:12 battousai Exp $
+
+inherit eutils x11 linux-mod
+
+IUSE_VIDEO_CARDS="
+       video_cards_i810
+       video_cards_mach64
+       video_cards_mga
+       video_cards_nv
+       video_cards_r128
+       video_cards_radeon
+       video_cards_savage
+       video_cards_sis
+       video_cards_sunffb
+       video_cards_tdfx
+       video_cards_via"
+IUSE="${IUSE_VIDEO_CARDS} kernel_FreeBSD kernel_linux"
+
+# 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"
+
+S="${WORKDIR}/drm"
+PATCHVER="0.1"
+PATCHDIR="${WORKDIR}/patch"
+EXCLUDED="${WORKDIR}/excluded"
+
+DESCRIPTION="DRM Kernel Modules for X11"
+HOMEPAGE="http://dri.sf.net"
+SRC_URI="mirror://gentoo/${P}-gentoo-${PATCHVER}.tar.bz2
+        mirror://gentoo/linux-drm-${PV}-kernelsource.tar.bz2"
+
+SLOT="0"
+LICENSE="X11"
+KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~x86 ~x86-fbsd"
+
+DEPEND=">=sys-devel/automake-1.7
+       >=sys-devel/autoconf-2.59
+       >=sys-devel/libtool-1.5.14
+       >=sys-devel/m4-1.4
+       kernel_linux? ( virtual/linux-sources )
+       kernel_FreeBSD? ( sys-freebsd/freebsd-sources
+                       sys-freebsd/freebsd-mk-defs )
+       >=sys-apps/portage-2.0.49-r13"
+
+pkg_setup() {
+       # Setup the kernel's stuff.
+       kernel_setup
+
+       # Set video cards to build for.
+       set_vidcards
+
+       # Determine which -core dir we build in.
+       get_drm_build_dir
+
+       return 0
+}
+
+src_unpack() {
+       unpack linux-drm-${PV}-kernelsource.tar.bz2
+       unpack ${P}-gentoo-${PATCHVER}.tar.bz2
+
+       cd ${S}
+
+       patch_prepare
+
+       # Apply patches
+       EPATCH_SUFFIX="patch" epatch ${PATCHDIR}
+
+       # Substitute new directory under /lib/modules/${KV_FULL}
+       cd ${SRC_BUILD}
+       sed -ie "s:/kernel/drivers/char/drm:/${PN}:g" Makefile
+
+       cp ${S}/tests/*.c ${SRC_BUILD}
+
+       src_unpack_os
+
+       cd ${S}
+       WANT_AUTOCONF="2.5" WANT_AUTOMAKE="1.7" autoreconf -v --install
+}
+
+src_compile() {
+       cd ${S}
+       # Building the programs. These are useful for developers and getting info from DRI and DRM.
+       #
+       # libdrm objects are needed for drmstat.
+       econf || die "libdrm configure failed."
+       emake || die "libdrm build failed."
+
+       einfo "Building DRM in ${SRC_BUILD}..."
+       src_compile_os
+       einfo "DRM build finished".
+}
+
+src_install() {
+       einfo "Installing DRM..."
+       cd ${SRC_BUILD}
+
+       src_install_os
+
+       dodoc "${S}/linux-core/README.drm"
+
+       dobin dristat
+       dobin drmstat
+}
+
+pkg_postinst() {
+       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
+               einfo "The Mach64 DRI driver is insecure."
+               einfo "Malicious clients can write to system memory."
+               einfo "For more information, see:"
+               einfo "http://dri.freedesktop.org/wiki/ATIMach64."
+       fi
+
+       pkg_postinst_os
+}
+
+# Functions used above are defined below:
+
+kernel_setup() {
+       if use kernel_FreeBSD
+       then
+               K_RV=${CHOST/*-freebsd/}
+       elif use kernel_linux
+       then
+               get_version
+
+               if kernel_is 2 4
+               then
+                       eerror "Upstream support for 2.4 kernels has been removed, so this package will no"
+                       eerror "longer support them."
+                       die "Please use in-kernel DRM or switch to a 2.6 kernel."
+               fi
+
+               if linux_chkconfig_builtin "DRM"
+               then
+                       die "Please disable or modularize DRM in the kernel config. (CONFIG_DRM = n or m)"
+               fi
+
+               if ! linux_chkconfig_present "AGP"
+               then
+                       einfo "AGP support is not enabled in your kernel config. This may be needed for DRM to"
+                       einfo "work, so you might want to double-check that setting. (CONFIG_AGP)"
+                       echo
+               fi
+       fi
+}
+
+set_vidcards() {
+       if use kernel_linux; then
+               set_kvobj
+               I810_VIDCARDS="i810.${KV_OBJ} i830.${KV_OBJ} i915.${KV_OBJ}"
+       elif use kernel_FreeBSD; then
+               KV_OBJ="ko"
+               # bsd does not have i810/i830, only i915:
+               I810_VIDCARDS="i915.${KV_OBJ}"
+       fi
+
+       VIDCARDS=""
+
+       if [[ -n "${VIDEO_CARDS}" ]]; then
+               use video_cards_i810 && \
+                       VIDCARDS="${VIDCARDS} ${I810_VIDCARDS}"
+               use video_cards_mach64 && \
+                       VIDCARDS="${VIDCARDS} mach64.${KV_OBJ}"
+               use video_cards_mga && \
+                       VIDCARDS="${VIDCARDS} mga.${KV_OBJ}"
+               use video_cards_nv && \
+                       VIDCARDS="${VIDCARDS} nv.${KV_OBJ} nouveau.${KV_OBJ}"
+               use video_cards_r128 && \
+                       VIDCARDS="${VIDCARDS} r128.${KV_OBJ}"
+               use video_cards_radeon && \
+                       VIDCARDS="${VIDCARDS} radeon.${KV_OBJ}"
+               use video_cards_savage && \
+                       VIDCARDS="${VIDCARDS} savage.${KV_OBJ}"
+               use video_cards_sis && \
+                       VIDCARDS="${VIDCARDS} sis.${KV_OBJ}"
+               use video_cards_via && \
+                       VIDCARDS="${VIDCARDS} via.${KV_OBJ}"
+               use video_cards_sunffb && \
+                       VIDCARDS="${VIDCARDS} ffb.${KV_OBJ}"
+               use video_cards_tdfx && \
+                       VIDCARDS="${VIDCARDS} tdfx.${KV_OBJ}"
+       fi
+}
+
+get_drm_build_dir() {
+       if use kernel_FreeBSD
+       then
+               SRC_BUILD="${S}/bsd-core"
+       elif kernel_is 2 6
+       then
+               SRC_BUILD="${S}/linux-core"
+       fi
+}
+
+patch_prepare() {
+       # Handle exclusions based on the following...
+       #     All trees (0**), Standard only (1**), Others (none right now)
+       #     2.4 vs. 2.6 kernels
+       if use kernel_linux
+       then
+           kernel_is 2 6 && mv -f ${PATCHDIR}/*kernel-2.4* ${EXCLUDED}
+       fi
+
+       # There is only one tree being maintained now. No numeric exclusions need
+       # to be done based on DRM tree.
+}
+
+src_unpack_freebsd() {
+       # Do FreeBSD stuff.
+       if use kernel_FreeBSD
+       then
+               # Link in freebsd kernel.
+               ln -s "/usr/src/sys-${K_RV}" "${WORKDIR}/sys"
+               # SUBDIR variable gets to all Makefiles, we need it only in the main one.
+               SUBDIRS=${VIDCARDS//.ko}
+               sed -ie "s:SUBDIR\ =.*:SUBDIR\ =\ drm ${SUBDIRS}:" ${SRC_BUILD}/Makefile
+       fi
+}
+
+src_unpack_os() {
+       if use kernel_FreeBSD
+       then
+               src_unpack_freebsd
+       fi
+}
+
+src_compile_os() {
+       if use kernel_linux
+       then
+               src_compile_linux
+       elif use kernel_FreeBSD
+       then
+               src_compile_freebsd
+       fi
+}
+
+src_install_os() {
+       if use kernel_linux
+       then
+               src_install_linux
+       elif use kernel_FreeBSD
+       then
+               src_install_freebsd
+       fi
+}
+
+src_compile_linux() {
+       # This now uses an M= build system. Makefile does most of the work.
+       cd ${SRC_BUILD}
+       unset ARCH
+       emake M="${SRC_BUILD}" \
+               LINUXDIR="${KERNEL_DIR}" \
+               DRM_MODULES="${VIDCARDS}" \
+               modules || die_error
+
+       if linux_chkconfig_present DRM
+       then
+               echo "Please disable in-kernel DRM support to use this package."
+       fi
+
+       # LINUXDIR is needed to allow Makefiles to find kernel release.
+       cd ${SRC_BUILD}
+       emake LINUXDIR="${KERNEL_DIR}" dristat || die "Building dristat failed."
+       emake LINUXDIR="${KERNEL_DIR}" drmstat || die "Building drmstat failed."
+}
+
+src_compile_freebsd() {
+       cd ${SRC_BUILD}
+       # Environment CFLAGS overwrite kernel CFLAGS which is bad.
+       local svcflags=${CFLAGS}; local svldflags=${LDFLAGS}
+       unset CFLAGS; unset LDFLAGS
+       MAKE=make \
+               emake \
+               NO_WERROR= \
+               SYSDIR="${WORKDIR}/sys" \
+               KMODDIR="/boot/modules" \
+               || die "pmake failed."
+       export CFLAGS=${svcflags}; export LDFLAGS=${svldflags}
+
+       cd "${S}/tests"
+       # -D_POSIX_SOURCE skips the definition of several stuff we need
+       # for these two to compile
+       sed -i -e "s/-D_POSIX_SOURCE//" Makefile
+       emake dristat || die "Building dristat failed."
+       emake drmstat || die "Building drmstat failed."
+       # Move these where the linux stuff expects them
+       mv dristat drmstat ${SRC_BUILD}
+}
+
+die_error() {
+       eerror "Portage could not build the DRM modules. If you see an ACCESS DENIED error,"
+       eerror "this could mean that you were using an unsupported kernel build system."
+       eerror "Only 2.6 kernels at least as new as 2.6.6 are supported."
+       die "Unable to build DRM modules."
+}
+
+src_install_linux() {
+       cd ${SRC_BUILD}
+       unset ARCH
+       kernel_is 2 6 && DRM_KMOD="drm.${KV_OBJ}"
+       emake KV="${KV_FULL}" \
+               LINUXDIR="${KERNEL_DIR}" \
+               DESTDIR="${D}" \
+               RUNNING_REL="${KV_FULL}" \
+               MODULE_LIST="${VIDCARDS} ${DRM_KMOD}" \
+               install || die "Install failed."
+
+       # Strip binaries, leaving /lib/modules untouched (bug #24415)
+       strip_bins \/lib\/modules
+
+       # Yoinked from the sys-apps/touchpad ebuild. Thanks to whoever made this.
+       keepdir /etc/modules.d
+       sed 's:%PN%:'${PN}':g' ${FILESDIR}/modules.d-${PN} > ${D}/etc/modules.d/${PN}
+       sed -i 's:%KV%:'${KV_FULL}':g' ${D}/etc/modules.d/${PN}
+}
+
+src_install_freebsd() {
+       cd ${SRC_BUILD}
+       dodir "/boot/modules"
+       MAKE=make \
+               emake \
+               install \
+               NO_WERROR= \
+               DESTDIR="${D}" \
+               KMODDIR="/boot/modules" \
+               || die "Install failed."
+}
+
+pkg_postinst_os() {
+       if use kernel_linux
+       then
+               linux-mod_pkg_postinst
+       fi
+}