diff options
author | Alexey Dokuchaev <danfe@FreeBSD.org> | 2016-08-19 18:16:35 +0000 |
---|---|---|
committer | Alexey Dokuchaev <danfe@FreeBSD.org> | 2016-08-19 18:16:35 +0000 |
commit | 8aa991109bc661bf4cb62b18693f881eeedb6b55 (patch) | |
tree | 8db17401d9823fc1e80df010b1402a0b82e55b56 /x11/nvidia-driver | |
parent | security/letskencrypt: Remove patches (diff) |
In sight of upcoming update, deorbit support for legacy versions (part 1):
- Make the top comment reflect the current reality
- MASTER_SITE_SUBDIR does not have be set later, as it no longer depends
on NVVERSION (this also allows to move ONLY_FOR_ARCHS where it belongs)
- Delete no longer relevant legacy only versions specific patches; retain
EXTRA_PATCHES as this separation would still be needed in new versions
- All security patches only touch legacy drivers and thus also deleted
- PAE and WBINVD options are now unconditional (independent of NVVERSION)
- Drop no longer needed LIB_DEPENDS on libm.so.3 from `misc/compat5x'
- Adjust a comment and simplify regexp that had been sitting in my tree
- Stop mentioning that this driver does not support PAE-enabled kernels
in pkg-message
Notes
Notes:
svn path=/head/; revision=420482
Diffstat (limited to 'x11/nvidia-driver')
-rw-r--r-- | x11/nvidia-driver/Makefile | 72 | ||||
-rw-r--r-- | x11/nvidia-driver/files/legacy-patch-mk-nvidia.lib.mk | 10 | ||||
-rw-r--r-- | x11/nvidia-driver/files/legacy-patch-x11-driver-Makefile | 11 | ||||
-rw-r--r-- | x11/nvidia-driver/files/pkg-message.in | 2 | ||||
-rw-r--r-- | x11/nvidia-driver/files/security-patch-CVE-2012-0946 | 28 | ||||
-rw-r--r-- | x11/nvidia-driver/files/security-patch-CVE-2012-4225 | 24 |
6 files changed, 14 insertions, 133 deletions
diff --git a/x11/nvidia-driver/Makefile b/x11/nvidia-driver/Makefile index 8dd46ad7456c..19b47ab51766 100644 --- a/x11/nvidia-driver/Makefile +++ b/x11/nvidia-driver/Makefile @@ -7,16 +7,14 @@ # 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 -# slave ports instead (`x11/nvidia-driver-173', `x11/nvidia-driver-304', -# or `x11/nvidia-driver-340'). +# slave ports instead (`x11/nvidia-driver-340' or `x11/nvidia-driver-304'). PORTNAME= nvidia-driver DISTVERSION?= 346.96 # Always try to set PORTREVISION as it can be overridden by the slave ports PORTREVISION?= 0 CATEGORIES= x11 -MASTER_SITES= NVIDIA -# MASTER_SITE_SUBDIR has to be set later because it depends on NVVERSION +MASTER_SITES= NVIDIA/XFree86/FreeBSD-${ARCH_SUFX}/${DISTVERSION} DISTNAME= NVIDIA-FreeBSD-${ARCH_SUFX}-${DISTVERSION} MAINTAINER= danfe@FreeBSD.org @@ -27,6 +25,8 @@ 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 +ONLY_FOR_ARCHS= i386 amd64 + ARCH_SUFX= x86${ARCH:S/i386//:S/amd/_/} USES= kmod uidfix USE_XORG= xorg-server @@ -57,61 +57,26 @@ NVVERSION= ${DISTVERSION} . endif .endif -.if ${NVVERSION} >= 195.022 -MASTER_SITE_SUBDIR= XFree86/FreeBSD-${ARCH_SUFX}/${DISTVERSION} -ONLY_FOR_ARCHS= i386 amd64 -.else -MASTER_SITE_SUBDIR= freebsd/${DISTVERSION} -ONLY_FOR_ARCHS= i386 -.endif - -.if ${NVVERSION} <= 190.042 -EXTRA_PATCHES= ${FILESDIR}/legacy-patch-mk-nvidia.lib.mk -.else -EXTRA_PATCHES= ${FILESDIR}/extra-patch-mk-nvidia.lib.mk -.endif - -.if ${NVVERSION} >= 304.088 -EXTRA_PATCHES+= ${FILESDIR}/extra-patch-src-Makefile \ +EXTRA_PATCHES= ${FILESDIR}/extra-patch-mk-nvidia.lib.mk \ + ${FILESDIR}/extra-patch-src-Makefile \ ${FILESDIR}/extra-patch-src-nv-freebsd.h \ - ${FILESDIR}/extra-patch-src-nv-misc.h -.endif - -.if ${NVVERSION} >= 304.125 # 331.020 -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} <= 190.053 -. if ${NVVERSION} != 173.01435 -EXTRA_PATCHES+= ${FILESDIR}/security-patch-CVE-2012-0946 -. endif -EXTRA_PATCHES+= ${FILESDIR}/security-patch-CVE-2012-4225 -.endif + ${FILESDIR}/extra-patch-src-nv-misc.h \ + ${FILESDIR}/extra-patch-x11-driver-Makefile -OPTIONS_DEFINE= ACPI_PM LINUX DOCS +OPTIONS_DEFINE= ACPI_PM LINUX WBINVD DOCS +OPTIONS_DEFINE_i386= PAE OPTIONS_DEFAULT= LINUX ACPI_PM_DESC= ACPI Power Management support LINUX_DESC= Linux compatibility support +PAE_DESC= Physical Address Extensions support +WBINVD_DESC= Flush CPU caches directly with WBINVD .if ${NVVERSION} < 310.014 OPTIONS_DEFINE+= FREEBSD_AGP FREEBSD_AGP_DESC= Use FreeBSD AGP GART driver .endif -.if ${NVVERSION} >= 195.022 -OPTIONS_DEFINE+= WBINVD -WBINVD_DESC= Flush CPU caches directly with WBINVD -.endif - -.if ${NVVERSION} >= 304.088 -OPTIONS_DEFINE_i386= PAE -PAE_DESC= Physical Address Extensions support -.endif - PLIST_SUB+= LINUXBASE=${LINUXBASE} SHLIB_VERSION=${PORTVERSION} \ MODULESDIR=${MODULESDIR} @@ -127,11 +92,6 @@ PLIST_SUB+= LINUX="@comment " MAKE_ENV+= WITHOUT_LINUX=yes .endif -.if ${NVVERSION} < 195.022 -# ABI version is hardcoded inside the binary, so specify it explicitly here -LIB_DEPENDS= libm.so.3:misc/compat5x -.endif - post-patch: .SILENT # We should support -CURRENT: kill the check ${REINPLACE_CMD} -e '24,26d' ${WRKSRC}/src/nv-freebsd.h @@ -244,15 +204,14 @@ post-patch: .SILENT ${REINPLACE_CMD} -E 's/(x11).*/\1/ ; /doc/d' ${WRKSRC}/Makefile .endif # Adjust installation paths of some conflicting files (shared also between -# libGL, libEGL, libglesv2 and xorg-server) to ease package manager work. +# libGL, libEGL, libGLESv2, and xorg-server) to ease package manager work ${REINPLACE_CMD} -e '/LIBDIR/s:xorg/modules/extensions:&/.nvidia:' \ ${WRKSRC}/x11/extension/Makefile ${REINPLACE_CMD} -e '/LIBDIR/s:lib:&/.nvidia:' \ ${WRKSRC}/lib/libGL/Makefile .if ${NVVERSION} >= 331.013 ${REINPLACE_CMD} -e '/LIBDIR/s:lib:&/.nvidia:' \ - ${WRKSRC}/lib/libEGL/Makefile - ${REINPLACE_CMD} -e '/LIBDIR/s:lib:&/.nvidia:' \ + ${WRKSRC}/lib/libEGL/Makefile \ ${WRKSRC}/lib/libGLESv2/Makefile .endif # Do not execute afterinstall target (prevent automatic module registration @@ -304,9 +263,6 @@ post-install: .SILENT ${REINPLACE_CMD} -E '/lib(nvidia-)?(EGL|eglcore|GLESv|glsi)/d' \ ${TMPPLIST} .endif -.if ${NVVERSION} >= 195.022 - ${REINPLACE_CMD} -e '/does not support PAE/,+1d' ${PKGMESSAGE} -.endif # Target below can be used instead of standard `makesum' to correctly # update distinfo (i.e., keeping other driver version entries intact) diff --git a/x11/nvidia-driver/files/legacy-patch-mk-nvidia.lib.mk b/x11/nvidia-driver/files/legacy-patch-mk-nvidia.lib.mk deleted file mode 100644 index ce60b3fa1bfd..000000000000 --- a/x11/nvidia-driver/files/legacy-patch-mk-nvidia.lib.mk +++ /dev/null @@ -1,10 +0,0 @@ ---- mk/nvidia.lib.mk.orig -+++ mk/nvidia.lib.mk -@@ -17,6 +17,7 @@ - - install: - .if defined(SHLIB_NAME) -+ @mkdir -p ${DESTDIR}${LIBDIR} - @rm -f ${DESTDIR}${LIBDIR}/${SHLIB_NAME} - @${INSTALL} -C -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ - ${NVIDIA_ROOT}/${OBJDIR}/${SHLIB_NAME} \ diff --git a/x11/nvidia-driver/files/legacy-patch-x11-driver-Makefile b/x11/nvidia-driver/files/legacy-patch-x11-driver-Makefile deleted file mode 100644 index b0d53c0fa33e..000000000000 --- a/x11/nvidia-driver/files/legacy-patch-x11-driver-Makefile +++ /dev/null @@ -1,11 +0,0 @@ ---- x11/driver/Makefile.orig 2012-12-12 15:39:41.000000000 +0100 -+++ x11/driver/Makefile 2014-01-28 22:28:05.000000000 +0100 -@@ -5,7 +5,7 @@ - .endif - - DRIVERS= nvidia_drv.o nvidia_drv.so --.if exists(${X11BASE}/lib/xorg/modules/drivers) -+.if exists(${DESTDIR}${X11BASE}/lib/xorg/modules/drivers) - DRIVERDIR= ${X11BASE}/lib/xorg/modules/drivers - .else - DRIVERDIR= ${X11BASE}/lib/modules/drivers diff --git a/x11/nvidia-driver/files/pkg-message.in b/x11/nvidia-driver/files/pkg-message.in index cba37e80e046..7f5dfa235718 100644 --- a/x11/nvidia-driver/files/pkg-message.in +++ b/x11/nvidia-driver/files/pkg-message.in @@ -23,8 +23,6 @@ loaded via /boot/loader.conf, or later in the boot process if you add 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. diff --git a/x11/nvidia-driver/files/security-patch-CVE-2012-0946 b/x11/nvidia-driver/files/security-patch-CVE-2012-0946 deleted file mode 100644 index 86e7dce9936b..000000000000 --- a/x11/nvidia-driver/files/security-patch-CVE-2012-0946 +++ /dev/null @@ -1,28 +0,0 @@ ---- 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/files/security-patch-CVE-2012-4225 b/x11/nvidia-driver/files/security-patch-CVE-2012-4225 deleted file mode 100644 index 1f2d1d58a944..000000000000 --- a/x11/nvidia-driver/files/security-patch-CVE-2012-4225 +++ /dev/null @@ -1,24 +0,0 @@ ---- src/nv.h.orig 2012-08-02 18:19:37.000000000 -0700 -+++ src/nv.h 2012-08-02 18:19:37.000000000 -0700 -@@ -436,7 +436,20 @@ - - #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))) -+ (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x84000, 0x1000, offset, length)) ||\ -+ (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x85000, 0x1000, offset, length)) ||\ -+ (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x86000, 0x1000, offset, length)) ||\ -+ (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x87000, 0x1000, offset, length)) ||\ -+ (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x89000, 0x1000, offset, length)) ||\ -+ (IS_REG_RANGE_WITHIN_MAPPING(nv, 0xa0000, 0x20000, offset, length)) ||\ -+ (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x104000, 0x1000, offset, length)) ||\ -+ (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x105000, 0x1000, offset, length)) ||\ -+ (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x10a000, 0x1000, offset, length)) ||\ -+ (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x1c2000, 0x1000, offset, length)) ||\ -+ (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x1c3000, 0x1000, offset, length)) ||\ -+ (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x618000, 0x2000, offset, length)) ||\ -+ (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x627000, 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 |