Snapshot bump, plus a couple of bug fixes: bug #105233, bug #108504.
authorBryan Stine <battousai@gentoo.org>
Sat, 29 Oct 2005 03:18:25 +0000 (03:18 +0000)
committerBryan Stine <battousai@gentoo.org>
Sat, 29 Oct 2005 03:18:25 +0000 (03:18 +0000)
Package-Manager: portage-2.0.53_rc5

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

index 287b765ea967ac9c35a3056ca753ecef67b8703e..b5e16c27f0f0ef5f584bd757cbc5d93b5caa9099 100644 (file)
@@ -1,6 +1,22 @@
 # ChangeLog for x11-base/x11-drm
 # Copyright 1999-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-base/x11-drm/ChangeLog,v 1.21 2005/08/09 01:56:12 battousai Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-base/x11-drm/ChangeLog,v 1.22 2005/10/29 03:18:25 battousai Exp $
+
+*x11-drm-20051028 (29 Oct 2005)
+
+  29 Oct 2005; Bryan Stine <battousai@gentoo.org> x11-drm-20050807.ebuild,
+  +x11-drm-20051028.ebuild:
+  Snapshot bump to introduce new skeletal nv driver, provided for speedy EXA
+  via DMA transfers.
+  
+  Applied the patch provided by Alon Bar-Lev to properly identify the kernel
+  source directory and kernel version. Incidentally, also stopped SLOTting
+  against the kernel version. The patch fixes bug #105233.
+  
+  No longer installs libdrm files, since the only parts of libdrm needed for
+  this package are the object files at compile time. Thanks to Alon Bar-Lev
+  for pointing out the conflict with modular x11-libs/libdrm. Fixes bug
+  #108504.
 
 *x11-drm-20050807 (08 Aug 2005)
 
index 8a15bfdd5b12d8fe3cbc9143867cb49e3b4635fb..5e389f3f2f7a74532b619d06883d4fa7f63e8dfd 100644 (file)
@@ -1,9 +1,11 @@
-MD5 db464f2b0cb7e18d6884de774640a2bc ChangeLog 17247
-MD5 782be9470cf76716a15aa5a70f4b8af7 metadata.xml 368
-MD5 c3e592197d4a01511080062a4eceb65c x11-drm-20050807.ebuild 6353
-MD5 1d3509bdfea18f00f6f8991b91368cbc x11-drm-20050502.ebuild 6072
-MD5 37fcf89b80fc0225568cfbbc32edf4b6 x11-drm-4.3.0-r7.ebuild 7014
+MD5 2b43ed47d80db73eb551ecb4797aade7 ChangeLog 17935
+MD5 528f707ef73b50376334dd2a7abbdb83 files/digest-x11-drm-20050502 162
 MD5 05c0def6e3725175239b158187f61774 files/digest-x11-drm-20050807 162
+MD5 79ba7dd6f31beecd88dbf0836d41070e files/digest-x11-drm-20051028 162
 MD5 db87006ec48bc9579dcdc989c5ed86d6 files/digest-x11-drm-4.3.0-r7 363
 MD5 88b8c90e440b3db246a7d06cf53640ae files/modules.d-x11-drm 40
-MD5 528f707ef73b50376334dd2a7abbdb83 files/digest-x11-drm-20050502 162
+MD5 782be9470cf76716a15aa5a70f4b8af7 metadata.xml 368
+MD5 1d3509bdfea18f00f6f8991b91368cbc x11-drm-20050502.ebuild 6072
+MD5 321db74e1fc38cf0e3c05b3eabd5945d x11-drm-20050807.ebuild 6267
+MD5 c46fc2a208c1471042a0ae90914fdc55 x11-drm-20051028.ebuild 6333
+MD5 37fcf89b80fc0225568cfbbc32edf4b6 x11-drm-4.3.0-r7.ebuild 7014
diff --git a/x11-base/x11-drm/files/digest-x11-drm-20051028 b/x11-base/x11-drm/files/digest-x11-drm-20051028
new file mode 100644 (file)
index 0000000..1b7e870
--- /dev/null
@@ -0,0 +1,2 @@
+MD5 59ddf9d87c298b2627291aac7733ddc7 linux-drm-20051028-kernelsource.tar.bz2 565711
+MD5 0831381f1bfccba6fc80e5c1551dafb8 x11-drm-20051028-gentoo-0.1.tar.bz2 2106
index 3771ac99470c21093b4d0413b30b36d792d50c0b..4fe63504558abbffffcc35cb23ef615815c3f290 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2005 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/x11-base/x11-drm/x11-drm-20050807.ebuild,v 1.1 2005/08/09 01:56:12 battousai Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-base/x11-drm/x11-drm-20050807.ebuild,v 1.2 2005/10/29 03:18:25 battousai Exp $
 
 inherit eutils x11 linux-mod
 
@@ -21,7 +21,7 @@ HOMEPAGE="http://dri.sf.net"
 SRC_URI="mirror://gentoo/${P}-gentoo-${PATCHVER}.tar.bz2
         mirror://gentoo/linux-drm-${PV}-kernelsource.tar.bz2"
 
-SLOT="${KV}"
+SLOT="0"
 LICENSE="X11"
 KEYWORDS="~x86 ~alpha ~ia64 ~ppc ~amd64"
 
@@ -80,7 +80,7 @@ src_unpack() {
        # Apply patches
        EPATCH_SUFFIX="patch" epatch ${PATCHDIR}
 
-       # Substitute new directory under /lib/modules/${KV}
+       # Substitute new directory under /lib/modules/${KV_FULL}
        cd ${SRC_BUILD}
        sed -ie "s:/kernel/drivers/char/drm:/${PN}:g" Makefile
 
@@ -97,7 +97,7 @@ src_compile() {
        # This now uses an M= build system. Makefile does most of the work.
        unset ARCH
        make M="${SRC_BUILD}" \
-               LINUXDIR="${ROOT}/usr/src/linux" \
+               LINUXDIR="${KERNEL_DIR}" \
                DRM_MODULES="${VIDCARDS}" \
                modules || die_error
 
@@ -115,8 +115,8 @@ src_compile() {
 
        cd ${SRC_BUILD}
        # LINUXDIR is needed to allow Makefiles to find kernel release.
-       make LINUXDIR="${ROOT}/usr/src/linux" dristat || die "Building dristat failed."
-       make LINUXDIR="${ROOT}/usr/src/linux" drmstat || die "Building drmstat failed."
+       make LINUXDIR="${KERNEL_DIR}" dristat || die "Building dristat failed."
+       make LINUXDIR="${KERNEL_DIR}" drmstat || die "Building drmstat failed."
 }
 
 src_install() {
@@ -124,10 +124,10 @@ src_install() {
        cd ${SRC_BUILD}
 
        unset ARCH
-       make KV="${KV}" \
-               LINUXDIR="${ROOT}/usr/src/linux" \
+       make KV="${KV_FULL}" \
+               LINUXDIR="${KERNEL_DIR}" \
                DESTDIR="${D}" \
-               RUNNING_REL="${KV}" \
+               RUNNING_REL="${KV_FULL}" \
                MODULE_LIST="${VIDCARDS} drm.${KV_OBJ}" \
                install || die "Install failed."
 
@@ -136,16 +136,13 @@ src_install() {
        dobin dristat
        dobin drmstat
 
-       cd ${S}
-       emake DESTDIR=${D} install || die "libdrm 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}':g' ${D}/etc/modules.d/${PN}
+       sed -i 's:%KV%:'${KV_FULL}':g' ${D}/etc/modules.d/${PN}
 }
 
 pkg_postinst() {
diff --git a/x11-base/x11-drm/x11-drm-20051028.ebuild b/x11-base/x11-drm/x11-drm-20051028.ebuild
new file mode 100644 (file)
index 0000000..13ae9eb
--- /dev/null
@@ -0,0 +1,233 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-base/x11-drm/x11-drm-20051028.ebuild,v 1.1 2005/10/29 03:18:25 battousai Exp $
+
+inherit eutils x11 linux-mod
+
+IUSE=""
+IUSE_VIDEO_CARDS="3dfx ffb i810 i830 i915 mach64 matrox nv rage128 radeon savage sis via"
+
+# 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="~x86 ~alpha ~ia64 ~ppc ~amd64"
+
+DEPEND="virtual/x11
+       >=sys-devel/automake-1.7
+       >=sys-devel/autoconf-2.59
+       >=sys-devel/libtool-1.5.14
+       >=sys-devel/m4-1.4
+       virtual/linux-sources
+       >=sys-apps/portage-2.0.49-r13"
+
+pkg_setup() {
+       get_version
+
+       # 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
+
+       if [ "${ARCH}" != "sparc" ] && use video_cards_ffb
+       then
+               die "The ffb driver is for sparc-specific hardware. Please remove it from your VIDEO_CARDS."
+       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
+
+       # Set video cards to build for.
+       set_vidcards
+
+       # DRM CVS is undergoing changes which require splitting source to support both 2.4
+       # and 2.6 kernels. This determines which to use.
+       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}
+
+       cd ${S}
+       WANT_AUTOCONF="2.59" WANT_AUTOMAKE="1.7" autoreconf -v --install
+}
+
+src_compile() {
+       einfo "Building DRM in ${SRC_BUILD}..."
+       cd ${SRC_BUILD}
+
+       # This now uses an M= build system. Makefile does most of the work.
+       unset ARCH
+       make M="${SRC_BUILD}" \
+               LINUXDIR="${KERNEL_DIR}" \
+               DRM_MODULES="${VIDCARDS}" \
+               modules || die_error
+
+       # Building the programs. These are useful for developers and getting info from DRI and DRM.
+       #
+       # libdrm objects are needed for drmstat.
+       cd ${S}
+       econf || die "libdrm configure failed."
+       emake || die "libdrm build failed."
+
+       if linux_chkconfig_present DRM
+       then
+               echo "Please disable in-kernel DRM support to use this package."
+       fi
+
+       cd ${SRC_BUILD}
+       # LINUXDIR is needed to allow Makefiles to find kernel release.
+       make LINUXDIR="${KERNEL_DIR}" dristat || die "Building dristat failed."
+       make LINUXDIR="${KERNEL_DIR}" drmstat || die "Building drmstat failed."
+}
+
+src_install() {
+       einfo "Installing DRM..."
+       cd ${SRC_BUILD}
+
+       unset ARCH
+       make KV="${KV_FULL}" \
+               LINUXDIR="${KERNEL_DIR}" \
+               DESTDIR="${D}" \
+               RUNNING_REL="${KV_FULL}" \
+               MODULE_LIST="${VIDCARDS} drm.${KV_OBJ}" \
+               install || die "Install failed."
+
+       dodoc README.drm
+
+       dobin dristat
+       dobin drmstat
+
+       # 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}
+}
+
+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.sourceforge.net/cgi-bin/moin.cgi/ATIMach64?value=CategoryHardwareChipset."
+       fi
+
+       einfo "Checking kernel module dependencies"
+       update_modules
+       update_depmod
+}
+
+# Functions used above are defined below:
+
+set_vidcards() {
+       set_kvobj
+
+       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_i810 && \
+               VIDCARDS="${VIDCARDS} i810.${KV_OBJ}"
+       use video_cards_i830 && \
+               VIDCARDS="${VIDCARDS} i830.${KV_OBJ}"
+       use video_cards_i915 && \
+               VIDCARDS="${VIDCARDS} i915.${KV_OBJ}"
+#      use video_cards_gamma && \
+#              VIDCARDS="${VIDCARDS} gamma.${KV_OBJ}"
+       use video_cards_mach64 && \
+               VIDCARDS="${VIDCARDS} mach64.${KV_OBJ}"
+       use video_cards_nv && \
+               VIDCARDS="${VIDCARDS} nv.${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_ffb && \
+               VIDCARDS="${VIDCARDS} ffb.${KV_OBJ}"
+}
+
+patch_prepare() {
+       # Handle exclusions based on the following...
+       #     All trees (0**), Standard only (1**), Others (none right now)
+       #     2.4 vs. 2.6 kernels
+
+       kernel_is 2 4 && mv -f ${PATCHDIR}/*kernel-2.6* ${EXCLUDED}
+       kernel_is 2 6 && mv -f ${PATCHDIR}/*kernel-2.4* ${EXCLUDED}
+
+       # There is only one tree being maintained now. No numeric exclusions need
+       # to be done based on DRM tree.
+}
+
+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. All"
+       eerror "2.4 kernels are supported, but only 2.6 kernels at least as new as 2.6.6"
+       eerror "are supported."
+       die "Unable to build DRM modules."
+}
+
+get_drm_build_dir() {
+       if kernel_is 2 4
+       then
+               SRC_BUILD="${S}/linux"
+       elif kernel_is 2 6
+       then
+               SRC_BUILD="${S}/linux-core"
+       fi
+}