1 |
commit: ed58cc9d7da5c91cd53dffd633926a5468cc3184 |
2 |
Author: Ionen Wolkens <sudinave <AT> gmail <DOT> com> |
3 |
AuthorDate: Sat Apr 3 19:02:39 2021 +0000 |
4 |
Commit: David Seifert <soap <AT> gentoo <DOT> org> |
5 |
CommitDate: Sat Apr 3 19:02:39 2021 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ed58cc9d |
7 |
|
8 |
x11-drivers/nvidia-drivers: style re-arrangement and nitpicks |
9 |
|
10 |
- Moved CONFIG_CHECK variables to pkg_setup. Will need conditional |
11 |
checks and would rather have everything in one place if going to |
12 |
modify. Not using pkg_pretend as don't want it to fail with a |
13 |
yet-to-be-installed dist-kernel. |
14 |
|
15 |
- Normalized kernel_is use to match docs rather than nvidia.eclass. |
16 |
|
17 |
- Split nvidia-drivers_make() with _make_install(). ${ED} being wrong |
18 |
or unset during src_compile() would be a no-op but is nonetheless |
19 |
incorrect usage. |
20 |
|
21 |
- Moved function declarations to respective phases, no longer shared. |
22 |
Partly to allow pkgcheck and friends to detect variables misuse. |
23 |
|
24 |
- Removed some unnecessary globs and quotes. |
25 |
|
26 |
- Removed no longer relevant '!= lib' check, was formerly used for |
27 |
egl-wayland but is now in its own package. |
28 |
|
29 |
Signed-off-by: Ionen Wolkens <sudinave <AT> gmail.com> |
30 |
Signed-off-by: David Seifert <soap <AT> gentoo.org> |
31 |
|
32 |
.../nvidia-drivers-390.141-r1.ebuild | 161 ++++++++++--------- |
33 |
.../nvidia-drivers-450.102.04-r1.ebuild | 172 +++++++++++---------- |
34 |
.../nvidia-drivers/nvidia-drivers-460.67.ebuild | 172 +++++++++++---------- |
35 |
3 files changed, 273 insertions(+), 232 deletions(-) |
36 |
|
37 |
diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-390.141-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-390.141-r1.ebuild |
38 |
index c639458a22d..bff5e56f68c 100644 |
39 |
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-390.141-r1.ebuild |
40 |
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-390.141-r1.ebuild |
41 |
@@ -72,18 +72,6 @@ BDEPEND=" |
42 |
|
43 |
QA_PREBUILT="opt/* usr/lib*" |
44 |
|
45 |
-CONFIG_CHECK=" |
46 |
- ~DRM_KMS_HELPER |
47 |
- ~SYSVIPC |
48 |
- ~!AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT |
49 |
- ~!LOCKDEP |
50 |
- !DEBUG_MUTEXES" |
51 |
-ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but needed for Xorg auto-detection |
52 |
- of drivers (no custom config), and optional nvidia-drm.modeset=1. |
53 |
- Cannot be directly selected in the kernel's menuconfig, so enable |
54 |
- options such as CONFIG_DRM_FBDEV_EMULATION instead. |
55 |
- 390.xx branch: also used by a GLX workaround needed for OpenGL." |
56 |
- |
57 |
PATCHES=( |
58 |
"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch |
59 |
"${FILESDIR}"/nvidia-settings-390.141-fno-common.patch |
60 |
@@ -96,6 +84,19 @@ HTML_DOCS=( html/. ) |
61 |
|
62 |
pkg_setup() { |
63 |
use driver || return |
64 |
+ |
65 |
+ local CONFIG_CHECK=" |
66 |
+ ~DRM_KMS_HELPER |
67 |
+ ~SYSVIPC |
68 |
+ ~!AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT |
69 |
+ ~!LOCKDEP |
70 |
+ !DEBUG_MUTEXES" |
71 |
+ local ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but needed for Xorg auto-detection |
72 |
+ of drivers (no custom config), and optional nvidia-drm.modeset=1. |
73 |
+ Cannot be directly selected in the kernel's menuconfig, so enable |
74 |
+ options such as CONFIG_DRM_FBDEV_EMULATION instead. |
75 |
+ 390.xx branch: also used by a GLX workaround needed for OpenGL." |
76 |
+ |
77 |
BUILD_PARAMS='NV_VERBOSE=1 IGNORE_CC_MISMATCH=yes SYSSRC="${KV_DIR}" SYSOUT="${KV_OUT_DIR}"' |
78 |
use x86 && BUILD_PARAMS+=' ARCH=i386' # needed for recognition |
79 |
BUILD_TARGETS="modules" # defaults' clean sometimes deletes modules |
80 |
@@ -104,9 +105,10 @@ pkg_setup() { |
81 |
nvidia-drm(video:kernel) |
82 |
nvidia-modeset(video:kernel)" |
83 |
use amd64 && MODULE_NAMES+=" nvidia-uvm(video:kernel)" # no x86 support |
84 |
+ |
85 |
linux-mod_pkg_setup |
86 |
|
87 |
- if [[ ${MERGE_TYPE} != binary ]] && kernel_is gt ${NV_KERNEL_MAX/./ }; then |
88 |
+ if [[ ${MERGE_TYPE} != binary ]] && kernel_is -gt ${NV_KERNEL_MAX/./ }; then |
89 |
ewarn "Kernel ${KV_MAJOR}.${KV_MINOR} is either known to break this version of nvidia-drivers" |
90 |
ewarn "or was not tested with it. It is recommended to use one of:" |
91 |
ewarn " <=sys-kernel/gentoo-kernel-${NV_KERNEL_MAX}" |
92 |
@@ -153,16 +155,18 @@ src_prepare() { |
93 |
gzip -d nvidia-{cuda-mps-control,smi}.1.gz || die |
94 |
} |
95 |
|
96 |
-nvidia-drivers_make() { |
97 |
- emake -C nvidia-${1} ${2} \ |
98 |
- DESTDIR="${ED}" PREFIX=/usr LIBDIR="${ED}/usr/$(get_libdir)" \ |
99 |
- HOST_CC="$(tc-getBUILD_CC)" HOST_LD="$(tc-getBUILD_LD)" \ |
100 |
- DO_STRIP= MANPAGE_GZIP= \ |
101 |
- NV_USE_BUNDLED_LIBJANSSON=0 NV_VERBOSE=1 OUTPUTDIR=out |
102 |
-} |
103 |
- |
104 |
src_compile() { |
105 |
+ nvidia-drivers_make() { |
106 |
+ emake -C nvidia-${1} ${2} \ |
107 |
+ PREFIX="${EPREFIX}/usr" \ |
108 |
+ HOST_CC="$(tc-getBUILD_CC)" \ |
109 |
+ HOST_LD="$(tc-getBUILD_LD)" \ |
110 |
+ NV_USE_BUNDLED_LIBJANSSON=0 \ |
111 |
+ NV_VERBOSE=1 DO_STRIP= OUTPUTDIR=out |
112 |
+ } |
113 |
+ |
114 |
tc-export AR CC LD OBJCOPY |
115 |
+ |
116 |
# may no longer be relevant but kept as a safety |
117 |
export DISTCC_DISABLE=1 CCACHE_DISABLE=1 |
118 |
|
119 |
@@ -183,60 +187,69 @@ src_compile() { |
120 |
fi |
121 |
} |
122 |
|
123 |
-nvidia-drivers_libs_install() { |
124 |
- local libs=( |
125 |
- EGL_nvidia |
126 |
- GLESv1_CM_nvidia |
127 |
- GLESv2_nvidia |
128 |
- cuda |
129 |
- nvcuvid |
130 |
- nvidia-compiler |
131 |
- nvidia-eglcore |
132 |
- nvidia-encode |
133 |
- nvidia-fatbinaryloader |
134 |
- nvidia-glcore |
135 |
- nvidia-glsi |
136 |
- nvidia-ml |
137 |
- nvidia-opencl |
138 |
- nvidia-ptxjitcompiler |
139 |
- nvidia-tls |
140 |
- ) |
141 |
- |
142 |
- if use X; then |
143 |
- libs+=( |
144 |
- GLX_nvidia |
145 |
- nvidia-fbc |
146 |
- nvidia-ifr |
147 |
- vdpau_nvidia |
148 |
- ) |
149 |
- fi |
150 |
- |
151 |
- local libdir=. |
152 |
- if multilib_is_native_abi; then |
153 |
- libs+=( |
154 |
- nvidia-cfg |
155 |
- nvidia-wfb |
156 |
+src_install() { |
157 |
+ nvidia-drivers_make_install() { |
158 |
+ emake -C nvidia-${1} install \ |
159 |
+ DESTDIR="${D}" \ |
160 |
+ PREFIX="${EPREFIX}/usr" \ |
161 |
+ LIBDIR="${ED}/usr/$(get_libdir)" \ |
162 |
+ NV_USE_BUNDLED_LIBJANSSON=0 \ |
163 |
+ NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out |
164 |
+ } |
165 |
+ |
166 |
+ nvidia-drivers_libs_install() { |
167 |
+ local libs=( |
168 |
+ EGL_nvidia |
169 |
+ GLESv1_CM_nvidia |
170 |
+ GLESv2_nvidia |
171 |
+ cuda |
172 |
+ nvcuvid |
173 |
+ nvidia-compiler |
174 |
+ nvidia-eglcore |
175 |
+ nvidia-encode |
176 |
+ nvidia-fatbinaryloader |
177 |
+ nvidia-glcore |
178 |
+ nvidia-glsi |
179 |
+ nvidia-ml |
180 |
+ nvidia-opencl |
181 |
+ nvidia-ptxjitcompiler |
182 |
+ nvidia-tls |
183 |
) |
184 |
- else |
185 |
- libdir+=/32 |
186 |
- fi |
187 |
|
188 |
- local lib soname |
189 |
- for lib in "${libs[@]}"; do |
190 |
- [[ ${lib:0:3} != lib ]] && lib=lib${lib}.so.${PV} |
191 |
+ if use X; then |
192 |
+ libs+=( |
193 |
+ GLX_nvidia |
194 |
+ nvidia-fbc |
195 |
+ nvidia-ifr |
196 |
+ vdpau_nvidia |
197 |
+ ) |
198 |
+ fi |
199 |
|
200 |
- # auto-detect soname and create appropriate symlinks |
201 |
- soname=$(scanelf -qF'%S#F' "${lib}") || die "Scanning ${lib} failed" |
202 |
- if [[ ${soname} && ${soname} != ${lib} ]]; then |
203 |
- ln -s ${lib} ${libdir}/${soname} || die |
204 |
+ local libdir=. |
205 |
+ if multilib_is_native_abi; then |
206 |
+ libs+=( |
207 |
+ nvidia-cfg |
208 |
+ nvidia-wfb |
209 |
+ ) |
210 |
+ else |
211 |
+ libdir+=/32 |
212 |
fi |
213 |
- ln -s ${lib} ${libdir}/${lib%.so*}.so || die |
214 |
|
215 |
- dolib.so ${libdir}/${lib%.so*}* |
216 |
- done |
217 |
-} |
218 |
+ local lib soname |
219 |
+ for lib in "${libs[@]}"; do |
220 |
+ lib=lib${lib}.so.${PV} |
221 |
+ |
222 |
+ # auto-detect soname and create appropriate symlinks |
223 |
+ soname=$(scanelf -qF'%S#F' ${lib}) || die "Scanning ${lib} failed" |
224 |
+ if [[ ${soname} && ${soname} != ${lib} ]]; then |
225 |
+ ln -s ${lib} ${libdir}/${soname} || die |
226 |
+ fi |
227 |
+ ln -s ${lib} ${libdir}/${lib%.so*}.so || die |
228 |
+ |
229 |
+ dolib.so ${libdir}/${lib%.so*}* |
230 |
+ done |
231 |
+ } |
232 |
|
233 |
-src_install() { |
234 |
if use driver; then |
235 |
linux-mod_src_install |
236 |
|
237 |
@@ -271,20 +284,20 @@ src_install() { |
238 |
newins nvidia-application-profiles{-${PV},}-rc |
239 |
|
240 |
# install built helpers |
241 |
- nvidia-drivers_make modprobe install |
242 |
+ nvidia-drivers_make_install modprobe |
243 |
# allow video group to load mods and create devs (bug #505092) |
244 |
fowners root:video /usr/bin/nvidia-modprobe |
245 |
fperms 4710 /usr/bin/nvidia-modprobe |
246 |
|
247 |
- nvidia-drivers_make persistenced install |
248 |
+ nvidia-drivers_make_install persistenced |
249 |
newconfd "${FILESDIR}/nvidia-persistenced.confd" nvidia-persistenced |
250 |
newinitd "${FILESDIR}/nvidia-persistenced.initd" nvidia-persistenced |
251 |
systemd_dounit nvidia-persistenced.service |
252 |
|
253 |
- use X && nvidia-drivers_make xconfig install |
254 |
+ use X && nvidia-drivers_make_install xconfig |
255 |
|
256 |
if use tools; then |
257 |
- nvidia-drivers_make settings install |
258 |
+ nvidia-drivers_make_install settings |
259 |
doicon nvidia-settings/doc/nvidia-settings.png |
260 |
domenu nvidia-settings/doc/nvidia-settings.desktop |
261 |
|
262 |
@@ -316,7 +329,7 @@ src_install() { |
263 |
doman nvidia-smi.1 |
264 |
|
265 |
# install prebuilt-only libraries |
266 |
- mv tls/* . || die # alternate tls lib needed for libglx.so |
267 |
+ mv tls/libnvidia-tls.so.${PV} . || die # alt tls lib needed by libglx.so |
268 |
multilib_foreach_abi nvidia-drivers_libs_install |
269 |
|
270 |
einstalldocs |
271 |
|
272 |
diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-450.102.04-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-450.102.04-r1.ebuild |
273 |
index d28ef6effc7..a425556ec3c 100644 |
274 |
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-450.102.04-r1.ebuild |
275 |
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-450.102.04-r1.ebuild |
276 |
@@ -72,17 +72,6 @@ BDEPEND=" |
277 |
|
278 |
QA_PREBUILT="opt/* usr/lib*" |
279 |
|
280 |
-CONFIG_CHECK=" |
281 |
- ~DRM_KMS_HELPER |
282 |
- ~SYSVIPC |
283 |
- ~!AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT |
284 |
- ~!LOCKDEP |
285 |
- !DEBUG_MUTEXES" |
286 |
-ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but needed for Xorg auto-detection |
287 |
- of drivers (no custom config), and optional nvidia-drm.modeset=1. |
288 |
- Cannot be directly selected in the kernel's menuconfig, so enable |
289 |
- options such as CONFIG_DRM_FBDEV_EMULATION instead." |
290 |
- |
291 |
PATCHES=( |
292 |
"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch |
293 |
) |
294 |
@@ -94,6 +83,18 @@ HTML_DOCS=( html/. ) |
295 |
|
296 |
pkg_setup() { |
297 |
use driver || return |
298 |
+ |
299 |
+ local CONFIG_CHECK=" |
300 |
+ ~DRM_KMS_HELPER |
301 |
+ ~SYSVIPC |
302 |
+ ~!AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT |
303 |
+ ~!LOCKDEP |
304 |
+ !DEBUG_MUTEXES" |
305 |
+ local ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but needed for Xorg auto-detection |
306 |
+ of drivers (no custom config), and optional nvidia-drm.modeset=1. |
307 |
+ Cannot be directly selected in the kernel's menuconfig, so enable |
308 |
+ options such as CONFIG_DRM_FBDEV_EMULATION instead." |
309 |
+ |
310 |
BUILD_PARAMS='NV_VERBOSE=1 IGNORE_CC_MISMATCH=yes SYSSRC="${KV_DIR}" SYSOUT="${KV_OUT_DIR}"' |
311 |
BUILD_TARGETS="modules" # defaults' clean sometimes deletes modules |
312 |
MODULE_NAMES=" |
313 |
@@ -101,9 +102,10 @@ pkg_setup() { |
314 |
nvidia-drm(video:kernel) |
315 |
nvidia-modeset(video:kernel) |
316 |
nvidia-uvm(video:kernel)" |
317 |
+ |
318 |
linux-mod_pkg_setup |
319 |
|
320 |
- if [[ ${MERGE_TYPE} != binary ]] && kernel_is gt ${NV_KERNEL_MAX/./ }; then |
321 |
+ if [[ ${MERGE_TYPE} != binary ]] && kernel_is -gt ${NV_KERNEL_MAX/./ }; then |
322 |
ewarn "Kernel ${KV_MAJOR}.${KV_MINOR} is either known to break this version of nvidia-drivers" |
323 |
ewarn "or was not tested with it. It is recommended to use one of:" |
324 |
ewarn " <=sys-kernel/gentoo-kernel-${NV_KERNEL_MAX}" |
325 |
@@ -144,16 +146,18 @@ src_prepare() { |
326 |
gzip -d nvidia-{cuda-mps-control,smi}.1.gz || die |
327 |
} |
328 |
|
329 |
-nvidia-drivers_make() { |
330 |
- emake -C nvidia-${1} ${2} \ |
331 |
- DESTDIR="${ED}" PREFIX=/usr LIBDIR="${ED}/usr/$(get_libdir)" \ |
332 |
- HOST_CC="$(tc-getBUILD_CC)" HOST_LD="$(tc-getBUILD_LD)" \ |
333 |
- DO_STRIP= MANPAGE_GZIP= \ |
334 |
- NV_USE_BUNDLED_LIBJANSSON=0 NV_VERBOSE=1 OUTPUTDIR=out |
335 |
-} |
336 |
- |
337 |
src_compile() { |
338 |
+ nvidia-drivers_make() { |
339 |
+ emake -C nvidia-${1} ${2} \ |
340 |
+ PREFIX="${EPREFIX}/usr" \ |
341 |
+ HOST_CC="$(tc-getBUILD_CC)" \ |
342 |
+ HOST_LD="$(tc-getBUILD_LD)" \ |
343 |
+ NV_USE_BUNDLED_LIBJANSSON=0 \ |
344 |
+ NV_VERBOSE=1 DO_STRIP= OUTPUTDIR=out |
345 |
+ } |
346 |
+ |
347 |
tc-export AR CC LD OBJCOPY |
348 |
+ |
349 |
# may no longer be relevant but kept as a safety |
350 |
export DISTCC_DISABLE=1 CCACHE_DISABLE=1 |
351 |
|
352 |
@@ -170,69 +174,78 @@ src_compile() { |
353 |
fi |
354 |
} |
355 |
|
356 |
-nvidia-drivers_libs_install() { |
357 |
- local libs=( |
358 |
- EGL_nvidia |
359 |
- GLESv1_CM_nvidia |
360 |
- GLESv2_nvidia |
361 |
- cuda |
362 |
- nvcuvid |
363 |
- nvidia-allocator |
364 |
- nvidia-eglcore |
365 |
- nvidia-encode |
366 |
- nvidia-glcore |
367 |
- nvidia-glsi |
368 |
- nvidia-glvkspirv |
369 |
- nvidia-ml |
370 |
- nvidia-opencl |
371 |
- nvidia-opticalflow |
372 |
- nvidia-ptxjitcompiler |
373 |
- nvidia-tls |
374 |
- ) |
375 |
- use amd64 && libs+=( nvidia-compiler ) |
376 |
- |
377 |
- if use X; then |
378 |
- libs+=( |
379 |
- GLX_nvidia |
380 |
- vdpau_nvidia |
381 |
+src_install() { |
382 |
+ nvidia-drivers_make_install() { |
383 |
+ emake -C nvidia-${1} install \ |
384 |
+ DESTDIR="${D}" \ |
385 |
+ PREFIX="${EPREFIX}/usr" \ |
386 |
+ LIBDIR="${ED}/usr/$(get_libdir)" \ |
387 |
+ NV_USE_BUNDLED_LIBJANSSON=0 \ |
388 |
+ NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out |
389 |
+ } |
390 |
+ |
391 |
+ nvidia-drivers_libs_install() { |
392 |
+ local libs=( |
393 |
+ EGL_nvidia |
394 |
+ GLESv1_CM_nvidia |
395 |
+ GLESv2_nvidia |
396 |
+ cuda |
397 |
+ nvcuvid |
398 |
+ nvidia-allocator |
399 |
+ nvidia-eglcore |
400 |
+ nvidia-encode |
401 |
+ nvidia-glcore |
402 |
+ nvidia-glsi |
403 |
+ nvidia-glvkspirv |
404 |
+ nvidia-ml |
405 |
+ nvidia-opencl |
406 |
+ nvidia-opticalflow |
407 |
+ nvidia-ptxjitcompiler |
408 |
+ nvidia-tls |
409 |
) |
410 |
- if use amd64; then |
411 |
+ use amd64 && libs+=( nvidia-compiler ) |
412 |
+ |
413 |
+ if use X; then |
414 |
libs+=( |
415 |
- nvidia-fbc |
416 |
- nvidia-ifr |
417 |
+ GLX_nvidia |
418 |
+ vdpau_nvidia |
419 |
) |
420 |
+ if use amd64; then |
421 |
+ libs+=( |
422 |
+ nvidia-fbc |
423 |
+ nvidia-ifr |
424 |
+ ) |
425 |
+ fi |
426 |
fi |
427 |
- fi |
428 |
|
429 |
- local libdir=. |
430 |
- if multilib_is_native_abi; then |
431 |
- libs+=( |
432 |
- nvidia-cbl |
433 |
- nvidia-cfg |
434 |
- nvidia-rtcore |
435 |
- nvoptix |
436 |
- ) |
437 |
- use amd64 && libs+=( nvidia-ngx ) |
438 |
- else |
439 |
- libdir+=/32 |
440 |
- fi |
441 |
+ local libdir=. |
442 |
+ if multilib_is_native_abi; then |
443 |
+ libs+=( |
444 |
+ nvidia-cbl |
445 |
+ nvidia-cfg |
446 |
+ nvidia-rtcore |
447 |
+ nvoptix |
448 |
+ ) |
449 |
+ use amd64 && libs+=( nvidia-ngx ) |
450 |
+ else |
451 |
+ libdir+=/32 |
452 |
+ fi |
453 |
|
454 |
- local lib soname |
455 |
- for lib in "${libs[@]}"; do |
456 |
- [[ ${lib:0:3} != lib ]] && lib=lib${lib}.so.${PV} |
457 |
+ local lib soname |
458 |
+ for lib in "${libs[@]}"; do |
459 |
+ lib=lib${lib}.so.${PV} |
460 |
|
461 |
- # auto-detect soname and create appropriate symlinks |
462 |
- soname=$(scanelf -qF'%S#F' "${lib}") || die "Scanning ${lib} failed" |
463 |
- if [[ ${soname} && ${soname} != ${lib} ]]; then |
464 |
- ln -s ${lib} ${libdir}/${soname} || die |
465 |
- fi |
466 |
- ln -s ${lib} ${libdir}/${lib%.so*}.so || die |
467 |
+ # auto-detect soname and create appropriate symlinks |
468 |
+ soname=$(scanelf -qF'%S#F' ${lib}) || die "Scanning ${lib} failed" |
469 |
+ if [[ ${soname} && ${soname} != ${lib} ]]; then |
470 |
+ ln -s ${lib} ${libdir}/${soname} || die |
471 |
+ fi |
472 |
+ ln -s ${lib} ${libdir}/${lib%.so*}.so || die |
473 |
|
474 |
- dolib.so ${libdir}/${lib%.so*}* |
475 |
- done |
476 |
-} |
477 |
+ dolib.so ${libdir}/${lib%.so*}* |
478 |
+ done |
479 |
+ } |
480 |
|
481 |
-src_install() { |
482 |
if use driver; then |
483 |
linux-mod_src_install |
484 |
|
485 |
@@ -273,20 +286,20 @@ src_install() { |
486 |
newins nvidia-application-profiles{-${PV},}-rc |
487 |
|
488 |
# install built helpers |
489 |
- nvidia-drivers_make modprobe install |
490 |
+ nvidia-drivers_make_install modprobe |
491 |
# allow video group to load mods and create devs (bug #505092) |
492 |
fowners root:video /usr/bin/nvidia-modprobe |
493 |
fperms 4710 /usr/bin/nvidia-modprobe |
494 |
|
495 |
- nvidia-drivers_make persistenced install |
496 |
+ nvidia-drivers_make_install persistenced |
497 |
newconfd "${FILESDIR}/nvidia-persistenced.confd" nvidia-persistenced |
498 |
newinitd "${FILESDIR}/nvidia-persistenced.initd" nvidia-persistenced |
499 |
systemd_dounit nvidia-persistenced.service |
500 |
|
501 |
- use X && nvidia-drivers_make xconfig install |
502 |
+ use X && nvidia-drivers_make_install xconfig |
503 |
|
504 |
if use tools; then |
505 |
- nvidia-drivers_make settings install |
506 |
+ nvidia-drivers_make_install settings |
507 |
doicon nvidia-settings/doc/nvidia-settings.png |
508 |
domenu nvidia-settings/doc/nvidia-settings.desktop |
509 |
|
510 |
@@ -320,10 +333,11 @@ src_install() { |
511 |
# install prebuilt-only libraries |
512 |
multilib_foreach_abi nvidia-drivers_libs_install |
513 |
|
514 |
+ # install systemd sleep services |
515 |
exeinto /lib/systemd/system-sleep |
516 |
doexe nvidia |
517 |
dobin nvidia-sleep.sh |
518 |
- systemd_dounit *.service |
519 |
+ systemd_dounit nvidia-{hibernate,resume,suspend}.service |
520 |
|
521 |
einstalldocs |
522 |
} |
523 |
|
524 |
diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-460.67.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-460.67.ebuild |
525 |
index e6d9570a271..b160a613192 100644 |
526 |
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-460.67.ebuild |
527 |
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-460.67.ebuild |
528 |
@@ -72,17 +72,6 @@ BDEPEND=" |
529 |
|
530 |
QA_PREBUILT="opt/* usr/lib*" |
531 |
|
532 |
-CONFIG_CHECK=" |
533 |
- ~DRM_KMS_HELPER |
534 |
- ~SYSVIPC |
535 |
- ~!AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT |
536 |
- ~!LOCKDEP |
537 |
- !DEBUG_MUTEXES" |
538 |
-ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but needed for Xorg auto-detection |
539 |
- of drivers (no custom config), and optional nvidia-drm.modeset=1. |
540 |
- Cannot be directly selected in the kernel's menuconfig, so enable |
541 |
- options such as CONFIG_DRM_FBDEV_EMULATION instead." |
542 |
- |
543 |
PATCHES=( |
544 |
"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch |
545 |
) |
546 |
@@ -94,6 +83,18 @@ HTML_DOCS=( html/. ) |
547 |
|
548 |
pkg_setup() { |
549 |
use driver || return |
550 |
+ |
551 |
+ local CONFIG_CHECK=" |
552 |
+ ~DRM_KMS_HELPER |
553 |
+ ~SYSVIPC |
554 |
+ ~!AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT |
555 |
+ ~!LOCKDEP |
556 |
+ !DEBUG_MUTEXES" |
557 |
+ local ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but needed for Xorg auto-detection |
558 |
+ of drivers (no custom config), and optional nvidia-drm.modeset=1. |
559 |
+ Cannot be directly selected in the kernel's menuconfig, so enable |
560 |
+ options such as CONFIG_DRM_FBDEV_EMULATION instead." |
561 |
+ |
562 |
BUILD_PARAMS='NV_VERBOSE=1 IGNORE_CC_MISMATCH=yes SYSSRC="${KV_DIR}" SYSOUT="${KV_OUT_DIR}"' |
563 |
BUILD_TARGETS="modules" # defaults' clean sometimes deletes modules |
564 |
MODULE_NAMES=" |
565 |
@@ -101,9 +102,10 @@ pkg_setup() { |
566 |
nvidia-drm(video:kernel) |
567 |
nvidia-modeset(video:kernel) |
568 |
nvidia-uvm(video:kernel)" |
569 |
+ |
570 |
linux-mod_pkg_setup |
571 |
|
572 |
- if [[ ${MERGE_TYPE} != binary ]] && kernel_is gt ${NV_KERNEL_MAX/./ }; then |
573 |
+ if [[ ${MERGE_TYPE} != binary ]] && kernel_is -gt ${NV_KERNEL_MAX/./ }; then |
574 |
ewarn "Kernel ${KV_MAJOR}.${KV_MINOR} is either known to break this version of nvidia-drivers" |
575 |
ewarn "or was not tested with it. It is recommended to use one of:" |
576 |
ewarn " <=sys-kernel/gentoo-kernel-${NV_KERNEL_MAX}" |
577 |
@@ -144,16 +146,18 @@ src_prepare() { |
578 |
gzip -d nvidia-{cuda-mps-control,smi}.1.gz || die |
579 |
} |
580 |
|
581 |
-nvidia-drivers_make() { |
582 |
- emake -C nvidia-${1} ${2} \ |
583 |
- DESTDIR="${ED}" PREFIX=/usr LIBDIR="${ED}/usr/$(get_libdir)" \ |
584 |
- HOST_CC="$(tc-getBUILD_CC)" HOST_LD="$(tc-getBUILD_LD)" \ |
585 |
- DO_STRIP= MANPAGE_GZIP= \ |
586 |
- NV_USE_BUNDLED_LIBJANSSON=0 NV_VERBOSE=1 OUTPUTDIR=out |
587 |
-} |
588 |
- |
589 |
src_compile() { |
590 |
+ nvidia-drivers_make() { |
591 |
+ emake -C nvidia-${1} ${2} \ |
592 |
+ PREFIX="${EPREFIX}/usr" \ |
593 |
+ HOST_CC="$(tc-getBUILD_CC)" \ |
594 |
+ HOST_LD="$(tc-getBUILD_LD)" \ |
595 |
+ NV_USE_BUNDLED_LIBJANSSON=0 \ |
596 |
+ NV_VERBOSE=1 DO_STRIP= OUTPUTDIR=out |
597 |
+ } |
598 |
+ |
599 |
tc-export AR CC LD OBJCOPY |
600 |
+ |
601 |
# may no longer be relevant but kept as a safety |
602 |
export DISTCC_DISABLE=1 CCACHE_DISABLE=1 |
603 |
|
604 |
@@ -170,69 +174,78 @@ src_compile() { |
605 |
fi |
606 |
} |
607 |
|
608 |
-nvidia-drivers_libs_install() { |
609 |
- local libs=( |
610 |
- EGL_nvidia |
611 |
- GLESv1_CM_nvidia |
612 |
- GLESv2_nvidia |
613 |
- cuda |
614 |
- nvcuvid |
615 |
- nvidia-allocator |
616 |
- nvidia-eglcore |
617 |
- nvidia-encode |
618 |
- nvidia-glcore |
619 |
- nvidia-glsi |
620 |
- nvidia-glvkspirv |
621 |
- nvidia-ml |
622 |
- nvidia-opencl |
623 |
- nvidia-opticalflow |
624 |
- nvidia-ptxjitcompiler |
625 |
- nvidia-tls |
626 |
- ) |
627 |
- use amd64 && libs+=( nvidia-compiler ) |
628 |
- |
629 |
- if use X; then |
630 |
- libs+=( |
631 |
- GLX_nvidia |
632 |
- vdpau_nvidia |
633 |
+src_install() { |
634 |
+ nvidia-drivers_make_install() { |
635 |
+ emake -C nvidia-${1} install \ |
636 |
+ DESTDIR="${D}" \ |
637 |
+ PREFIX="${EPREFIX}/usr" \ |
638 |
+ LIBDIR="${ED}/usr/$(get_libdir)" \ |
639 |
+ NV_USE_BUNDLED_LIBJANSSON=0 \ |
640 |
+ NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out |
641 |
+ } |
642 |
+ |
643 |
+ nvidia-drivers_libs_install() { |
644 |
+ local libs=( |
645 |
+ EGL_nvidia |
646 |
+ GLESv1_CM_nvidia |
647 |
+ GLESv2_nvidia |
648 |
+ cuda |
649 |
+ nvcuvid |
650 |
+ nvidia-allocator |
651 |
+ nvidia-eglcore |
652 |
+ nvidia-encode |
653 |
+ nvidia-glcore |
654 |
+ nvidia-glsi |
655 |
+ nvidia-glvkspirv |
656 |
+ nvidia-ml |
657 |
+ nvidia-opencl |
658 |
+ nvidia-opticalflow |
659 |
+ nvidia-ptxjitcompiler |
660 |
+ nvidia-tls |
661 |
) |
662 |
- if use amd64; then |
663 |
+ use amd64 && libs+=( nvidia-compiler ) |
664 |
+ |
665 |
+ if use X; then |
666 |
libs+=( |
667 |
- nvidia-fbc |
668 |
- nvidia-ifr |
669 |
+ GLX_nvidia |
670 |
+ vdpau_nvidia |
671 |
) |
672 |
+ if use amd64; then |
673 |
+ libs+=( |
674 |
+ nvidia-fbc |
675 |
+ nvidia-ifr |
676 |
+ ) |
677 |
+ fi |
678 |
fi |
679 |
- fi |
680 |
|
681 |
- local libdir=. |
682 |
- if multilib_is_native_abi; then |
683 |
- libs+=( |
684 |
- nvidia-cbl |
685 |
- nvidia-cfg |
686 |
- nvidia-rtcore |
687 |
- nvoptix |
688 |
- ) |
689 |
- use amd64 && libs+=( nvidia-ngx ) |
690 |
- else |
691 |
- libdir+=/32 |
692 |
- fi |
693 |
+ local libdir=. |
694 |
+ if multilib_is_native_abi; then |
695 |
+ libs+=( |
696 |
+ nvidia-cbl |
697 |
+ nvidia-cfg |
698 |
+ nvidia-rtcore |
699 |
+ nvoptix |
700 |
+ ) |
701 |
+ use amd64 && libs+=( nvidia-ngx ) |
702 |
+ else |
703 |
+ libdir+=/32 |
704 |
+ fi |
705 |
|
706 |
- local lib soname |
707 |
- for lib in "${libs[@]}"; do |
708 |
- [[ ${lib:0:3} != lib ]] && lib=lib${lib}.so.${PV} |
709 |
+ local lib soname |
710 |
+ for lib in "${libs[@]}"; do |
711 |
+ lib=lib${lib}.so.${PV} |
712 |
|
713 |
- # auto-detect soname and create appropriate symlinks |
714 |
- soname=$(scanelf -qF'%S#F' "${lib}") || die "Scanning ${lib} failed" |
715 |
- if [[ ${soname} && ${soname} != ${lib} ]]; then |
716 |
- ln -s ${lib} ${libdir}/${soname} || die |
717 |
- fi |
718 |
- ln -s ${lib} ${libdir}/${lib%.so*}.so || die |
719 |
+ # auto-detect soname and create appropriate symlinks |
720 |
+ soname=$(scanelf -qF'%S#F' ${lib}) || die "Scanning ${lib} failed" |
721 |
+ if [[ ${soname} && ${soname} != ${lib} ]]; then |
722 |
+ ln -s ${lib} ${libdir}/${soname} || die |
723 |
+ fi |
724 |
+ ln -s ${lib} ${libdir}/${lib%.so*}.so || die |
725 |
|
726 |
- dolib.so ${libdir}/${lib%.so*}* |
727 |
- done |
728 |
-} |
729 |
+ dolib.so ${libdir}/${lib%.so*}* |
730 |
+ done |
731 |
+ } |
732 |
|
733 |
-src_install() { |
734 |
if use driver; then |
735 |
linux-mod_src_install |
736 |
|
737 |
@@ -273,20 +286,20 @@ src_install() { |
738 |
newins nvidia-application-profiles{-${PV},}-rc |
739 |
|
740 |
# install built helpers |
741 |
- nvidia-drivers_make modprobe install |
742 |
+ nvidia-drivers_make_install modprobe |
743 |
# allow video group to load mods and create devs (bug #505092) |
744 |
fowners root:video /usr/bin/nvidia-modprobe |
745 |
fperms 4710 /usr/bin/nvidia-modprobe |
746 |
|
747 |
- nvidia-drivers_make persistenced install |
748 |
+ nvidia-drivers_make_install persistenced |
749 |
newconfd "${FILESDIR}/nvidia-persistenced.confd" nvidia-persistenced |
750 |
newinitd "${FILESDIR}/nvidia-persistenced.initd" nvidia-persistenced |
751 |
systemd_dounit nvidia-persistenced.service |
752 |
|
753 |
- use X && nvidia-drivers_make xconfig install |
754 |
+ use X && nvidia-drivers_make_install xconfig |
755 |
|
756 |
if use tools; then |
757 |
- nvidia-drivers_make settings install |
758 |
+ nvidia-drivers_make_install settings |
759 |
doicon nvidia-settings/doc/nvidia-settings.png |
760 |
domenu nvidia-settings/doc/nvidia-settings.desktop |
761 |
|
762 |
@@ -320,10 +333,11 @@ src_install() { |
763 |
# install prebuilt-only libraries |
764 |
multilib_foreach_abi nvidia-drivers_libs_install |
765 |
|
766 |
+ # install systemd sleep services |
767 |
exeinto /lib/systemd/system-sleep |
768 |
doexe nvidia |
769 |
dobin nvidia-sleep.sh |
770 |
- systemd_dounit *.service |
771 |
+ systemd_dounit nvidia-{hibernate,resume,suspend}.service |
772 |
|
773 |
einstalldocs |
774 |
} |