Fixing bug #71833, porting 6111 to linux-mod eclass, install proper README.
authorAndrew Bevitt <cyfred@gentoo.org>
Tue, 30 Nov 2004 01:25:56 +0000 (01:25 +0000)
committerAndrew Bevitt <cyfred@gentoo.org>
Tue, 30 Nov 2004 01:25:56 +0000 (01:25 +0000)
media-video/nvidia-kernel/ChangeLog
media-video/nvidia-kernel/Manifest
media-video/nvidia-kernel/files/nvidia [moved from media-video/nvidia-kernel/files/nvidia-1.1 with 76% similarity]
media-video/nvidia-kernel/nvidia-kernel-1.0.6111-r3.ebuild
media-video/nvidia-kernel/nvidia-kernel-1.0.6629.ebuild

index 06c6fd13f37d7e4de4b4223442243d39b6088910..2111f9b5da6ca088b3e0ee0d2bfc973c87fbe4d8 100644 (file)
@@ -1,6 +1,12 @@
 # ChangeLog for media-video/nvidia-kernel
 # Copyright 2002-2004 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-video/nvidia-kernel/ChangeLog,v 1.102 2004/11/30 00:37:44 cyfred Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-video/nvidia-kernel/ChangeLog,v 1.103 2004/11/30 01:25:56 cyfred Exp $
+
+  30 Nov 2004; Andrew Bevitt <cyfred@gentoo.org> +files/nvidia,
+  -files/nvidia-1.1, nvidia-kernel-1.0.6111-r3.ebuild,
+  nvidia-kernel-1.0.6629.ebuild:
+  Porting 6111 to use linux-* eclasses, fixing bug #71833 (apply 2.6 patches
+  on 2.6 only), change to install the proper README file.
 
   30 Nov 2004; Andrew Bevitt <cyfred@gentoo.org>
   -files/1.0.4363/NVIDIA_kernel-1.0-4363-2.5-20030714.diff,
index a89497def10a83fd4c8205c22f4d8ac9ba10fae4..56f0352d589c35b15164c0ab1c1ca43c688a693e 100644 (file)
@@ -1,10 +1,10 @@
-MD5 5bc9c55bbc50851ee7e545f62ed2b238 ChangeLog 26407
+MD5 dda9732bf59be952f0d0e3e89239096b ChangeLog 26695
 MD5 c84a79e7d9b69a204003fb8c2dbaad01 metadata.xml 297
-MD5 20b06fba9299e6dd5c9a81afbbb44385 nvidia-kernel-1.0.6629.ebuild 4401
-MD5 63a5b30228e33e7d1fc441ad59ca5ea3 nvidia-kernel-1.0.6111-r3.ebuild 6305
+MD5 224654d1abb7460eea761e73ba5b8ac1 nvidia-kernel-1.0.6629.ebuild 4650
+MD5 03040575eac994e7bfb5dce6fa3bba10 nvidia-kernel-1.0.6111-r3.ebuild 4498
+MD5 d8fcf2021aa68584d4a4d9e96b671da0 files/nvidia 501
 MD5 8a4687b0fc3e7cc0b36c247697d94701 files/digest-nvidia-kernel-1.0.6629 163
 MD5 ed1e098d85579c75542ef0a49ee4dd5c files/digest-nvidia-kernel-1.0.6111-r3 163
-MD5 b6a9c4bdd3961980af4a70f57485d708 files/nvidia-1.1 441
 MD5 762e6f6e16aa6dd5b2469e99fe8decd3 files/1.0.6111/nv-pci_find_class.patch 2903
 MD5 c2b155f40d7b904f07550e8e326969c2 files/1.0.6111/nv-remap-range.patch 5715
 MD5 29eafcaf7ab5d59dd90d3d3243bf57c3 files/1.0.6111/nv_enable_pci.patch 3640
similarity index 76%
rename from media-video/nvidia-kernel/files/nvidia-1.1
rename to media-video/nvidia-kernel/files/nvidia
index 5e3e3285595e4af095f362a7861513472ccd3a8b..30f610dd0b18987e9cdead56937492bddbf2c546 100644 (file)
@@ -3,7 +3,8 @@ alias char-major-195 nvidia
 alias /dev/nvidiactl char-major-195
 
 # To tweak the driver the following options can be used, note that
-# you should be careful, as it could cause instability!!
+# you should be careful, as it could cause instability!! For more 
+# option see /usr/share/doc/${PACKAGE}/README.gz 
 #
 #   To enable Side Band Adressing:  NVreg_EnableAGPSBA=1
 #
index 6b56a5a656c3ecb6176fcbdaec8a0a530bb61993..599780dcaaed8dcfc4ff60fff35fbc98bab73d28 100644 (file)
@@ -1,8 +1,8 @@
 # Copyright 1999-2004 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/media-video/nvidia-kernel/nvidia-kernel-1.0.6111-r3.ebuild,v 1.2 2004/11/07 23:30:45 cyfred Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-video/nvidia-kernel/nvidia-kernel-1.0.6111-r3.ebuild,v 1.3 2004/11/30 01:25:56 cyfred Exp $
 
-inherit eutils kernel-mod
+inherit eutils linux-mod
 
 X86_PKG_V="pkg1"
 AMD64_PKG_V="pkg2"
@@ -25,9 +25,8 @@ fi
 
 S="${WORKDIR}/${NV_PACKAGE}-${PKG_V}/usr/src/nv"
 
-# The slot needs to be set to $KV to prevent unmerges of modules for other kernels.
 LICENSE="NVIDIA"
-SLOT="${KV}"
+SLOT="0"
 KEYWORDS="-* x86 amd64"
 RESTRICT="nostrip"
 IUSE=""
@@ -35,11 +34,15 @@ IUSE=""
 DEPEND="virtual/linux-sources"
 export _POSIX2_VERSION="199209"
 
-KMOD_SOURCES="none"
+MODULE_NAMES="nvidia(video:${S})"
+BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} SYSOUT=${KV_OUT_DIR}"
 
-# Check for mtrr and react appropriately
 mtrr_check() {
-       if [ ! -f /proc/mtrr ]
+       ebegin "Checking for MTRR support"
+       getfilevar_isset CONFIG_MTRR ${KV_OUT_DIR}/.config
+       eend $?
+
+       if [ "$?" != 0 ]
        then
                eerror "This version needs MTRR support for most chipsets!"
                eerror "Please enable MTRR support in your kernel config, found at:"
@@ -52,31 +55,21 @@ mtrr_check() {
 }
 
 pkg_setup() {
-       mtrr_check
+       linux-mod_pkg_setup
+       mtrr_check;
 }
 
 src_unpack() {
-       # setup the environment
-       kernel-mod_getversion
-       if [ ${KV_MINOR} -ge 5 ]
-       then
-               KV_OBJ="ko"
-       else
-               KV_OBJ="o"
-       fi
-
        # 2.6.10_rc1-mm{1,2,3} all EXPORT_SYMBOL_GPL the udev functions, this breaks loading
-       CS="$(grep -c EXPORT_SYMBOL\(class_simple_create\)\; ${KERNEL_DIR}/drivers/base/class_simple.c)"
+       CS="$(grep -c EXPORT_SYMBOL\(class_simple_create\)\; ${KV_DIR}/drivers/base/class_simple.c)"
        if [ "${CS}" == "0" ]
        then
-               ewarn "Your current kernel uses EXPORT_SYMBOL_GPL() on some methods required by nvidia-kernel"
-               ewarn "This probably means 2.6.10_rc1-mm*, please change away from mm-sources until this is"
-               ewarn "revised and a solution released in the mm branch, development-sources will work."
+               ewarn "Your current kernel uses EXPORT_SYMBOL_GPL() on some methods required by nvidia-kernel."
+               ewarn "This probably means you are using 2.6.10_rc1-mm*. Please change away from mm-sources until this is"
+               ewarn "revised and a solution released into the mm branch, development-sources will work."
                die "Incompatible kernel export."
        fi
 
-       # Right, we are officially not supporting < 2.6.7 in the 2.6 kernel tree
-       # In fact as this warning states its highly likely you CANNOT use those kernels
        if [ ${KV_MINOR} -ge 6 -a ${KV_PATCH} -lt 7 ]
        then
                echo
@@ -92,77 +85,45 @@ src_unpack() {
        bash ${DISTDIR}/${NV_PACKAGE}-${PKG_V}.run --extract-only
 
        # Add patches below, with a breif description.
-       # 1) SYSFS supported by nvidia
-       # 2) minion.de patches not released yet
-
        cd ${S}
+       # Any general patches should go here
+       # none at the moment
 
-       # Fix up the removal of PM_SAVE_STATE in kernels > 2.6.8
-       epatch ${FILESDIR}/${PV}/power-suspend-2.6.9-changes.patch
-       # Update pci stuff to work with irqroutes being changed in kernels
-       epatch ${FILESDIR}/${PV}/nv_enable_pci.patch
-       # Fix VMALLOC_RESERVE issues with the new 2.6.9 release candidates
-       epatch ${FILESDIR}/${PV}/vmalloc-reserve.patch
-       # Port pci_find_class() -> pci_get_class() for >= 2.6.9-rc2
-       epatch ${FILESDIR}/${PV}/nv-pci_find_class.patch
-       # Fix remap_page_range() -> remap_pfn_range() for >= 2.6.9-rc2
-       epatch ${FILESDIR}/${PV}/nv-remap-range.patch
-       # Fix the /usr/src/linux/include/asm not existing on koutput issue #58294
-       epatch ${FILESDIR}/${PV}/conftest_koutput_includes.patch
-
-       # if you set this then it's your own fault when stuff breaks :)
-       [ ! -z "${USE_CRAZY_OPTS}" ] && sed -i "s:-O:${CFLAGS}:" Makefile.*
-}
-
-src_compile() {
-       # Right as kmod was deprecated there is little room for kbuild but lets 
-       # at least have some sembalance of support for those who are forcing
-       # a non-standard build directory.
-       if [ ${KV_MINOR} -ge 6 -a ${KV_PATCH} -ge 7 ]
-       then
-               if [ -n "${KBUILD_OUTPUT_PREFIX}" ]
-               then
-                       einfo "Determining kernel output location"
-                       OUTPUT="${KBUILD_OUTPUT_PREFIX}/${KV_VERSION_FULL}"
-               fi
-       fi
-       [ -z "${OUTPUT}" ] && OUTPUT=${KERNEL_DIR}
-       einfo "Using ${OUTPUT} as kernel output location"
-       echo
-       # Now its possible that we might be here without using a KBUILD kernel
-       # (ie the variable is set, but using non-kbuild kernel or different path)
-       if [ ! -d ${OUTPUT} ]
+       # Now any patches specific to the 2.6 kernel should go here
+       if kernel_is 2 6
        then
-               ewarn "Your system global KBUILD_OUTPUT is set to ${KBUILD_OUTPUT_PREFIX}"
-               ewarn "However your kernels output path ${OUTPUT} does not exist."
-               echo
-               ewarn "Using ${KERNEL_DIR} as your kernel output location."
-               echo
-               OUTPUT=${KERNEL_DIR}
+               einfo "Applying 2.6 kernel patches"
+               # Fix up the removal of PM_SAVE_STATE in kernels > 2.6.8
+               epatch ${FILESDIR}/${PV}/power-suspend-2.6.9-changes.patch
+               # Update pci stuff to work with irqroutes being changed in kernels
+               epatch ${FILESDIR}/${PV}/nv_enable_pci.patch
+               # Fix VMALLOC_RESERVE issues with the new 2.6.9 release candidates
+               epatch ${FILESDIR}/${PV}/vmalloc-reserve.patch
+               # Port pci_find_class() -> pci_get_class() for >= 2.6.9-rc2
+               epatch ${FILESDIR}/${PV}/nv-pci_find_class.patch
+               # Fix remap_page_range() -> remap_pfn_range() for >= 2.6.9-rc2
+               epatch ${FILESDIR}/${PV}/nv-remap-range.patch
+               # Fix the /usr/src/linux/include/asm not existing on koutput issue #58294
+               epatch ${FILESDIR}/${PV}/conftest_koutput_includes.patch
        fi
 
-       # IGNORE_CC_MISMATCH disables a sanity check that's needed when gcc has been
-       # updated but the running kernel is still compiled with an older gcc.  This is
-       # needed for chrooted building, where the sanity check detects the gcc of the
-       # kernel outside the chroot rather than within.
-       unset ARCH
-       make IGNORE_CC_MISMATCH="yes" SYSSRC="${KERNEL_DIR}" SYSOUT="${OUTPUT}"  \
-               clean module V=1 || die "Failed to build module"
+       # if you set this then it's your own fault when stuff breaks :)
+       [ -n "${USE_CRAZY_OPTS}" ] && sed -i "s:-O:${CFLAGS}:" Makefile.*
+
+       # if greater than 2.6.5 use M= instead of SUBDIR=
+       convert_to_m ${S}/Makefile.kbuild
 }
 
 src_install() {
-       # The driver goes into the standard modules location
-       insinto /lib/modules/${KV}/video
-
-       # Insert the module 
-       doins nvidia.${KV_OBJ}
+       linux-mod_src_install
 
        # Add the aliases
+       sed -e 's:\${PACKAGE}:'${PF}':g' ${FILESDIR}/nvidia > ${WORKDIR}/nvidia
        insinto /etc/modules.d
-       newins ${FILESDIR}/nvidia-1.1 nvidia
+       newins ${WORKDIR}/nvidia nvidia
 
        # Docs
-       dodoc ${S}/README
+       dodoc ${S}/../../share/doc/README
 
        # The device creation script
        into /
@@ -170,23 +131,13 @@ src_install() {
 }
 
 pkg_postinst() {
-       if [ "${ROOT}" = "/" ]
+       if [ "${ROOT}" = "/" ] && \
+               [ ! -e /dev/.devfsd ] && \
+               [ ! -e /dev/.udev ] && \
+               [ -x /sbin/NVmakedevices.sh ]
        then
-               # Update module dependency
-               [ -x /usr/sbin/update-modules ] && /usr/sbin/update-modules
-               if [ ! -e /dev/.devfsd ] && [ ! -e /dev/.udev ] && [ -x /sbin/NVmakedevices.sh ]
-               then
-                       /sbin/NVmakedevices.sh >/dev/null 2>&1
-               fi
+               /sbin/NVmakedevices.sh >/dev/null 2>&1
        fi
 
-       echo
-       einfo "If you need to load the module automatically on boot up you need"
-       einfo "to add \"nvidia\" to /etc/modules.autoload.d/kernel-${KV_MAJOR}.${KV_MINOR}"
-       echo
-       einfo "Please note that the driver name is \"nvidia\", not \"NVdriver\""
-       echo
-       einfo "This module will now work correctly under udev, you do not need to"
-       einfo "manually create the devices anymore."
-       echo
+       linux-mod_pkg_postinst
 }
index 45d5096e5ae456930d2540f85d00121fb285ae15..01696cf4a76ed0183719fe6c4162f851421c84e9 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2004 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/media-video/nvidia-kernel/nvidia-kernel-1.0.6629.ebuild,v 1.8 2004/11/28 09:52:13 johnm Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-video/nvidia-kernel/nvidia-kernel-1.0.6629.ebuild,v 1.9 2004/11/30 01:25:56 cyfred Exp $
 
 inherit eutils linux-mod
 
@@ -83,26 +83,31 @@ src_unpack() {
 
        cd ${WORKDIR}
        bash ${DISTDIR}/${NV_PACKAGE}-${PKG_V}.run --extract-only
-       cd ${S}
 
        # Add patches below, with a breif description.
        cd ${S}
-       # Fix the /usr/src/linux/include/asm not existing on koutput issue #58294
-       epatch ${FILESDIR}/${PV}/conftest_koutput_includes.patch
-       # Fix pgd_offset() -> pml4_pgd_offset() for >=2.6.10-rc1-mm3
-       epatch ${FILESDIR}/${PV}/nv-pgd_offset.patch
-       # Speedup driver for 2.6 kernel to be on par with 2.4 kernel
-       epatch ${FILESDIR}/${PV}/nv-pgprot-speedup.patch
-       # Fix the vm_flags to only have VM_IO, and not VM_LOCKED as well
-       epatch ${FILESDIR}/${PV}/nv-vm_flags-no-VM_LOCKED.patch
-       # Fix calling of smp_processor_id() when preempt is enabled
-       epatch ${FILESDIR}/${PV}/nv-disable-preempt-on-smp_processor_id.patch
-       # Fix a limitation on available video memory bug #71684
-       epatch ${FILESDIR}/${PV}/nv-fix-memory-limit.patch
-
+       # Any general patches should go here
        # Shutup pointer arith warnings
        use x86 && epatch ${FILESDIR}/${PV}/nv-shutup-warnings.patch
        use amd64 && epatch ${FILESDIR}/${PV}/nv-amd64-shutup-warnings.patch
+       # Fix a limitation on available video memory bug #71684
+       epatch ${FILESDIR}/${PV}/nv-fix-memory-limit.patch
+       # Fix the vm_flags to only have VM_IO, and not VM_LOCKED as well
+       epatch ${FILESDIR}/${PV}/nv-vm_flags-no-VM_LOCKED.patch
+
+       # Now any patches specific to the 2.6 kernel should go here
+       if kernel_is 2 6
+       then
+               einfo "Applying 2.6 kernel patches"
+               # Fix the /usr/src/linux/include/asm not existing on koutput issue #58294
+               epatch ${FILESDIR}/${PV}/conftest_koutput_includes.patch
+               # Fix pgd_offset() -> pml4_pgd_offset() for >=2.6.10-rc1-mm3
+               epatch ${FILESDIR}/${PV}/nv-pgd_offset.patch
+               # Speedup driver for 2.6 kernel to be on par with 2.4 kernel
+               epatch ${FILESDIR}/${PV}/nv-pgprot-speedup.patch
+               # Fix calling of smp_processor_id() when preempt is enabled
+               epatch ${FILESDIR}/${PV}/nv-disable-preempt-on-smp_processor_id.patch
+       fi
 
        # if you set this then it's your own fault when stuff breaks :)
        [ -n "${USE_CRAZY_OPTS}" ] && sed -i "s:-O:${CFLAGS}:" Makefile.*
@@ -115,11 +120,12 @@ src_install() {
        linux-mod_src_install
 
        # Add the aliases
+       sed -e 's:\${PACKAGE}:'${PF}':g' ${FILESDIR}/nvidia > ${WORKDIR}/nvidia
        insinto /etc/modules.d
-       newins ${FILESDIR}/nvidia-1.1 nvidia
+       newins ${WORKDIR}/nvidia nvidia
 
        # Docs
-       dodoc ${S}/README
+       dodoc ${S}/../../share/doc/README
 
        # The device creation script
        into /