Lines 10-16
Link Here
|
10 |
# slave ports instead (`x11/nvidia-driver-340' or `x11/nvidia-driver-304'). |
10 |
# slave ports instead (`x11/nvidia-driver-340' or `x11/nvidia-driver-304'). |
11 |
|
11 |
|
12 |
PORTNAME= nvidia-driver |
12 |
PORTNAME= nvidia-driver |
13 |
DISTVERSION?= 346.96 |
13 |
DISTVERSION?= 367.35 |
14 |
# 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 |
15 |
PORTREVISION?= 0 |
15 |
PORTREVISION?= 0 |
16 |
CATEGORIES= x11 |
16 |
CATEGORIES= x11 |
Lines 29-35
Link Here
|
29 |
|
29 |
|
30 |
ARCH_SUFX= x86${ARCH:S/i386//:S/amd/_/} |
30 |
ARCH_SUFX= x86${ARCH:S/i386//:S/amd/_/} |
31 |
USES= kmod uidfix |
31 |
USES= kmod uidfix |
32 |
USE_XORG= xorg-server |
32 |
USE_XORG= x11 xorg-server xext |
33 |
USE_GL= gl |
33 |
USE_GL= gl |
34 |
USE_LDCONFIG= yes |
34 |
USE_LDCONFIG= yes |
35 |
|
35 |
|
Lines 57-67
Link Here
|
57 |
. endif |
57 |
. endif |
58 |
.endif |
58 |
.endif |
59 |
|
59 |
|
60 |
EXTRA_PATCHES= ${FILESDIR}/extra-patch-mk-nvidia.lib.mk \ |
60 |
# EXTRA_PATCHES= ${FILESDIR}/extra-patch-mk-nvidia.lib.mk \ |
61 |
${FILESDIR}/extra-patch-src-Makefile \ |
61 |
EXTRA_PATCHES= ${FILESDIR}/extra-patch-x11-driver-Makefile |
|
|
62 |
.if ${NVVERSION} < 355.006 |
63 |
EXTRA_PATCHES+= ${FILESDIR}/extra-patch-src-Makefile \ |
62 |
${FILESDIR}/extra-patch-src-nv-freebsd.h \ |
64 |
${FILESDIR}/extra-patch-src-nv-freebsd.h \ |
63 |
${FILESDIR}/extra-patch-src-nv-misc.h \ |
65 |
${FILESDIR}/extra-patch-src-nv-misc.h |
64 |
${FILESDIR}/extra-patch-x11-driver-Makefile |
66 |
.else |
|
|
67 |
EXTRA_PATCHES+= ${FILESDIR}/extra-patch-src_nvidia_Makefile \ |
68 |
${FILESDIR}/extra-patch-src_nvidia_nv-freebsd.h \ |
69 |
${FILESDIR}/extra-patch-src_nvidia_nv-misc.h |
70 |
.endif |
71 |
.if ${NVVERSION} >= 358.009 |
72 |
EXTRA_PATCHES+= ${FILESDIR}/extra-patch-src_nvidia-modeset_nvidia-modeset-freebsd.c |
73 |
NVSRC= nvidia |
74 |
.endif |
65 |
|
75 |
|
66 |
OPTIONS_DEFINE= ACPI_PM LINUX WBINVD DOCS |
76 |
OPTIONS_DEFINE= ACPI_PM LINUX WBINVD DOCS |
67 |
OPTIONS_DEFINE_i386= PAE |
77 |
OPTIONS_DEFINE_i386= PAE |
Lines 94-132
Link Here
|
94 |
|
104 |
|
95 |
post-patch: .SILENT |
105 |
post-patch: .SILENT |
96 |
# We should support -CURRENT: kill the check |
106 |
# We should support -CURRENT: kill the check |
97 |
${REINPLACE_CMD} -e '24,26d' ${WRKSRC}/src/nv-freebsd.h |
107 |
${REINPLACE_CMD} -e '24,26d' ${WRKSRC}/src/${NVSRC}/nv-freebsd.h |
98 |
# Adjust Linux headers #include's after FreeBSD src SVN r246085 |
108 |
# Adjust Linux headers #include's after FreeBSD src SVN r246085 |
99 |
.if ${OSVERSION} > 1000027 |
109 |
.if ${OSVERSION} > 1000027 |
100 |
${REINPLACE_CMD} -E '/#include "machine\/\.\.\/linux(32)?\/linux.h"/ \ |
110 |
${REINPLACE_CMD} -E '/#include "machine\/\.\.\/linux(32)?\/linux.h"/ \ |
101 |
{ x ; s/.*/#include "machine\/..\/..\/compat\/linux\/linux_ioctl.h"/ ; H ; x ; }' \ |
111 |
{ x ; s/.*/#include "machine\/..\/..\/compat\/linux\/linux_ioctl.h"/ ; H ; x ; }' \ |
102 |
${WRKSRC}/src/nvidia_linux.c |
112 |
${WRKSRC}/src/${NVSRC}/nvidia_linux.c |
103 |
.endif |
113 |
.endif |
104 |
# Adjust vm_object locking after FreeBSD src SVN r248084 |
114 |
# Adjust vm_object locking after FreeBSD src SVN r248084 |
105 |
.if ${OSVERSION} > 1000029 |
115 |
.if ${OSVERSION} > 1000029 |
106 |
${REINPLACE_CMD} -e '/#include <vm\/vm_object.h>/ \ |
116 |
${REINPLACE_CMD} -e '/#include <vm\/vm_object.h>/ \ |
107 |
{ x ; s/.*/#include <sys\/rwlock.h>/ ; G ; }' \ |
117 |
{ x ; s/.*/#include <sys\/rwlock.h>/ ; G ; }' \ |
108 |
${WRKSRC}/src/nv-freebsd.h |
118 |
${WRKSRC}/src/${NVSRC}/nv-freebsd.h |
109 |
${REINPLACE_CMD} -E 's/(VM_OBJECT_)(UN)?(LOCK)/\1W\2\3/' \ |
119 |
${REINPLACE_CMD} -E 's/(VM_OBJECT_)(UN)?(LOCK)/\1W\2\3/' \ |
110 |
${WRKSRC}/src/nvidia_subr.c |
120 |
${WRKSRC}/src/${NVSRC}/nvidia_subr.c |
111 |
.endif |
121 |
.endif |
112 |
# Adjust kmem(9) calls after FreeBSD src SVN r254025 |
122 |
# Adjust kmem(9) calls after FreeBSD src SVN r254025 |
113 |
.if ${OSVERSION} > 1000040 && ${NVVERSION} < 331.067 |
123 |
.if ${OSVERSION} > 1000040 && ${NVVERSION} < 331.067 |
114 |
${REINPLACE_CMD} -e '/kmem_/s/kernel_map/kernel_arena/' \ |
124 |
${REINPLACE_CMD} -e '/kmem_/s/kernel_map/kernel_arena/' \ |
115 |
${WRKSRC}/src/nvidia_subr.c |
125 |
${WRKSRC}/src/${NVSRC}/nvidia_subr.c |
116 |
.endif |
126 |
.endif |
117 |
# 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 |
118 |
.if ${OSVERSION} > 1100039 || ${OSVERSION} > 1001501 && ${OSVERSION} < 1100000 |
128 |
.if ${OSVERSION} > 1100039 || ${OSVERSION} > 1001501 && ${OSVERSION} < 1100000 |
119 |
${REINPLACE_CMD} -e '/SYSCTL_ADD_PROC/,/;/ \ |
129 |
${REINPLACE_CMD} -e '/SYSCTL_ADD_PROC/,/;/ \ |
120 |
s/^[[:blank:]]*CTLFLAG_RD/CTLTYPE_STRING |&/' \ |
130 |
s/^[[:blank:]]*CTLFLAG_RD/CTLTYPE_STRING |&/' \ |
121 |
${WRKSRC}/src/nvidia_sysctl.c |
131 |
${WRKSRC}/src/${NVSRC}/nvidia_sysctl.c |
122 |
.endif |
132 |
.endif |
123 |
# 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' |
124 |
${REINPLACE_CMD} -e 's/d_thread_t/struct thread/' \ |
134 |
${REINPLACE_CMD} -e 's/d_thread_t/struct thread/' \ |
125 |
${WRKSRC}/src/nvidia_ctl.c ${WRKSRC}/src/nvidia_dev.c \ |
135 |
${WRKSRC}/src/${NVSRC}/nvidia_ctl.c ${WRKSRC}/src/${NVSRC}/nvidia_dev.c \ |
126 |
${WRKSRC}/src/nvidia_linux.c |
136 |
${WRKSRC}/src/${NVSRC}/nvidia_linux.c |
127 |
# Fix stack buffer overflow in nvidia_sysctl_bus_type() |
137 |
.if ${NVVERSION} >= 358.009 |
128 |
${REINPLACE_CMD} -e 's/8 bus_type\[4\]/8 bus_type[8]/' \ |
138 |
${REINPLACE_CMD} -e 's/d_thread_t/struct thread/' \ |
129 |
${WRKSRC}/src/nvidia_sysctl.c |
139 |
${WRKSRC}/src/nvidia-modeset/nvidia-modeset-freebsd.c |
|
|
140 |
.endif |
130 |
# Respect WITHOUT_LINUX setting |
141 |
# Respect WITHOUT_LINUX setting |
131 |
${REINPLACE_CMD} -e 's/exists(\/.*/& \&\& !defined(WITHOUT_LINUX)/' \ |
142 |
${REINPLACE_CMD} -e 's/exists(\/.*/& \&\& !defined(WITHOUT_LINUX)/' \ |
132 |
${WRKSRC}/lib/Makefile |
143 |
${WRKSRC}/lib/Makefile |
Lines 157-163
Link Here
|
157 |
# and "smart" installation of conflicting files heuristics) |
168 |
# and "smart" installation of conflicting files heuristics) |
158 |
${REINPLACE_CMD} -e 's/afterinstall/&_dontexecute/' ${WRKSRC}/Makefile |
169 |
${REINPLACE_CMD} -e 's/afterinstall/&_dontexecute/' ${WRKSRC}/Makefile |
159 |
${REINPLACE_CMD} -e 's/beforeinstall/&_dontexecute/' \ |
170 |
${REINPLACE_CMD} -e 's/beforeinstall/&_dontexecute/' \ |
160 |
${WRKSRC}/lib/Makefile ${WRKSRC}/src/Makefile |
171 |
${WRKSRC}/lib/Makefile ${WRKSRC}/src/${NVSRC}/Makefile |
161 |
# /usr/share/nvidia path is hardcoded in libGL and nvidia-settings, but we |
172 |
# /usr/share/nvidia path is hardcoded in libGL and nvidia-settings, but we |
162 |
# won't adhere to this stupidity and install nvidia-application-profiles-* |
173 |
# won't adhere to this stupidity and install nvidia-application-profiles-* |
163 |
# files as part of documentation |
174 |
# files as part of documentation |
Lines 165-190
Link Here
|
165 |
${REINPLACE_CMD} -e 's,/usr/share/nvidia,${STAGEDIR}${DOCSDIR},' \ |
176 |
${REINPLACE_CMD} -e 's,/usr/share/nvidia,${STAGEDIR}${DOCSDIR},' \ |
166 |
${WRKSRC}/lib/libGL/Makefile ${WRKSRC}/doc/Makefile |
177 |
${WRKSRC}/lib/libGL/Makefile ${WRKSRC}/doc/Makefile |
167 |
.endif |
178 |
.endif |
|
|
179 |
# Fix cap_rights, does not exist before 10.x |
180 |
.if ${OSVERSION} < 1000000 && ${NVVERSION} >= 358.009 |
181 |
${REINPLACE_CMD} '/<sys\/caprights.h>/d ; /cap_rights_t rights/d ; s/cap_rights_init(&rights, CAP_IOCTL)/CAP_IOCTL/' \ |
182 |
${WRKSRC}/src/nvidia-modeset/nvidia-modeset-freebsd.c |
183 |
.endif |
168 |
# Finally, process OPTIONS |
184 |
# Finally, process OPTIONS |
169 |
.if ${PORT_OPTIONS:MFREEBSD_AGP} |
185 |
.if ${PORT_OPTIONS:MFREEBSD_AGP} |
170 |
${REINPLACE_CMD} -E 's/undef (NV_SUPPORT_OS_AGP)/define \1/' \ |
186 |
${REINPLACE_CMD} -E 's/undef (NV_SUPPORT_OS_AGP)/define \1/' \ |
171 |
${WRKSRC}/src/nv-freebsd.h |
187 |
${WRKSRC}/src/${NVSRC}/nv-freebsd.h |
172 |
.endif |
188 |
.endif |
173 |
.if ${PORT_OPTIONS:MACPI_PM} |
189 |
.if ${PORT_OPTIONS:MACPI_PM} |
174 |
${REINPLACE_CMD} -E 's/undef (NV_SUPPORT_ACPI_PM)/define \1/' \ |
190 |
${REINPLACE_CMD} -E 's/undef (NV_SUPPORT_ACPI_PM)/define \1/' \ |
175 |
${WRKSRC}/src/nv-freebsd.h |
191 |
${WRKSRC}/src/${NVSRC}/nv-freebsd.h |
176 |
.endif |
192 |
.endif |
177 |
.if ! ${PORT_OPTIONS:MLINUX} |
193 |
.if ! ${PORT_OPTIONS:MLINUX} |
178 |
${REINPLACE_CMD} -E 's/define (NV_SUPPORT_LINUX_COMPAT)/undef \1/' \ |
194 |
${REINPLACE_CMD} -E 's/define (NV_SUPPORT_LINUX_COMPAT)/undef \1/' \ |
179 |
${WRKSRC}/src/nv-freebsd.h |
195 |
${WRKSRC}/src/${NVSRC}/nv-freebsd.h |
180 |
.endif |
196 |
.endif |
181 |
.if ${PORT_OPTIONS:MPAE} |
197 |
.if ${PORT_OPTIONS:MPAE} |
182 |
${REINPLACE_CMD} -E 's/undef (NV_SUPPORT_PAE)/define \1/' \ |
198 |
${REINPLACE_CMD} -E 's/undef (NV_SUPPORT_PAE)/define \1/' \ |
183 |
${WRKSRC}/src/nv-freebsd.h |
199 |
${WRKSRC}/src/${NVSRC}/nv-freebsd.h |
184 |
.endif |
200 |
.endif |
185 |
.if ${PORT_OPTIONS:MWBINVD} |
201 |
.if ${PORT_OPTIONS:MWBINVD} |
186 |
${REINPLACE_CMD} -E 's/undef (NV_USE_WBINVD)/define \1/' \ |
202 |
${REINPLACE_CMD} -E 's/undef (NV_USE_WBINVD)/define \1/' \ |
187 |
${WRKSRC}/src/nv-freebsd.h |
203 |
${WRKSRC}/src/${NVSRC}/nv-freebsd.h |
188 |
.endif |
204 |
.endif |
189 |
# Conditionally install documentation (but you generally want it) |
205 |
# Conditionally install documentation (but you generally want it) |
190 |
.if ! ${PORT_OPTIONS:MDOCS} |
206 |
.if ! ${PORT_OPTIONS:MDOCS} |
Lines 199-205
Link Here
|
199 |
${INSTALL_SCRIPT} ${WRKSRC}/obj/nvidia-bug-report.sh \ |
215 |
${INSTALL_SCRIPT} ${WRKSRC}/obj/nvidia-bug-report.sh \ |
200 |
${STAGEDIR}${PREFIX}/bin |
216 |
${STAGEDIR}${PREFIX}/bin |
201 |
# pkg-plist is already overbloated, so use these hacks instead of PLIST_SUB's |
217 |
# pkg-plist is already overbloated, so use these hacks instead of PLIST_SUB's |
202 |
.if ${NVVERSION} < 310.019 |
218 |
.if ${NVVERSION} >= 304.128 && ${NVVERSION} < 310.019 || ${NVVERSION} >= 361.016 |
203 |
${REINPLACE_CMD} -E '/libvdpau(_trace)?\.so/d' ${TMPPLIST} |
219 |
${REINPLACE_CMD} -E '/libvdpau(_trace)?\.so/d' ${TMPPLIST} |
204 |
.endif |
220 |
.endif |
205 |
.if ${NVVERSION} >= 310.019 |
221 |
.if ${NVVERSION} >= 310.019 |
Lines 212-217
Link Here
|
212 |
${REINPLACE_CMD} -E '/lib(nvidia-)?(EGL|eglcore|GLESv|glsi)/d' \ |
228 |
${REINPLACE_CMD} -E '/lib(nvidia-)?(EGL|eglcore|GLESv|glsi)/d' \ |
213 |
${TMPPLIST} |
229 |
${TMPPLIST} |
214 |
.endif |
230 |
.endif |
|
|
231 |
.if ${NVVERSION} < 352.009 |
232 |
${REINPLACE_CMD} -E '/(lib)?nvidia-(debugdump|smi|ml)/d' ${TMPPLIST} |
233 |
.endif |
234 |
.if ${NVVERSION} < 355.006 |
235 |
${REINPLACE_CMD} -E '/(libEGL_nvidia|GLdispatch|OpenGL)/d' ${TMPPLIST} |
236 |
.else |
237 |
${REINPLACE_CMD} 's/libEGL\.so\.${PORTVERSION}/libEGL.so/' \ |
238 |
${TMPPLIST} |
239 |
.endif |
240 |
.if ${NVVERSION} < 358.009 |
241 |
${REINPLACE_CMD} '/nvidia-modeset.ko/d' ${TMPPLIST} |
242 |
.else |
243 |
${REINPLACE_CMD} 's/nvidia$$/nvidia-modeset/ ; s/nvidia_/nvidia-modeset_/' \ |
244 |
${PKGMESSAGE} |
245 |
.endif |
246 |
.if ${NVVERSION} >= 361.028 |
247 |
${REINPLACE_CMD} -E '/(EGL_nvidia\.so|GLESv[12](_CM)?(\.so\.[0-9]+\.[0-9]+))$$/d' \ |
248 |
${TMPPLIST} |
249 |
.else |
250 |
${REINPLACE_CMD} -E '/\/lib\/libGLESv[12](_CM)?(\.so)?(_nvidia.so(\.[0-9]|\.[0-9]+\.[0-9]+)?)?$$/d ; \ |
251 |
/libEGL_nvidia\.so\.${PORTVERSION}/d' ${TMPPLIST} |
252 |
.endif |
215 |
|
253 |
|
216 |
# Target below can be used instead of standard `makesum' to correctly |
254 |
# Target below can be used instead of standard `makesum' to correctly |
217 |
# update distinfo (i.e., keeping other driver version entries intact) |
255 |
# update distinfo (i.e., keeping other driver version entries intact) |