Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 17 Aug 2004 12:16:05 +0700 (NOVST)
From:      Alexey Dokuchaev <danfe@regency.nsu.ru>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:    ports/70561: PORT UPDATE: x11/nvidia-driver to 6113 version (latest)
Message-ID:  <200408170516.i7H5G56G021341@regency.nsu.ru>
Resent-Message-ID: <200408170520.i7H5KIrn040290@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         70561
>Category:       ports
>Synopsis:       PORT UPDATE: x11/nvidia-driver to 6113 version (latest)
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Tue Aug 17 05:20:18 GMT 2004
>Closed-Date:
>Last-Modified:
>Originator:     Alexey Dokuchaev
>Release:        FreeBSD 5.2-CURRENT i386
>Organization:
CNIT NSU
>Environment:
System: FreeBSD stan.asempra.local 5.2-CURRENT FreeBSD 5.2-CURRENT #0: Thu Aug 12 15:26:12 NOVST 2004 root@stan.asempra.local:/usr/src/sys/i386/compile/STAN i386
>Description:
This updates NVidia binary drivers to most recent released version, 6113,
available for download at thier website.  They feature:

    * Support for the latest NVIDIA GPUs including GeForce 6800 Series
    * Improved interaction with -CURRENT's new threading libraries.

It also brings some more general fixes to the port:

    * Utilizes PORTDOCS
    * New knobs added
    * Fix pkg-plist

	*** CAUTION!! *** ACHTUNG!! *** WARNING!! ***

	 KLDUNLOADING NVIDIA.KO ON WEEK-OLD -CURRENT
	   HANGS THE BOX.  WORKS ON 4.9-STABLE, NO
      REPORTS FOR 5.2.1-RELEASE YET.  COMMIT WITH CARE.

	*********************************************

>How-To-Repeat:
N/A
>Fix:
Apply the diff below.  Remove these files:

	files/patch-module::Makefile
	files/patch-src::nvidia_ctl.c
	files/patch-src::nvidia_dev.c

%%%
diff -Naur /usr/ports/x11/nvidia-driver/Makefile nvidia-driver/Makefile
--- /usr/ports/x11/nvidia-driver/Makefile	Tue Aug 10 17:41:42 2004
+++ nvidia-driver/Makefile	Tue Aug 17 12:04:44 2004
@@ -7,7 +7,6 @@
 
 PORTNAME=	nvidia-driver
 PORTVERSION=	1.0.${NVVERSION}
-PORTREVISION?=	2
 CATEGORIES=	x11
 MASTER_SITES=	http://download.nvidia.com/freebsd/1.0-${NVVERSION}/ \
 		ftp://download.nvidia.com/freebsd/1.0-${NVVERSION}/ \
@@ -22,7 +21,7 @@
 NO_PACKAGE=	should be recompiled for a particular FreeBSD kernel
 INSTALLS_SHLIB=	yes
 
-NVVERSION=	4365
+NVVERSION=	6113
 
 .include <bsd.port.pre.mk>
 
@@ -36,10 +35,13 @@
 
 .if !defined(WITHOUT_LINUX)
 USE_LINUX=	yes
+PLIST_SUB+=	LINUX=""
+.else
+PLIST_SUB+=	LINUX="@comment "
 .endif
 
-.if ${OSVERSION} < 470000
-IGNORE=		"requires FreeBSD -STABLE, version 4.7-RELEASE or later"
+.if ${OSVERSION} < 490000 || (${OSVERSION} >= 500000 && ${OSVERSION} < 502001)
+IGNORE=		"supports FreeBSD -STABLE (4.9 or later), or FreeBSD -CURRENT (5.2.1 or later)"
 .endif
 
 .if ${OSVERSION} < 500000
@@ -52,53 +54,46 @@
 .if !defined(WITH_FREEBSD_AGP)
 	@${ECHO_MSG} "Define WITH_FREEBSD_AGP to use FreeBSD AGP GART driver"
 .endif
-.if !defined(FORCE_AGP_RATE)
-	@${ECHO_MSG} "Define FORCE_AGP_RATE to limit the driver to lower speeds"
+.if !defined(WITH_VM86_INT10CALL)
+	@${ECHO_MSG} "Define WITH_VM86_INT10CALL to use VM86 interface for INT10 calls (video BIOS)"
+.endif
+.if !defined(WITH_ACPI)
+	@${ECHO_MSG} "Define WITH_ACPI to enable support for ACPI Power Management (5.X only!)"
 .endif
-.if !defined(WITH_NVIDIA_HACKS)
-	@${ECHO_MSG} "Define WITH_NVIDIA_HACKS to enable work-arounds to override basic AGP setup"
+.if !defined(WITHOUT_LINUX)
+	@${ECHO_MSG} "Define WITHOUT_LINUX to build without support for Linux compatibility"
 .endif
 
-.if defined(WITH_FREEBSD_AGP) || defined(FORCE_AGP_RATE) || defined(WITH_NVIDIA_HACKS) || ${OSVERSION} > 501106
+.if defined(WITH_FREEBSD_AGP) || defined(WITH_VM86_INT10CALL) || defined(WITH_ACPI) || defined(WITHOUT_LINUX)
 USE_REINPLACE=	yes
 
 post-patch:
 . if defined(WITH_FREEBSD_AGP)
-	@${REINPLACE_CMD} 's/undef USE_OS_AGP_GART/define USE_OS_AGP_GART/' \
+	@${REINPLACE_CMD} 's/undef NV_SUPPORT_OS_AGP/define NV_SUPPORT_OS_AGP/' \
 		${WRKSRC}/src/nv-freebsd.h
 . endif
-. if defined(FORCE_AGP_RATE)
-	@${REINPLACE_CMD} 's/NVreg_ReqAGPRate,[[:blank:]]*0/NVreg_ReqAGPRate, 1/' \
-		${WRKSRC}/src/nvidia_os_registry.c
-. endif
-. if defined(WITH_NVIDIA_HACKS)
-	@${REINPLACE_CMD} 's/NVreg_UpdateKernelAGP,[[:blank:]]*1/NVreg_UpdateKernelAGP, 0/' \
-		${WRKSRC}/src/nvidia_os_registry.c
+. if defined(WITH_VM86_INT10CALL)
+	@${REINPLACE_CMD} 's/undef NV_USE_OS_VM86_INT10CALL/define NV_USE_OS_VM86_INT10CALL/' \
+		${WRKSRC}/src/nv-freebsd.h
 . endif
-. if ${OSVERSION} > 501106
-	@${REINPLACE_CMD} 's/PCIR_HEADERTYPE/PCIR_HDRTYPE/' ${WRKSRC}/src/nvidia_sysctl.c
+. if defined(WITH_ACPI)
+	@${REINPLACE_CMD} 's/undef NV_SUPPORT_ACPI_PM/define NV_SUPPORT_ACPI_PM/' \
+		${WRKSRC}/src/nv-freebsd.h
 . endif
-. if ${OSVERSION} > 502115 
-.  for f in nv-freebsd.h nvidia_ctl.c nvidia_dev.c nvidia_subr.c
-	@${REINPLACE_CMD} 's/dev_t/struct cdev \*/g' ${WRKSRC}/src/${f}
-.  endfor
+. if defined(WITHOUT_LINUX)
+	@${REINPLACE_CMD} 's/define NV_SUPPORT_LINUX_COMPAT/undef NV_SUPPORT_LINUX_COMPAT/' \
+		${WRKSRC}/src/nv-freebsd.h
 . endif
 .endif
 
-pre-install:
-.if defined(WITHOUT_LINUX)
-	@${MKDIR} ${LINUXBASE}/usr/lib
-.endif
-	-@(kldstat -n linux || kldload linux)
-
 post-install:
 .if ${OSVERSION} < 500000
 .for dev in 0 1 2 3
-	@rm -f /dev/nvidia${dev}
+	@${RM} -f /dev/nvidia${dev}
 	@mknod /dev/nvidia${dev} c 180 ${dev}
 	@${CHMOD} 0666 /dev/nvidia${dev}
 .endfor
-	@rm -f /dev/nvidiactl
+	@${RM} -f /dev/nvidiactl
 	@mknod /dev/nvidiactl c 180 255
 	@${CHMOD} 0666 /dev/nvidiactl
 .endif
diff -Naur /usr/ports/x11/nvidia-driver/distinfo nvidia-driver/distinfo
--- /usr/ports/x11/nvidia-driver/distinfo	Mon Aug  9 17:06:18 2004
+++ nvidia-driver/distinfo	Mon Aug 16 14:57:57 2004
@@ -1,2 +1,2 @@
-MD5 (NVIDIA-FreeBSD-x86-1.0-4365.tar.gz) = e14d9f2668746ee4d8b47e1c9dbc78af
-SIZE (NVIDIA-FreeBSD-x86-1.0-4365.tar.gz) = 4522076
+MD5 (NVIDIA-FreeBSD-x86-1.0-6113.tar.gz) = 1dab16b9ebf3ab4253811b6ba29fc701
+SIZE (NVIDIA-FreeBSD-x86-1.0-6113.tar.gz) = 6215565
diff -Naur /usr/ports/x11/nvidia-driver/files/patch-lib::Makefile nvidia-driver/files/patch-lib::Makefile
--- /usr/ports/x11/nvidia-driver/files/patch-lib::Makefile	Thu Jan  1 07:00:00 1970
+++ nvidia-driver/files/patch-lib::Makefile	Mon Aug 16 17:37:38 2004
@@ -0,0 +1,26 @@
+--- lib/Makefile.orig	Mon Aug 16 17:05:30 2004
++++ lib/Makefile	Mon Aug 16 17:07:47 2004
+@@ -1,13 +1,19 @@
+ SUBDIR= libGL		\
+ 	libnvidia-tls	\
+ 	libGLcore	\
+-	libXvMCNVIDIA	\
+-	compat
++	libXvMCNVIDIA
+ 
+-FIND_DIRS=	/usr/lib ${X11BASE}/lib \
+-		/compat/linux/lib \
++.if !defined(WITHOUT_LINUX)
++SUBDIR+=	compat
++.endif
++
++FIND_DIRS=	/usr/lib ${X11BASE}/lib
++
++.if !defined(WITHOUT_LINUX)
++FIND_DIRS+=	 /compat/linux/lib \
+ 		/compat/linux/usr/lib \
+ 		/compat/linux/usr/X11R6/lib
++.endif
+ 
+ FIND_FILES!=(find ${FIND_DIRS} \
+ 		-name libGL.a\* -or \
diff -Naur /usr/ports/x11/nvidia-driver/files/patch-module::Makefile nvidia-driver/files/patch-module::Makefile
--- /usr/ports/x11/nvidia-driver/files/patch-module::Makefile	Sun Feb  1 18:35:57 2004
+++ nvidia-driver/files/patch-module::Makefile	Thu Jan  1 07:00:00 1970
@@ -1,13 +0,0 @@
---- module/Makefile.orig	Wed May 28 23:51:52 2003
-+++ module/Makefile	Sun Jan 25 11:47:48 2004
-@@ -14,6 +14,10 @@
- BUILD_DONE=	${.CURDIR}/.build_done
- CLEANFILES+=	${BUILD_DONE}
- 
-+.if ${OSVERSION} > 500011
-+KMODDIR?=	/boot/modules
-+.endif
-+
- #
- # To enable debugging see nvidia_debug.h
- # uncomment the following line and change the 'debug'
diff -Naur /usr/ports/x11/nvidia-driver/files/patch-src::nvidia_ctl.c nvidia-driver/files/patch-src::nvidia_ctl.c
--- /usr/ports/x11/nvidia-driver/files/patch-src::nvidia_ctl.c	Tue Mar  2 15:33:10 2004
+++ nvidia-driver/files/patch-src::nvidia_ctl.c	Thu Jan  1 07:00:00 1970
@@ -1,15 +0,0 @@
---- src/nvidia_ctl.c.old	Sun Feb 22 13:05:46 2004
-+++ src/nvidia_ctl.c	Sun Feb 22 13:07:25 2004
-@@ -43,7 +43,12 @@
-     .d_ioctl =     nvidia_ctl_ioctl,
-     .d_poll =      nvidia_ctl_poll,
-     .d_name =      "nvidiactl",
-+#if __FreeBSD_version < 502103
-     .d_maj =       CDEV_MAJOR,
-     .d_flags =     D_TRACKCLOSE
-+#else
-+    .d_version =   D_VERSION, 
-+    .d_flags =     D_NEEDGIANT|D_TRACKCLOSE
-+#endif 
- #endif
- };
diff -Naur /usr/ports/x11/nvidia-driver/files/patch-src::nvidia_dev.c nvidia-driver/files/patch-src::nvidia_dev.c
--- /usr/ports/x11/nvidia-driver/files/patch-src::nvidia_dev.c	Wed Feb 25 19:05:12 2004
+++ nvidia-driver/files/patch-src::nvidia_dev.c	Thu Jan  1 07:00:00 1970
@@ -1,15 +0,0 @@
---- src/nvidia_dev.c.old	Wed May 28 12:51:52 2003
-+++ src/nvidia_dev.c	Sun Feb 22 13:36:25 2004
-@@ -45,7 +45,12 @@
-     .d_poll =      nvidia_dev_poll,
-     .d_mmap =      nvidia_dev_mmap,
-     .d_name =      "nvidia",
-+#if __FreeBSD_version < 502103
-     .d_maj =       CDEV_MAJOR,
-     .d_flags =     D_MEM|D_TRACKCLOSE
-+#else
-+    .d_version =   D_VERSION,
-+    .d_flags   =   D_MEM|D_TRACKCLOSE|D_NEEDGIANT
-+#endif
- #endif
- };
diff -Naur /usr/ports/x11/nvidia-driver/files/patch-src::nvidia_pci.c nvidia-driver/files/patch-src::nvidia_pci.c
--- /usr/ports/x11/nvidia-driver/files/patch-src::nvidia_pci.c	Sun Jan 25 19:52:46 2004
+++ nvidia-driver/files/patch-src::nvidia_pci.c	Mon Aug 16 17:42:24 2004
@@ -1,21 +1,10 @@
---- src/nvidia_pci.c.orig	Thu May 29 02:51:52 2003
-+++ src/nvidia_pci.c	Fri Oct  3 01:19:55 2003
-@@ -33,6 +33,18 @@
-     if (vendor != NVIDIA_VENDORID || device < 0x0020)
-         return ENXIO;
+--- src/nvidia_pci.c.orig	Mon Aug 16 17:40:56 2004
++++ src/nvidia_pci.c	Mon Aug 16 17:41:20 2004
+@@ -218,6 +218,7 @@
+ };
  
-+    /* Exclude nForce MCP devices from detection */
-+    if (device >= 0x01A4 && device <= 0x01ef)
-+    	return ENXIO;
-+    	
-+    /* Exclude nForce2 MCP2 devices from detection */
-+    if (device >= 0x0060 && device <= 0x006e)
-+    	return ENXIO;
-+
-+    /* Exclude nForce3 MCP3 devices from detection */
-+    if (device >= 0x00d4 && device <= 0x00da)
-+    	return ENXIO;
-+    
-     if (rm_get_device_name(device, NV_DEVICE_NAME_LENGTH, name)
-             != RM_OK) {
-         strcpy(name, "Unknown");
+ DRIVER_MODULE(nvidia, pci, nvidia_pci_driver, nvidia_devclass, nvidia_modevent, 0);
++MODULE_DEPEND(nvidia, mem, 1, 1, 1);
+ 
+ #ifdef NV_SUPPORT_OS_AGP
+ MODULE_DEPEND(nvidia, agp, 1, 1, 1);
diff -Naur /usr/ports/x11/nvidia-driver/pkg-message nvidia-driver/pkg-message
--- /usr/ports/x11/nvidia-driver/pkg-message	Fri Jul  4 21:35:19 2003
+++ nvidia-driver/pkg-message	Tue Aug 17 10:59:21 2004
@@ -1,16 +1,26 @@
+
 To use these drivers, make sure that you have loaded the nvidia kernel
 module, by doing
 
 	# kldload nvidia
 
-If you compile this package with WITH_FREEBSD_AGP=yes, you must load
-the agp.ko kernel module *at boot time* by putting the following
-line into your /boot/loader.conf:
+or adding
+
+	nvidia_load="YES"
+
+to your /boot/loader.conf (normally done automatically when installing
+the port).
 
-	agp_load="YES"
+If you build this port with WITH_FREEBSD_AGP=yes, make sure you have
+agp.ko kernel module compiled and installed, since nvidia.ko will
+depend on it, or have your kernel compiled with "device agp".  Other-
+wise the nvidia kernel module will not load.  Also, care to specify
+correct ``Option "NvAGP"'' in ``Device'' section of your X11 configu-
+ration file.
 
-or have your kernel compiled with "device agp".
+When building with Linux compatibility (WITH_LINUX=yes), make sure
+linux.ko is available as well (or have it compiled in kernel).
 
-Otherwise the nvidia kernel module will not load.
+Note that this driver does not support PAE-enabled kernels.
 
-See ${PREFIX}/share/doc/NVIDIA/README for more information.
+See ${PREFIX}/share/doc/NVIDIA_GLX-1.0/README for more information.
diff -Naur /usr/ports/x11/nvidia-driver/pkg-plist nvidia-driver/pkg-plist
--- /usr/ports/x11/nvidia-driver/pkg-plist	Mon Aug  9 17:06:18 2004
+++ nvidia-driver/pkg-plist	Mon Aug 16 19:00:28 2004
@@ -18,18 +18,33 @@
 lib/libXvMCNVIDIA.so.1
 @exec ln -sf %D/lib/libXvMCNVIDIA.so.1 %D/lib/libXvMCNVIDIA.so
 @unexec rm -f %D/lib/libXvMCNVIDIA.so
+lib/libnvidia-tls.so.1
+@exec ln -sf %D/lib/libnvidia-tls.so.1 %D/lib/libnvidia-tls.so
+@unexec rm -f %D/lib/libnvidia-tls.so
 lib/libXvMCNVIDIA.a
 lib/modules/drivers/nvidia_drv.o
 lib/modules/extensions/libglx.so.1
 @exec ln -sf %D/lib/modules/extensions/libglx.so.1 %D/lib/modules/extensions/libglx.so
 @unexec rm -f %D/lib/modules/extensions/libglx.so
-share/doc/NVIDIA/README
-share/doc/NVIDIA/README.Linux
-share/doc/NVIDIA/XF86Config.sample
-share/doc/NVIDIA/license.txt
+%%PORTDOCS%%share/doc/NVIDIA_GLX-1.0/README
+%%PORTDOCS%%share/doc/NVIDIA_GLX-1.0/README.Linux
+%%PORTDOCS%%share/doc/NVIDIA_GLX-1.0/XF86Config.sample
+%%PORTDOCS%%share/doc/NVIDIA_GLX-1.0/license.txt
+%%PORTDOCS%%share/doc/NVIDIA_GLX-1.0/gl.h
+%%PORTDOCS%%share/doc/NVIDIA_GLX-1.0/glx.h
+%%PORTDOCS%%share/doc/NVIDIA_GLX-1.0/glext.h
+%%PORTDOCS%%share/doc/NVIDIA_GLX-1.0/glxtokens.h
+%%PORTDOCS%%share/doc/NVIDIA_GLX-1.0/agp.ko-hints.diff
+%%PORTDOCS%%share/doc/NVIDIA_GLX-1.0/machdep.c.diff
+%%PORTDOCS%%share/doc/NVIDIA_GLX-1.0/vm_map.c_4.10.diff
+%%PORTDOCS%%share/doc/NVIDIA_GLX-1.0/device_pager.c_4.10.diff
+%%PORTDOCS%%share/doc/NVIDIA_GLX-1.0/vm_object.c_5.2.diff
+%%PORTDOCS%%share/doc/NVIDIA_GLX-1.0/device_pager.c_5.2.diff
+%%PORTDOCS%%@dirrm share/doc/NVIDIA_GLX-1.0
 %%FREEBSD4%%@cwd /modules
 %%FREEBSD5%%@cwd /boot/modules
 nvidia.ko
+%%FREEBSD5%%@unexec kldxref %D
 %%FREEBSD4%%@cwd /dev
 %%FREEBSD4%%MAKEDEV.nvidia
 %%FREEBSD4%%@exec mknod /dev/nvidia0 c 180 0
@@ -47,8 +62,13 @@
 %%FREEBSD4%%@unexec rm -f /dev/nvidia2
 %%FREEBSD4%%@unexec rm -f /dev/nvidia3
 %%FREEBSD4%%@unexec rm -f /dev/nvidiactl
-@cwd %%LINUXBASE%%
-usr/lib/libGL.so.1.0.%%NVVERSION%%
-usr/lib/libGLcore.so.1.0.%%NVVERSION%%
-@exec ln -sf %D/usr/lib/libGL.so.1.0.%%NVVERSION%% %D/usr/lib/libGL.so.1
-@exec ln -sf %D/usr/lib/libGLcore.so.1.0.%%NVVERSION%% %D/usr/lib/libGLcore.so.1
+%%LINUX%%@cwd %%LINUXBASE%%
+%%LINUX%%usr/lib/libGL.so.1.0.%%NVVERSION%%
+%%LINUX%%usr/lib/libGLcore.so.1.0.%%NVVERSION%%
+%%LINUX%%usr/lib/libnvidia-tls.so.1.0.%%NVVERSION%%
+%%LINUX%%@exec ln -sf %D/usr/lib/libGL.so.1.0.%%NVVERSION%% %D/usr/lib/libGL.so.1
+%%LINUX%%@exec ln -sf %D/usr/lib/libGLcore.so.1.0.%%NVVERSION%% %D/usr/lib/libGLcore.so.1
+%%LINUX%%@exec ln -sf %D/usr/lib/libnvidia-tls.so.1.0.%%NVVERSION%% %D/usr/lib/liblibnvidia-tls.so.1
+%%LINUX%%@unexec rm -f %D/usr/lib/libGL.so.1
+%%LINUX%%@unexec rm -f %D/usr/lib/libGLcore.so.1
+%%LINUX%%@unexec rm -f %D/usr/lib/liblibnvidia-tls.so.1
>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200408170516.i7H5G56G021341>