View | Details | Raw Unified | Return to bug 201340 | Differences between
and this patch

Collapse All | Expand All

(-)x11/nvidia-driver/Makefile (-110 / +41 lines)
Lines 7-17 Link Here
7
# Starting with version 1.0-7667, NVidia has dropped support for numerous
7
# Starting with version 1.0-7667, NVidia has dropped support for numerous
8
# "legacy" GPUs.  Consult NVidia README (the Appendix) to find out whether
8
# "legacy" GPUs.  Consult NVidia README (the Appendix) to find out whether
9
# you need to use legacy driver version and install one of corresponding
9
# you need to use legacy driver version and install one of corresponding
10
# slave ports instead (`x11/nvidia-driver-173', `x11/nvidia-driver-304',
10
# slave ports instead (`x11/nvidia-driver-304', or `x11/nvidia-driver-340').
11
# or `x11/nvidia-driver-340').
12
11
13
PORTNAME=	nvidia-driver
12
PORTNAME=	nvidia-driver
14
DISTVERSION?=	346.96
13
DISTVERSION?=	361.16
15
# Always try to set PORTREVISION as it can be overridden by the slave ports
14
# Always try to set PORTREVISION as it can be overridden by the slave ports
16
PORTREVISION?=	0
15
PORTREVISION?=	0
17
CATEGORIES=	x11
16
CATEGORIES=	x11
Lines 57-101 Link Here
57
.  endif
56
.  endif
58
.endif
57
.endif
59
58
60
.if ${NVVERSION} >= 195.022
61
MASTER_SITE_SUBDIR=	XFree86/FreeBSD-${ARCH_SUFX}/${DISTVERSION}
59
MASTER_SITE_SUBDIR=	XFree86/FreeBSD-${ARCH_SUFX}/${DISTVERSION}
62
ONLY_FOR_ARCHS=	i386 amd64
60
ONLY_FOR_ARCHS=	i386 amd64
63
.else
64
MASTER_SITE_SUBDIR=	freebsd/${DISTVERSION}
65
ONLY_FOR_ARCHS=	i386
66
.endif
67
61
68
.if ${NVVERSION} <= 190.042
62
.if ${NVVERSION} < 355.011
69
EXTRA_PATCHES=	${FILESDIR}/legacy-patch-mk-nvidia.lib.mk
70
.else
71
EXTRA_PATCHES=	${FILESDIR}/extra-patch-mk-nvidia.lib.mk
72
.endif
73
74
.if ${NVVERSION} >= 304.088
75
EXTRA_PATCHES+=	${FILESDIR}/extra-patch-src-Makefile \
63
EXTRA_PATCHES+=	${FILESDIR}/extra-patch-src-Makefile \
76
		${FILESDIR}/extra-patch-src-nv-freebsd.h \
64
		${FILESDIR}/extra-patch-src-nv-freebsd.h \
77
		${FILESDIR}/extra-patch-src-nv-misc.h
65
		${FILESDIR}/extra-patch-src-nv-misc.h
78
.endif
79
80
.if ${NVVERSION} >= 304.125 # 331.020
81
EXTRA_PATCHES+=	${FILESDIR}/extra-patch-x11-driver-Makefile
82
.else
66
.else
83
EXTRA_PATCHES+=	${FILESDIR}/legacy-patch-x11-driver-Makefile
67
NVSRC=nvidia
68
EXTRA_PATCHES+=	${FILESDIR}/extra-patch-src_nvidia_Makefile \
69
		${FILESDIR}/extra-patch-src_nvidia_nv-freebsd.h \
70
		${FILESDIR}/extra-patch-src_nvidia_nv-misc.h
84
.endif
71
.endif
85
72
86
# Fix recent arbitrary memory access vulnerability in legacy drivers
73
OPTIONS_DEFINE=		ACPI_PM LINUX DOCS WBINVD
87
.if ${NVVERSION} <= 190.053
88
.  if ${NVVERSION} != 173.01435
89
EXTRA_PATCHES+=	${FILESDIR}/security-patch-CVE-2012-0946
90
.  endif
91
EXTRA_PATCHES+=	${FILESDIR}/security-patch-CVE-2012-4225
92
.endif
93
94
OPTIONS_DEFINE=	ACPI_PM LINUX DOCS
95
OPTIONS_DEFAULT=	LINUX
74
OPTIONS_DEFAULT=	LINUX
96
75
97
ACPI_PM_DESC=		ACPI Power Management support
76
ACPI_PM_DESC=		ACPI Power Management support
98
LINUX_DESC=		Linux compatibility support
77
LINUX_DESC=		Linux compatibility support
78
WBINVD_DESC=		Flush CPU caches directly with WBINVD
99
79
100
.if ${NVVERSION} < 310.014
80
.if ${NVVERSION} < 310.014
101
OPTIONS_DEFINE+=	FREEBSD_AGP
81
OPTIONS_DEFINE+=	FREEBSD_AGP
Lines 102-112 Link Here
102
FREEBSD_AGP_DESC=	Use FreeBSD AGP GART driver
82
FREEBSD_AGP_DESC=	Use FreeBSD AGP GART driver
103
.endif
83
.endif
104
84
105
.if ${NVVERSION} >= 195.022
106
OPTIONS_DEFINE+=	WBINVD
107
WBINVD_DESC=		Flush CPU caches directly with WBINVD
108
.endif
109
110
.if ${NVVERSION} >= 304.088
85
.if ${NVVERSION} >= 304.088
111
OPTIONS_DEFINE_i386=	PAE
86
OPTIONS_DEFINE_i386=	PAE
112
PAE_DESC=		Physical Address Extensions support
87
PAE_DESC=		Physical Address Extensions support
Lines 127-239 Link Here
127
MAKE_ENV+=	WITHOUT_LINUX=yes
102
MAKE_ENV+=	WITHOUT_LINUX=yes
128
.endif
103
.endif
129
104
130
.if ${NVVERSION} < 195.022
131
# ABI version is hardcoded inside the binary, so specify it explicitly here
132
LIB_DEPENDS=	libm.so.3:${PORTSDIR}/misc/compat5x
133
.endif
134
135
post-patch: .SILENT
105
post-patch: .SILENT
136
# We should support -CURRENT: kill the check
106
# We should support -CURRENT: kill the check
137
	${REINPLACE_CMD} -e '24,26d' ${WRKSRC}/src/nv-freebsd.h
107
	${REINPLACE_CMD} -e '24,26d' ${WRKSRC}/src/${NVSRC}/nv-freebsd.h
138
# Adjust legacy drivers for updated d_mmap() since FreeBSD src SVN r201223
139
.if ${NVVERSION} < 195.022
140
	${REINPLACE_CMD} -e 's/vm_offset_t offset/vm_ooffset_t offset/ ; \
141
		s/vm_offset_t \*address/vm_paddr_t *address/ ; \
142
		s/int nprot/&, vm_memattr_t *memattr/' \
143
			${WRKSRC}/src/nvidia_dev.c
144
.endif
145
# In the legacy drivers: remove page queue locking and add page locking
146
# around vm_page_(un)wire() after FreeBSD src SVN r207410, r207617, and
147
# r207644; also remove page queue locking around vm_page_wakeup() after
148
# FreeBSD src SVN r163622
149
.if ${NVVERSION} < 304.064
150
	${REINPLACE_CMD} -E '/vm_page_(un)?lock_queues\(\);/d ; \
151
		s/(vm_page_(un)?wire\()([^,]+)(, 0)?(\);)/vm_page_lock(\3); & vm_page_unlock(\3);/' \
152
			${WRKSRC}/src/nvidia_subr.c
153
.endif
154
# Catch up legacy drivers with FreeBSD src SVN r225617
155
.if ${NVVERSION} < 195.022
156
	${REINPLACE_CMD} -e '/return/s/ioctl/sys_&/' \
157
		${WRKSRC}/src/nvidia_linux.c
158
.endif
159
# Adjust Linux headers #include's after FreeBSD src SVN r246085
108
# Adjust Linux headers #include's after FreeBSD src SVN r246085
160
.if ${OSVERSION} > 1000027 && ${NVVERSION} >= 96.04323
109
.if ${OSVERSION} > 1000027 && ${NVVERSION} >= 96.04323
161
	${REINPLACE_CMD} -E '/#include "machine\/\.\.\/linux(32)?\/linux.h"/ \
110
	${REINPLACE_CMD} -E '/#include "machine\/\.\.\/linux(32)?\/linux.h"/ \
162
		{ x ; s/.*/#include "machine\/..\/..\/compat\/linux\/linux_ioctl.h"/ ; H ; x ; }' \
111
		{ x ; s/.*/#include "machine\/..\/..\/compat\/linux\/linux_ioctl.h"/ ; H ; x ; }' \
163
			${WRKSRC}/src/nvidia_linux.c
112
			${WRKSRC}/src/${NVSRC}/nvidia_linux.c
164
.endif
113
.endif
165
# Adjust vm_object locking after FreeBSD src SVN r248084
114
# Adjust vm_object locking after FreeBSD src SVN r248084
166
.if ${OSVERSION} > 1000029
115
.if ${OSVERSION} > 1000029
167
	${REINPLACE_CMD} -e '/#include <vm\/vm_object.h>/ \
116
	${REINPLACE_CMD} -e '/#include <vm\/vm_object.h>/ \
168
		{ x ; s/.*/#include <sys\/rwlock.h>/ ; G ; }' \
117
		{ x ; s/.*/#include <sys\/rwlock.h>/ ; G ; }' \
169
			${WRKSRC}/src/nv-freebsd.h
118
			${WRKSRC}/src/${NVSRC}/nv-freebsd.h
170
	${REINPLACE_CMD} -E 's/(VM_OBJECT_)(UN)?(LOCK)/\1W\2\3/' \
119
	${REINPLACE_CMD} -E 's/(VM_OBJECT_)(UN)?(LOCK)/\1W\2\3/' \
171
		${WRKSRC}/src/nvidia_subr.c
120
		${WRKSRC}/src/${NVSRC}/nvidia_subr.c
172
.endif
121
.endif
173
# Adjust kmem(9) calls after FreeBSD src SVN r254025
122
# Adjust kmem(9) calls after FreeBSD src SVN r254025
174
.if ${OSVERSION} > 1000040 && ${NVVERSION} < 331.067
123
.if ${OSVERSION} > 1000040 && ${NVVERSION} < 331.067
175
	${REINPLACE_CMD} -e '/kmem_/s/kernel_map/kernel_arena/' \
124
	${REINPLACE_CMD} -e '/kmem_/s/kernel_map/kernel_arena/' \
176
		${WRKSRC}/src/nvidia_subr.c
125
		${WRKSRC}/src/${NVSRC}/nvidia_subr.c
177
.endif
126
.endif
178
# Argument count of vm_map_find() changed in FreeBSD src SVN r255426
179
.if ${OSVERSION} > 1000054 && ${NVVERSION} < 304.123 # < 331.067
180
	${REINPLACE_CMD} -e 's/virtual_address, size,/& 0,/' \
181
		${WRKSRC}/src/nvidia_subr.c
182
.endif
183
# Fix CTLFLAG_* values for SYSCTL_ADD_PROC() after FreeBSD src SVN r273377
127
# Fix CTLFLAG_* values for SYSCTL_ADD_PROC() after FreeBSD src SVN r273377
184
.if ${OSVERSION} > 1100039 || ${OSVERSION} > 1001501 && ${OSVERSION} < 1100000
128
.if ${OSVERSION} > 1100039 || ${OSVERSION} > 1001501 && ${OSVERSION} < 1100000
185
	${REINPLACE_CMD} -e '/SYSCTL_ADD_PROC/,/;/ \
129
	${REINPLACE_CMD} -e '/SYSCTL_ADD_PROC/,/;/ \
186
		s/^[[:blank:]]*CTLFLAG_RD/CTLTYPE_STRING |&/' \
130
		s/^[[:blank:]]*CTLFLAG_RD/CTLTYPE_STRING |&/' \
187
			${WRKSRC}/src/nvidia_sysctl.c
131
			${WRKSRC}/src/${NVSRC}/nvidia_sysctl.c
188
.endif
132
.endif
189
# Replace d_thread_t (compat shim to support FreeBSD 4) with `struct thread'
133
# Replace d_thread_t (compat shim to support FreeBSD 4) with `struct thread'
190
	${REINPLACE_CMD} -e 's/d_thread_t/struct thread/' \
134
	${REINPLACE_CMD} -e 's/d_thread_t/struct thread/' \
191
		${WRKSRC}/src/nvidia_ctl.c ${WRKSRC}/src/nvidia_dev.c \
135
		${WRKSRC}/src/${NVSRC}/nvidia_ctl.c ${WRKSRC}/src/${NVSRC}/nvidia_dev.c \
192
		${WRKSRC}/src/nvidia_linux.c
136
		${WRKSRC}/src/${NVSRC}/nvidia_linux.c \
193
# Fix stack buffer overflow in nvidia_sysctl_bus_type()
137
		${WRKSRC}/src/nvidia-modeset/nvidia-modeset-freebsd.c
194
	${REINPLACE_CMD} -e 's/8 bus_type\[4\]/8 bus_type[8]/' \
195
		${WRKSRC}/src/nvidia_sysctl.c
196
# Unbreak the build of 173.14.xx legacy series on recent -CURRENT
197
.if ${NVVERSION} < 195.022 && ${NVVERSION} >= 169.004
198
	${REINPLACE_CMD} -E 's/os_(alloc|free)_contig_pages/NV_API_CALL &/' \
199
		${WRKSRC}/src/nv-freebsd.h
200
.endif
201
# Process OPTIONS
138
# Process OPTIONS
202
.if ${PORT_OPTIONS:MFREEBSD_AGP}
139
.if ${PORT_OPTIONS:MFREEBSD_AGP}
203
	${REINPLACE_CMD} -E 's/undef (NV_SUPPORT_OS_AGP)/define \1/' \
140
	${REINPLACE_CMD} -E 's/undef (NV_SUPPORT_OS_AGP)/define \1/' \
204
		${WRKSRC}/src/nv-freebsd.h
141
		${WRKSRC}/src/${NVSRC}/nv-freebsd.h
205
.endif
142
.endif
206
.if ${PORT_OPTIONS:MACPI_PM}
143
.if ${PORT_OPTIONS:MACPI_PM}
207
	${REINPLACE_CMD} -E 's/undef (NV_SUPPORT_ACPI_PM)/define \1/' \
144
	${REINPLACE_CMD} -E 's/undef (NV_SUPPORT_ACPI_PM)/define \1/' \
208
		${WRKSRC}/src/nv-freebsd.h
145
		${WRKSRC}/src/${NVSRC}/nv-freebsd.h
209
.endif
146
.endif
210
.if ! ${PORT_OPTIONS:MLINUX}
147
.if ! ${PORT_OPTIONS:MLINUX}
211
	${REINPLACE_CMD} -E 's/define (NV_SUPPORT_LINUX_COMPAT)/undef \1/' \
148
	${REINPLACE_CMD} -E 's/define (NV_SUPPORT_LINUX_COMPAT)/undef \1/' \
212
		${WRKSRC}/src/nv-freebsd.h
149
		${WRKSRC}/src/${NVSRC}/nv-freebsd.h
213
.endif
150
.endif
214
.if ${PORT_OPTIONS:MPAE}
151
.if ${PORT_OPTIONS:MPAE}
215
	${REINPLACE_CMD} -E 's/undef (NV_SUPPORT_PAE)/define \1/' \
152
	${REINPLACE_CMD} -E 's/undef (NV_SUPPORT_PAE)/define \1/' \
216
		${WRKSRC}/src/nv-freebsd.h
153
		${WRKSRC}/src/${NVSRC}/nv-freebsd.h
217
.endif
154
.endif
218
.if ${PORT_OPTIONS:MWBINVD}
155
.if ${PORT_OPTIONS:MWBINVD}
219
	${REINPLACE_CMD} -E 's/undef (NV_USE_WBINVD)/define \1/' \
156
	${REINPLACE_CMD} -E 's/undef (NV_USE_WBINVD)/define \1/' \
220
		${WRKSRC}/src/nv-freebsd.h
157
		${WRKSRC}/src/${NVSRC}/nv-freebsd.h
221
.endif
158
.endif
222
	${REINPLACE_CMD} -e 's/exists(\/.*/& \&\& !defined(WITHOUT_LINUX)/' \
159
	${REINPLACE_CMD} -e 's/exists(\/.*/& \&\& !defined(WITHOUT_LINUX)/' \
223
		${WRKSRC}/lib/Makefile
160
		${WRKSRC}/lib/Makefile
224
# Do not install VDPAU libraries which are provided by `multimedia/libvdpau'
161
# Do not install VDPAU libraries which are provided by `multimedia/libvdpau'
225
# port for a while now
162
# port for a while now
226
.if ${NVVERSION} >= 180.029
227
	${REINPLACE_CMD} -e '/libvdpau[[:blank:]_][^n]/d ; \
163
	${REINPLACE_CMD} -e '/libvdpau[[:blank:]_][^n]/d ; \
228
		s/name libvdpau/&_nvidia/' ${WRKSRC}/lib/Makefile
164
		s/name libvdpau/&_nvidia/' ${WRKSRC}/lib/Makefile
229
.endif
230
# Do not build any binaries (native nvidia-settings and nvidia-xconfig are
165
# Do not build any binaries (native nvidia-settings and nvidia-xconfig are
231
# provided by corresponding ports) and manual pages
166
# provided by corresponding ports) and manual pages
232
.if ${NVVERSION} < 97.046 || ${NVVERSION} >= 195.022
233
	${REINPLACE_CMD} -E 's/(extension).*/\1/' ${WRKSRC}/x11/Makefile
234
.else
235
	${REINPLACE_CMD} -E 's/(lib).*/\1/' ${WRKSRC}/x11/Makefile
236
.endif
237
	${REINPLACE_CMD} -e '/bin/d ; /man/d' ${WRKSRC}/x11/Makefile
167
	${REINPLACE_CMD} -e '/bin/d ; /man/d' ${WRKSRC}/x11/Makefile
238
# Also do not install libnvidia-gtk* libraries which are for nvidia-settings
168
# Also do not install libnvidia-gtk* libraries which are for nvidia-settings
239
.if ${NVVERSION} >= 346.016
169
.if ${NVVERSION} >= 346.016
Lines 259-265 Link Here
259
# and "smart" installation of conflicting files heuristics)
189
# and "smart" installation of conflicting files heuristics)
260
	${REINPLACE_CMD} -e 's/afterinstall/&_dontexecute/' ${WRKSRC}/Makefile
190
	${REINPLACE_CMD} -e 's/afterinstall/&_dontexecute/' ${WRKSRC}/Makefile
261
	${REINPLACE_CMD} -e 's/beforeinstall/&_dontexecute/' \
191
	${REINPLACE_CMD} -e 's/beforeinstall/&_dontexecute/' \
262
		${WRKSRC}/lib/Makefile ${WRKSRC}/src/Makefile
192
		${WRKSRC}/lib/Makefile ${WRKSRC}/src/${NVSRC}/Makefile
263
# /usr/share/nvidia path is hardcoded in libGL and nvidia-settings, but we
193
# /usr/share/nvidia path is hardcoded in libGL and nvidia-settings, but we
264
# won't adhere to this stupidity and install nvidia-application-profiles-*
194
# won't adhere to this stupidity and install nvidia-application-profiles-*
265
# files as part of documentation
195
# files as part of documentation
Lines 276-299 Link Here
276
	${INSTALL_SCRIPT} ${WRKSRC}/obj/nvidia-bug-report.sh \
206
	${INSTALL_SCRIPT} ${WRKSRC}/obj/nvidia-bug-report.sh \
277
		${STAGEDIR}${PREFIX}/bin
207
		${STAGEDIR}${PREFIX}/bin
278
# pkg-plist is already overbloated, so use these hacks instead of PLIST_SUB's
208
# pkg-plist is already overbloated, so use these hacks instead of PLIST_SUB's
279
.if ${NVVERSION} < 81.074
209
.if ${NVVERSION} >= 304.128 && ${NVVERSION} < 310.019
280
	${REINPLACE_CMD} -e '/libnvidia-cfg/d' ${TMPPLIST}
281
.endif
282
.if ${NVVERSION} < 97.046 || ${NVVERSION} >= 195.022
283
	${REINPLACE_CMD} -e '/wfb/d' ${TMPPLIST}
284
.endif
285
.if ${NVVERSION} < 180.029
286
	${REINPLACE_CMD} -e '/vdpau/d' ${TMPPLIST}
287
.elif ${NVVERSION} >= 304.128 && ${NVVERSION} < 310.019
288
	${REINPLACE_CMD} -E '/libvdpau(_trace)?\.so/d' ${TMPPLIST}
210
	${REINPLACE_CMD} -E '/libvdpau(_trace)?\.so/d' ${TMPPLIST}
289
.endif
211
.endif
290
.if ${NVVERSION} < 185.01829
291
	${REINPLACE_CMD} -e '/libcuda/d' ${TMPPLIST}
292
.endif
293
.if ${NVVERSION} >= 256.053
294
	${REINPLACE_CMD} -E 's/libGLcore/libnvidia-glcore/ ; \
295
		/usr.*(glcore|tls).*so\.1$$/d' ${TMPPLIST}
296
.endif
297
.if ${NVVERSION} >= 310.019
212
.if ${NVVERSION} >= 310.019
298
	${REINPLACE_CMD} -e '/libXvMCNVIDIA/d' ${TMPPLIST}
213
	${REINPLACE_CMD} -e '/libXvMCNVIDIA/d' ${TMPPLIST}
299
.else	# some applications need this symlink (see PR ports/72877)
214
.else	# some applications need this symlink (see PR ports/72877)
Lines 307-312 Link Here
307
.if ${NVVERSION} >= 195.022
222
.if ${NVVERSION} >= 195.022
308
	${REINPLACE_CMD} -e '/does not support PAE/,+1d' ${PKGMESSAGE}
223
	${REINPLACE_CMD} -e '/does not support PAE/,+1d' ${PKGMESSAGE}
309
.endif
224
.endif
225
.if ${NVVERSION} < 352.055
226
	${REINPLACE_CMD} '/nvidia-debugdump/d ; /nvidia-smi/d ; \
227
	/libnvidia-ml.so/d' ${TMPPLIST}
228
.endif
229
.if ${NVVERSION} < 355.011
230
	${REINPLACE_CMD} '/libEGL_nvidia.so/d ;  /libGLdispatch.so/d ; \
231
	/libOpenGL.so/d' ${TMPPLIST}
232
.else
233
	${REINPLACE_CMD} 's/libEGL.so.${PORTVERSION}/libEGL.so/' ${TMPPLIST}
234
.endif
235
.if ${NVVERSION} < 358.016
236
	${REINPLACE_CMD} '/nvidia-modeset.ko/d' ${TMPPLIST}
237
.endif
238
.if ${NVVERSION} >= 361.016
239
	${REINPLACE_CMD} '/libvdpau.so/d ; /libvdpau_trace.so/d' ${TMPPLIST}
240
.endif
310
241
311
# Target below can be used instead of standard `makesum' to correctly
242
# Target below can be used instead of standard `makesum' to correctly
312
# update distinfo (i.e., keeping other driver version entries intact)
243
# update distinfo (i.e., keeping other driver version entries intact)
(-)x11/nvidia-driver/distinfo (-6 / +4 lines)
Lines 1-7 Link Here
1
SHA256 (NVIDIA-FreeBSD-x86_64-346.96.tar.gz) = 89daaff29afe92d825ec8c00149a703b4eb234e4f16bbfb98673f077521bcff9
1
SHA256 (NVIDIA-FreeBSD-x86_64-361.16.tar.gz) = 8c6945c7cae776c4fa42c13e8d2df0bbbe43c46f21f2514335027235c3bc77e7
2
SIZE (NVIDIA-FreeBSD-x86_64-346.96.tar.gz) = 58774970
2
SIZE (NVIDIA-FreeBSD-x86_64-361.16.tar.gz) = 61655470
3
SHA256 (NVIDIA-FreeBSD-x86-346.96.tar.gz) = a27d7b79c053702bf6524b2c4725321fa557be18a585735e0b8122d884348c3e
3
SHA256 (NVIDIA-FreeBSD-x86-361.16.tar.gz) = cfa2f74512bc71d5355f8d95e2ac060ae8655fb155824c04ce887258f19eb6d4
4
SIZE (NVIDIA-FreeBSD-x86-346.96.tar.gz) = 58010757
4
SIZE (NVIDIA-FreeBSD-x86-361.16.tar.gz) = 64863560
5
SHA256 (NVIDIA-FreeBSD-x86_64-340.93.tar.gz) = 07208f6a832c2da8748b1c4f8b5ce42a7b617f2ee1ac59155fecaff952c30988
5
SHA256 (NVIDIA-FreeBSD-x86_64-340.93.tar.gz) = 07208f6a832c2da8748b1c4f8b5ce42a7b617f2ee1ac59155fecaff952c30988
6
SIZE (NVIDIA-FreeBSD-x86_64-340.93.tar.gz) = 60215584
6
SIZE (NVIDIA-FreeBSD-x86_64-340.93.tar.gz) = 60215584
7
SHA256 (NVIDIA-FreeBSD-x86-340.93.tar.gz) = 094dc6df60b8e57cf9b94d982cb29c32d5e0c1d81796dbadb39145e78a3b0086
7
SHA256 (NVIDIA-FreeBSD-x86-340.93.tar.gz) = 094dc6df60b8e57cf9b94d982cb29c32d5e0c1d81796dbadb39145e78a3b0086
Lines 10-14 Link Here
10
SIZE (NVIDIA-FreeBSD-x86_64-304.128.tar.gz) = 35481444
10
SIZE (NVIDIA-FreeBSD-x86_64-304.128.tar.gz) = 35481444
11
SHA256 (NVIDIA-FreeBSD-x86-304.128.tar.gz) = c26d0ce5bda8965b37a8b8f91e8580f98b740e16dd21f3aaf7fb6bc84d3dd363
11
SHA256 (NVIDIA-FreeBSD-x86-304.128.tar.gz) = c26d0ce5bda8965b37a8b8f91e8580f98b740e16dd21f3aaf7fb6bc84d3dd363
12
SIZE (NVIDIA-FreeBSD-x86-304.128.tar.gz) = 34479549
12
SIZE (NVIDIA-FreeBSD-x86-304.128.tar.gz) = 34479549
13
SHA256 (NVIDIA-FreeBSD-x86-173.14.39.tar.gz) = 63a922ce4c5b676b4cb1ace98094dace4cc5408f2553e183df7b2127777a238b
14
SIZE (NVIDIA-FreeBSD-x86-173.14.39.tar.gz) = 20038266
(-)x11/nvidia-driver/files/extra-patch-mk-nvidia.lib.mk (-13 lines)
Lines 1-13 Link Here
1
--- mk/nvidia.lib.mk.orig	2013-08-16 10:53:30.000000000 +0200
2
+++ mk/nvidia.lib.mk	2014-01-27 16:55:39.000000000 +0100
3
@@ -46,8 +46,8 @@
4
 .endif		
5
 .endif
6
 .if defined(AUXLINK_TGT)
7
-	@rm -f ${AUXLINK_LINK}
8
-	@ln -fs ${AUXLINK_TGT} ${AUXLINK_LINK}
9
+	@rm -f ${DESTDIR}${AUXLINK_LINK}
10
+	@ln -fs ${AUXLINK_TGT} ${DESTDIR}${AUXLINK_LINK}
11
 .endif
12
 .if defined(STATICLIB_NAME)
13
 	@rm -f ${DESTDIR}${LIBDIR}/${STATICLIB_NAME}
(-)x11/nvidia-driver/files/extra-patch-src_nvidia_Makefile (+18 lines)
Line 0 Link Here
1
--- src/nvidia/Makefile.orig	2015-08-26 22:35:13 UTC
2
+++ src/nvidia/Makefile
3
@@ -26,6 +26,15 @@ NO_OBJ=		true
4
 stdarg.h:
5
 	@ln -s machine/stdarg.h stdarg.h
6
 
7
+SRCS+=		opt_global.h
8
+.if ${MACHINE_ARCH} == "i386" && !defined(KERNBUILDDIR)
9
+PAE!=		sed -n '/define NV_SUPPORT_PAE/p' nv-freebsd.h
10
+.if !empty(PAE)
11
+opt_global.h:
12
+		echo "#define PAE 1" > ${.TARGET}
13
+.endif
14
+.endif
15
+
16
 *.c: stdarg.h
17
 
18
 beforeinstall:	${KMOD}.ko
(-)x11/nvidia-driver/files/extra-patch-src_nvidia_nv-freebsd.h (+14 lines)
Line 0 Link Here
1
--- src/nvidia/nv-freebsd.h.orig	2015-10-30 22:40:02 UTC
2
+++ src/nvidia/nv-freebsd.h
3
@@ -144,6 +144,11 @@ MALLOC_DECLARE(M_NVIDIA);
4
 #endif
5
 
6
 /*
7
+ * Enable/Disable support for PAE on i386.
8
+ */
9
+#undef NV_SUPPORT_PAE
10
+
11
+/*
12
  * Enable/Disable support for ACPI Power Management.
13
  */
14
 
(-)x11/nvidia-driver/files/extra-patch-src_nvidia_nv-misc.h (+11 lines)
Line 0 Link Here
1
--- src/nvidia/nv-misc.h.orig	2015-10-30 22:24:29 UTC
2
+++ src/nvidia/nv-misc.h
3
@@ -11,6 +11,8 @@
4
 #ifndef _NV_MISC_H_
5
 #define _NV_MISC_H_
6
 
7
+#include "opt_global.h"
8
+
9
 #include "nvtypes.h"
10
 #include "rmretval.h"
11
 
(-)x11/nvidia-driver/files/extra-patch-x11-driver-Makefile (-11 lines)
Lines 1-11 Link Here
1
--- x11/driver/Makefile.orig	2013-08-16 10:53:30.000000000 +0200
2
+++ x11/driver/Makefile	2014-01-27 18:25:14.000000000 +0100
3
@@ -5,7 +5,7 @@
4
 .endif
5
 
6
 DRIVERS=	nvidia_drv.o nvidia_drv.so
7
-.if exists(${LOCALBASE}/lib/xorg/modules/drivers)
8
+.if exists(${DESTDIR}${LOCALBASE}/lib/xorg/modules/drivers)
9
 DRIVERDIR=	${LOCALBASE}/lib/xorg/modules/drivers
10
 .else
11
 DRIVERDIR=	${LOCALBASE}/lib/modules/drivers
(-)x11/nvidia-driver/files/legacy-patch-mk-nvidia.lib.mk (-10 lines)
Lines 1-10 Link Here
1
--- mk/nvidia.lib.mk.orig
2
+++ mk/nvidia.lib.mk
3
@@ -17,6 +17,7 @@
4
 
5
 install:
6
 .if defined(SHLIB_NAME)
7
+	@mkdir -p ${DESTDIR}${LIBDIR}
8
 	@rm -f ${DESTDIR}${LIBDIR}/${SHLIB_NAME}
9
 	@${INSTALL} -C -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
10
 		${NVIDIA_ROOT}/${OBJDIR}/${SHLIB_NAME} \
(-)x11/nvidia-driver/files/legacy-patch-x11-driver-Makefile (-11 lines)
Lines 1-11 Link Here
1
--- x11/driver/Makefile.orig	2012-12-12 15:39:41.000000000 +0100
2
+++ x11/driver/Makefile	2014-01-28 22:28:05.000000000 +0100
3
@@ -5,7 +5,7 @@
4
 .endif
5
 
6
 DRIVERS=	nvidia_drv.o nvidia_drv.so
7
-.if exists(${X11BASE}/lib/xorg/modules/drivers)
8
+.if exists(${DESTDIR}${X11BASE}/lib/xorg/modules/drivers)
9
 DRIVERDIR=	${X11BASE}/lib/xorg/modules/drivers
10
 .else
11
 DRIVERDIR=	${X11BASE}/lib/modules/drivers
(-)x11/nvidia-driver/files/patch-mk_nvidia.lib.mk (+13 lines)
Line 0 Link Here
1
--- mk/nvidia.lib.mk.orig	2015-08-24 03:56:22 UTC
2
+++ mk/nvidia.lib.mk
3
@@ -46,8 +46,8 @@ install: ${EXTRADEPS}
4
 .endif		
5
 .endif
6
 .if defined(AUXLINK_TGT)
7
-	@rm -f ${AUXLINK_LINK}
8
-	@ln -fs ${AUXLINK_TGT} ${AUXLINK_LINK}
9
+	@rm -f ${DESTDIR}${AUXLINK_LINK}
10
+	@ln -fs ${AUXLINK_TGT} ${DESTDIR}${AUXLINK_LINK}
11
 .endif
12
 .if defined(STATICLIB_NAME)
13
 	@rm -f ${DESTDIR}${LIBDIR}/${STATICLIB_NAME}
(-)x11/nvidia-driver/files/patch-x11_driver_Makefile (+11 lines)
Line 0 Link Here
1
--- x11/driver/Makefile.orig	2015-08-24 03:56:22 UTC
2
+++ x11/driver/Makefile
3
@@ -5,7 +5,7 @@ LOCALBASE=	/usr/local
4
 .endif
5
 
6
 DRIVERS=	nvidia_drv.o nvidia_drv.so
7
-.if exists(${LOCALBASE}/lib/xorg/modules/drivers)
8
+.if exists(${DESTDIR}${LOCALBASE}/lib/xorg/modules/drivers)
9
 DRIVERDIR=	${LOCALBASE}/lib/xorg/modules/drivers
10
 .else
11
 DRIVERDIR=	${LOCALBASE}/lib/modules/drivers
(-)x11/nvidia-driver/files/security-patch-CVE-2012-0946 (-28 lines)
Lines 1-28 Link Here
1
--- src/nv.h.orig	2011-07-14 02:51:53.000000000 +0800
2
+++ src/nv.h	2012-05-10 18:15:51.000000000 +0800
3
@@ -364,6 +364,14 @@
4
              ((offset) >= (nv)->agp.address) &&                                \
5
              (((offset) + ((length)-1)) <= (nv)->agp.address + ((nv)->agp.size-1)))
6
 
7
+#define IS_REG_RANGE_WITHIN_MAPPING(nv, roffset, rlength, moffset, mlength)    \
8
+             (((moffset) <= ((nv)->regs->address + ((roffset) + (rlength)-1))) &&\
9
+             (((moffset) + (mlength)-1) >= ((nv)->regs->address + (roffset))))
10
+
11
+#define IS_BLACKLISTED_REG_OFFSET(nv, offset, length)                          \
12
+             ((IS_REG_RANGE_WITHIN_MAPPING(nv, 0x1000, 0x1000, offset, length)) ||\
13
+             (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x700000, 0x100000, offset, length)))
14
+
15
 /* duplicated from nvos.h for external builds */
16
 #ifndef NVOS_AGP_CONFIG_DISABLE_AGP
17
 #  define NVOS_AGP_CONFIG_DISABLE_AGP (0x00000000)
18
--- src/nvidia_subr.c.orig	2012-05-10 18:09:01.000000000 +0800
19
+++ src/nvidia_subr.c	2012-05-10 18:13:41.000000000 +0800
20
@@ -1464,6 +1464,8 @@
21
     }
22
 
23
     if (IS_REG_OFFSET(nv, offset, PAGE_SIZE)) {
24
+        if (IS_BLACKLISTED_REG_OFFSET(nv, offset, PAGE_SIZE))
25
+             return -1;
26
         *physical = offset;
27
         return 0;
28
     }
(-)x11/nvidia-driver/files/security-patch-CVE-2012-4225 (-24 lines)
Lines 1-24 Link Here
1
--- src/nv.h.orig	2012-08-02 18:19:37.000000000 -0700
2
+++ src/nv.h 2012-08-02 18:19:37.000000000 -0700
3
@@ -436,7 +436,20 @@
4
 
5
 #define IS_BLACKLISTED_REG_OFFSET(nv, offset, length)                          \
6
              ((IS_REG_RANGE_WITHIN_MAPPING(nv, 0x1000, 0x1000, offset, length)) ||\
7
-             (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x700000, 0x100000, offset, length)))
8
+              (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x84000, 0x1000, offset, length)) ||\
9
+              (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x85000, 0x1000, offset, length)) ||\
10
+              (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x86000, 0x1000, offset, length)) ||\
11
+              (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x87000, 0x1000, offset, length)) ||\
12
+              (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x89000, 0x1000, offset, length)) ||\
13
+              (IS_REG_RANGE_WITHIN_MAPPING(nv, 0xa0000, 0x20000, offset, length)) ||\
14
+              (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x104000, 0x1000, offset, length)) ||\
15
+              (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x105000, 0x1000, offset, length)) ||\
16
+              (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x10a000, 0x1000, offset, length)) ||\
17
+              (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x1c2000, 0x1000, offset, length)) ||\
18
+              (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x1c3000, 0x1000, offset, length)) ||\
19
+              (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x618000, 0x2000, offset, length)) ||\
20
+              (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x627000, 0x1000, offset, length)) ||\
21
+              (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x700000, 0x100000, offset, length)))
22
 
23
 /* duplicated from nvos.h for external builds */
24
 #ifndef NVOS_AGP_CONFIG_DISABLE_AGP
(-)x11/nvidia-driver/pkg-plist (-6 / +20 lines)
Lines 1-4 Link Here
1
bin/nvidia-bug-report.sh
1
bin/nvidia-bug-report.sh
2
bin/nvidia-debugdump
3
bin/nvidia-smi
2
lib/.nvidia/libGL.so
4
lib/.nvidia/libGL.so
3
lib/.nvidia/libGL.so.1
5
lib/.nvidia/libGL.so.1
4
lib/.nvidia/libEGL.so
6
lib/.nvidia/libEGL.so
Lines 7-14 Link Here
7
lib/libGLESv1_CM.so.1
9
lib/libGLESv1_CM.so.1
8
lib/.nvidia/libGLESv2.so
10
lib/.nvidia/libGLESv2.so
9
lib/.nvidia/libGLESv2.so.2
11
lib/.nvidia/libGLESv2.so.2
10
lib/libGLcore.so
12
lib/libnvidia-glcore.so
11
lib/libGLcore.so.1
13
lib/libnvidia-glcore.so.1
12
lib/libXvMCNVIDIA.a
14
lib/libXvMCNVIDIA.a
13
lib/libXvMCNVIDIA.so
15
lib/libXvMCNVIDIA.so
14
lib/libXvMCNVIDIA.so.1
16
lib/libXvMCNVIDIA.so.1
Lines 19-49 Link Here
19
lib/libnvidia-eglcore.so.1
21
lib/libnvidia-eglcore.so.1
20
lib/libnvidia-glsi.so
22
lib/libnvidia-glsi.so
21
lib/libnvidia-glsi.so.1
23
lib/libnvidia-glsi.so.1
24
lib/libnvidia-ml.so
25
lib/libnvidia-ml.so.1
22
lib/libnvidia-tls.so
26
lib/libnvidia-tls.so
23
lib/libnvidia-tls.so.1
27
lib/libnvidia-tls.so.1
24
lib/libvdpau_nvidia.so
28
lib/libvdpau_nvidia.so
25
lib/vdpau/libvdpau_nvidia.so.1
29
lib/vdpau/libvdpau_nvidia.so.1
30
man/man1/nvidia-smi.1.gz
26
%%MODULESDIR%%/drivers/nvidia_drv.so
31
%%MODULESDIR%%/drivers/nvidia_drv.so
27
%%MODULESDIR%%/extensions/.nvidia/libglx.so
32
%%MODULESDIR%%/extensions/.nvidia/libglx.so
28
%%MODULESDIR%%/extensions/.nvidia/libglx.so.1
33
%%MODULESDIR%%/extensions/.nvidia/libglx.so.1
29
%%MODULESDIR%%/libnvidia-wfb.so.1
30
/%%KMODDIR%%/nvidia.ko
34
/%%KMODDIR%%/nvidia.ko
35
/%%KMODDIR%%/nvidia-modeset.ko
31
%%LINUX%%%%LINUXBASE%%/usr/lib/libEGL.so.%%SHLIB_VERSION%%
36
%%LINUX%%%%LINUXBASE%%/usr/lib/libEGL.so.%%SHLIB_VERSION%%
32
%%LINUX%%%%LINUXBASE%%/usr/lib/libEGL.so.1
37
%%LINUX%%%%LINUXBASE%%/usr/lib/libEGL.so.1
33
%%LINUX%%%%LINUXBASE%%/usr/lib/libGL.so.%%SHLIB_VERSION%%
38
%%LINUX%%%%LINUXBASE%%/usr/lib/libGL.so.%%SHLIB_VERSION%%
34
%%LINUX%%%%LINUXBASE%%/usr/lib/libGL.so.1
39
%%LINUX%%%%LINUXBASE%%/usr/lib/libGL.so.1
40
%%LINUX%%%%LINUXBASE%%/usr/lib/libEGL_nvidia.so
41
%%LINUX%%%%LINUXBASE%%/usr/lib/libEGL_nvidia.so.0
35
%%LINUX%%%%LINUXBASE%%/usr/lib/libGLESv1_CM.so.%%SHLIB_VERSION%%
42
%%LINUX%%%%LINUXBASE%%/usr/lib/libGLESv1_CM.so.%%SHLIB_VERSION%%
36
%%LINUX%%%%LINUXBASE%%/usr/lib/libGLESv1_CM.so.1
43
%%LINUX%%%%LINUXBASE%%/usr/lib/libGLESv1_CM.so.1
37
%%LINUX%%%%LINUXBASE%%/usr/lib/libGLESv2.so.%%SHLIB_VERSION%%
44
%%LINUX%%%%LINUXBASE%%/usr/lib/libGLESv2.so.%%SHLIB_VERSION%%
38
%%LINUX%%%%LINUXBASE%%/usr/lib/libGLESv2.so.2
45
%%LINUX%%%%LINUXBASE%%/usr/lib/libGLESv2.so.2
39
%%LINUX%%%%LINUXBASE%%/usr/lib/libGLcore.so.%%SHLIB_VERSION%%
46
%%LINUX%%%%LINUXBASE%%/usr/lib/libGLdispatch.so
40
%%LINUX%%%%LINUXBASE%%/usr/lib/libGLcore.so.1
47
%%LINUX%%%%LINUXBASE%%/usr/lib/libGLdispatch.so.0
48
%%LINUX%%%%LINUXBASE%%/usr/lib/libOpenGL.so
49
%%LINUX%%%%LINUXBASE%%/usr/lib/libOpenGL.so.0
50
%%LINUX%%%%LINUXBASE%%/usr/lib/libnvidia-glcore.so.%%SHLIB_VERSION%%
41
%%LINUX%%%%LINUXBASE%%/usr/lib/libcuda.so.%%SHLIB_VERSION%%
51
%%LINUX%%%%LINUXBASE%%/usr/lib/libcuda.so.%%SHLIB_VERSION%%
42
%%LINUX%%%%LINUXBASE%%/usr/lib/libcuda.so.1
52
%%LINUX%%%%LINUXBASE%%/usr/lib/libcuda.so.1
43
%%LINUX%%%%LINUXBASE%%/usr/lib/libnvidia-eglcore.so.%%SHLIB_VERSION%%
53
%%LINUX%%%%LINUXBASE%%/usr/lib/libnvidia-eglcore.so.%%SHLIB_VERSION%%
44
%%LINUX%%%%LINUXBASE%%/usr/lib/libnvidia-glsi.so.%%SHLIB_VERSION%%
54
%%LINUX%%%%LINUXBASE%%/usr/lib/libnvidia-glsi.so.%%SHLIB_VERSION%%
45
%%LINUX%%%%LINUXBASE%%/usr/lib/libnvidia-tls.so.%%SHLIB_VERSION%%
55
%%LINUX%%%%LINUXBASE%%/usr/lib/libnvidia-tls.so.%%SHLIB_VERSION%%
46
%%LINUX%%%%LINUXBASE%%/usr/lib/libnvidia-tls.so.1
47
%%LINUX%%%%LINUXBASE%%/usr/lib/libvdpau.so.%%SHLIB_VERSION%%
56
%%LINUX%%%%LINUXBASE%%/usr/lib/libvdpau.so.%%SHLIB_VERSION%%
48
%%LINUX%%%%LINUXBASE%%/usr/lib/libvdpau.so.1
57
%%LINUX%%%%LINUXBASE%%/usr/lib/libvdpau.so.1
49
%%LINUX%%%%LINUXBASE%%/usr/lib/libvdpau_nvidia.so
58
%%LINUX%%%%LINUXBASE%%/usr/lib/libvdpau_nvidia.so
Lines 54-56 Link Here
54
%%LINUX%%%%LINUXBASE%%/usr/lib/vdpau/libvdpau_trace.so.1
63
%%LINUX%%%%LINUXBASE%%/usr/lib/vdpau/libvdpau_trace.so.1
55
%%LINUX%%@exec %%LINUXBASE%%/sbin/ldconfig -r %%LINUXBASE%%
64
%%LINUX%%@exec %%LINUXBASE%%/sbin/ldconfig -r %%LINUXBASE%%
56
%%LINUX%%@unexec %%LINUXBASE%%/sbin/ldconfig -r %%LINUXBASE%%
65
%%LINUX%%@unexec %%LINUXBASE%%/sbin/ldconfig -r %%LINUXBASE%%
66
%%LINUX%%@dir %%LINUXBASE%%/usr/lib/vdpau
67
%%LINUX%%@dir %%LINUXBASE%%/usr/lib
68
%%LINUX%%@dir %%LINUXBASE%%/usr
69
%%LINUX%%@dir %%LINUXBASE%%
70
%%LINUX%%@dir /compat

Return to bug 201340