[Midnightbsd-cvs] mports [16108] trunk/x11/nvidia-driver: update nvidia binary blog driver to 331 release
laffer1 at midnightbsd.org
laffer1 at midnightbsd.org
Sun Mar 23 15:01:08 EDT 2014
Revision: 16108
http://svnweb.midnightbsd.org/mports/?rev=16108
Author: laffer1
Date: 2014-03-23 15:01:07 -0400 (Sun, 23 Mar 2014)
Log Message:
-----------
update nvidia binary blog driver to 331 release
Modified Paths:
--------------
trunk/x11/nvidia-driver/Makefile
trunk/x11/nvidia-driver/distinfo
trunk/x11/nvidia-driver/files/pkg-deinstall.in
trunk/x11/nvidia-driver/files/pkg-install.in
trunk/x11/nvidia-driver/files/pkg-message.in
trunk/x11/nvidia-driver/pkg-plist
Modified: trunk/x11/nvidia-driver/Makefile
===================================================================
--- trunk/x11/nvidia-driver/Makefile 2014-03-23 18:49:49 UTC (rev 16107)
+++ trunk/x11/nvidia-driver/Makefile 2014-03-23 19:01:07 UTC (rev 16108)
@@ -1,11 +1,11 @@
# $MidnightBSD$
PORTNAME= nvidia-driver
-DISTVERSION?= 319.32
+DISTVERSION?= 331.49
+# Always try to set PORTREVISION as it can be overridden by the slave ports
PORTREVISION?= 0
CATEGORIES= x11 kld
MASTER_SITES= ${MASTER_SITE_NVIDIA}
-ARCH_SUFX= ${ARCH:S/i386//:S/amd/_/}
# MASTER_SITE_SUBDIR has to be set later because it depends on NVVERSION
DISTNAME= NVIDIA-FreeBSD-x86${ARCH_SUFX}-${DISTVERSION}
@@ -13,7 +13,10 @@
COMMENT= NVidia graphics card binary drivers for hardware OpenGL rendering
LICENSE= nvidia
+LICENSE_FILE= ${WRKSRC}/doc/license.txt
+ARCH_SUFX= ${ARCH:S/i386//:S/amd/_/}
+USES= kmod uidfix
USE_XORG= xorg-server
USE_GL= gl
USE_LDCONFIG= yes
@@ -48,33 +51,54 @@
ONLY_FOR_ARCHS= i386
.endif
-OPTIONS= FREEBSD_AGP "Use FreeBSD AGP GART driver" off \
- ACPI_PM "Enable support for ACPI Power Management" off \
- LINUX "Build with support for Linux compatibility" on
-.if ${NVVERSION} >= 1952200
-OPTIONS+= WBINVD "Enable heavy-weight cache-flush logic" off
+.if ${NVVERSION} <= 1904200
+EXTRA_PATCHES= ${FILESDIR}/legacy-patch-mk-nvidia.lib.mk
+.else
+EXTRA_PATCHES= ${FILESDIR}/extra-patch-mk-nvidia.lib.mk
.endif
-.if ${NVVERSION} <= 1904200
-EXTRA_PATCHES= ${FILESDIR}/legacy-patch-nvidia.lib.mk
+.if ${NVVERSION} >= 3312000
+EXTRA_PATCHES+= ${FILESDIR}/extra-patch-x11-driver-Makefile
+.else
+EXTRA_PATCHES+= ${FILESDIR}/legacy-patch-x11-driver-Makefile
.endif
# Fix recent arbitrary memory access vulnerability in legacy drivers
.if ${NVVERSION} <= 1905300
-. if ${NVVERSION} != 1731435
+. if ${NVVERSION} != 1731435
EXTRA_PATCHES+= ${FILESDIR}/security-patch-CVE-2012-0946
-. endif
+. endif
EXTRA_PATCHES+= ${FILESDIR}/security-patch-CVE-2012-4225
.endif
-.include <bsd.port.pre.mk>
+OPTIONS_DEFINE= ACPI_PM LINUX DOCS
+OPTIONS_DEFAULT= LINUX
+ACPI_PM_DESC= ACPI Power Management support
+LINUX_DESC= Linux compatibility support
+
+.if ${NVVERSION} < 3101400
+OPTIONS_DEFINE+= FREEBSD_AGP
+FREEBSD_AGP_DESC= Use FreeBSD AGP GART driver
+.endif
+
+.if ${NVVERSION} >= 1952200
+OPTIONS_DEFINE+= WBINVD
+WBINVD_DESC= Flush CPU caches directly with WBINVD
+.endif
+
PLIST_SUB+= LINUXBASE=${LINUXBASE} SHLIB_VERSION=${PORTVERSION} \
MODULESDIR=${MODULESDIR}
-.if !defined(WITHOUT_LINUX)
-CONFLICTS= linux-dri-[0-9]* linux-f10-dri-[0-9]* linux-f8-dri-[0-9]* \
- linux_dri-[0-9]* linux_dri-devel-[0-9]*
+.include <bsd.mport.options.mk>
+
+# FreeBSD src SVN r254138 had broken 71.86.xx legacy series :(
+.if ${OSVERSION} > 1000041 && ${NVVERSION} <= 718615
+BROKEN= does not compile
+.endif
+
+.if ${PORT_OPTIONS:MLINUX}
+CONFLICTS= linux[-_]dri-[0-9]* linux-f10-dri-[0-9]*
USE_LINUX= yes
PLIST_SUB+= LINUX=""
.else
@@ -104,29 +128,80 @@
s/int nprot/&, vm_memattr_t *memattr/' \
${WRKSRC}/src/nvidia_dev.c
.endif
+# In the legacy drivers: remove page queue locking and add page locking
+# around vm_page_(un)wire() after FreeBSD src SVN r207410, r207617, and
+# r207644; also remove page queue locking around vm_page_wakeup() after
+# FreeBSD src SVN r163622
+.if ${OSVERSION} > 4014 && ${NVVERSION} < 3046400
+ ${REINPLACE_CMD} -E '/vm_page_(un)?lock_queues\(\);/d ; \
+ s/(vm_page_(un)?wire\()([^,]+)(, 0)?(\);)/vm_page_lock(\3); & vm_page_unlock(\3);/' \
+ ${WRKSRC}/src/nvidia_subr.c
+.endif
# Catch up legacy drivers with FreeBSD src SVN r225617
.if ${OSVERSION} > 4015 && ${NVVERSION} < 1952200
${REINPLACE_CMD} -e '/return/s/ioctl/sys_&/' \
${WRKSRC}/src/nvidia_linux.c
.endif
+# Adjust Linux headers #include's after FreeBSD src SVN r246085
+.if ${OSVERSION} > 1000027 && ${NVVERSION} >= 964323
+ ${REINPLACE_CMD} -E '/#include "machine\/\.\.\/linux(32)?\/linux.h"/ \
+ { x ; s/.*/#include "machine\/..\/..\/compat\/linux\/linux_ioctl.h"/ ; H ; x ; }' \
+ ${WRKSRC}/src/nvidia_linux.c
+.endif
+# Adjust vm_object locking after FreeBSD src SVN r248084
+.if ${OSVERSION} > 1000029
+ ${REINPLACE_CMD} -e '/#include <vm\/vm_object.h>/ \
+ { x ; s/.*/#include <sys\/rwlock.h>/ ; G ; }' \
+ ${WRKSRC}/src/nv-freebsd.h
+ ${REINPLACE_CMD} -E 's/(VM_OBJECT_)(UN)?(LOCK)/\1W\2\3/' \
+ ${WRKSRC}/src/nvidia_subr.c
+.endif
+# Adjust kmem(9) calls after FreeBSD src SVN r254025
+.if ${OSVERSION} > 1000040
+ ${REINPLACE_CMD} -e '/kmem_/s/kernel_map/kernel_arena/' \
+ ${WRKSRC}/src/nvidia_subr.c
+.endif
+# Adopt to cap_rights_t type change in FreeBSD src SVN r255219
+.if ${OSVERSION} > 1000052
+ ${REINPLACE_CMD} -e 's/u_long cmd;/& cap_rights_t rights;/ ; \
+ s/CAP_IOCTL/cap_rights_init(\&rights, &)/' \
+ ${WRKSRC}/src/nvidia_linux.c
+.endif
+# Argument count of vm_map_find() changed in FreeBSD src SVN r255426
+.if ${OSVERSION} > 1000054
+ ${REINPLACE_CMD} -e 's/virtual_address, size,/& 0,/' \
+ ${WRKSRC}/src/nvidia_subr.c
+.endif
+# Fix stack buffer overflow in nvidia_sysctl_bus_type()
+.if ${NVVERSION} < 3192300
+ ${REINPLACE_CMD} -E '/bus_type\[4\]/d ; \
+ s/sprintf\(bus_type, (".+")/return SYSCTL_OUT(req, \1, sizeof(\1)/ ; \
+ /return SYSCTL_OUT\(req, bus_type/d' \
+ ${WRKSRC}/src/nvidia_sysctl.c
+.endif
+# Unbreak the build of 173.14.xx legacy series on recent -CURRENT
+.if ${NVVERSION} < 1952200 && ${NVVERSION} >= 1690400
+ ${REINPLACE_CMD} -E 's/os_(alloc|free)_contig_pages/NV_API_CALL &/' \
+ ${WRKSRC}/src/nv-freebsd.h
+.endif
# Process OPTIONS
-.if defined(WITH_FREEBSD_AGP)
+.if ${PORT_OPTIONS:MFREEBSD_AGP}
${REINPLACE_CMD} -E 's/undef (NV_SUPPORT_OS_AGP)/define \1/' \
${WRKSRC}/src/nv-freebsd.h
.endif
-.if defined(WITH_ACPI_PM)
+.if ${PORT_OPTIONS:MACPI_PM}
${REINPLACE_CMD} -E 's/undef (NV_SUPPORT_ACPI_PM)/define \1/' \
${WRKSRC}/src/nv-freebsd.h
.endif
-.if defined(WITHOUT_LINUX)
+.if ! ${PORT_OPTIONS:MLINUX}
${REINPLACE_CMD} -E 's/define (NV_SUPPORT_LINUX_COMPAT)/undef \1/' \
${WRKSRC}/src/nv-freebsd.h
.endif
-.if defined(WITH_WBINVD)
+.if ${PORT_OPTIONS:MWBINVD}
${REINPLACE_CMD} -E 's/undef (NV_USE_WBINVD)/define \1/' \
${WRKSRC}/src/nv-freebsd.h
.endif
- ${REINPLACE_CMD} -e '/exists/s/$$/ \&\& !defined(WITHOUT_LINUX)/' \
+ ${REINPLACE_CMD} -e 's/exists(\/.*/& \&\& !defined(WITHOUT_LINUX)/' \
${WRKSRC}/lib/Makefile
# Do not install VDPAU libraries which are provided by `multimedia/libvdpau'
# port for a while now
@@ -143,11 +218,11 @@
.endif
${REINPLACE_CMD} -e '/bin/d ; /man/d' ${WRKSRC}/x11/Makefile
# Conditionally install documentation (but you generally want it)
-.if defined(NOPORTDOCS)
+.if ! ${PORT_OPTIONS:MDOCS}
${REINPLACE_CMD} -E 's/(x11).*/\1/ ; /doc/d' ${WRKSRC}/Makefile
.endif
# Adjust installation paths of some conflicting files (shared also between
-# libGL and xorg-server) to ease package manager work
+# libGL and xorg-server) to ease package manager work, esp. with pkgng
${REINPLACE_CMD} -e '/LIBDIR/s:xorg/modules/extensions:&/.nvidia:' \
${WRKSRC}/x11/extension/Makefile
${REINPLACE_CMD} -e '/LIBDIR/s:lib:&/.nvidia:' \
@@ -154,8 +229,8 @@
${WRKSRC}/lib/libGL/Makefile
# Do not execute afterinstall target (prevent automatic module registration
# and "smart" installation of conflicting files heuristics)
- ${REINPLACE_CMD} -e 's/afterinstall/dontexecute/' ${WRKSRC}/Makefile
- ${REINPLACE_CMD} -e 's/beforeinstall/dontexecute/' \
+ ${REINPLACE_CMD} -e 's/afterinstall/&_dontexecute/' ${WRKSRC}/Makefile
+ ${REINPLACE_CMD} -e 's/beforeinstall/&_dontexecute/' \
${WRKSRC}/lib/Makefile ${WRKSRC}/src/Makefile
pre-install:
@@ -185,15 +260,32 @@
.endif
.if ${NVVERSION} >= 3101900
${REINPLACE_CMD} -e '/libXvMCNVIDIA/d' ${TMPPLIST}
-.else # some applications need this symlink
- ${LN} -sf libXvMCNVIDIA.so.1 ${PREFIX}/lib/libXvMCNVIDIA_dynamic.so.1
+.else # some applications need this symlink (see PR ports/72877)
+ ${LN} -sf libXvMCNVIDIA.so.1 \
+ ${STAGEDIR}${PREFIX}/lib/libXvMCNVIDIA_dynamic.so.1
.endif
+.if ${NVVERSION} < 3311300 || ${ARCH} == amd64
+ ${REINPLACE_CMD} -E '/lib(nvidia-)?(EGL|eglcore|GLESv|glsi)/d' \
+ ${TMPPLIST}
+.endif
.if ${NVVERSION} >= 1952200
-. if ${OSVERSION} > 4014
${REINPLACE_CMD} -e '/does not support PAE/,+1d' ${PKGMESSAGE}
-. else # when sed(1) does not support "addr1,+N" ranges, use line numbers
- ${REINPLACE_CMD} -e '26,27d' ${PKGMESSAGE}
-. endif
.endif
-.include <bsd.port.post.mk>
+# Target below can be used instead of standard `makesum' to correctly
+# update distinfo (i.e., keeping other driver version entries intact)
+.if ${.TARGETS:Mupdate-distinfo}
+DISTINFO_FILE= ${MASTERDIR}/distinfo.new
+JOIN?= /usr/bin/join
+.endif
+
+update-distinfo: makesum .SILENT
+ ${REINPLACE_CMD} -i '' -e '/${DISTNAME:R:R}/s/^/~/' \
+ ${MASTERDIR}/distinfo ${DISTINFO_FILE}
+ ${SED} -e '/^~/s/(.*//' ${MASTERDIR}/distinfo | ${JOIN} -a 1 \
+ - ${DISTINFO_FILE} | ${SED} -e 's/^~//' \
+ > ${MASTERDIR}/distinfo.tmp
+ ${MV} ${MASTERDIR}/distinfo.tmp ${MASTERDIR}/distinfo
+ ${RM} ${DISTINFO_FILE}
+
+.include <bsd.port.mk>
Modified: trunk/x11/nvidia-driver/distinfo
===================================================================
--- trunk/x11/nvidia-driver/distinfo 2014-03-23 18:49:49 UTC (rev 16107)
+++ trunk/x11/nvidia-driver/distinfo 2014-03-23 19:01:07 UTC (rev 16108)
@@ -1,7 +1,7 @@
-SHA256 (NVIDIA-FreeBSD-x86_64-319.32.tar.gz) = d434055e1c11e5d091054531049d2fcaecdc4856756ce5998fe70130c542426f
-SIZE (NVIDIA-FreeBSD-x86_64-319.32.tar.gz) = 34441850
-SHA256 (NVIDIA-FreeBSD-x86-319.32.tar.gz) = 7aa65881e014a001a2b19b17f3ff8a510c306062466cdf1acb1a4c993466487e
-SIZE (NVIDIA-FreeBSD-x86-319.32.tar.gz) = 34048762
+SHA256 (NVIDIA-FreeBSD-x86_64-331.49.tar.gz) = 9ac938b54b85b4dd3fc22f10c6feee3d9c777d678dbc08dfa8214e7d917ae67d
+SIZE (NVIDIA-FreeBSD-x86_64-331.49.tar.gz) = 46988453
+SHA256 (NVIDIA-FreeBSD-x86-331.49.tar.gz) = 0686d20e647553f81afebc646b135b780c510679715344547ecc9244aff18cca
+SIZE (NVIDIA-FreeBSD-x86-331.49.tar.gz) = 55867593
SHA256 (NVIDIA-FreeBSD-x86_64-304.88.tar.gz) = be0e20a543fa14a8f91481dd64b080093b19edf951bf631c62365a64dadb1934
SIZE (NVIDIA-FreeBSD-x86_64-304.88.tar.gz) = 34597351
SHA256 (NVIDIA-FreeBSD-x86-304.88.tar.gz) = 739325b26a93d934d015159c420ef1875a24ccd62a5bb482e688cf918d4fa33d
Modified: trunk/x11/nvidia-driver/files/pkg-deinstall.in
===================================================================
--- trunk/x11/nvidia-driver/files/pkg-deinstall.in 2014-03-23 18:49:49 UTC (rev 16107)
+++ trunk/x11/nvidia-driver/files/pkg-deinstall.in 2014-03-23 19:01:07 UTC (rev 16108)
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# $MidnightBSD$
+# $FreeBSD$
#
PREFIX=${PKG_PREFIX-/usr/local}
Modified: trunk/x11/nvidia-driver/files/pkg-install.in
===================================================================
--- trunk/x11/nvidia-driver/files/pkg-install.in 2014-03-23 18:49:49 UTC (rev 16107)
+++ trunk/x11/nvidia-driver/files/pkg-install.in 2014-03-23 19:01:07 UTC (rev 16108)
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# $MidnightBSD$
+# $FreeBSD$
#
PREFIX=${PKG_PREFIX-/usr/local}
Modified: trunk/x11/nvidia-driver/files/pkg-message.in
===================================================================
--- trunk/x11/nvidia-driver/files/pkg-message.in 2014-03-23 18:49:49 UTC (rev 16107)
+++ trunk/x11/nvidia-driver/files/pkg-message.in 2014-03-23 19:01:07 UTC (rev 16108)
@@ -9,7 +9,7 @@
to your /boot/loader.conf.
-If you build this port with BSD AGP GART driver, make sure you have
+If you build this port with FreeBSD AGP GART driver, make sure you have
agp.ko kernel module installed and loaded, since nvidia.ko will depend
on it, or have your kernel compiled with "device agp". Otherwise, the
NVidia kernel module will not load. Also, please set correct value for
Modified: trunk/x11/nvidia-driver/pkg-plist
===================================================================
--- trunk/x11/nvidia-driver/pkg-plist 2014-03-23 18:49:49 UTC (rev 16107)
+++ trunk/x11/nvidia-driver/pkg-plist 2014-03-23 19:01:07 UTC (rev 16108)
@@ -2,41 +2,62 @@
lib/.nvidia/libGL.so
lib/.nvidia/libGL.so.1
@dirrm lib/.nvidia
-lib/libnvidia-tls.so.1
-lib/libnvidia-tls.so
-lib/libnvidia-cfg.so.1
-lib/libnvidia-cfg.so
+lib/libEGL.so
+lib/libEGL.so.1
+lib/libGLESv1_CM.so
+lib/libGLESv1_CM.so.1
+lib/libGLESv2.so
+lib/libGLESv2.so.2
+lib/libGLcore.so
lib/libGLcore.so.1
-lib/libGLcore.so
-lib/vdpau/libvdpau_nvidia.so.1
- at comment lib/libvdpau_nvidia.so
+lib/libXvMCNVIDIA.a
+lib/libXvMCNVIDIA.so
lib/libXvMCNVIDIA.so.1
-lib/libXvMCNVIDIA.so
-lib/libXvMCNVIDIA.a
lib/libXvMCNVIDIA_dynamic.so.1
+lib/libnvidia-cfg.so
+lib/libnvidia-cfg.so.1
+lib/libnvidia-eglcore.so
+lib/libnvidia-eglcore.so.1
+lib/libnvidia-glsi.so
+lib/libnvidia-glsi.so.1
+lib/libnvidia-tls.so
+lib/libnvidia-tls.so.1
+lib/libvdpau_nvidia.so
+lib/vdpau/libvdpau_nvidia.so.1
@dirrmtry lib/vdpau
-%%MODULESDIR%%/libnvidia-wfb.so.1
%%MODULESDIR%%/drivers/nvidia_drv.so
%%MODULESDIR%%/extensions/.nvidia/libglx.so
%%MODULESDIR%%/extensions/.nvidia/libglx.so.1
+%%MODULESDIR%%/libnvidia-wfb.so.1
@dirrm %%MODULESDIR%%/extensions/.nvidia
@dirrmtry %%MODULESDIR%%/drivers
- at cwd /boot/kernel
+ at cwd /%%KMODDIR%%
nvidia.ko
- at unexec kldxref %D
%%LINUX%%@cwd %%LINUXBASE%%
+%%LINUX%%usr/lib/libEGL.so.%%SHLIB_VERSION%%
+%%LINUX%%usr/lib/libEGL.so.1
%%LINUX%%usr/lib/libGL.so.%%SHLIB_VERSION%%
%%LINUX%%usr/lib/libGL.so.1
+%%LINUX%%usr/lib/libGLESv1_CM.so.%%SHLIB_VERSION%%
+%%LINUX%%usr/lib/libGLESv1_CM.so.1
+%%LINUX%%usr/lib/libGLESv2.so.%%SHLIB_VERSION%%
+%%LINUX%%usr/lib/libGLESv2.so.2
%%LINUX%%usr/lib/libGLcore.so.%%SHLIB_VERSION%%
%%LINUX%%usr/lib/libGLcore.so.1
%%LINUX%%usr/lib/libcuda.so.%%SHLIB_VERSION%%
%%LINUX%%usr/lib/libcuda.so.1
+%%LINUX%%usr/lib/libnvidia-eglcore.so.%%SHLIB_VERSION%%
+%%LINUX%%usr/lib/libnvidia-glsi.so.%%SHLIB_VERSION%%
%%LINUX%%usr/lib/libnvidia-tls.so.%%SHLIB_VERSION%%
%%LINUX%%usr/lib/libnvidia-tls.so.1
+%%LINUX%%usr/lib/libvdpau.so.%%SHLIB_VERSION%%
+%%LINUX%%usr/lib/libvdpau.so.1
+%%LINUX%%usr/lib/libvdpau_nvidia.so
+%%LINUX%%usr/lib/libvdpau_trace.so
%%LINUX%%usr/lib/vdpau/libvdpau_nvidia.so.%%SHLIB_VERSION%%
%%LINUX%%usr/lib/vdpau/libvdpau_nvidia.so.1
%%LINUX%%usr/lib/vdpau/libvdpau_trace.so.%%SHLIB_VERSION%%
%%LINUX%%usr/lib/vdpau/libvdpau_trace.so.1
%%LINUX%%@dirrm usr/lib/vdpau
-%%LINUX%%@exec %%LINUXBASE%%/sbin/ldconfig -r %D
-%%LINUX%%@unexec %%LINUXBASE%%/sbin/ldconfig -r %D
+%%LINUX%%@exec %D/sbin/ldconfig -r %D
+%%LINUX%%@unexec %D/sbin/ldconfig -r %D
More information about the Midnightbsd-cvs
mailing list