diff options
author | kwm <kwm@058c260c-8361-11dd-a0ac-aa2bafec7d09> | 2012-08-08 00:42:38 +0800 |
---|---|---|
committer | kwm <kwm@058c260c-8361-11dd-a0ac-aa2bafec7d09> | 2012-08-08 00:42:38 +0800 |
commit | ad3a1d1fbf2f50115514592d6f316c0802d51455 (patch) | |
tree | c581cbadfa226a926e77386b5d56b4585a56fbb2 | |
parent | f96a2afc7920002f1d99dbea9473285dca43ad0a (diff) | |
download | xorg-devel-ports-ad3a1d1fbf2f50115514592d6f316c0802d51455.tar xorg-devel-ports-ad3a1d1fbf2f50115514592d6f316c0802d51455.tar.gz xorg-devel-ports-ad3a1d1fbf2f50115514592d6f316c0802d51455.tar.bz2 xorg-devel-ports-ad3a1d1fbf2f50115514592d6f316c0802d51455.tar.lz xorg-devel-ports-ad3a1d1fbf2f50115514592d6f316c0802d51455.tar.xz xorg-devel-ports-ad3a1d1fbf2f50115514592d6f316c0802d51455.tar.zst xorg-devel-ports-ad3a1d1fbf2f50115514592d6f316c0802d51455.zip |
Add the current solution for the pkgng where libGL (libGL.so),
xorg-server (libglx.so) and the versions installed by nvidia-driver conflict.
This patch is still under review by the nvidia maintainer.
git-svn-id: https://trillian.chruetertee.ch/svn/ports/trunk@561 058c260c-8361-11dd-a0ac-aa2bafec7d09
-rw-r--r-- | graphics/libGL/Makefile | 9 | ||||
-rw-r--r-- | graphics/libGL/files/patch-src_mesa_Makefile | 15 | ||||
-rw-r--r-- | graphics/libGL/files/pkg-deinstall.in | 12 | ||||
-rw-r--r-- | graphics/libGL/files/pkg-install.in | 23 | ||||
-rw-r--r-- | graphics/libGL/pkg-plist | 5 | ||||
-rw-r--r-- | x11-servers/xorg-server/Makefile | 23 | ||||
-rw-r--r-- | x11-servers/xorg-server/files/pkg-deinstall.in | 12 | ||||
-rw-r--r-- | x11-servers/xorg-server/files/pkg-install.in | 25 | ||||
-rw-r--r-- | x11-servers/xorg-server/pkg-plist | 3 | ||||
-rw-r--r-- | x11/nvidia-driver-173/Makefile | 14 | ||||
-rw-r--r-- | x11/nvidia-driver/Makefile | 191 | ||||
-rw-r--r-- | x11/nvidia-driver/distinfo | 10 | ||||
-rw-r--r-- | x11/nvidia-driver/files/patch-lib_libGL_Makefile | 11 | ||||
-rw-r--r-- | x11/nvidia-driver/files/patch-x11_extension_Makefile | 12 | ||||
-rw-r--r-- | x11/nvidia-driver/files/pkg-deinstall.in | 19 | ||||
-rw-r--r-- | x11/nvidia-driver/files/pkg-install.in | 22 | ||||
-rw-r--r-- | x11/nvidia-driver/files/pkg-message.in | 35 | ||||
-rw-r--r-- | x11/nvidia-driver/files/security-patch-CVE-2012-0946 | 28 | ||||
-rw-r--r-- | x11/nvidia-driver/pkg-descr | 4 | ||||
-rw-r--r-- | x11/nvidia-driver/pkg-plist | 45 |
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 |