Marking 6629 stable across archs
authorAndrew Bevitt <cyfred@gentoo.org>
Mon, 17 Jan 2005 08:49:29 +0000 (08:49 +0000)
committerAndrew Bevitt <cyfred@gentoo.org>
Mon, 17 Jan 2005 08:49:29 +0000 (08:49 +0000)
13 files changed:
media-video/nvidia-glx/ChangeLog
media-video/nvidia-glx/nvidia-glx-1.0.6629-r1.ebuild
media-video/nvidia-glx/nvidia-glx-1.0.6629.ebuild [deleted file]
media-video/nvidia-kernel/ChangeLog
media-video/nvidia-kernel/Manifest
media-video/nvidia-kernel/files/1.0.6629/NVIDIA_kernel-1.0-6629-1189413.patch [new file with mode: 0644]
media-video/nvidia-kernel/files/digest-nvidia-kernel-1.0.6629-r2 [moved from media-video/nvidia-glx/files/digest-nvidia-glx-1.0.6629 with 100% similarity]
media-video/nvidia-kernel/nvidia-kernel-1.0.6111-r3.ebuild
media-video/nvidia-kernel/nvidia-kernel-1.0.6629-r1.ebuild
media-video/nvidia-kernel/nvidia-kernel-1.0.6629-r2.ebuild [new file with mode: 0644]
media-video/nvidia-settings/ChangeLog
media-video/nvidia-settings/nvidia-settings-1.0.6111.ebuild
media-video/nvidia-settings/nvidia-settings-1.0.6629.ebuild

index a01b47e208c155900c92b635fa3ddc8682dfab99..402257e002185d1be0975fb948a6c20972b878b0 100644 (file)
@@ -1,6 +1,10 @@
 # ChangeLog for media-video/nvidia-glx
 # Copyright 2002-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-video/nvidia-glx/ChangeLog,v 1.69 2005/01/10 21:51:14 jhuebel Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-video/nvidia-glx/ChangeLog,v 1.70 2005/01/17 08:47:43 cyfred Exp $
+
+  17 Jan 2005; Andrew Bevitt <cyfred@gentoo.org>
+  nvidia-glx-1.0.6629-r1.ebuild, -nvidia-glx-1.0.6629.ebuild:
+  Marking 6629 stable across archs
 
   10 Jan 2005; Jason Huebel <jhuebel@gentoo.org>
   nvidia-glx-1.0.6629-r1.ebuild:
index 17d8f4aee818d82e37f5edd44e3155e1504746d9..d9f74eb9d3db610fa362410b42fa987e527f3243 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/media-video/nvidia-glx/nvidia-glx-1.0.6629-r1.ebuild,v 1.2 2005/01/10 21:51:14 jhuebel Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-video/nvidia-glx/nvidia-glx-1.0.6629-r1.ebuild,v 1.3 2005/01/17 08:47:43 cyfred Exp $
 
 inherit eutils
 
@@ -27,7 +27,7 @@ S="${WORKDIR}/${NV_PACKAGE}-${PKG_V}"
 
 LICENSE="NVIDIA"
 SLOT="0"
-KEYWORDS="-* ~x86 amd64"
+KEYWORDS="-* x86 amd64"
 RESTRICT="nostrip"
 IUSE="multilib"
 
diff --git a/media-video/nvidia-glx/nvidia-glx-1.0.6629.ebuild b/media-video/nvidia-glx/nvidia-glx-1.0.6629.ebuild
deleted file mode 100644 (file)
index 239fdc9..0000000
+++ /dev/null
@@ -1,183 +0,0 @@
-# Copyright 1999-2005 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/media-video/nvidia-glx/nvidia-glx-1.0.6629.ebuild,v 1.5 2005/01/10 21:51:14 jhuebel Exp $
-
-inherit eutils
-
-X86_PKG_V="pkg1"
-AMD64_PKG_V="pkg2"
-NV_V="${PV/1.0./1.0-}"
-X86_NV_PACKAGE="NVIDIA-Linux-x86-${NV_V}"
-AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${NV_V}"
-
-DESCRIPTION="NVIDIA X11 driver and GLX libraries"
-HOMEPAGE="http://www.nvidia.com/"
-SRC_URI="x86? (ftp://download.nvidia.com/XFree86/Linux-x86/${NV_V}/${X86_NV_PACKAGE}-${X86_PKG_V}.run)
-       amd64? (http://download.nvidia.com/XFree86/Linux-x86_64/${NV_V}/${AMD64_NV_PACKAGE}-${AMD64_PKG_V}.run)"
-
-if use x86; then
-       PKG_V="${X86_PKG_V}"
-       NV_PACKAGE="${X86_NV_PACKAGE}"
-elif use amd64; then
-       PKG_V="${AMD64_PKG_V}"
-       NV_PACKAGE="${AMD64_NV_PACKAGE}"
-fi
-
-S="${WORKDIR}/${NV_PACKAGE}-${PKG_V}"
-
-LICENSE="NVIDIA"
-SLOT="0"
-KEYWORDS="-* ~x86 ~amd64"
-RESTRICT="nostrip"
-IUSE="multilib"
-
-DEPEND="virtual/libc
-       virtual/x11
-       >=x11-base/opengl-update-1.8.1
-       ~media-video/nvidia-kernel-${PV}"
-
-PDEPEND="amd64? ( multilib? ( >=app-emulation/emul-linux-x86-nvidia-${PV} ) )"
-
-PROVIDE="virtual/opengl"
-export _POSIX2_VERSION="199209"
-
-check_xfree() {
-       # This isn't necessary, true. But its about time people got the idea.
-       if has_version "x11-base/xfree"
-       then
-               eerror "Support for x11-base/xfree is deprecated. Upgrade to x11-base/xorg-x11."
-       fi
-}
-
-pkg_setup() {
-       check_xfree
-
-       # Provide some information to the users
-       if use amd64 ; then
-               einfo
-               einfo "This release of nvidia-glx contains 32 bit compatibility"
-               einfo "libraries. These can be installed by either"
-               einfo "  1) emerge app-emulation/emul-linux-x86-nvidia"
-               einfo "  2) USE=\"multilib\" emerge media-video/nvidia-glx"
-               einfo "     (or /etc/portage/package.use, see portage manual)"
-               einfo
-       fi
-}
-
-src_unpack() {
-       cd ${WORKDIR}
-       bash ${DISTDIR}/${NV_PACKAGE}-${PKG_V}.run --extract-only
-
-       # Patchs go below here, add breif description
-       cd ${S}
-       # nVidia wants us to use nvidia-installer, removing warning.
-       epatch ${FILESDIR}/${PV}/NVIDIA_glx-${PV}-makefile.patch
-       # Use the correct defines to make gtkglext build work
-       epatch ${FILESDIR}/${PV}/NVIDIA_glx-${PV}-defines.patch
-       # Use some more sensible gl headers and make way for new glext.h
-       epatch ${FILESDIR}/${PV}/NVIDIA_glx-${PV}-glheader.patch
-
-}
-
-src_install() {
-       local NV_ROOT="/usr/lib/opengl/nvidia"
-
-       # The X module
-       exeinto /usr/X11R6/lib/modules/drivers
-       doexe usr/X11R6/lib/modules/drivers/nvidia_drv.o
-
-       # The GLX extension
-       exeinto ${NV_ROOT}/extensions
-       newexe usr/X11R6/lib/modules/extensions/libglx.so.${PV} libglx.so
-
-       # The GLX libraries
-       exeinto ${NV_ROOT}/lib
-       doexe usr/lib/libGL.so.${PV} \
-             usr/lib/libGLcore.so.${PV} \
-                 usr/lib/libnvidia-tls.so.${PV}
-       dosym libGL.so.${PV} ${NV_ROOT}/lib/libGL.so
-       dosym libGL.so.${PV} ${NV_ROOT}/lib/libGL.so.1
-       dosym libGLcore.so.${PV} ${NV_ROOT}/lib/libGLcore.so
-       dosym libGLcore.so.${PV} ${NV_ROOT}/lib/libGLcore.so.1
-       dosym libnvidia-tls.so.${PV} ${NV_ROOT}/lib/libnvidia-tls.so
-       dosym libnvidia-tls.so.${PV} ${NV_ROOT}/lib/libnvidia-tls.so.1
-
-       local TLS_ROOT="/usr/lib/opengl/nvidia/tls"
-       dodir ${TLS_ROOT}
-       exeinto ${TLS_ROOT}
-       doexe usr/lib/tls/libnvidia-tls.so.${PV}
-       dosym libnvidia-tls.so.${PV} ${TLS_ROOT}/libnvidia-tls.so
-       dosym libnvidia-tls.so.${PV} ${TLS_ROOT}/libnvidia-tls.so.1
-
-       # Install tls_test
-       dodir /usr/lib/misc
-       exeinto /usr/lib/misc
-       doexe usr/bin/tls_test
-       doexe usr/bin/tls_test_dso.so
-
-       insinto /usr/X11R6/lib
-       doins usr/X11R6/lib/libXvMCNVIDIA.a
-       exeinto /usr/X11R6/lib
-       doexe usr/X11R6/lib/libXvMCNVIDIA.so.${PV}
-
-       # Closing bug #37517 by letting virtual/x11 provide system wide glext.h
-       # 16 July 2004, opengl-update is now supplying glext.h for system wide
-       # compatibility, so we still need to remove this.
-       # 7 November 2004, Keeping this around for 6629 to see what happens.
-       #rm -f usr/include/GL/glext.h
-
-       # Includes
-       insinto ${NV_ROOT}/include
-       doins usr/include/GL/*.h
-
-       # Docs, remove nvidia-settings as provided by media-video/nvidia-settings
-       rm -f usr/share/doc/nvidia-settings*
-       dodoc usr/share/doc/*
-
-       # nVidia want bug reports using this script
-       exeinto /usr/bin
-       doexe usr/bin/nvidia-bug-report.sh
-
-       # Not sure whether installing the .la file is neccessary;
-       # this is adopted from the `nvidia' ebuild
-       local ver1="`echo ${PV} |cut -d '.' -f 1`"
-       local ver2="`echo ${PV} |cut -d '.' -f 2`"
-       local ver3="`echo ${PV} |cut -d '.' -f 3`"
-       sed -e "s:\${PV}:${PV}:"     \
-               -e "s:\${ver1}:${ver1}:" \
-               -e "s:\${ver2}:${ver2}:" \
-               -e "s:\${ver3}:${ver3}:" \
-               ${FILESDIR}/libGL.la > ${D}/${NV_ROOT}/lib/libGL.la
-
-       # Should we install the .la for the 32bit libs on amd64? I think not.
-}
-
-pkg_preinst() {
-       # Clean the dinamic libGL stuff's home to ensure
-       # we dont have stale libs floating around
-       if [ -d ${ROOT}/usr/lib/opengl/nvidia ]
-       then
-               rm -rf ${ROOT}/usr/lib/opengl/nvidia/*
-       fi
-       # Make sure we nuke the old nvidia-glx's env.d file
-       if [ -e ${ROOT}/etc/env.d/09nvidia ]
-       then
-               rm -f ${ROOT}/etc/env.d/09nvidia
-       fi
-}
-
-pkg_postinst() {
-       #switch to the nvidia implementation
-       if [ "${ROOT}" = "/" ]
-       then
-               /usr/sbin/opengl-update nvidia
-       fi
-
-       echo
-       einfo "To use the Nvidia GLX, run \"opengl-update nvidia\""
-       echo
-       einfo "You may also be interested in media-video/nvidia-settings"
-       echo
-       einfo "nVidia have requested that any bug reports submitted have the"
-       einfo "output of /usr/bin/nvidia-bug-report.sh included."
-}
index 87e82c0324a0cbc572aac2ae777742a1d21d82c6..35bbba98fd3d02fbbae0367868bbfdd477c9e2dc 100644 (file)
@@ -1,6 +1,13 @@
 # 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.106 2004/12/27 00:46:54 cyfred Exp $
+# Copyright 2002-2005 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/media-video/nvidia-kernel/ChangeLog,v 1.107 2005/01/17 08:45:26 cyfred Exp $
+
+*nvidia-kernel-1.0.6629-r2 (17 Jan 2005)
+
+  17 Jan 2005; Andrew Bevitt <cyfred@gentoo.org>
+  +files/1.0.6629/NVIDIA_kernel-1.0-6629-1189413.patch,
+  nvidia-kernel-1.0.6629-r1.ebuild, +nvidia-kernel-1.0.6629-r2.ebuild:
+  Marking 6629 stable across archs
 
   27 Dec 2004; Andrew Bevitt <cyfred@gentoo.org>
   files/1.0.6629/NVIDIA_kernel-1.0-6629-1175225.patch,
index b2e62f19b37fe0d49981b406280e225ac79e5baa..c821978229fc58b953a0786af556d5d0c8e97b97 100644 (file)
@@ -1,24 +1,20 @@
 MD5 bb5db07672d00246b30146c9b67014d4 ChangeLog 27887
 MD5 c84a79e7d9b69a204003fb8c2dbaad01 metadata.xml 297
-MD5 7aabe73a94e747e373c3ff2219f56358 nvidia-kernel-1.0.6629-r1.ebuild 4750
 MD5 6ec1ac8788c77524bd37df3829654c7f nvidia-kernel-1.0.6111-r3.ebuild 4487
+MD5 c8afabf8c6970e9d3949855fd542500e nvidia-kernel-1.0.6629-r1.ebuild 4749
+MD5 67817d52bd354ddfd6da88d232282c84 nvidia-kernel-1.0.6629-r2.ebuild 4265
 MD5 d8fcf2021aa68584d4a4d9e96b671da0 files/nvidia 501
-MD5 8a4687b0fc3e7cc0b36c247697d94701 files/digest-nvidia-kernel-1.0.6629-r1 163
 MD5 ed1e098d85579c75542ef0a49ee4dd5c files/digest-nvidia-kernel-1.0.6111-r3 163
-MD5 b5b7f947ffb9e6c19f7457ff7c14d0db files/1.0.6111/conftest_koutput_includes.patch 1082
+MD5 8a4687b0fc3e7cc0b36c247697d94701 files/digest-nvidia-kernel-1.0.6629-r1 163
+MD5 8a4687b0fc3e7cc0b36c247697d94701 files/digest-nvidia-kernel-1.0.6629-r2 163
 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
-MD5 14924b09123b075f910c73316baff848 files/1.0.6111/power-suspend-2.6.9-changes.patch 856
 MD5 5177339888e44bb5f4b6124fa5830e7f files/1.0.6111/vmalloc-reserve.patch 542
-MD5 dbf80a2cbaf69a10521429e1b2a7e10c files/1.0.6629/conftest_koutput_includes.patch 1082
-MD5 5aef5c6a394896bbb8392816f6795147 files/1.0.6629/nv-amd64-shutup-warnings.patch 902
-MD5 c039797780f78262baa02ff488e822ff files/1.0.6629/nv-disable-preempt-on-smp_processor_id.patch 435
+MD5 b5b7f947ffb9e6c19f7457ff7c14d0db files/1.0.6111/conftest_koutput_includes.patch 1082
+MD5 14924b09123b075f910c73316baff848 files/1.0.6111/power-suspend-2.6.9-changes.patch 856
 MD5 e70739410861defb6bf3d40f2706d554 files/1.0.6629/nv-pgd_offset.patch 3139
-MD5 64d76075a90dedc83f1dc971389c910e files/1.0.6629/nv-shutup-warnings.patch 712
 MD5 0009ccc8f3896f22bad06fd549639072 files/1.0.6629/nv-pgprot-speedup.patch 1518
-MD5 7c9db721d244f6ca709e2b8003ce4e0d files/1.0.6629/nv-vm_flags-no-VM_LOCKED.patch 677
-MD5 ddeae194df6bb2112d7de723df8d84c2 files/1.0.6629/nv-fix-memory-limit.patch 18398
 MD5 0009ccc8f3896f22bad06fd549639072 files/1.0.6629/NVIDIA_kernel-1.0-6629-1155389.patch 1518
 MD5 ddeae194df6bb2112d7de723df8d84c2 files/1.0.6629/NVIDIA_kernel-1.0-6629-1161283.patch 18398
 MD5 5a17c3fa427b4d0ff8e38f82e57cd817 files/1.0.6629/NVIDIA_kernel-1.0-6629-1162524.patch 9417
@@ -26,3 +22,10 @@ MD5 ada7d22def202e56c01c1e72c8000d45 files/1.0.6629/NVIDIA_kernel-1.0-6629-11652
 MD5 f1a5a01593ef996b38fe70bc93fa7440 files/1.0.6629/NVIDIA_kernel-1.0-6629-1171869.patch 2160
 MD5 59c5fa8340585303cd18362bbeb0086f files/1.0.6629/NVIDIA_kernel-1.0-6629-1175225.patch 1877
 MD5 d4e8ffdb0cc67c56884e6055d2045e51 files/1.0.6629/NVIDIA_kernel-1.0-6629-1182399.patch 2608
+MD5 e210d99cae87c3f60120ea474b97fca7 files/1.0.6629/NVIDIA_kernel-1.0-6629-1189413.patch 8072
+MD5 dbf80a2cbaf69a10521429e1b2a7e10c files/1.0.6629/conftest_koutput_includes.patch 1082
+MD5 5aef5c6a394896bbb8392816f6795147 files/1.0.6629/nv-amd64-shutup-warnings.patch 902
+MD5 c039797780f78262baa02ff488e822ff files/1.0.6629/nv-disable-preempt-on-smp_processor_id.patch 435
+MD5 ddeae194df6bb2112d7de723df8d84c2 files/1.0.6629/nv-fix-memory-limit.patch 18398
+MD5 64d76075a90dedc83f1dc971389c910e files/1.0.6629/nv-shutup-warnings.patch 712
+MD5 7c9db721d244f6ca709e2b8003ce4e0d files/1.0.6629/nv-vm_flags-no-VM_LOCKED.patch 677
diff --git a/media-video/nvidia-kernel/files/1.0.6629/NVIDIA_kernel-1.0-6629-1189413.patch b/media-video/nvidia-kernel/files/1.0.6629/NVIDIA_kernel-1.0-6629-1189413.patch
new file mode 100644 (file)
index 0000000..11515ce
--- /dev/null
@@ -0,0 +1,222 @@
+diff -ru usr/src/nv/nv-linux.h usr/src/nv.1189413/nv-linux.h
+--- usr/src/nv/nv-linux.h      2004-11-03 22:53:00.000000000 +0100
++++ usr/src/nv.1189413/nv-linux.h      2005-01-07 15:44:01.000000000 +0100
+@@ -627,75 +627,109 @@
+ #define NV_REMAP_PAGE_RANGE(x...) remap_page_range(x)
+ #endif
+ 
++
++#define NV_PGD_OFFSET(address, kernel, mm)              \
++   ({                                                   \
++        pgd_t *__pgd;                                   \
++        if (!kernel)                                    \
++            __pgd = pgd_offset(mm, address);            \
++        else                                            \
++            __pgd = pgd_offset_k(address);              \
++        __pgd;                                          \
++    })
++
++#define NV_PGD_PRESENT(pgd)                             \
++   ({                                                   \
++         if ((pgd != NULL) &&                           \
++             (pgd_bad(*pgd) || pgd_none(*pgd)))         \
++            /* static */ pgd = NULL;                    \
++         pgd != NULL;                                   \
++    })
++
+ #if defined(pmd_offset_map)
+-#define NV_PMD_OFFSET(addres, pg_dir, pg_mid_dir) \
+-    { \
+-        pg_mid_dir = pmd_offset_map(pg_dir, address); \
+-    }
+-#define NV_PMD_UNMAP(pg_mid_dir) \
+-    { \
+-        pmd_unmap(pg_mid_dir); \
+-    }
++#define NV_PMD_OFFSET(address, pgd)                     \
++   ({                                                   \
++        pmd_t *__pmd;                                   \
++        __pmd = pmd_offset_map(pgd, address);           \
++   })
++#define NV_PMD_UNMAP(pmd) pmd_unmap(pmd);
+ #else
+-#define NV_PMD_OFFSET(addres, pg_dir, pg_mid_dir) \
+-    { \
+-        pg_mid_dir = pmd_offset(pg_dir, address); \
+-    }
+-#define NV_PMD_UNMAP(pg_mid_dir)
++#if defined(PUD_SHIFT) /* 4-level pgtable */
++#define NV_PMD_OFFSET(address, pgd)                     \
++   ({                                                   \
++        pmd_t *__pmd = NULL;                            \
++        pud_t *__pud;                                   \
++        __pud = pud_offset(pgd, address);               \
++        if ((__pud != NULL) &&                          \
++            !(pud_bad(*__pud) || pud_none(*__pud)))     \
++            __pmd = pmd_offset(__pud, address);         \
++        __pmd;                                          \
++    })
++#else /* 3-level pgtable */
++#define NV_PMD_OFFSET(address, pgd)                     \
++   ({                                                   \
++        pmd_t *__pmd;                                   \
++        __pmd = pmd_offset(pgd, address);               \
++    })
++#endif
++#define NV_PMD_UNMAP(pmd)
+ #endif
+ 
+-#define NV_PMD_PRESENT(pg_mid_dir) \
+-    ({ \
+-        if ( (pg_mid_dir) && (pmd_none(*pg_mid_dir))) { \
+-            NV_PMD_UNMAP(pg_mid_dir); pg_mid_dir = NULL; \
+-        } pg_mid_dir != NULL; \
++#define NV_PMD_PRESENT(pmd)                             \
++   ({                                                   \
++        if ((pmd != NULL) &&                            \
++            (pmd_bad(*pmd) || pmd_none(*pmd)))          \
++        {                                               \
++            NV_PMD_UNMAP(pmd);                          \
++            pmd = NULL; /* mark invalid */              \
++        }                                               \
++        pmd != NULL;                                    \
+     })
+ 
+ #if defined(pte_offset_atomic)
+-#define NV_PTE_OFFSET(addres, pg_mid_dir, pte) \
+-    { \
+-        pte = pte_offset_atomic(pg_mid_dir, address); \
+-        NV_PMD_UNMAP(pg_mid_dir); \
+-    }
+-#define NV_PTE_UNMAP(pte) \
+-    { \
+-        pte_kunmap(pte); \
+-    }
++#define NV_PTE_OFFSET(address, pmd)                     \
++   ({                                                   \
++        pte_t *__pte;                                   \
++        __pte = pte_offset_atomic(pmd, address);        \
++        NV_PMD_UNMAP(pmd); __pte;                       \
++    })
++#define NV_PTE_UNMAP(pte) pte_kunmap(pte);
+ #elif defined(pte_offset)
+-#define NV_PTE_OFFSET(addres, pg_mid_dir, pte) \
+-    { \
+-        pte = pte_offset(pg_mid_dir, address); \
+-        NV_PMD_UNMAP(pg_mid_dir); \
+-    }
++#define NV_PTE_OFFSET(address, pmd)                     \
++   ({                                                   \
++        pte_t *__pte;                                   \
++        __pte = pte_offset(pmd, address);               \
++        NV_PMD_UNMAP(pmd); __pte;                       \
++    })
+ #define NV_PTE_UNMAP(pte)
+ #else
+-#define NV_PTE_OFFSET(addres, pg_mid_dir, pte) \
+-    { \
+-        pte = pte_offset_map(pg_mid_dir, address); \
+-        NV_PMD_UNMAP(pg_mid_dir); \
+-    }
+-#define NV_PTE_UNMAP(pte) \
+-    { \
+-        pte_unmap(pte); \
+-    }
++#define NV_PTE_OFFSET(address, pmd)                     \
++   ({                                                   \
++        pte_t *__pte;                                   \
++        __pte = pte_offset_map(pmd, address);           \
++        NV_PMD_UNMAP(pmd); __pte;                       \
++    })
++#define NV_PTE_UNMAP(pte) pte_unmap(pte);
+ #endif
+ 
+-#define NV_PTE_PRESENT(pte) \
+-    ({ \
+-        if (pte) { \
+-            if (!pte_present(*pte)) { \
+-                NV_PTE_UNMAP(pte); pte = NULL; \
+-            } \
+-        } pte != NULL; \
++#define NV_PTE_PRESENT(pte)                             \
++   ({                                                   \
++        if ((pte != NULL) && !pte_present(*pte))        \
++        {                                               \
++            NV_PTE_UNMAP(pte);                          \
++            pte = NULL; /* mark invalid */              \
++        }                                               \
++        pte != NULL;                                    \
+     })
+ 
+-#define NV_PTE_VALUE(pte) \
+-    ({ \
+-        unsigned long __pte_value = pte_val(*pte); \
+-        NV_PTE_UNMAP(pte); \
+-        __pte_value; \
++#define NV_PTE_VALUE(pte)                               \
++   ({                                                   \
++        unsigned long __pte_value = pte_val(*pte);      \
++        NV_PTE_UNMAP(pte);                              \
++        __pte_value;                                    \
+     })
+ 
++
+ #define NV_PAGE_ALIGN(addr)             ( ((addr) + PAGE_SIZE - 1) / PAGE_SIZE)
+ #define NV_MASK_OFFSET(addr)            ( (addr) & (PAGE_SIZE - 1) )
+ 
+diff -ru usr/src/nv/nv-vm.c usr/src/nv.1189413/nv-vm.c
+--- usr/src/nv/nv-vm.c 2004-11-03 22:53:00.000000000 +0100
++++ usr/src/nv.1189413/nv-vm.c 2005-01-07 15:43:22.000000000 +0100
+@@ -53,12 +53,13 @@
+  * conflicts. we try to rely on the kernel's provided interfaces when possible,
+  * but need additional flushing on earlier kernels.
+  */
+-
++#if defined(KERNEL_2_4)
+ /* wrap CACHE_FLUSH so we can pass it to smp_call_function */
+ static void cache_flush(void *p)
+ {
+     CACHE_FLUSH();
+ }
++#endif
+ 
+ /*
+  * 2.4 kernels handle flushing in the change_page_attr() call, but kernels 
+diff -ru usr/src/nv/nv.c usr/src/nv.1189413/nv.c
+--- usr/src/nv/nv.c    2004-11-03 22:53:00.000000000 +0100
++++ usr/src/nv.1189413/nv.c    2005-01-07 15:43:22.000000000 +0100
+@@ -2492,26 +2492,23 @@
+ )
+ {
+     struct mm_struct *mm;
+-    pgd_t *pg_dir;
+-    pmd_t *pg_mid_dir;
+-    pte_t *pte;
++    pgd_t *pgd = NULL;
++    pmd_t *pmd = NULL;
++    pte_t *pte = NULL;
+     unsigned long retval;
+ 
+     mm = (kern) ? &init_mm : current->mm;
+     spin_lock(&mm->page_table_lock);
+ 
+-    if (kern) pg_dir = pgd_offset_k(address);
+-    else pg_dir = pgd_offset(mm, address);
+-
+-    if (!pg_dir || pgd_none(*pg_dir))
++    pgd = NV_PGD_OFFSET(address, kern, mm);
++    if (!NV_PGD_PRESENT(pgd))
+         goto failed;
+ 
+-    NV_PMD_OFFSET(address, pg_dir, pg_mid_dir);
+-    if (!NV_PMD_PRESENT(pg_mid_dir))
++    pmd = NV_PMD_OFFSET(address, pgd);
++    if (!NV_PMD_PRESENT(pmd))
+         goto failed;
+ 
+-    NV_PTE_OFFSET(address, pg_mid_dir, pte);
+-
++    pte = NV_PTE_OFFSET(address, pmd);
+     if (!NV_PTE_PRESENT(pte))
+         goto failed;
+ 
index d27eeb3895e59d5b1a158cc000efe3fd8b15d637..57ac32230a9c7d7ec2e4272d525c96c04555fc6a 100644 (file)
@@ -1,6 +1,6 @@
-# Copyright 1999-2004 Gentoo Foundation
+# Copyright 1999-2005 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.4 2004/12/05 12:45:35 johnm Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-video/nvidia-kernel/nvidia-kernel-1.0.6111-r3.ebuild,v 1.5 2005/01/17 08:45:26 cyfred Exp $
 
 inherit eutils linux-mod
 
index 5b6dfe22f83532be696ebd178005155fb50b59ed..2aa5b945b3111e008f1131e94ee4487f91beb7a0 100644 (file)
@@ -1,6 +1,6 @@
-# Copyright 1999-2004 Gentoo Foundation
+# Copyright 1999-2005 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-r1.ebuild,v 1.5 2005/01/10 21:49:39 jhuebel Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-video/nvidia-kernel/nvidia-kernel-1.0.6629-r1.ebuild,v 1.6 2005/01/17 08:45:26 cyfred Exp $
 
 inherit eutils linux-mod
 
@@ -27,7 +27,7 @@ S="${WORKDIR}/${NV_PACKAGE}-${PKG_V}/usr/src/nv"
 
 LICENSE="NVIDIA"
 SLOT="0"
-KEYWORDS="-* ~x86 amd64"
+KEYWORDS="-* x86 amd64"
 RESTRICT="nostrip"
 IUSE=""
 
diff --git a/media-video/nvidia-kernel/nvidia-kernel-1.0.6629-r2.ebuild b/media-video/nvidia-kernel/nvidia-kernel-1.0.6629-r2.ebuild
new file mode 100644 (file)
index 0000000..d7357c7
--- /dev/null
@@ -0,0 +1,139 @@
+# Copyright 1999-2005 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-r2.ebuild,v 1.1 2005/01/17 08:45:26 cyfred Exp $
+
+inherit eutils linux-mod
+
+X86_PKG_V="pkg1"
+AMD64_PKG_V="pkg2"
+NV_V="${PV/1.0./1.0-}"
+X86_NV_PACKAGE="NVIDIA-Linux-x86-${NV_V}"
+AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${NV_V}"
+
+DESCRIPTION="Linux kernel module for the NVIDIA X11 driver"
+HOMEPAGE="http://www.nvidia.com/"
+SRC_URI="x86? (ftp://download.nvidia.com/XFree86/Linux-x86/${NV_V}/${X86_NV_PACKAGE}-${X86_PKG_V}.run)
+       amd64? (http://download.nvidia.com/XFree86/Linux-x86_64/${NV_V}/${AMD64_NV_PACKAGE}-${AMD64_PKG_V}.run)"
+
+if use x86; then
+       PKG_V="${X86_PKG_V}"
+       NV_PACKAGE="${X86_NV_PACKAGE}"
+elif use amd64; then
+       PKG_V="${AMD64_PKG_V}"
+       NV_PACKAGE="${AMD64_NV_PACKAGE}"
+fi
+
+S="${WORKDIR}/${NV_PACKAGE}-${PKG_V}/usr/src/nv"
+
+LICENSE="NVIDIA"
+SLOT="0"
+KEYWORDS="-* ~x86 ~amd64"
+RESTRICT="nostrip"
+IUSE=""
+
+DEPEND="virtual/linux-sources"
+export _POSIX2_VERSION="199209"
+
+MODULE_NAMES="nvidia(video:${S})"
+BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} SYSOUT=${KV_OUT_DIR}"
+
+mtrr_check() {
+       ebegin "Checking for MTRR support"
+       linux_chkconfig_present MTRR
+       eend $?
+
+       if [ "$?" != 0 ]
+       then
+               eerror "This version needs MTRR support for most chipsets!"
+               eerror "Please enable MTRR support in your kernel config, found at:"
+               eerror
+               eerror "  Processor type and features"
+               eerror "    [*] MTRR (Memory Type Range Register) support"
+               eerror
+               eerror "and recompile your kernel ..."
+               die "MTRR support not detected!"
+       fi
+}
+
+pkg_setup() {
+       linux-mod_pkg_setup
+       mtrr_check;
+}
+
+src_unpack() {
+       if [ ${KV_MINOR} -ge 6 -a ${KV_PATCH} -lt 7 ]
+       then
+               echo
+               ewarn "Your kernel version is ${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}"
+               ewarn "This is not officially supported for ${P}. It is likely you"
+               ewarn "will not be able to compile or use the kernel module."
+               ewarn "It is recommended that you upgrade your kernel to a version >= 2.6.7"
+               echo
+               ewarn "DO NOT file bug reports for kernel versions less than 2.6.7 as they will be ignored."
+       fi
+
+       cd ${WORKDIR}
+       bash ${DISTDIR}/${NV_PACKAGE}-${PKG_V}.run --extract-only
+
+       # Add patches below, with a breif description.
+       cd ${S}
+       # 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
+
+       # Patches from Zander (http://www.minion.de/files/1.0-6629/)
+       epatch ${FILESDIR}/${PV}/NVIDIA_kernel-1.0-6629-1155389.patch
+       #epatch ${FILESDIR}/${PV}/NVIDIA_kernel-1.0-6629-1162524.patch
+       epatch ${FILESDIR}/${PV}/NVIDIA_kernel-1.0-6629-1165235.patch
+       epatch ${FILESDIR}/${PV}/NVIDIA_kernel-1.0-6629-1171869.patch
+       epatch ${FILESDIR}/${PV}/NVIDIA_kernel-1.0-6629-1175225.patch
+       epatch ${FILESDIR}/${PV}/NVIDIA_kernel-1.0-6629-1182399.patch
+       epatch ${FILESDIR}/${PV}/NVIDIA_kernel-1.0-6629-1189413.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 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}/NVIDIA_kernel-1.0-6629-1161283.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.*
+
+       # if greater than 2.6.5 use M= instead of SUBDIR=
+       convert_to_m ${S}/Makefile.kbuild
+}
+
+src_install() {
+       linux-mod_src_install
+
+       # Add the aliases
+       sed -e 's:\${PACKAGE}:'${PF}':g' ${FILESDIR}/nvidia > ${WORKDIR}/nvidia
+       insinto /etc/modules.d
+       newins ${WORKDIR}/nvidia nvidia
+
+       # Docs
+       dodoc ${S}/../../share/doc/README
+
+       # The device creation script
+       into /
+       newsbin ${S}/makedevices.sh NVmakedevices.sh
+}
+
+pkg_postinst() {
+       if [ "${ROOT}" = "/" ] && \
+               [ ! -e /dev/.devfsd ] && \
+               [ ! -e /dev/.udev ] && \
+               [ -x /sbin/NVmakedevices.sh ]
+       then
+               /sbin/NVmakedevices.sh >/dev/null 2>&1
+       fi
+
+       linux-mod_pkg_postinst
+}
index 6b5dc27039636bf32c0c5d487bca27a789186ea7..b5471c5ecd9ad1fa9bfb00a1bc77791ee52bee5e 100644 (file)
@@ -1,6 +1,10 @@
 # ChangeLog for media-video/nvidia-settings
-# Copyright 2000-2004 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-video/nvidia-settings/ChangeLog,v 1.8 2004/11/07 07:25:08 cyfred Exp $
+# Copyright 2000-2005 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/media-video/nvidia-settings/ChangeLog,v 1.9 2005/01/17 08:49:29 cyfred Exp $
+
+  17 Jan 2005; Andrew Bevitt <cyfred@gentoo.org>
+  nvidia-settings-1.0.6629.ebuild:
+  Marking 6629 stable across archs
 
 *nvidia-settings-1.0.6629 (07 Nov 2004)
 
index 9ad4f43419e34190da2dde42574b799ccf6b9451..5053e993582fd1ad7d4e4ee62c133f9b2021cd8c 100644 (file)
@@ -1,6 +1,6 @@
-# Copyright 1999-2004 Gentoo Foundation
+# Copyright 1999-2005 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/media-video/nvidia-settings/nvidia-settings-1.0.6111.ebuild,v 1.2 2004/11/07 07:25:08 cyfred Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-video/nvidia-settings/nvidia-settings-1.0.6111.ebuild,v 1.3 2005/01/17 08:49:29 cyfred Exp $
 
 inherit eutils
 
index b97b5a4543cf89a942d7d769e2bd97e5e6850ea7..9862d93d3e3fe89750b62306246de9c1e6d1df7c 100644 (file)
@@ -1,6 +1,6 @@
-# Copyright 1999-2004 Gentoo Foundation
+# Copyright 1999-2005 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/media-video/nvidia-settings/nvidia-settings-1.0.6629.ebuild,v 1.1 2004/11/07 07:25:08 cyfred Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-video/nvidia-settings/nvidia-settings-1.0.6629.ebuild,v 1.2 2005/01/17 08:49:29 cyfred Exp $
 
 inherit eutils
 
@@ -12,7 +12,7 @@ S="${WORKDIR}/${PN}-1.0"
 
 LICENSE="GPL-2"
 SLOT="0"
-KEYWORDS="-* ~x86 ~amd64"
+KEYWORDS="-* x86 amd64"
 RESTRICT=""
 IUSE=""