summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBryan Stine <battousai@gentoo.org>2009-03-21 00:23:02 +0000
committerBryan Stine <battousai@gentoo.org>2009-03-21 00:23:02 +0000
commitf781099897387f83ef52d61f890a9f2c41380382 (patch)
tree2c2196ea967fc64bb5ba6375e359e8b6a4bb3a07 /x11-base
parentx86 stable, bug #261386 (diff)
downloadhistorical-f781099897387f83ef52d61f890a9f2c41380382.tar.gz
historical-f781099897387f83ef52d61f890a9f2c41380382.tar.bz2
historical-f781099897387f83ef52d61f890a9f2c41380382.zip
x11-drm-20090320, with ebuild fixes from overlay and radeonhd support. Fixes bug #260728.
Package-Manager: portage-2.2_rc25/cvs/Linux x86_64
Diffstat (limited to 'x11-base')
-rw-r--r--x11-base/x11-drm/ChangeLog9
-rw-r--r--x11-base/x11-drm/Manifest5
-rw-r--r--x11-base/x11-drm/x11-drm-20090320.ebuild315
3 files changed, 327 insertions, 2 deletions
diff --git a/x11-base/x11-drm/ChangeLog b/x11-base/x11-drm/ChangeLog
index 755ddc5ba3fe..c4a719caf226 100644
--- a/x11-base/x11-drm/ChangeLog
+++ b/x11-base/x11-drm/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for x11-base/x11-drm
# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-base/x11-drm/ChangeLog,v 1.69 2009/02/05 13:36:41 remi Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-base/x11-drm/ChangeLog,v 1.70 2009/03/21 00:23:02 battousai Exp $
+
+*x11-drm-20090320 (20 Mar 2009)
+
+ 20 Mar 2009; Bryan Stine <battousai@gentoo.org> +x11-drm-20090320.ebuild:
+ Bump to 20090320 with improved version from x11 overlay. Includes various
+ minor ebuild fixes, radeonhd support, xgi support, and nouveau in favor of
+ defunct nv module. Fixes bug #260728, thanks to Tanktalus.
05 Feb 2009; Rémi Cardona <remi@gentoo.org> x11-drm-20080710.ebuild:
disable tests since they require user intervention (see bug #236845)
diff --git a/x11-base/x11-drm/Manifest b/x11-base/x11-drm/Manifest
index 4f611a4bb341..199e725c6eda 100644
--- a/x11-base/x11-drm/Manifest
+++ b/x11-base/x11-drm/Manifest
@@ -1,11 +1,14 @@
DIST linux-drm-20070314-kernelsource.tar.bz2 424009 RMD160 649e007221b1a92e6604695f9467e065bc90e6b8 SHA1 b8d8c12affaa85d8e9eb025bc3a5516afaf53719 SHA256 ff9b834426fdbcee24991c42acef823c8beab6c15baec0c39e66a5acb790fd69
DIST linux-drm-20071019-kernelsource.tar.bz2 487002 RMD160 501cba11044cda6cd88e6183ec68b2669ea1d558 SHA1 4afbac5b18be2671e3d422e5996f8fcf5516c072 SHA256 28c8fb25351cc05733c5aed5128e034009d2094681f9b4df6387c0c29a2803a9
DIST linux-drm-20080710-kernelsource.tar.bz2 566434 RMD160 6c84c435da347c30fbffdbaa1daed580ac9b160d SHA1 66c0375ece91cd557fb1309eccaee7ef195f0b91 SHA256 65f0378c35b6cbf83c463f203f544ff0643690f17d6e537646eab52f3ec03f58
+DIST linux-drm-20090320-kernelsource.tar.bz2 676103 RMD160 8699a6efd28f75bfb6ced332d76cffe73bb70545 SHA1 dfe1f3229d18e7bdd62b8b924e823d603025fb19 SHA256 89ad10ba508e4c5fdd75dbadc336997a1f493e335ee5ba37f46a68daeddc7de1
DIST x11-drm-20070314-gentoo-0.6.tar.bz2 12021 RMD160 26b15ca372606e7ae0b0550bafe123612f2bf3e9 SHA1 ca62c04fc70b50e1132658ebd9b34de24f95c1e4 SHA256 b6cf5485bf38bad53f7f4262b2ed93fdbf81f2f2b486471e268bd349800a0b20
DIST x11-drm-20071019-gentoo-0.3.tar.bz2 10793 RMD160 af71f2a223c87240d87b73d4da6fcfbac7d6d810 SHA1 7994d9be5e2fce1e22351aec26d93ab3a0842d00 SHA256 a2475ef16806d98206a66d0a5c2363f91feb960795915116bdd9f5ce888e02db
DIST x11-drm-20080710-gentoo-0.5.tar.bz2 5953 RMD160 db8a315d8539659459d90e7c09fcc42992e2f393 SHA1 b8a998095dc2e9e5052e7cdd86e81ba96047a963 SHA256 95a2980cc501203387610270f186c2651725f53d82e0e1153ded9e88df91dc36
+DIST x11-drm-20090320-gentoo-0.1.tar.bz2 2315 RMD160 af69ee43ed7fac23b81cdef3bbb33a5278d45eff SHA1 70d43046022fb9c5edecef948b97fb4e21c16d4f SHA256 d6e9ccdd3e62d62e3573dc841eec4af4777c7d391daceea3d446428eeff1d26a
EBUILD x11-drm-20070314.ebuild 8331 RMD160 b6c6b7d93f2e1d984b6e4a5eaccfcb364aec1486 SHA1 83d87ce1b90bd4a09354033270f64949bc57a439 SHA256 352222e6c1b975aa597035b7ba23a2eae8255ff1062efdf878d998078206dd25
EBUILD x11-drm-20071019.ebuild 8315 RMD160 7f029741d57e04d90d32974d2dfb27e32c8d791f SHA1 d745f4f4d61de8378fe5d3cae73c8904fc88c241 SHA256 741518f60968843d8eb9f79967b4e225fb29ee5a2f0e0015c35c817717431965
EBUILD x11-drm-20080710.ebuild 8323 RMD160 31f974ad00097ec60f0fc113d19ac7dcba8a4b54 SHA1 9cf8478d5c2199915ec49cb2cf6adf4b68859916 SHA256 b4ca6246c10bbcbb42744eabdb4a26f4364a1bf6b3e127557f88cbdeaf1df01e
-MISC ChangeLog 27365 RMD160 5d0f90df07628301cb976ab8c2ea04152af80ad9 SHA1 f783aa4964b6638cd4c65fdfaf287b38987c1253 SHA256 9a1e756e0602a6d90b20eba7451c6b736782aec234a983aba0f2136548ffad05
+EBUILD x11-drm-20090320.ebuild 7333 RMD160 a29080a349fd05e619f97ab78028a65328b5f288 SHA1 3512252a58ff4da9c55fb69f8a4455d444345aa3 SHA256 1d68e6a57112efe596e440101487e1f9ffdfbe5a80511d9861e20cb53fb10615
+MISC ChangeLog 27694 RMD160 e70a13292c8368ffb4acc7909c1d896f284b5054 SHA1 e8a9b0c01de4035c30cbc8da925d9454f91fb75c SHA256 b3a806ed4e69ad78e1f581cca034b7c192904f7d8888a9c64c349f651ea1ee2a
MISC metadata.xml 368 RMD160 cbe279aeafeae0af3633fbd1ecaa59d2f54579b8 SHA1 5104adf2f1ebe1ddffe4ca95e7b5e5f06267f842 SHA256 e73a5c428f39881de8ae5acf40958e8ad37a5fe92c2bb8cc4060704c9be45ef1
diff --git a/x11-base/x11-drm/x11-drm-20090320.ebuild b/x11-base/x11-drm/x11-drm-20090320.ebuild
new file mode 100644
index 000000000000..f7d61dd5e46d
--- /dev/null
+++ b/x11-base/x11-drm/x11-drm-20090320.ebuild
@@ -0,0 +1,315 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-base/x11-drm/x11-drm-20090320.ebuild,v 1.1 2009/03/21 00:23:02 battousai Exp $
+
+inherit eutils x11 linux-mod autotools
+
+IUSE_VIDEO_CARDS="
+ video_cards_mach64
+ video_cards_mga
+ video_cards_nv
+ video_cards_r128
+ video_cards_radeon
+ video_cards_radeonhd
+ video_cards_savage
+ video_cards_sis
+ video_cards_sunffb
+ video_cards_tdfx
+ video_cards_via
+ video_cards_xgi"
+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 ...
+# Tests require user intervention (see bug #236845)
+RESTRICT="strip test"
+
+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/linux-drm-${PV}-kernelsource.tar.bz2"
+if [ -n "${PATCHVER}" ] ; then
+ SRC_URI="${SRC_URI} mirror://gentoo/${P}-gentoo-${PATCHVER}.tar.bz2"
+fi
+
+SLOT="0"
+LICENSE="X11"
+KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~x86 ~x86-fbsd"
+
+DEPEND="kernel_linux? ( virtual/linux-sources )
+ kernel_FreeBSD? ( sys-freebsd/freebsd-sources
+ sys-freebsd/freebsd-mk-defs )"
+RDEPEND=""
+
+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
+ cd "${WORKDIR}"
+
+ # Apply patches if there's a patchball version number provided.
+ if [ -n "${PATCHVER}" ]
+ then
+ unpack ${P}-gentoo-${PATCHVER}.tar.bz2
+ cd "${S}"
+
+ patch_prepare
+
+ # Apply patches
+ EPATCH_SUFFIX="patch" epatch ${PATCHDIR}
+ fi
+ eautoreconf -v --install
+
+ src_unpack_os
+}
+
+src_compile() {
+ einfo "Building DRM in ${SRC_BUILD}..."
+ src_compile_os
+ einfo "DRM build finished".
+
+ cd "${S}"
+
+ # I need to work on my autoconf skills to make reliable user-selection
+ # of cairo support here.
+ econf --without-cairo || die "econf failed"
+
+ cd "${S}"/tests
+ emake || die "Failed to build programs."
+}
+
+src_install() {
+ einfo "Installing DRM..."
+ cd "${SRC_BUILD}"
+
+ src_install_os
+
+ cd "${S}"/tests
+ dobin dristat drmstat modeprint/modeprint modetest/modetest || die
+
+ dodoc "${S}/linux-core/README.drm"
+}
+
+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
+ linux-mod_pkg_setup
+
+ 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
+
+ linux_chkconfig_builtin "DRM" && \
+ die "Please disable or modularize DRM in the kernel config. (CONFIG_DRM = n or m)"
+
+ CONFIG_CHECK="AGP"
+ ERROR_AGP="AGP support is not enabled in your kernel config (CONFIG_AGP)"
+ fi
+}
+
+set_vidcards() {
+ VIDCARDS=""
+
+ if [[ -n "${VIDEO_CARDS}" ]]; then
+ use video_cards_mach64 && \
+ VIDCARDS="${VIDCARDS} mach64.${KV_OBJ}"
+ use video_cards_mga && \
+ VIDCARDS="${VIDCARDS} mga.${KV_OBJ}"
+ use video_cards_nv && \
+ VIDCARDS="${VIDCARDS} nouveau.${KV_OBJ}"
+ use video_cards_r128 && \
+ VIDCARDS="${VIDCARDS} r128.${KV_OBJ}"
+ use video_cards_radeon || use video_cards_radeonhd && \
+ 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}"
+ use video_cards_xgi && \
+ VIDCARDS="${VIDCARDS} xgi.${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_linux() {
+ convert_to_m "${SRC_BUILD}"/Makefile
+}
+
+src_unpack_freebsd() {
+ # 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 -i -e "s:SUBDIR\ =.*:SUBDIR\ =\ drm ${SUBDIRS}:" "${SRC_BUILD}"/Makefile
+}
+
+src_unpack_os() {
+ if use kernel_linux; then
+ src_unpack_linux
+ elif 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() {
+ # remove leading and trailing space
+ VIDCARDS="${VIDCARDS% }"
+ VIDCARDS="${VIDCARDS# }"
+
+ check_modules_supported
+ MODULE_NAMES=""
+ for i in drm.${KV_OBJ} ${VIDCARDS}; do
+ MODULE_NAMES="${MODULE_NAMES} ${i/.${KV_OBJ}}(${PN}:${SRC_BUILD})"
+ i=$(echo ${i/.${KV_OBJ}} | tr '[:lower:]' '[:upper:]')
+ eval MODULESD_${i}_ENABLED="yes"
+ done
+
+ # This now uses an M= build system. Makefile does most of the work.
+ cd "${SRC_BUILD}"
+ unset ARCH
+ BUILD_TARGETS="modules"
+ BUILD_PARAMS="DRM_MODULES='${VIDCARDS}' LINUXDIR='${KERNEL_DIR}' M='${SRC_BUILD}'"
+ ECONF_PARAMS='' S="${SRC_BUILD}" linux-mod_src_compile
+
+ if linux_chkconfig_present DRM
+ then
+ ewarn "Please disable in-kernel DRM support to use this package."
+ fi
+}
+
+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}
+}
+
+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() {
+ linux-mod_src_install
+
+ # Strip binaries, leaving /lib/modules untouched (bug #24415)
+ strip_bins \/lib\/modules
+}
+
+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
+}