summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--graphics/libGL/Makefile9
-rw-r--r--graphics/libGL/files/patch-src_mesa_Makefile15
-rw-r--r--graphics/libGL/files/pkg-deinstall.in12
-rw-r--r--graphics/libGL/files/pkg-install.in23
-rw-r--r--graphics/libGL/pkg-plist5
-rw-r--r--x11-servers/xorg-server/Makefile23
-rw-r--r--x11-servers/xorg-server/files/pkg-deinstall.in12
-rw-r--r--x11-servers/xorg-server/files/pkg-install.in25
-rw-r--r--x11-servers/xorg-server/pkg-plist3
-rw-r--r--x11/nvidia-driver-173/Makefile14
-rw-r--r--x11/nvidia-driver/Makefile191
-rw-r--r--x11/nvidia-driver/distinfo10
-rw-r--r--x11/nvidia-driver/files/patch-lib_libGL_Makefile11
-rw-r--r--x11/nvidia-driver/files/patch-x11_extension_Makefile12
-rw-r--r--x11/nvidia-driver/files/pkg-deinstall.in19
-rw-r--r--x11/nvidia-driver/files/pkg-install.in22
-rw-r--r--x11/nvidia-driver/files/pkg-message.in35
-rw-r--r--x11/nvidia-driver/files/security-patch-CVE-2012-094628
-rw-r--r--x11/nvidia-driver/pkg-descr4
-rw-r--r--x11/nvidia-driver/pkg-plist45
20 files changed, 510 insertions, 8 deletions
diff --git a/graphics/libGL/Makefile b/graphics/libGL/Makefile
index befacac..4ea251a 100644
--- a/graphics/libGL/Makefile
+++ b/graphics/libGL/Makefile
@@ -7,6 +7,7 @@
PORTNAME= libGL
PORTVERSION= ${MESAVERSION}
+PORTREVISION= 1
CATEGORIES= graphics
COMMENT= OpenGL library that renders using GLX or DRI
@@ -16,9 +17,17 @@ LIB_DEPENDS+= drm:${PORTSDIR}/graphics/libdrm \
USE_XORG= glproto:both x11 xext xxf86vm xdamage xfixes dri2proto:both
+SUB_FILES= pkg-install pkg-deinstall
+
+pre-install:
+ PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL
+
do-install:
${RM} -f ${WRKSRC}/include/GL/glu*.h
cd ${WRKSRC}/src/mesa; ${GMAKE} install-libgl
+post-install:
+ PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
+
.include "${.CURDIR}/bsd.mesalib.mk"
.include <bsd.port.mk>
diff --git a/graphics/libGL/files/patch-src_mesa_Makefile b/graphics/libGL/files/patch-src_mesa_Makefile
new file mode 100644
index 0000000..35ce2a9
--- /dev/null
+++ b/graphics/libGL/files/patch-src_mesa_Makefile
@@ -0,0 +1,15 @@
+--- src/mesa/Makefile.orig 2012-04-22 18:34:50.000000000 +0200
++++ src/mesa/Makefile 2012-04-22 18:35:00.000000000 +0200
+@@ -183,10 +183,10 @@
+ $(DESTDIR)$(INSTALL_INC_DIR)/GL
+
+ install-libgl: default gl.pc install-headers
+- $(INSTALL) -d $(DESTDIR)$(INSTALL_LIB_DIR)
++ $(INSTALL) -d $(DESTDIR)$(INSTALL_LIB_DIR)/libGL
+ $(INSTALL) -d $(DESTDIR)$(INSTALL_LIB_DIR)/pkgconfig
+ $(MINSTALL) $(TOP)/$(LIB_DIR)/$(GL_LIB_GLOB) \
+- $(DESTDIR)$(INSTALL_LIB_DIR)
++ $(DESTDIR)$(INSTALL_LIB_DIR)/libGL
+ $(INSTALL) -m 644 gl.pc $(DESTDIR)$(INSTALL_LIB_DIR)/pkgconfig
+
+ install-osmesa: default osmesa.pc
diff --git a/graphics/libGL/files/pkg-deinstall.in b/graphics/libGL/files/pkg-deinstall.in
new file mode 100644
index 0000000..9762354
--- /dev/null
+++ b/graphics/libGL/files/pkg-deinstall.in
@@ -0,0 +1,12 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+PREFIX="${PKG_PREFIX-/usr/local}"
+
+case $2 in
+ POST-DEINSTALL)
+ /bin/rm -f ${PREFIX}/lib/libGL.so*
+ ;;
+esac
diff --git a/graphics/libGL/files/pkg-install.in b/graphics/libGL/files/pkg-install.in
new file mode 100644
index 0000000..d3b04d9
--- /dev/null
+++ b/graphics/libGL/files/pkg-install.in
@@ -0,0 +1,23 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+PREFIX="${PKG_PREFIX-/usr/local}"
+
+case $2 in
+ PRE-INSTALL)
+ /bin/rm -f ${PREFIX}/lib/libGL.so*
+ ;;
+
+ POST-INSTALL)
+ if [ -f ${PREFIX}/lib/nvidia/libGL.so.1 ]; then
+ /bin/ln -f ${PREFIX}/lib/nvidia/libGL.so.1 ${PREFIX}/lib/libGL.so
+ /bin/ln -f ${PREFIX}/lib/nvidia/libGL.so.1 ${PREFIX}/lib/libGL.so.1
+ else
+ /bin/ln -f ${PREFIX}/lib/libGL/libGL.so.1 ${PREFIX}/lib/libGL.so
+ /bin/ln -f ${PREFIX}/lib/libGL/libGL.so.1 ${PREFIX}/lib/libGL.so.1
+ fi
+ ;;
+esac
+
diff --git a/graphics/libGL/pkg-plist b/graphics/libGL/pkg-plist
index bc0e3c7..7245ebf 100644
--- a/graphics/libGL/pkg-plist
+++ b/graphics/libGL/pkg-plist
@@ -14,7 +14,8 @@ include/GL/osmesa.h
include/GL/vms_x_fix.h
include/GL/wglext.h
include/GL/wmesa.h
-lib/libGL.so
-lib/libGL.so.1
+lib/libGL/libGL.so
+lib/libGL/libGL.so.1
libdata/pkgconfig/gl.pc
+@dirrm lib/libGL
@dirrmtry include/GL
diff --git a/x11-servers/xorg-server/Makefile b/x11-servers/xorg-server/Makefile
index b713da0..c669b08 100644
--- a/x11-servers/xorg-server/Makefile
+++ b/x11-servers/xorg-server/Makefile
@@ -22,15 +22,16 @@ RUN_DEPENDS= xkeyboard-config>=2.5:${PORTSDIR}/x11/xkeyboard-config \
xkbcomp:${PORTSDIR}/x11/xkbcomp
XORG_CAT= xserver
+SLAVE_PORT?= no
.if defined(WITH_NEW_XORG)
XORG_VERSION= 1.12.3
-XORG_REVISION= 0
+XORG_REVISION= 1
PLIST_SUB+= OLD="@comment " NEW=""
EXTRA_PATCHES+= ${FILESDIR}/extra-clang
.else
XORG_VERSION= 1.7.7
-XORG_REVISION= 4
+XORG_REVISION= 6
PLIST_SUB+= OLD="" NEW="@comment "
EXTRA_PATCHES+= ${FILESDIR}/extra-include_eventstr.h \
${FILESDIR}/extra-os-utils.c \
@@ -58,7 +59,8 @@ CONFIGURE_ARGS?=--disable-dmx --disable-xvfb --disable-xnest \
--localstatedir=/var --without-dtrace --disable-xephyr \
--enable-record=yes
-.if !defined(SLAVE_PORT)
+.if ${SLAVE_PORT} == "no"
+SUB_FILES= pkg-install pkg-deinstall
MAN1= Xorg.1 \
Xserver.1 \
cvt.1 \
@@ -153,10 +155,23 @@ pre-everything::
post-patch:
@${REINPLACE_CMD} 's/test.*-traditional.*;/true;/' \
${WRKSRC}/configure
+# build libglx.so and manualy install it.
+ @${REINPLACE_CMD} -e 's|@GLX_TRUE@GLXMODS =|@GLX_BOGUS@GLXMODS =|g' \
+ -e 's|^LTLIBRARIES = |LTLIBRARIES = libglx.la |g' \
+ ${WRKSRC}/hw/xfree86/dixmods/Makefile.in
+
+.if ${SLAVE_PORT} == "no"
+pre-install:
+ ${MKDIR} ${PREFIX}/lib/xorg/modules/extensions/xorg
+ ${INSTALL_LIB} ${WRKSRC}/hw/xfree86/dixmods/.libs/libglx.so \
+ ${PREFIX}/lib/xorg/modules/extensions/xorg/
+ PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL
-.if defined(WITH_NEW_XORG)
post-install:
+.if defined(WITH_NEW_XORG)
@${MKDIR} ${PREFIX}/share/X11/xorg.conf.d
.endif
+ PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
+.endif
.include <bsd.port.post.mk>
diff --git a/x11-servers/xorg-server/files/pkg-deinstall.in b/x11-servers/xorg-server/files/pkg-deinstall.in
new file mode 100644
index 0000000..3f903b1
--- /dev/null
+++ b/x11-servers/xorg-server/files/pkg-deinstall.in
@@ -0,0 +1,12 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+PREFIX="${PKG_PREFIX-/usr/local}"
+
+case $2 in
+ POST-DEINSTALL)
+ /bin/rm -rf ${PREFIX}/lib/xorg/modules/extensions/libglx.so*
+ ;;
+esac
diff --git a/x11-servers/xorg-server/files/pkg-install.in b/x11-servers/xorg-server/files/pkg-install.in
new file mode 100644
index 0000000..1ea3f64
--- /dev/null
+++ b/x11-servers/xorg-server/files/pkg-install.in
@@ -0,0 +1,25 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+PREFIX="${PKG_PREFIX-/usr/local}"
+
+case $2 in
+# Do we need this?
+ PRE-INSTALL)
+ /bin/rm -f ${PREFIX}/lib/xorg/modules/extensions/libglx.*
+ ;;
+
+ POST-INSTALL)
+ if [ -f ${PREFIX}/lib/xorg/modules/extensions/nvidia/libglx.so.1 ]; then
+ /bin/ln -f ${PREFIX}/lib/xorg/modules/extensions/nvidia/libglx.so.1 \
+ ${PREFIX}/lib/xorg/modules/extensions/libglx.so
+ /bin/ln -f ${PREFIX}/lib/xorg/modules/extensions/nvidia/libglx.so.1 \
+ ${PREFIX}/lib/xorg/modules/extensions/libglx.so.1
+ else
+ /bin/ln -f ${PREFIX}/lib/xorg/modules/extensions/xorg/libglx.so \
+ ${PREFIX}/lib/xorg/modules/extensions/libglx.so
+ fi
+ ;;
+esac
diff --git a/x11-servers/xorg-server/pkg-plist b/x11-servers/xorg-server/pkg-plist
index 6dc16b2..6f54b89 100644
--- a/x11-servers/xorg-server/pkg-plist
+++ b/x11-servers/xorg-server/pkg-plist
@@ -183,10 +183,9 @@ lib/xorg/modules/extensions/libdri2.la
lib/xorg/modules/extensions/libdri2.so
lib/xorg/modules/extensions/libextmod.la
lib/xorg/modules/extensions/libextmod.so
-lib/xorg/modules/extensions/libglx.la
-lib/xorg/modules/extensions/libglx.so
lib/xorg/modules/extensions/librecord.la
lib/xorg/modules/extensions/librecord.so
+lib/xorg/modules/extensions/xorg/libglx.so
lib/xorg/modules/libexa.la
lib/xorg/modules/libexa.so
lib/xorg/modules/libfb.la
diff --git a/x11/nvidia-driver-173/Makefile b/x11/nvidia-driver-173/Makefile
new file mode 100644
index 0000000..7a70a09
--- /dev/null
+++ b/x11/nvidia-driver-173/Makefile
@@ -0,0 +1,14 @@
+# New ports collection makefile for: nvidia-driver, legacy version 173.14.xx
+# Date created: 26 Oct 2008
+# Whom: Alexey Dokuchaev <danfe@FreeBSD.org>
+#
+# $FreeBSD$
+#
+
+DISTVERSION= 173.14.31
+PORTREVISION= 2
+
+MASTERDIR= ${.CURDIR}/../nvidia-driver
+NO_LATEST_LINK= yes
+
+.include "${MASTERDIR}/Makefile"
diff --git a/x11/nvidia-driver/Makefile b/x11/nvidia-driver/Makefile
new file mode 100644
index 0000000..29cd649
--- /dev/null
+++ b/x11/nvidia-driver/Makefile
@@ -0,0 +1,191 @@
+# New ports collection makefile for: nvidia-driver (latest and master port)
+# Date created: 4 December 2002
+# Whom: Stijn Hoop <stijn@win.tue.nl>
+#
+# $FreeBSD$
+#
+
+PORTNAME= nvidia-driver
+DISTVERSION?= 295.59
+PORTREVISION?= 1 # As a reminder it can be overridden
+CATEGORIES= x11 kld
+MASTER_SITES= ${MASTER_SITE_NVIDIA}
+# MASTER_SITE_SUBDIR has to be set later because it depends on NVVERSION
+DISTNAME= NVIDIA-FreeBSD-x86${ARCH_SUFX}-${DISTVERSION}
+
+MAINTAINER= danfe@FreeBSD.org
+COMMENT= NVidia graphics card binary drivers for hardware OpenGL rendering
+
+LICENSE= NVIDIA
+LICENSE_NAME= License For Customer Use of NVIDIA Software
+LICENSE_FILE= ${WRKSRC}/doc/license.txt
+LICENSE_PERMS= dist-mirror no-dist-sell pkg-mirror no-pkg-sell auto-accept
+
+ARCH_SUFX= ${ARCH:S/i386//:S/amd/_/}
+USE_XORG= xorg-server
+USE_GL= gl
+USE_LDCONFIG= yes
+
+# NVIDIA_ROOT is not set in src/Makefile, which results in bogus -I/src
+# passed to compiler and broken build on HEAD since r221320 when option
+# -Wmissing-include-dirs was added for kernel sources. Until properly
+# fixed upstream across all versions (including legacy ones), use this
+# hack below to universally set NVIDIA_ROOT. Also provide X11BASE value
+# since it is going away from `Mk/bsd.port.mk' as deprecated.
+MAKE_ENV= NVIDIA_ROOT=${WRKSRC} X11BASE=${LOCALBASE}
+SUB_FILES= pkg-deinstall pkg-install pkg-message
+DOCSDIR= ${PREFIX}/share/doc/NVIDIA_GLX-1.0
+MODULESDIR= lib/xorg/modules
+PORTDOCS= *
+
+# Starting with version 1.0-7667, NVidia has dropped support for numerous
+# "legacy" GPUs. Consult NVidia README (the Appendix) to find out whether
+# you need to use legacy driver version and install one of corresponding
+# `x11/nvidia-driver-71', `x11/nvidia-driver-96', or `x11/nvidia-driver-173'
+# slave ports.
+#
+.if ${DISTVERSION:C/[0-9]+//g} == ".." # major.minor.update
+NVVERSION= ${DISTVERSION:S/.//g}
+.else # major.minor
+NVVERSION= ${DISTVERSION:S/.//g}00
+.endif
+
+.if ${NVVERSION} >= 1952200
+MASTER_SITE_SUBDIR= XFree86/FreeBSD-x86${ARCH_SUFX}/${DISTVERSION}
+ONLY_FOR_ARCHS= i386 amd64
+.else
+MASTER_SITE_SUBDIR= freebsd/${DISTVERSION}
+ONLY_FOR_ARCHS= i386
+.endif
+
+# Fix recent arbitrary memory access vulnerability in legacy drivers
+.if ${NVVERSION} <= 1905300
+EXTRA_PATCHES= ${FILESDIR}/security-patch-CVE-2012-0946
+.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
+.endif
+
+.include <bsd.port.pre.mk>
+
+PLIST_SUB+= LINUXBASE=${LINUXBASE} SHLIB_VERSION=${PORTVERSION} \
+ MODULESDIR=${MODULESDIR}
+
+.if !defined(WITHOUT_LINUX)
+CONFLICTS= linux[-_]dri-[0-9]* linux-f10-dri-[0-9]*
+USE_LINUX= yes
+PLIST_SUB+= LINUX=""
+.else
+PLIST_SUB+= LINUX="@comment "
+# Propagate WITHOUT_LINUX variable down to inner Makefiles
+MAKE_ENV+= WITHOUT_LINUX=yes
+.endif
+
+.if ${OSVERSION} < 702106 && ${NVVERSION} >= 1952200
+IGNORE= requires fairly recent FreeBSD-STABLE, or FreeBSD-CURRENT
+.endif
+
+.if ${NVVERSION} < 1952200
+LIB_DEPENDS+= m.3:${PORTSDIR}/misc/compat5x
+.endif
+
+post-patch: .SILENT
+# We should support -CURRENT: kill the check
+ ${REINPLACE_CMD} -e '24,26d' ${WRKSRC}/src/nv-freebsd.h
+# Adjust legacy drivers for updated d_mmap() since early 9.X
+.if ${OSVERSION} > 900005 && ${NVVERSION} < 1952200
+ ${REINPLACE_CMD} -e 's/vm_offset_t offset/vm_ooffset_t offset/ ; \
+ s/vm_offset_t \*address/vm_paddr_t *address/ ; \
+ s/int nprot/&, vm_memattr_t *memattr/' \
+ ${WRKSRC}/src/nvidia_dev.c
+.endif
+# Catch up legacy drivers with FreeBSD SVN r225617
+.if ${OSVERSION} > 900043 && ${NVVERSION} < 1952200
+ ${REINPLACE_CMD} -e '/return/s/ioctl/sys_&/' \
+ ${WRKSRC}/src/nvidia_linux.c
+.endif
+# Process OPTIONS
+.if defined(WITH_FREEBSD_AGP)
+ ${REINPLACE_CMD} -E 's/undef (NV_SUPPORT_OS_AGP)/define \1/' \
+ ${WRKSRC}/src/nv-freebsd.h
+.endif
+.if defined(WITH_ACPI_PM)
+ ${REINPLACE_CMD} -E 's/undef (NV_SUPPORT_ACPI_PM)/define \1/' \
+ ${WRKSRC}/src/nv-freebsd.h
+.endif
+.if defined(WITHOUT_LINUX)
+ ${REINPLACE_CMD} -E 's/define (NV_SUPPORT_LINUX_COMPAT)/undef \1/' \
+ ${WRKSRC}/src/nv-freebsd.h
+.endif
+.if defined(WITH_WBINVD)
+ ${REINPLACE_CMD} -E 's/undef (NV_USE_WBINVD)/define \1/' \
+ ${WRKSRC}/src/nv-freebsd.h
+.endif
+ ${REINPLACE_CMD} -e '/exists/s/$$/ \&\& !defined(WITHOUT_LINUX)/' \
+ ${WRKSRC}/lib/Makefile
+# Do not install VDPAU libraries, they are provided by `multimedia/libvdpau'
+.if ${NVVERSION} >= 1802900
+ ${REINPLACE_CMD} -e '/libvdpau[[:blank:]_][^n]/d ; \
+ s/name libvdpau/&_nvidia/' ${WRKSRC}/lib/Makefile
+.endif
+# Do not build any binaries (native nvidia-settings and nvidia-xconfig are
+# provided by corresponding ports) and manuals
+.if ${NVVERSION} < 974600 || ${NVVERSION} >= 1952200
+ ${REINPLACE_CMD} -E 's/(extension).*/\1/' ${WRKSRC}/x11/Makefile
+.else
+ ${REINPLACE_CMD} -E 's/(lib).*/\1/' ${WRKSRC}/x11/Makefile
+.endif
+ ${REINPLACE_CMD} -e '/bin/d ; /man/d' ${WRKSRC}/x11/Makefile
+# Conditionally install documentation (but you generally want it)
+.if defined(NOPORTDOCS)
+ ${REINPLACE_CMD} -E 's/(x11).*/\1/ ; /doc/d' ${WRKSRC}/Makefile
+.endif
+# Do not execute afterinstall target (prevent automatic module registration)
+ ${REINPLACE_CMD} -e 's/afterinstall/dontexecute/' ${WRKSRC}/Makefile
+ ${REINPLACE_CMD} -e 's/beforeinstall/dontexecute/' \
+ ${WRKSRC}/lib/Makefile ${WRKSRC}/src/Makefile
+
+pre-su-install:
+# While this port silently assumes PREFIX == LOCALBASE, at least try to
+# pretend we support different paths thereof and make sure these directories
+# exist
+ @cd ${PREFIX}/${MODULESDIR} && ${MKDIR} drivers extensions
+ PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL
+
+post-install: .SILENT
+# pkg-plist is already overbloated, so use these hacks instead of PLIST_SUB's
+.if ${NVVERSION} < 817400
+ ${REINPLACE_CMD} -e '/libnvidia-cfg/d' ${TMPPLIST}
+.endif
+.if ${NVVERSION} < 974600 || ${NVVERSION} >= 1952200
+ ${REINPLACE_CMD} -e '/wfb/d' ${TMPPLIST}
+.endif
+.if ${NVVERSION} < 1802900
+ ${REINPLACE_CMD} -e '/vdpau/d' ${TMPPLIST}
+.endif
+.if ${NVVERSION} < 1851829
+ ${REINPLACE_CMD} -e '/libcuda/d' ${TMPPLIST}
+.endif
+.if ${NVVERSION} >= 2565300
+ ${REINPLACE_CMD} -E 's/libGLcore/libnvidia-glcore/ ; \
+ /usr.*(glcore|tls).*so\.1$$/d' ${TMPPLIST}
+.endif
+# Some applications need this symlink (see PR ports/72877)
+ ${LN} -sf libXvMCNVIDIA.so.1 ${PREFIX}/lib/libXvMCNVIDIA_dynamic.so.1
+.if ${NVVERSION} >= 1952200
+. if ${OSVERSION} > 800090
+ ${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
+ PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
+ ${ECHO_MSG}
+ ${CAT} ${PKGMESSAGE}
+ ${ECHO_MSG}
+
+.include <bsd.port.post.mk>
diff --git a/x11/nvidia-driver/distinfo b/x11/nvidia-driver/distinfo
new file mode 100644
index 0000000..99e714e
--- /dev/null
+++ b/x11/nvidia-driver/distinfo
@@ -0,0 +1,10 @@
+SHA256 (NVIDIA-FreeBSD-x86_64-295.59.tar.gz) = 4993f2c4874c080352856b1eac529c7be61aff73ea9db7012a04a571f3553bfd
+SIZE (NVIDIA-FreeBSD-x86_64-295.59.tar.gz) = 33049711
+SHA256 (NVIDIA-FreeBSD-x86-295.59.tar.gz) = 9a3e1794418add03ad97aad93608d1bc1f2f9c5a82e0321a2a8ba1c9db7d41dd
+SIZE (NVIDIA-FreeBSD-x86-295.59.tar.gz) = 32092806
+SHA256 (NVIDIA-FreeBSD-x86-173.14.31.tar.gz) = 98699bc8dc1dad86cebc2ed067b4fc5cd37b8540e897bb218f38ac80c4b4d875
+SIZE (NVIDIA-FreeBSD-x86-173.14.31.tar.gz) = 17991684
+SHA256 (NVIDIA-FreeBSD-x86-96.43.20.tar.gz) = e75fce272e72644d53e6ad3c0957fe173735a4b621726ce227ba8ecf9bd9c5cf
+SIZE (NVIDIA-FreeBSD-x86-96.43.20.tar.gz) = 14060884
+SHA256 (NVIDIA-FreeBSD-x86-71.86.15.tar.gz) = 7be5ba641eabaa96a068e147a1dd5d75aadc10575bb1d2c6e8529cd423438168
+SIZE (NVIDIA-FreeBSD-x86-71.86.15.tar.gz) = 8067916
diff --git a/x11/nvidia-driver/files/patch-lib_libGL_Makefile b/x11/nvidia-driver/files/patch-lib_libGL_Makefile
new file mode 100644
index 0000000..798d4bc
--- /dev/null
+++ b/x11/nvidia-driver/files/patch-lib_libGL_Makefile
@@ -0,0 +1,11 @@
+--- lib/libGL/Makefile.orig 2012-04-28 17:21:12.000000000 +0200
++++ lib/libGL/Makefile 2012-04-28 17:21:53.000000000 +0200
+@@ -5,6 +5,6 @@
+ .endif
+ LIB= GL
+ SHLIB_MAJOR= 1
+-LIBDIR= ${X11BASE}/lib
++LIBDIR= ${X11BASE}/lib/nvidia
+
+ .include <${NVIDIA_ROOT}/mk/nvidia.lib.mk>
+
diff --git a/x11/nvidia-driver/files/patch-x11_extension_Makefile b/x11/nvidia-driver/files/patch-x11_extension_Makefile
new file mode 100644
index 0000000..dc30b17
--- /dev/null
+++ b/x11/nvidia-driver/files/patch-x11_extension_Makefile
@@ -0,0 +1,12 @@
+--- x11/extension/Makefile.orig 2012-04-28 17:50:29.000000000 +0200
++++ x11/extension/Makefile 2012-04-28 17:50:38.000000000 +0200
+@@ -7,7 +7,7 @@
+ LIB= glx
+ SHLIB_MAJOR= 1
+ .if exists(${X11BASE}/lib/xorg/modules/extensions)
+-LIBDIR= ${X11BASE}/lib/xorg/modules/extensions
++LIBDIR= ${X11BASE}/lib/xorg/modules/extensions/nvidia
+ .else
+ LIBDIR= ${X11BASE}/lib/modules/extensions
+ .endif
+
diff --git a/x11/nvidia-driver/files/pkg-deinstall.in b/x11/nvidia-driver/files/pkg-deinstall.in
new file mode 100644
index 0000000..e9308d3
--- /dev/null
+++ b/x11/nvidia-driver/files/pkg-deinstall.in
@@ -0,0 +1,19 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+PREFIX="${PKG_PREFIX-/usr/local}"
+
+case $2 in
+ POST-DEINSTALL)
+ /bin/rm -f ${PREFIX}/lib/libGL.so*
+ /bin/rm -f ${PREFIX}/lib/xorg/modules/extensions/libglx.so*
+
+ /bin/ln -f ${PREFIX}/lib/libGL/libGL.so.1 ${PREFIX}/lib/libGL.so
+ /bin/ln -f ${PREFIX}/lib/libGL/libGL.so.1 ${PREFIX}/lib/libGL.so.1
+ /bin/ln -f ${PREFIX}/lib/xorg/modules/extensions/xorg/libglx.so \
+ ${PREFIX}/lib/xorg/modules/extensions/libglx.so
+ ;;
+esac
+
diff --git a/x11/nvidia-driver/files/pkg-install.in b/x11/nvidia-driver/files/pkg-install.in
new file mode 100644
index 0000000..8be6543
--- /dev/null
+++ b/x11/nvidia-driver/files/pkg-install.in
@@ -0,0 +1,22 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+PREFIX="${PKG_PREFIX-/usr/local}"
+
+case $2 in
+# Do we need this?
+ PRE-INSTALL)
+ /bin/rm -f ${PREFIX}/lib/libGL.so*
+ /bin/rm -f ${PREFIX}/lib/xorg/modules/extensions/libglx.so*
+ ;;
+
+ POST-INSTALL)
+ /bin/ln -f ${PREFIX}/lib/nvidia/libGL.so.1 ${PREFIX}/lib/libGL.so
+ /bin/ln -f ${PREFIX}/lib/nvidia/libGL.so.1 ${PREFIX}/lib/libGL.so.1
+ /bin/ln -f ${PREFIX}/lib/xorg/modules/extensions/nvidia/libglx.so.1 \
+ ${PREFIX}/lib/xorg/modules/extensions/libglx.so
+ ;;
+esac
+
diff --git a/x11/nvidia-driver/files/pkg-message.in b/x11/nvidia-driver/files/pkg-message.in
new file mode 100644
index 0000000..474cf87
--- /dev/null
+++ b/x11/nvidia-driver/files/pkg-message.in
@@ -0,0 +1,35 @@
+To use these drivers, make sure that you have loaded the NVidia kernel
+module, by doing
+
+ # kldload nvidia
+
+or adding
+
+ nvidia_load="YES"
+
+to your /boot/loader.conf.
+
+If you build this port with WITH_FREEBSD_AGP=yes, 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, care to specify correct
+``Option "NvAGP"'' in ``Device'' section of your X11 configuration file.
+
+When building with Linux compatibility (WITH_LINUX=yes), make sure
+linux.ko is available as well (or have it compiled in kernel). It can
+be loaded via /boot/loader.conf, or later in boot process if you add
+
+ linux_enable="YES"
+
+to your /etc/rc.conf.
+
+Note that this driver does not support PAE-enabled kernels.
+
+If X.org cannot start and reports
+
+ (EE) NVIDIA(0): Failed to obtain a shared memory identifier.
+
+in /var/log/Xorg.0.log while actually you have ``options SYSVSHM''
+enabled in kernel, the sysctl ``kern.ipc.shmall'' should be increased.
+
+See %%DOCSDIR%%/README for more information.
diff --git a/x11/nvidia-driver/files/security-patch-CVE-2012-0946 b/x11/nvidia-driver/files/security-patch-CVE-2012-0946
new file mode 100644
index 0000000..86e7dce
--- /dev/null
+++ b/x11/nvidia-driver/files/security-patch-CVE-2012-0946
@@ -0,0 +1,28 @@
+--- src/nv.h.orig 2011-07-14 02:51:53.000000000 +0800
++++ src/nv.h 2012-05-10 18:15:51.000000000 +0800
+@@ -364,6 +364,14 @@
+ ((offset) >= (nv)->agp.address) && \
+ (((offset) + ((length)-1)) <= (nv)->agp.address + ((nv)->agp.size-1)))
+
++#define IS_REG_RANGE_WITHIN_MAPPING(nv, roffset, rlength, moffset, mlength) \
++ (((moffset) <= ((nv)->regs->address + ((roffset) + (rlength)-1))) &&\
++ (((moffset) + (mlength)-1) >= ((nv)->regs->address + (roffset))))
++
++#define IS_BLACKLISTED_REG_OFFSET(nv, offset, length) \
++ ((IS_REG_RANGE_WITHIN_MAPPING(nv, 0x1000, 0x1000, offset, length)) ||\
++ (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x700000, 0x100000, offset, length)))
++
+ /* duplicated from nvos.h for external builds */
+ #ifndef NVOS_AGP_CONFIG_DISABLE_AGP
+ # define NVOS_AGP_CONFIG_DISABLE_AGP (0x00000000)
+--- src/nvidia_subr.c.orig 2012-05-10 18:09:01.000000000 +0800
++++ src/nvidia_subr.c 2012-05-10 18:13:41.000000000 +0800
+@@ -1464,6 +1464,8 @@
+ }
+
+ if (IS_REG_OFFSET(nv, offset, PAGE_SIZE)) {
++ if (IS_BLACKLISTED_REG_OFFSET(nv, offset, PAGE_SIZE))
++ return -1;
+ *physical = offset;
+ return 0;
+ }
diff --git a/x11/nvidia-driver/pkg-descr b/x11/nvidia-driver/pkg-descr
new file mode 100644
index 0000000..b226f36
--- /dev/null
+++ b/x11/nvidia-driver/pkg-descr
@@ -0,0 +1,4 @@
+These are the official NVidia binary drivers for hardware OpenGL rendering
+in X, using the GLX extensions.
+
+WWW: http://www.nvidia.com/object/unix.html
diff --git a/x11/nvidia-driver/pkg-plist b/x11/nvidia-driver/pkg-plist
new file mode 100644
index 0000000..7113ae5
--- /dev/null
+++ b/x11/nvidia-driver/pkg-plist
@@ -0,0 +1,45 @@
+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/libGLcore.so.1
+lib/libGLcore.so
+lib/vdpau/libvdpau_nvidia.so.1
+lib/libvdpau_nvidia.so
+lib/libXvMCNVIDIA.so.1
+lib/libXvMCNVIDIA.so
+lib/libXvMCNVIDIA.a
+lib/libXvMCNVIDIA_dynamic.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
+@dirrm %%MODULESDIR%%/extensions/nvidia
+@dirrmtry %%MODULESDIR%%/drivers
+@cwd /boot/modules
+nvidia.ko
+@unexec kldxref %D
+%%LINUX%%@cwd %%LINUXBASE%%
+%%LINUX%%usr/lib/libGL.so.%%SHLIB_VERSION%%
+%%LINUX%%usr/lib/libGL.so.1
+%%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-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 %D/sbin/ldconfig -r %D
+%%LINUX%%@unexec %D/sbin/ldconfig -r %D