summaryrefslogtreecommitdiff
path: root/x11/nvidia-driver
diff options
context:
space:
mode:
authorAlexey Dokuchaev <danfe@FreeBSD.org>2016-08-19 18:16:35 +0000
committerAlexey Dokuchaev <danfe@FreeBSD.org>2016-08-19 18:16:35 +0000
commit8aa991109bc661bf4cb62b18693f881eeedb6b55 (patch)
tree8db17401d9823fc1e80df010b1402a0b82e55b56 /x11/nvidia-driver
parentsecurity/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/Makefile72
-rw-r--r--x11/nvidia-driver/files/legacy-patch-mk-nvidia.lib.mk10
-rw-r--r--x11/nvidia-driver/files/legacy-patch-x11-driver-Makefile11
-rw-r--r--x11/nvidia-driver/files/pkg-message.in2
-rw-r--r--x11/nvidia-driver/files/security-patch-CVE-2012-094628
-rw-r--r--x11/nvidia-driver/files/security-patch-CVE-2012-422524
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