Gentoo Archives: gentoo-commits

From: Jeroen Roovers <jer@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: x11-drivers/nvidia-drivers/
Date: Thu, 21 May 2020 07:07:58
Message-Id: 1590044872.7fd4175f1927a8790b8afe475ac68bd7af8c1235.jer@gentoo
1 commit: 7fd4175f1927a8790b8afe475ac68bd7af8c1235
2 Author: Jeroen Roovers <jer <AT> gentoo <DOT> org>
3 AuthorDate: Thu May 21 07:07:29 2020 +0000
4 Commit: Jeroen Roovers <jer <AT> gentoo <DOT> org>
5 CommitDate: Thu May 21 07:07:52 2020 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7fd4175f
7
8 x11-drivers/nvidia-drivers: Old
9
10 Package-Manager: Portage-2.3.99, Repoman-2.3.22
11 Signed-off-by: Jeroen Roovers <jer <AT> gentoo.org>
12
13 .../nvidia-drivers/nvidia-drivers-430.64-r1.ebuild | 554 --------------------
14 .../nvidia-drivers/nvidia-drivers-430.64-r2.ebuild | 555 --------------------
15 .../nvidia-drivers/nvidia-drivers-435.21-r1.ebuild | 572 --------------------
16 .../nvidia-drivers/nvidia-drivers-435.21-r2.ebuild | 573 --------------------
17 .../nvidia-drivers/nvidia-drivers-440.82-r1.ebuild | 579 --------------------
18 .../nvidia-drivers/nvidia-drivers-440.82.ebuild | 580 ---------------------
19 6 files changed, 3413 deletions(-)
20
21 diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-430.64-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-430.64-r1.ebuild
22 deleted file mode 100644
23 index bf97c920078..00000000000
24 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-430.64-r1.ebuild
25 +++ /dev/null
26 @@ -1,554 +0,0 @@
27 -# Copyright 1999-2020 Gentoo Authors
28 -# Distributed under the terms of the GNU General Public License v2
29 -
30 -EAPI=7
31 -inherit desktop flag-o-matic linux-info linux-mod multilib-minimal \
32 - nvidia-driver portability toolchain-funcs unpacker udev
33 -
34 -DESCRIPTION="NVIDIA Accelerated Graphics Driver"
35 -HOMEPAGE="https://www.nvidia.com/"
36 -
37 -AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
38 -AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
39 -ARM_NV_PACKAGE="NVIDIA-Linux-armv7l-gnueabihf-${PV}"
40 -
41 -NV_URI="https://us.download.nvidia.com/XFree86/"
42 -SRC_URI="
43 - amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
44 - amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
45 - tools? (
46 - https://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2
47 - )
48 -"
49 -
50 -EMULTILIB_PKG="true"
51 -KEYWORDS="-* amd64"
52 -LICENSE="GPL-2 NVIDIA-r2"
53 -SLOT="0/${PV%.*}"
54 -
55 -IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib static-libs +tools uvm wayland +X"
56 -REQUIRED_USE="
57 - tools? ( X )
58 - static-libs? ( tools )
59 -"
60 -
61 -COMMON="
62 - app-eselect/eselect-opencl
63 - driver? ( kernel_linux? ( acct-group/video ) )
64 - kernel_linux? ( >=sys-libs/glibc-2.6.1 )
65 - tools? (
66 - dev-libs/atk
67 - dev-libs/glib:2
68 - dev-libs/jansson
69 - gtk3? (
70 - x11-libs/gtk+:3
71 - )
72 - x11-libs/cairo
73 - x11-libs/gdk-pixbuf[X]
74 - x11-libs/gtk+:2
75 - x11-libs/libX11
76 - x11-libs/libXext
77 - x11-libs/libXrandr
78 - x11-libs/libXv
79 - x11-libs/libXxf86vm
80 - x11-libs/pango[X]
81 - )
82 - X? (
83 - >=app-eselect/eselect-opengl-1.0.9
84 - app-misc/pax-utils
85 - )
86 -"
87 -DEPEND="
88 - ${COMMON}
89 - kernel_linux? ( virtual/linux-sources )
90 - tools? ( sys-apps/dbus )
91 -"
92 -RDEPEND="
93 - ${COMMON}
94 - acpi? ( sys-power/acpid )
95 - tools? ( !media-video/nvidia-settings )
96 - wayland? ( dev-libs/wayland[${MULTILIB_USEDEP}] )
97 - X? (
98 - <x11-base/xorg-server-1.20.99:=
99 - >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
100 - >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
101 - >=x11-libs/libvdpau-1.0[${MULTILIB_USEDEP}]
102 - sys-libs/zlib[${MULTILIB_USEDEP}]
103 - )
104 -"
105 -QA_PREBUILT="opt/* usr/lib*"
106 -S=${WORKDIR}/
107 -NV_KV_MAX_PLUS="5.5"
108 -CONFIG_CHECK="!DEBUG_MUTEXES ~!I2C_NVIDIA_GPU ~!LOCKDEP ~MTRR ~SYSVIPC ~ZONE_DMA"
109 -
110 -pkg_pretend() {
111 - nvidia-driver_check
112 -}
113 -
114 -pkg_setup() {
115 - nvidia-driver_check
116 -
117 - # try to turn off distcc and ccache for people that have a problem with it
118 - export DISTCC_DISABLE=1
119 - export CCACHE_DISABLE=1
120 -
121 - if use driver && use kernel_linux; then
122 - MODULE_NAMES="nvidia(video:${S}/kernel)"
123 - use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
124 - use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel) nvidia-drm(video:${S}/kernel)"
125 -
126 - # This needs to run after MODULE_NAMES (so that the eclass checks
127 - # whether the kernel supports loadable modules) but before BUILD_PARAMS
128 - # is set (so that KV_DIR is populated).
129 - linux-mod_pkg_setup
130 -
131 - BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
132 - SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
133 -
134 - # linux-mod_src_compile calls set_arch_to_kernel, which
135 - # sets the ARCH to x86 but NVIDIA's wrapping Makefile
136 - # expects x86_64 or i386 and then converts it to x86
137 - # later on in the build process
138 - BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
139 - fi
140 -
141 - if use kernel_linux && kernel_is lt 2 6 9; then
142 - eerror "You must build this against 2.6.9 or higher kernels."
143 - fi
144 -
145 - # set variables to where files are in the package structure
146 - if use kernel_FreeBSD; then
147 - use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
148 - NV_DOC="${S}/doc"
149 - NV_OBJ="${S}/obj"
150 - NV_SRC="${S}/src"
151 - NV_MAN="${S}/x11/man"
152 - NV_X11="${S}/obj"
153 - NV_SOVER=1
154 - elif use kernel_linux; then
155 - NV_DOC="${S}"
156 - NV_OBJ="${S}"
157 - NV_SRC="${S}/kernel"
158 - NV_MAN="${S}"
159 - NV_X11="${S}"
160 - NV_SOVER=${PV}
161 - else
162 - die "Could not determine proper NVIDIA package"
163 - fi
164 -}
165 -
166 -src_configure() {
167 - tc-export AR CC LD
168 -
169 - default
170 -}
171 -
172 -src_prepare() {
173 - local man_file
174 - for man_file in "${NV_MAN}"/*1.gz; do
175 - gunzip $man_file || die
176 - done
177 -
178 - if use tools; then
179 - cp "${FILESDIR}"/nvidia-settings-fno-common.patch "${WORKDIR}" || die
180 - cp "${FILESDIR}"/nvidia-settings-linker.patch "${WORKDIR}" || die
181 - sed -i \
182 - -e "s:@PV@:${PV}:g" \
183 - "${WORKDIR}"/nvidia-settings-fno-common.patch \
184 - "${WORKDIR}"/nvidia-settings-linker.patch \
185 - || die
186 - eapply "${WORKDIR}"/nvidia-settings-fno-common.patch
187 - eapply "${WORKDIR}"/nvidia-settings-linker.patch
188 - fi
189 -
190 - default
191 -
192 - if ! [ -f nvidia_icd.json ]; then
193 - cp nvidia_icd.json.template nvidia_icd.json || die
194 - sed -i -e 's:__NV_VK_ICD__:libGLX_nvidia.so.0:g' nvidia_icd.json || die
195 - fi
196 -}
197 -
198 -src_compile() {
199 - cd "${NV_SRC}"
200 - if use kernel_FreeBSD; then
201 - MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
202 - LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
203 - elif use driver && use kernel_linux; then
204 - BUILD_TARGETS=module linux-mod_src_compile \
205 - KERNELRELEASE="${KV_FULL}" \
206 - src="${KERNEL_DIR}"
207 - fi
208 -
209 - if use tools; then
210 - emake -C "${S}"/nvidia-settings-${PV}/src/libXNVCtrl \
211 - DO_STRIP= \
212 - LIBDIR="$(get_libdir)" \
213 - NVLD="$(tc-getLD)" \
214 - NV_VERBOSE=1 \
215 - OUTPUTDIR=. \
216 - RANLIB="$(tc-getRANLIB)"
217 -
218 - emake -C "${S}"/nvidia-settings-${PV}/src \
219 - DO_STRIP= \
220 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
221 - LIBDIR="$(get_libdir)" \
222 - NVLD="$(tc-getLD)" \
223 - NVML_ENABLED=0 \
224 - NV_USE_BUNDLED_LIBJANSSON=0 \
225 - NV_VERBOSE=1 \
226 - OUTPUTDIR=.
227 - fi
228 -}
229 -
230 -# Install nvidia library:
231 -# the first parameter is the library to install
232 -# the second parameter is the provided soversion
233 -# the third parameter is the target directory if it is not /usr/lib
234 -donvidia() {
235 - # Full path to library
236 - nv_LIB="${1}"
237 -
238 - # SOVER to use
239 - nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})"
240 -
241 - # Where to install
242 - nv_DEST="${2}"
243 -
244 - # Get just the library name
245 - nv_LIBNAME=$(basename "${nv_LIB}")
246 -
247 - if [[ "${nv_DEST}" ]]; then
248 - exeinto ${nv_DEST}
249 - action="doexe"
250 - else
251 - nv_DEST="/usr/$(get_libdir)"
252 - action="dolib.so"
253 - fi
254 -
255 - # Install the library
256 - ${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}"
257 -
258 - # If the library has a SONAME and SONAME does not match the library name,
259 - # then we need to create a symlink
260 - if [[ ${nv_SOVER} ]] && ! [[ "${nv_SOVER}" = "${nv_LIBNAME}" ]]; then
261 - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER}
262 - fi
263 -
264 - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so}
265 -}
266 -
267 -src_install() {
268 - if use driver && use kernel_linux; then
269 - linux-mod_src_install
270 -
271 - # Add the aliases
272 - # This file is tweaked with the appropriate video group in
273 - # pkg_preinst, see bug #491414
274 - insinto /etc/modprobe.d
275 - newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
276 - if use uvm; then
277 - doins "${FILESDIR}"/nvidia-rmmod.conf
278 - udev_newrules "${FILESDIR}"/nvidia-uvm.udev-rule 99-nvidia-uvm.rules
279 - else
280 - sed -e 's|nvidia-uvm ||g' "${FILESDIR}"/nvidia-rmmod.conf \
281 - > "${T}"/nvidia-rmmod.conf || die
282 - doins "${T}"/nvidia-rmmod.conf
283 - fi
284 -
285 - # Ensures that our device nodes are created when not using X
286 - exeinto "$(get_udevdir)"
287 - newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
288 - udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
289 - elif use kernel_FreeBSD; then
290 - if use x86-fbsd; then
291 - insinto /boot/modules
292 - doins "${S}/src/nvidia.kld"
293 - fi
294 -
295 - exeinto /boot/modules
296 - doexe "${S}/src/nvidia.ko"
297 - fi
298 -
299 - # NVIDIA kernel <-> userspace driver config lib
300 - donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER}
301 -
302 - # NVIDIA framebuffer capture library
303 - donvidia ${NV_OBJ}/libnvidia-fbc.so.${NV_SOVER}
304 -
305 - # NVIDIA video encode/decode <-> CUDA
306 - if use kernel_linux; then
307 - donvidia ${NV_OBJ}/libnvcuvid.so.${NV_SOVER}
308 - donvidia ${NV_OBJ}/libnvidia-encode.so.${NV_SOVER}
309 - fi
310 -
311 - if use X; then
312 - # Xorg DDX driver
313 - insinto /usr/$(get_libdir)/xorg/modules/drivers
314 - doins ${NV_X11}/nvidia_drv.so
315 -
316 - # Xorg GLX driver
317 - donvidia ${NV_X11}/libglxserver_nvidia.so.${NV_SOVER} \
318 - /usr/$(get_libdir)/xorg/modules/extensions
319 -
320 - # Xorg nvidia.conf
321 - if has_version '>=x11-base/xorg-server-1.16'; then
322 - insinto /usr/share/X11/xorg.conf.d
323 - newins {,50-}nvidia-drm-outputclass.conf
324 - fi
325 -
326 - insinto /usr/share/glvnd/egl_vendor.d
327 - doins ${NV_X11}/10_nvidia.json
328 - fi
329 -
330 - if use wayland; then
331 - insinto /usr/share/egl/egl_external_platform.d
332 - doins ${NV_X11}/10_nvidia_wayland.json
333 - fi
334 -
335 - # OpenCL ICD for NVIDIA
336 - if use kernel_linux; then
337 - insinto /etc/OpenCL/vendors
338 - doins ${NV_OBJ}/nvidia.icd
339 - fi
340 -
341 - # Helper Apps
342 - exeinto /opt/bin/
343 -
344 - if use X; then
345 - doexe ${NV_OBJ}/nvidia-xconfig
346 -
347 - insinto /etc/vulkan/icd.d
348 - doins nvidia_icd.json
349 - fi
350 -
351 - if use kernel_linux; then
352 - doexe ${NV_OBJ}/nvidia-cuda-mps-control
353 - doexe ${NV_OBJ}/nvidia-cuda-mps-server
354 - doexe ${NV_OBJ}/nvidia-debugdump
355 - doexe ${NV_OBJ}/nvidia-persistenced
356 - doexe ${NV_OBJ}/nvidia-smi
357 -
358 - # install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
359 - doexe ${NV_OBJ}/nvidia-modprobe
360 - fowners root:video /opt/bin/nvidia-modprobe
361 - fperms 4710 /opt/bin/nvidia-modprobe
362 - dosym /{opt,usr}/bin/nvidia-modprobe
363 -
364 - doman nvidia-cuda-mps-control.1
365 - doman nvidia-modprobe.1
366 - doman nvidia-persistenced.1
367 - newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
368 - newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
369 - newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
370 - fi
371 -
372 - if use tools; then
373 - emake -C "${S}"/nvidia-settings-${PV}/src/ \
374 - DESTDIR="${D}" \
375 - DO_STRIP= \
376 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
377 - LIBDIR="${D}/usr/$(get_libdir)" \
378 - NV_USE_BUNDLED_LIBJANSSON=0 \
379 - NV_VERBOSE=1 \
380 - OUTPUTDIR=. \
381 - PREFIX=/usr \
382 - install
383 -
384 - if use static-libs; then
385 - dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
386 -
387 - insinto /usr/include/NVCtrl
388 - doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
389 - fi
390 -
391 - insinto /usr/share/nvidia/
392 - doins nvidia-application-profiles-${PV}-key-documentation
393 -
394 - insinto /etc/nvidia
395 - newins \
396 - nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
397 -
398 - # There is no icon in the FreeBSD tarball.
399 - use kernel_FreeBSD || \
400 - doicon ${NV_OBJ}/nvidia-settings.png
401 -
402 - domenu "${FILESDIR}"/nvidia-settings.desktop
403 -
404 - exeinto /etc/X11/xinit/xinitrc.d
405 - newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
406 - fi
407 -
408 - dobin ${NV_OBJ}/nvidia-bug-report.sh
409 -
410 - if has_multilib_profile && use multilib; then
411 - local OABI=${ABI}
412 - for ABI in $(get_install_abis); do
413 - src_install-libs
414 - done
415 - ABI=${OABI}
416 - unset OABI
417 - else
418 - src_install-libs
419 - fi
420 -
421 - is_final_abi || die "failed to iterate through all ABIs"
422 -
423 - # Documentation
424 - if use kernel_FreeBSD; then
425 - dodoc "${NV_DOC}/README"
426 - use X && doman "${NV_MAN}"/nvidia-xconfig.1
427 - use tools && doman "${NV_MAN}"/nvidia-settings.1
428 - else
429 - # Docs
430 - newdoc "${NV_DOC}/README.txt" README
431 - dodoc "${NV_DOC}/NVIDIA_Changelog"
432 - doman "${NV_MAN}"/nvidia-smi.1
433 - use X && doman "${NV_MAN}"/nvidia-xconfig.1
434 - use tools && doman "${NV_MAN}"/nvidia-settings.1
435 - doman "${NV_MAN}"/nvidia-cuda-mps-control.1
436 - fi
437 -
438 - readme.gentoo_create_doc
439 -
440 - docinto html
441 - dodoc -r ${NV_DOC}/html/*
442 -}
443 -
444 -src_install-libs() {
445 - local inslibdir=$(get_libdir)
446 - local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
447 - local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
448 - local nv_libdir="${NV_OBJ}"
449 -
450 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then
451 - nv_libdir="${NV_OBJ}"/32
452 - fi
453 -
454 - if use X; then
455 - NV_GLX_LIBRARIES=(
456 - "libEGL.so.$(usex compat ${NV_SOVER} 1.1.0) ${GL_ROOT}"
457 - "libEGL_nvidia.so.${NV_SOVER} ${GL_ROOT}"
458 - "libGL.so.$(usex compat ${NV_SOVER} 1.7.0) ${GL_ROOT}"
459 - "libGLESv1_CM.so.1.2.0 ${GL_ROOT}"
460 - "libGLESv1_CM_nvidia.so.${NV_SOVER} ${GL_ROOT}"
461 - "libGLESv2.so.2.1.0 ${GL_ROOT}"
462 - "libGLESv2_nvidia.so.${NV_SOVER} ${GL_ROOT}"
463 - "libGLX.so.0 ${GL_ROOT}"
464 - "libGLX_nvidia.so.${NV_SOVER} ${GL_ROOT}"
465 - "libGLdispatch.so.0 ${GL_ROOT}"
466 - "libOpenCL.so.1.0.0 ${CL_ROOT}"
467 - "libOpenGL.so.0 ${GL_ROOT}"
468 - "libcuda.so.${NV_SOVER}"
469 - "libnvcuvid.so.${NV_SOVER}"
470 - "libnvidia-compiler.so.${NV_SOVER}"
471 - "libnvidia-eglcore.so.${NV_SOVER}"
472 - "libnvidia-encode.so.${NV_SOVER}"
473 - "libnvidia-fatbinaryloader.so.${NV_SOVER}"
474 - "libnvidia-fbc.so.${NV_SOVER}"
475 - "libnvidia-glcore.so.${NV_SOVER}"
476 - "libnvidia-glsi.so.${NV_SOVER}"
477 - "libnvidia-glvkspirv.so.${NV_SOVER}"
478 - "libnvidia-ifr.so.${NV_SOVER}"
479 - "libnvidia-opencl.so.${NV_SOVER}"
480 - "libnvidia-ptxjitcompiler.so.${NV_SOVER}"
481 - "libvdpau_nvidia.so.${NV_SOVER}"
482 - )
483 -
484 - if use wayland && has_multilib_profile && [[ ${ABI} == "amd64" ]];
485 - then
486 - NV_GLX_LIBRARIES+=(
487 - "libnvidia-egl-wayland.so.1.1.2"
488 - )
489 - fi
490 -
491 - if use kernel_FreeBSD; then
492 - NV_GLX_LIBRARIES+=(
493 - "libnvidia-tls.so.${NV_SOVER}"
494 - )
495 - fi
496 -
497 - if use kernel_linux; then
498 - NV_GLX_LIBRARIES+=(
499 - "libnvidia-ml.so.${NV_SOVER}"
500 - "libnvidia-tls.so.${NV_SOVER}"
501 - )
502 - fi
503 -
504 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
505 - then
506 - NV_GLX_LIBRARIES+=(
507 - "libnvidia-cbl.so.${NV_SOVER}"
508 - "libnvidia-rtcore.so.${NV_SOVER}"
509 - "libnvoptix.so.${NV_SOVER}"
510 - )
511 - fi
512 -
513 - for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
514 - donvidia "${nv_libdir}"/${NV_LIB}
515 - done
516 - fi
517 -}
518 -
519 -pkg_preinst() {
520 - if use driver && use kernel_linux; then
521 - linux-mod_pkg_preinst
522 -
523 - local videogroup="$(getent group video | cut -d ':' -f 3)"
524 - if [ -z "${videogroup}" ]; then
525 - eerror "Failed to determine the video group gid"
526 - die "Failed to determine the video group gid"
527 - else
528 - sed -i \
529 - -e "s:PACKAGE:${PF}:g" \
530 - -e "s:VIDEOGID:${videogroup}:" \
531 - "${D}"/etc/modprobe.d/nvidia.conf || die
532 - fi
533 - fi
534 -
535 - # Clean the dynamic libGL stuff's home to ensure
536 - # we dont have stale libs floating around
537 - if [ -d "${ROOT}"/usr/lib/opengl/nvidia ]; then
538 - rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
539 - fi
540 - # Make sure we nuke the old nvidia-glx's env.d file
541 - if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
542 - rm -f "${ROOT}"/etc/env.d/09nvidia
543 - fi
544 -}
545 -
546 -pkg_postinst() {
547 - use driver && use kernel_linux && linux-mod_pkg_postinst
548 -
549 - # Switch to the nvidia implementation
550 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
551 - "${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
552 -
553 - readme.gentoo_print_elog
554 -
555 - if ! use X; then
556 - elog "You have elected to not install the X.org driver. Along with"
557 - elog "this the OpenGL libraries and VDPAU libraries were not"
558 - elog "installed. Additionally, once the driver is loaded your card"
559 - elog "and fan will run at max speed which may not be desirable."
560 - elog "Use the 'nvidia-smi' init script to have your card and fan"
561 - elog "speed scale appropriately."
562 - elog
563 - fi
564 - if ! use tools; then
565 - elog "USE=tools controls whether the nvidia-settings application"
566 - elog "is installed. If you would like to use it, enable that"
567 - elog "flag and re-emerge this ebuild. Optionally you can install"
568 - elog "media-video/nvidia-settings"
569 - elog
570 - fi
571 -}
572 -
573 -pkg_prerm() {
574 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
575 -}
576 -
577 -pkg_postrm() {
578 - use driver && use kernel_linux && linux-mod_pkg_postrm
579 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
580 -}
581
582 diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-430.64-r2.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-430.64-r2.ebuild
583 deleted file mode 100644
584 index f281ac59fc4..00000000000
585 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-430.64-r2.ebuild
586 +++ /dev/null
587 @@ -1,555 +0,0 @@
588 -# Copyright 1999-2020 Gentoo Authors
589 -# Distributed under the terms of the GNU General Public License v2
590 -
591 -EAPI=7
592 -inherit desktop flag-o-matic linux-info linux-mod multilib-minimal \
593 - nvidia-driver portability toolchain-funcs unpacker udev
594 -
595 -DESCRIPTION="NVIDIA Accelerated Graphics Driver"
596 -HOMEPAGE="https://www.nvidia.com/"
597 -
598 -AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
599 -AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
600 -ARM_NV_PACKAGE="NVIDIA-Linux-armv7l-gnueabihf-${PV}"
601 -
602 -NV_URI="https://us.download.nvidia.com/XFree86/"
603 -SRC_URI="
604 - amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
605 - amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
606 - tools? (
607 - https://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2
608 - )
609 -"
610 -
611 -EMULTILIB_PKG="true"
612 -KEYWORDS="-* ~amd64"
613 -LICENSE="GPL-2 NVIDIA-r2"
614 -SLOT="0/${PV%.*}"
615 -
616 -IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib static-libs +tools uvm wayland +X"
617 -REQUIRED_USE="
618 - tools? ( X )
619 - static-libs? ( tools )
620 -"
621 -
622 -COMMON="
623 - driver? ( kernel_linux? ( acct-group/video ) )
624 - kernel_linux? ( >=sys-libs/glibc-2.6.1 )
625 - tools? (
626 - dev-libs/atk
627 - dev-libs/glib:2
628 - dev-libs/jansson
629 - gtk3? (
630 - x11-libs/gtk+:3
631 - )
632 - x11-libs/cairo
633 - x11-libs/gdk-pixbuf[X]
634 - x11-libs/gtk+:2
635 - x11-libs/libX11
636 - x11-libs/libXext
637 - x11-libs/libXrandr
638 - x11-libs/libXv
639 - x11-libs/libXxf86vm
640 - x11-libs/pango[X]
641 - )
642 - X? (
643 - >=app-eselect/eselect-opengl-1.0.9
644 - app-misc/pax-utils
645 - )
646 -"
647 -DEPEND="
648 - ${COMMON}
649 - kernel_linux? ( virtual/linux-sources )
650 - tools? ( sys-apps/dbus )
651 -"
652 -RDEPEND="
653 - ${COMMON}
654 - acpi? ( sys-power/acpid )
655 - tools? ( !media-video/nvidia-settings )
656 - uvm? ( >=virtual/opencl-3 )
657 - wayland? ( dev-libs/wayland[${MULTILIB_USEDEP}] )
658 - X? (
659 - <x11-base/xorg-server-1.20.99:=
660 - >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
661 - >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
662 - >=x11-libs/libvdpau-1.0[${MULTILIB_USEDEP}]
663 - sys-libs/zlib[${MULTILIB_USEDEP}]
664 - )
665 -"
666 -QA_PREBUILT="opt/* usr/lib*"
667 -S=${WORKDIR}/
668 -NV_KV_MAX_PLUS="5.5"
669 -CONFIG_CHECK="!DEBUG_MUTEXES ~!I2C_NVIDIA_GPU ~!LOCKDEP ~MTRR ~SYSVIPC ~ZONE_DMA"
670 -
671 -pkg_pretend() {
672 - nvidia-driver_check
673 -}
674 -
675 -pkg_setup() {
676 - nvidia-driver_check
677 -
678 - # try to turn off distcc and ccache for people that have a problem with it
679 - export DISTCC_DISABLE=1
680 - export CCACHE_DISABLE=1
681 -
682 - if use driver && use kernel_linux; then
683 - MODULE_NAMES="nvidia(video:${S}/kernel)"
684 - use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
685 - use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel) nvidia-drm(video:${S}/kernel)"
686 -
687 - # This needs to run after MODULE_NAMES (so that the eclass checks
688 - # whether the kernel supports loadable modules) but before BUILD_PARAMS
689 - # is set (so that KV_DIR is populated).
690 - linux-mod_pkg_setup
691 -
692 - BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
693 - SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
694 -
695 - # linux-mod_src_compile calls set_arch_to_kernel, which
696 - # sets the ARCH to x86 but NVIDIA's wrapping Makefile
697 - # expects x86_64 or i386 and then converts it to x86
698 - # later on in the build process
699 - BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
700 - fi
701 -
702 - if use kernel_linux && kernel_is lt 2 6 9; then
703 - eerror "You must build this against 2.6.9 or higher kernels."
704 - fi
705 -
706 - # set variables to where files are in the package structure
707 - if use kernel_FreeBSD; then
708 - use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
709 - NV_DOC="${S}/doc"
710 - NV_OBJ="${S}/obj"
711 - NV_SRC="${S}/src"
712 - NV_MAN="${S}/x11/man"
713 - NV_X11="${S}/obj"
714 - NV_SOVER=1
715 - elif use kernel_linux; then
716 - NV_DOC="${S}"
717 - NV_OBJ="${S}"
718 - NV_SRC="${S}/kernel"
719 - NV_MAN="${S}"
720 - NV_X11="${S}"
721 - NV_SOVER=${PV}
722 - else
723 - die "Could not determine proper NVIDIA package"
724 - fi
725 -}
726 -
727 -src_configure() {
728 - tc-export AR CC LD
729 -
730 - default
731 -}
732 -
733 -src_prepare() {
734 - local man_file
735 - for man_file in "${NV_MAN}"/*1.gz; do
736 - gunzip $man_file || die
737 - done
738 -
739 - if use tools; then
740 - cp "${FILESDIR}"/nvidia-settings-fno-common.patch "${WORKDIR}" || die
741 - cp "${FILESDIR}"/nvidia-settings-linker.patch "${WORKDIR}" || die
742 - sed -i \
743 - -e "s:@PV@:${PV}:g" \
744 - "${WORKDIR}"/nvidia-settings-fno-common.patch \
745 - "${WORKDIR}"/nvidia-settings-linker.patch \
746 - || die
747 - eapply "${WORKDIR}"/nvidia-settings-fno-common.patch
748 - eapply "${WORKDIR}"/nvidia-settings-linker.patch
749 - fi
750 -
751 - default
752 -
753 - if ! [ -f nvidia_icd.json ]; then
754 - cp nvidia_icd.json.template nvidia_icd.json || die
755 - sed -i -e 's:__NV_VK_ICD__:libGLX_nvidia.so.0:g' nvidia_icd.json || die
756 - fi
757 -}
758 -
759 -src_compile() {
760 - cd "${NV_SRC}"
761 - if use kernel_FreeBSD; then
762 - MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
763 - LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
764 - elif use driver && use kernel_linux; then
765 - BUILD_TARGETS=module linux-mod_src_compile \
766 - KERNELRELEASE="${KV_FULL}" \
767 - src="${KERNEL_DIR}"
768 - fi
769 -
770 - if use tools; then
771 - emake -C "${S}"/nvidia-settings-${PV}/src/libXNVCtrl \
772 - DO_STRIP= \
773 - LIBDIR="$(get_libdir)" \
774 - NVLD="$(tc-getLD)" \
775 - NV_VERBOSE=1 \
776 - OUTPUTDIR=. \
777 - RANLIB="$(tc-getRANLIB)"
778 -
779 - emake -C "${S}"/nvidia-settings-${PV}/src \
780 - DO_STRIP= \
781 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
782 - LIBDIR="$(get_libdir)" \
783 - NVLD="$(tc-getLD)" \
784 - NVML_ENABLED=0 \
785 - NV_USE_BUNDLED_LIBJANSSON=0 \
786 - NV_VERBOSE=1 \
787 - OUTPUTDIR=.
788 - fi
789 -}
790 -
791 -# Install nvidia library:
792 -# the first parameter is the library to install
793 -# the second parameter is the provided soversion
794 -# the third parameter is the target directory if it is not /usr/lib
795 -donvidia() {
796 - # Full path to library
797 - nv_LIB="${1}"
798 -
799 - # SOVER to use
800 - nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})"
801 -
802 - # Where to install
803 - nv_DEST="${2}"
804 -
805 - # Get just the library name
806 - nv_LIBNAME=$(basename "${nv_LIB}")
807 -
808 - if [[ "${nv_DEST}" ]]; then
809 - exeinto ${nv_DEST}
810 - action="doexe"
811 - else
812 - nv_DEST="/usr/$(get_libdir)"
813 - action="dolib.so"
814 - fi
815 -
816 - # Install the library
817 - ${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}"
818 -
819 - # If the library has a SONAME and SONAME does not match the library name,
820 - # then we need to create a symlink
821 - if [[ ${nv_SOVER} ]] && ! [[ "${nv_SOVER}" = "${nv_LIBNAME}" ]]; then
822 - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER}
823 - fi
824 -
825 - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so}
826 -}
827 -
828 -src_install() {
829 - if use driver && use kernel_linux; then
830 - linux-mod_src_install
831 -
832 - # Add the aliases
833 - # This file is tweaked with the appropriate video group in
834 - # pkg_preinst, see bug #491414
835 - insinto /etc/modprobe.d
836 - newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
837 - if use uvm; then
838 - doins "${FILESDIR}"/nvidia-rmmod.conf
839 - udev_newrules "${FILESDIR}"/nvidia-uvm.udev-rule 99-nvidia-uvm.rules
840 - else
841 - sed -e 's|nvidia-uvm ||g' "${FILESDIR}"/nvidia-rmmod.conf \
842 - > "${T}"/nvidia-rmmod.conf || die
843 - doins "${T}"/nvidia-rmmod.conf
844 - fi
845 -
846 - # Ensures that our device nodes are created when not using X
847 - exeinto "$(get_udevdir)"
848 - newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
849 - udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
850 - elif use kernel_FreeBSD; then
851 - if use x86-fbsd; then
852 - insinto /boot/modules
853 - doins "${S}/src/nvidia.kld"
854 - fi
855 -
856 - exeinto /boot/modules
857 - doexe "${S}/src/nvidia.ko"
858 - fi
859 -
860 - # NVIDIA kernel <-> userspace driver config lib
861 - donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER}
862 -
863 - # NVIDIA framebuffer capture library
864 - donvidia ${NV_OBJ}/libnvidia-fbc.so.${NV_SOVER}
865 -
866 - # NVIDIA video encode/decode <-> CUDA
867 - if use kernel_linux; then
868 - donvidia ${NV_OBJ}/libnvcuvid.so.${NV_SOVER}
869 - donvidia ${NV_OBJ}/libnvidia-encode.so.${NV_SOVER}
870 - fi
871 -
872 - if use X; then
873 - # Xorg DDX driver
874 - insinto /usr/$(get_libdir)/xorg/modules/drivers
875 - doins ${NV_X11}/nvidia_drv.so
876 -
877 - # Xorg GLX driver
878 - donvidia ${NV_X11}/libglxserver_nvidia.so.${NV_SOVER} \
879 - /usr/$(get_libdir)/xorg/modules/extensions
880 -
881 - # Xorg nvidia.conf
882 - if has_version '>=x11-base/xorg-server-1.16'; then
883 - insinto /usr/share/X11/xorg.conf.d
884 - newins {,50-}nvidia-drm-outputclass.conf
885 - fi
886 -
887 - insinto /usr/share/glvnd/egl_vendor.d
888 - doins ${NV_X11}/10_nvidia.json
889 - fi
890 -
891 - if use wayland; then
892 - insinto /usr/share/egl/egl_external_platform.d
893 - doins ${NV_X11}/10_nvidia_wayland.json
894 - fi
895 -
896 - # OpenCL ICD for NVIDIA
897 - if use kernel_linux; then
898 - insinto /etc/OpenCL/vendors
899 - doins ${NV_OBJ}/nvidia.icd
900 - fi
901 -
902 - # Helper Apps
903 - exeinto /opt/bin/
904 -
905 - if use X; then
906 - doexe ${NV_OBJ}/nvidia-xconfig
907 -
908 - insinto /etc/vulkan/icd.d
909 - doins nvidia_icd.json
910 - fi
911 -
912 - if use kernel_linux; then
913 - doexe ${NV_OBJ}/nvidia-cuda-mps-control
914 - doexe ${NV_OBJ}/nvidia-cuda-mps-server
915 - doexe ${NV_OBJ}/nvidia-debugdump
916 - doexe ${NV_OBJ}/nvidia-persistenced
917 - doexe ${NV_OBJ}/nvidia-smi
918 -
919 - # install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
920 - doexe ${NV_OBJ}/nvidia-modprobe
921 - fowners root:video /opt/bin/nvidia-modprobe
922 - fperms 4710 /opt/bin/nvidia-modprobe
923 - dosym /{opt,usr}/bin/nvidia-modprobe
924 -
925 - doman nvidia-cuda-mps-control.1
926 - doman nvidia-modprobe.1
927 - doman nvidia-persistenced.1
928 - newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
929 - newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
930 - newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
931 - fi
932 -
933 - if use tools; then
934 - emake -C "${S}"/nvidia-settings-${PV}/src/ \
935 - DESTDIR="${D}" \
936 - DO_STRIP= \
937 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
938 - LIBDIR="${D}/usr/$(get_libdir)" \
939 - NV_USE_BUNDLED_LIBJANSSON=0 \
940 - NV_VERBOSE=1 \
941 - OUTPUTDIR=. \
942 - PREFIX=/usr \
943 - install
944 -
945 - if use static-libs; then
946 - dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
947 -
948 - insinto /usr/include/NVCtrl
949 - doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
950 - fi
951 -
952 - insinto /usr/share/nvidia/
953 - doins nvidia-application-profiles-${PV}-key-documentation
954 -
955 - insinto /etc/nvidia
956 - newins \
957 - nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
958 -
959 - # There is no icon in the FreeBSD tarball.
960 - use kernel_FreeBSD || \
961 - doicon ${NV_OBJ}/nvidia-settings.png
962 -
963 - domenu "${FILESDIR}"/nvidia-settings.desktop
964 -
965 - exeinto /etc/X11/xinit/xinitrc.d
966 - newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
967 - fi
968 -
969 - dobin ${NV_OBJ}/nvidia-bug-report.sh
970 -
971 - dobin nvidia-sleep.sh
972 -
973 - if has_multilib_profile && use multilib; then
974 - local OABI=${ABI}
975 - for ABI in $(get_install_abis); do
976 - src_install-libs
977 - done
978 - ABI=${OABI}
979 - unset OABI
980 - else
981 - src_install-libs
982 - fi
983 -
984 - is_final_abi || die "failed to iterate through all ABIs"
985 -
986 - # Documentation
987 - if use kernel_FreeBSD; then
988 - dodoc "${NV_DOC}/README"
989 - use X && doman "${NV_MAN}"/nvidia-xconfig.1
990 - use tools && doman "${NV_MAN}"/nvidia-settings.1
991 - else
992 - # Docs
993 - newdoc "${NV_DOC}/README.txt" README
994 - dodoc "${NV_DOC}/NVIDIA_Changelog"
995 - doman "${NV_MAN}"/nvidia-smi.1
996 - use X && doman "${NV_MAN}"/nvidia-xconfig.1
997 - use tools && doman "${NV_MAN}"/nvidia-settings.1
998 - doman "${NV_MAN}"/nvidia-cuda-mps-control.1
999 - fi
1000 -
1001 - readme.gentoo_create_doc
1002 -
1003 - docinto html
1004 - dodoc -r ${NV_DOC}/html/*
1005 -}
1006 -
1007 -src_install-libs() {
1008 - local inslibdir=$(get_libdir)
1009 - local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
1010 - local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
1011 - local nv_libdir="${NV_OBJ}"
1012 -
1013 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then
1014 - nv_libdir="${NV_OBJ}"/32
1015 - fi
1016 -
1017 - if use X; then
1018 - NV_GLX_LIBRARIES=(
1019 - "libEGL.so.$(usex compat ${NV_SOVER} 1.1.0) ${GL_ROOT}"
1020 - "libEGL_nvidia.so.${NV_SOVER} ${GL_ROOT}"
1021 - "libGL.so.$(usex compat ${NV_SOVER} 1.7.0) ${GL_ROOT}"
1022 - "libGLESv1_CM.so.1.2.0 ${GL_ROOT}"
1023 - "libGLESv1_CM_nvidia.so.${NV_SOVER} ${GL_ROOT}"
1024 - "libGLESv2.so.2.1.0 ${GL_ROOT}"
1025 - "libGLESv2_nvidia.so.${NV_SOVER} ${GL_ROOT}"
1026 - "libGLX.so.0 ${GL_ROOT}"
1027 - "libGLX_nvidia.so.${NV_SOVER} ${GL_ROOT}"
1028 - "libGLdispatch.so.0 ${GL_ROOT}"
1029 - "libOpenCL.so.1.0.0 ${CL_ROOT}"
1030 - "libOpenGL.so.0 ${GL_ROOT}"
1031 - "libcuda.so.${NV_SOVER}"
1032 - "libnvcuvid.so.${NV_SOVER}"
1033 - "libnvidia-compiler.so.${NV_SOVER}"
1034 - "libnvidia-eglcore.so.${NV_SOVER}"
1035 - "libnvidia-encode.so.${NV_SOVER}"
1036 - "libnvidia-fatbinaryloader.so.${NV_SOVER}"
1037 - "libnvidia-fbc.so.${NV_SOVER}"
1038 - "libnvidia-glcore.so.${NV_SOVER}"
1039 - "libnvidia-glsi.so.${NV_SOVER}"
1040 - "libnvidia-glvkspirv.so.${NV_SOVER}"
1041 - "libnvidia-ifr.so.${NV_SOVER}"
1042 - "libnvidia-opencl.so.${NV_SOVER}"
1043 - "libnvidia-ptxjitcompiler.so.${NV_SOVER}"
1044 - "libvdpau_nvidia.so.${NV_SOVER}"
1045 - )
1046 -
1047 - if use wayland && has_multilib_profile && [[ ${ABI} == "amd64" ]];
1048 - then
1049 - NV_GLX_LIBRARIES+=(
1050 - "libnvidia-egl-wayland.so.1.1.2"
1051 - )
1052 - fi
1053 -
1054 - if use kernel_FreeBSD; then
1055 - NV_GLX_LIBRARIES+=(
1056 - "libnvidia-tls.so.${NV_SOVER}"
1057 - )
1058 - fi
1059 -
1060 - if use kernel_linux; then
1061 - NV_GLX_LIBRARIES+=(
1062 - "libnvidia-ml.so.${NV_SOVER}"
1063 - "libnvidia-tls.so.${NV_SOVER}"
1064 - )
1065 - fi
1066 -
1067 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
1068 - then
1069 - NV_GLX_LIBRARIES+=(
1070 - "libnvidia-cbl.so.${NV_SOVER}"
1071 - "libnvidia-rtcore.so.${NV_SOVER}"
1072 - "libnvoptix.so.${NV_SOVER}"
1073 - )
1074 - fi
1075 -
1076 - for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
1077 - donvidia "${nv_libdir}"/${NV_LIB}
1078 - done
1079 - fi
1080 -}
1081 -
1082 -pkg_preinst() {
1083 - if use driver && use kernel_linux; then
1084 - linux-mod_pkg_preinst
1085 -
1086 - local videogroup="$(getent group video | cut -d ':' -f 3)"
1087 - if [ -z "${videogroup}" ]; then
1088 - eerror "Failed to determine the video group gid"
1089 - die "Failed to determine the video group gid"
1090 - else
1091 - sed -i \
1092 - -e "s:PACKAGE:${PF}:g" \
1093 - -e "s:VIDEOGID:${videogroup}:" \
1094 - "${D}"/etc/modprobe.d/nvidia.conf || die
1095 - fi
1096 - fi
1097 -
1098 - # Clean the dynamic libGL stuff's home to ensure
1099 - # we dont have stale libs floating around
1100 - if [ -d "${ROOT}"/usr/lib/opengl/nvidia ]; then
1101 - rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
1102 - fi
1103 - # Make sure we nuke the old nvidia-glx's env.d file
1104 - if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
1105 - rm -f "${ROOT}"/etc/env.d/09nvidia
1106 - fi
1107 -}
1108 -
1109 -pkg_postinst() {
1110 - use driver && use kernel_linux && linux-mod_pkg_postinst
1111 -
1112 - # Switch to the nvidia implementation
1113 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
1114 -
1115 - readme.gentoo_print_elog
1116 -
1117 - if ! use X; then
1118 - elog "You have elected to not install the X.org driver. Along with"
1119 - elog "this the OpenGL libraries and VDPAU libraries were not"
1120 - elog "installed. Additionally, once the driver is loaded your card"
1121 - elog "and fan will run at max speed which may not be desirable."
1122 - elog "Use the 'nvidia-smi' init script to have your card and fan"
1123 - elog "speed scale appropriately."
1124 - elog
1125 - fi
1126 - if ! use tools; then
1127 - elog "USE=tools controls whether the nvidia-settings application"
1128 - elog "is installed. If you would like to use it, enable that"
1129 - elog "flag and re-emerge this ebuild. Optionally you can install"
1130 - elog "media-video/nvidia-settings"
1131 - elog
1132 - fi
1133 -}
1134 -
1135 -pkg_prerm() {
1136 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
1137 -}
1138 -
1139 -pkg_postrm() {
1140 - use driver && use kernel_linux && linux-mod_pkg_postrm
1141 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
1142 -}
1143
1144 diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-435.21-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-435.21-r1.ebuild
1145 deleted file mode 100644
1146 index efc890c088a..00000000000
1147 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-435.21-r1.ebuild
1148 +++ /dev/null
1149 @@ -1,572 +0,0 @@
1150 -# Copyright 1999-2020 Gentoo Authors
1151 -# Distributed under the terms of the GNU General Public License v2
1152 -
1153 -EAPI=7
1154 -inherit desktop flag-o-matic linux-info linux-mod multilib-minimal \
1155 - nvidia-driver portability toolchain-funcs unpacker udev
1156 -
1157 -DESCRIPTION="NVIDIA Accelerated Graphics Driver"
1158 -HOMEPAGE="https://www.nvidia.com/"
1159 -
1160 -AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
1161 -AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
1162 -ARM_NV_PACKAGE="NVIDIA-Linux-armv7l-gnueabihf-${PV}"
1163 -
1164 -NV_URI="https://us.download.nvidia.com/XFree86/"
1165 -SRC_URI="
1166 - amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
1167 - amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
1168 - tools? (
1169 - https://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2
1170 - )
1171 -"
1172 -
1173 -EMULTILIB_PKG="true"
1174 -KEYWORDS="-* amd64"
1175 -LICENSE="GPL-2 NVIDIA-r2"
1176 -SLOT="0/${PV%.*}"
1177 -
1178 -IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms +libglvnd multilib static-libs +tools uvm wayland +X"
1179 -REQUIRED_USE="
1180 - tools? ( X )
1181 - static-libs? ( tools )
1182 -"
1183 -
1184 -COMMON="
1185 - app-eselect/eselect-opencl
1186 - driver? ( kernel_linux? ( acct-group/video ) )
1187 - kernel_linux? ( >=sys-libs/glibc-2.6.1 )
1188 - tools? (
1189 - dev-libs/atk
1190 - dev-libs/glib:2
1191 - dev-libs/jansson
1192 - gtk3? (
1193 - x11-libs/gtk+:3
1194 - )
1195 - x11-libs/cairo
1196 - x11-libs/gdk-pixbuf[X]
1197 - x11-libs/gtk+:2
1198 - x11-libs/libX11
1199 - x11-libs/libXext
1200 - x11-libs/libXrandr
1201 - x11-libs/libXv
1202 - x11-libs/libXxf86vm
1203 - x11-libs/pango[X]
1204 - )
1205 - X? (
1206 - !libglvnd? ( >=app-eselect/eselect-opengl-1.0.9 )
1207 - libglvnd? (
1208 - media-libs/libglvnd[${MULTILIB_USEDEP}]
1209 - !app-eselect/eselect-opengl
1210 - )
1211 - app-misc/pax-utils
1212 - )
1213 -"
1214 -DEPEND="
1215 - ${COMMON}
1216 - kernel_linux? ( virtual/linux-sources )
1217 - tools? ( sys-apps/dbus )
1218 -"
1219 -RDEPEND="
1220 - ${COMMON}
1221 - acpi? ( sys-power/acpid )
1222 - tools? ( !media-video/nvidia-settings )
1223 - wayland? ( dev-libs/wayland[${MULTILIB_USEDEP}] )
1224 - X? (
1225 - <x11-base/xorg-server-1.20.99:=
1226 - >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
1227 - >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
1228 - >=x11-libs/libvdpau-1.0[${MULTILIB_USEDEP}]
1229 - sys-libs/zlib[${MULTILIB_USEDEP}]
1230 - )
1231 -"
1232 -QA_PREBUILT="opt/* usr/lib*"
1233 -S=${WORKDIR}/
1234 -NV_KV_MAX_PLUS="5.4"
1235 -CONFIG_CHECK="!DEBUG_MUTEXES ~!I2C_NVIDIA_GPU ~!LOCKDEP ~MTRR ~SYSVIPC ~ZONE_DMA"
1236 -
1237 -pkg_pretend() {
1238 - nvidia-driver_check
1239 -}
1240 -
1241 -pkg_setup() {
1242 - nvidia-driver_check
1243 -
1244 - # try to turn off distcc and ccache for people that have a problem with it
1245 - export DISTCC_DISABLE=1
1246 - export CCACHE_DISABLE=1
1247 -
1248 - if use driver && use kernel_linux; then
1249 - MODULE_NAMES="nvidia(video:${S}/kernel)"
1250 - use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
1251 - use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel) nvidia-drm(video:${S}/kernel)"
1252 -
1253 - # This needs to run after MODULE_NAMES (so that the eclass checks
1254 - # whether the kernel supports loadable modules) but before BUILD_PARAMS
1255 - # is set (so that KV_DIR is populated).
1256 - linux-mod_pkg_setup
1257 -
1258 - BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
1259 - SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
1260 -
1261 - # linux-mod_src_compile calls set_arch_to_kernel, which
1262 - # sets the ARCH to x86 but NVIDIA's wrapping Makefile
1263 - # expects x86_64 or i386 and then converts it to x86
1264 - # later on in the build process
1265 - BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
1266 - fi
1267 -
1268 - if use kernel_linux && kernel_is lt 2 6 9; then
1269 - eerror "You must build this against 2.6.9 or higher kernels."
1270 - fi
1271 -
1272 - # set variables to where files are in the package structure
1273 - if use kernel_FreeBSD; then
1274 - use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
1275 - NV_DOC="${S}/doc"
1276 - NV_OBJ="${S}/obj"
1277 - NV_SRC="${S}/src"
1278 - NV_MAN="${S}/x11/man"
1279 - NV_X11="${S}/obj"
1280 - NV_SOVER=1
1281 - elif use kernel_linux; then
1282 - NV_DOC="${S}"
1283 - NV_OBJ="${S}"
1284 - NV_SRC="${S}/kernel"
1285 - NV_MAN="${S}"
1286 - NV_X11="${S}"
1287 - NV_SOVER=${PV}
1288 - else
1289 - die "Could not determine proper NVIDIA package"
1290 - fi
1291 -}
1292 -
1293 -src_configure() {
1294 - tc-export AR CC LD
1295 -
1296 - default
1297 -}
1298 -
1299 -src_prepare() {
1300 - local man_file
1301 - for man_file in "${NV_MAN}"/*1.gz; do
1302 - gunzip $man_file || die
1303 - done
1304 -
1305 - if use tools; then
1306 - cp "${FILESDIR}"/nvidia-settings-fno-common.patch "${WORKDIR}" || die
1307 - cp "${FILESDIR}"/nvidia-settings-linker.patch "${WORKDIR}" || die
1308 - sed -i \
1309 - -e "s:@PV@:${PV}:g" \
1310 - "${WORKDIR}"/nvidia-settings-fno-common.patch \
1311 - "${WORKDIR}"/nvidia-settings-linker.patch \
1312 - || die
1313 - eapply "${WORKDIR}"/nvidia-settings-fno-common.patch
1314 - eapply "${WORKDIR}"/nvidia-settings-linker.patch
1315 - fi
1316 -
1317 - default
1318 -
1319 - if ! [ -f nvidia_icd.json ]; then
1320 - cp nvidia_icd.json.template nvidia_icd.json || die
1321 - sed -i -e 's:__NV_VK_ICD__:libGLX_nvidia.so.0:g' nvidia_icd.json || die
1322 - fi
1323 -}
1324 -
1325 -src_compile() {
1326 - cd "${NV_SRC}"
1327 - if use kernel_FreeBSD; then
1328 - MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
1329 - LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
1330 - elif use driver && use kernel_linux; then
1331 - BUILD_TARGETS=module linux-mod_src_compile \
1332 - KERNELRELEASE="${KV_FULL}" \
1333 - src="${KERNEL_DIR}"
1334 - fi
1335 -
1336 - if use tools; then
1337 - emake -C "${S}"/nvidia-settings-${PV}/src/libXNVCtrl \
1338 - DO_STRIP= \
1339 - LIBDIR="$(get_libdir)" \
1340 - NVLD="$(tc-getLD)" \
1341 - NV_VERBOSE=1 \
1342 - OUTPUTDIR=. \
1343 - RANLIB="$(tc-getRANLIB)"
1344 -
1345 - emake -C "${S}"/nvidia-settings-${PV}/src \
1346 - DO_STRIP= \
1347 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
1348 - LIBDIR="$(get_libdir)" \
1349 - NVLD="$(tc-getLD)" \
1350 - NVML_ENABLED=0 \
1351 - NV_USE_BUNDLED_LIBJANSSON=0 \
1352 - NV_VERBOSE=1 \
1353 - OUTPUTDIR=.
1354 - fi
1355 -}
1356 -
1357 -# Install nvidia library:
1358 -# the first parameter is the library to install
1359 -# the second parameter is the provided soversion
1360 -# the third parameter is the target directory if it is not /usr/lib
1361 -donvidia() {
1362 - # Full path to library
1363 - nv_LIB="${1}"
1364 -
1365 - # SOVER to use
1366 - nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})"
1367 -
1368 - # Where to install
1369 - nv_DEST="${2}"
1370 -
1371 - # Get just the library name
1372 - nv_LIBNAME=$(basename "${nv_LIB}")
1373 -
1374 - if [[ "${nv_DEST}" ]]; then
1375 - exeinto ${nv_DEST}
1376 - action="doexe"
1377 - else
1378 - nv_DEST="/usr/$(get_libdir)"
1379 - action="dolib.so"
1380 - fi
1381 -
1382 - # Install the library
1383 - ${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}"
1384 -
1385 - # If the library has a SONAME and SONAME does not match the library name,
1386 - # then we need to create a symlink
1387 - if [[ ${nv_SOVER} ]] && ! [[ "${nv_SOVER}" = "${nv_LIBNAME}" ]]; then
1388 - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER}
1389 - fi
1390 -
1391 - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so}
1392 -}
1393 -
1394 -src_install() {
1395 - if use driver && use kernel_linux; then
1396 - linux-mod_src_install
1397 -
1398 - # Add the aliases
1399 - # This file is tweaked with the appropriate video group in
1400 - # pkg_preinst, see bug #491414
1401 - insinto /etc/modprobe.d
1402 - newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
1403 - if use uvm; then
1404 - doins "${FILESDIR}"/nvidia-rmmod.conf
1405 - udev_newrules "${FILESDIR}"/nvidia-uvm.udev-rule 99-nvidia-uvm.rules
1406 - else
1407 - sed -e 's|nvidia-uvm ||g' "${FILESDIR}"/nvidia-rmmod.conf \
1408 - > "${T}"/nvidia-rmmod.conf || die
1409 - doins "${T}"/nvidia-rmmod.conf
1410 - fi
1411 -
1412 - # Ensures that our device nodes are created when not using X
1413 - exeinto "$(get_udevdir)"
1414 - newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
1415 - udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
1416 - elif use kernel_FreeBSD; then
1417 - if use x86-fbsd; then
1418 - insinto /boot/modules
1419 - doins "${S}/src/nvidia.kld"
1420 - fi
1421 -
1422 - exeinto /boot/modules
1423 - doexe "${S}/src/nvidia.ko"
1424 - fi
1425 -
1426 - # NVIDIA kernel <-> userspace driver config lib
1427 - donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER}
1428 -
1429 - # NVIDIA framebuffer capture library
1430 - donvidia ${NV_OBJ}/libnvidia-fbc.so.${NV_SOVER}
1431 -
1432 - # NVIDIA video encode/decode <-> CUDA
1433 - if use kernel_linux; then
1434 - donvidia ${NV_OBJ}/libnvcuvid.so.${NV_SOVER}
1435 - donvidia ${NV_OBJ}/libnvidia-encode.so.${NV_SOVER}
1436 - fi
1437 -
1438 - if use X; then
1439 - # Xorg DDX driver
1440 - insinto /usr/$(get_libdir)/xorg/modules/drivers
1441 - doins ${NV_X11}/nvidia_drv.so
1442 -
1443 - # Xorg GLX driver
1444 - donvidia ${NV_X11}/libglxserver_nvidia.so.${NV_SOVER} \
1445 - /usr/$(get_libdir)/xorg/modules/extensions
1446 -
1447 - # Xorg nvidia.conf
1448 - if has_version '>=x11-base/xorg-server-1.16'; then
1449 - insinto /usr/share/X11/xorg.conf.d
1450 - newins {,50-}nvidia-drm-outputclass.conf
1451 - fi
1452 -
1453 - insinto /usr/share/glvnd/egl_vendor.d
1454 - doins ${NV_X11}/10_nvidia.json
1455 - fi
1456 -
1457 - if use wayland; then
1458 - insinto /usr/share/egl/egl_external_platform.d
1459 - doins ${NV_X11}/10_nvidia_wayland.json
1460 - fi
1461 -
1462 - # OpenCL ICD for NVIDIA
1463 - if use kernel_linux; then
1464 - insinto /etc/OpenCL/vendors
1465 - doins ${NV_OBJ}/nvidia.icd
1466 - fi
1467 -
1468 - # Helper Apps
1469 - exeinto /opt/bin/
1470 -
1471 - if use X; then
1472 - doexe ${NV_OBJ}/nvidia-xconfig
1473 -
1474 - insinto /etc/vulkan/icd.d
1475 - doins nvidia_icd.json
1476 - fi
1477 -
1478 - if use kernel_linux; then
1479 - doexe ${NV_OBJ}/nvidia-cuda-mps-control
1480 - doexe ${NV_OBJ}/nvidia-cuda-mps-server
1481 - doexe ${NV_OBJ}/nvidia-debugdump
1482 - doexe ${NV_OBJ}/nvidia-persistenced
1483 - doexe ${NV_OBJ}/nvidia-smi
1484 -
1485 - # install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
1486 - doexe ${NV_OBJ}/nvidia-modprobe
1487 - fowners root:video /opt/bin/nvidia-modprobe
1488 - fperms 4710 /opt/bin/nvidia-modprobe
1489 - dosym /{opt,usr}/bin/nvidia-modprobe
1490 -
1491 - doman nvidia-cuda-mps-control.1
1492 - doman nvidia-modprobe.1
1493 - doman nvidia-persistenced.1
1494 - newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
1495 - newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
1496 - newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
1497 - fi
1498 -
1499 - if use tools; then
1500 - emake -C "${S}"/nvidia-settings-${PV}/src/ \
1501 - DESTDIR="${D}" \
1502 - DO_STRIP= \
1503 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
1504 - LIBDIR="${D}/usr/$(get_libdir)" \
1505 - NV_USE_BUNDLED_LIBJANSSON=0 \
1506 - NV_VERBOSE=1 \
1507 - OUTPUTDIR=. \
1508 - PREFIX=/usr \
1509 - install
1510 -
1511 - if use static-libs; then
1512 - dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
1513 -
1514 - insinto /usr/include/NVCtrl
1515 - doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
1516 - fi
1517 -
1518 - insinto /usr/share/nvidia/
1519 - doins nvidia-application-profiles-${PV}-key-documentation
1520 -
1521 - insinto /etc/nvidia
1522 - newins \
1523 - nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
1524 -
1525 - # There is no icon in the FreeBSD tarball.
1526 - use kernel_FreeBSD || \
1527 - doicon ${NV_OBJ}/nvidia-settings.png
1528 -
1529 - domenu "${FILESDIR}"/nvidia-settings.desktop
1530 -
1531 - exeinto /etc/X11/xinit/xinitrc.d
1532 - newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
1533 - fi
1534 -
1535 - dobin ${NV_OBJ}/nvidia-bug-report.sh
1536 -
1537 - if has_multilib_profile && use multilib; then
1538 - local OABI=${ABI}
1539 - for ABI in $(get_install_abis); do
1540 - src_install-libs
1541 - done
1542 - ABI=${OABI}
1543 - unset OABI
1544 - else
1545 - src_install-libs
1546 - fi
1547 -
1548 - is_final_abi || die "failed to iterate through all ABIs"
1549 -
1550 - # Documentation
1551 - if use kernel_FreeBSD; then
1552 - dodoc "${NV_DOC}/README"
1553 - use X && doman "${NV_MAN}"/nvidia-xconfig.1
1554 - use tools && doman "${NV_MAN}"/nvidia-settings.1
1555 - else
1556 - # Docs
1557 - newdoc "${NV_DOC}/README.txt" README
1558 - dodoc "${NV_DOC}/NVIDIA_Changelog"
1559 - doman "${NV_MAN}"/nvidia-smi.1
1560 - use X && doman "${NV_MAN}"/nvidia-xconfig.1
1561 - use tools && doman "${NV_MAN}"/nvidia-settings.1
1562 - doman "${NV_MAN}"/nvidia-cuda-mps-control.1
1563 - fi
1564 -
1565 - readme.gentoo_create_doc
1566 -
1567 - docinto html
1568 - dodoc -r ${NV_DOC}/html/*
1569 -}
1570 -
1571 -src_install-libs() {
1572 - local inslibdir=$(get_libdir)
1573 - if use libglvnd; then
1574 - local GL_ROOT="/usr/$(get_libdir)"
1575 - else
1576 - local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
1577 - fi
1578 - local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
1579 - local nv_libdir="${NV_OBJ}"
1580 -
1581 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then
1582 - nv_libdir="${NV_OBJ}"/32
1583 - fi
1584 -
1585 - if use X; then
1586 - NV_GLX_LIBRARIES=(
1587 - "libEGL_nvidia.so.${NV_SOVER} ${GL_ROOT}"
1588 - "libGLESv1_CM_nvidia.so.${NV_SOVER} ${GL_ROOT}"
1589 - "libGLESv2_nvidia.so.${NV_SOVER} ${GL_ROOT}"
1590 - "libGLX_nvidia.so.${NV_SOVER} ${GL_ROOT}"
1591 - "libOpenCL.so.1.0.0 ${CL_ROOT}"
1592 - "libcuda.so.${NV_SOVER}"
1593 - "libnvcuvid.so.${NV_SOVER}"
1594 - "libnvidia-compiler.so.${NV_SOVER}"
1595 - "libnvidia-eglcore.so.${NV_SOVER}"
1596 - "libnvidia-encode.so.${NV_SOVER}"
1597 - "libnvidia-fatbinaryloader.so.${NV_SOVER}"
1598 - "libnvidia-fbc.so.${NV_SOVER}"
1599 - "libnvidia-glcore.so.${NV_SOVER}"
1600 - "libnvidia-glsi.so.${NV_SOVER}"
1601 - "libnvidia-glvkspirv.so.${NV_SOVER}"
1602 - "libnvidia-ifr.so.${NV_SOVER}"
1603 - "libnvidia-opencl.so.${NV_SOVER}"
1604 - "libnvidia-ptxjitcompiler.so.${NV_SOVER}"
1605 - "libvdpau_nvidia.so.${NV_SOVER}"
1606 - )
1607 - if ! use libglvnd; then
1608 - NV_GLX_LIBRARIES+=(
1609 - "libEGL.so.$( [[ ${ABI} == "amd64" ]] && usex compat ${NV_SOVER} 1.1.0 || echo 1.1.0) ${GL_ROOT}"
1610 - "libGL.so.1.7.0 ${GL_ROOT}"
1611 - "libGLESv1_CM.so.1.2.0 ${GL_ROOT}"
1612 - "libGLESv2.so.2.1.0 ${GL_ROOT}"
1613 - "libGLX.so.0 ${GL_ROOT}"
1614 - "libGLdispatch.so.0 ${GL_ROOT}"
1615 - "libOpenGL.so.0 ${GL_ROOT}"
1616 - )
1617 - fi
1618 -
1619 - if use wayland && has_multilib_profile && [[ ${ABI} == "amd64" ]];
1620 - then
1621 - NV_GLX_LIBRARIES+=(
1622 - "libnvidia-egl-wayland.so.1.1.3"
1623 - )
1624 - fi
1625 -
1626 - if use kernel_FreeBSD; then
1627 - NV_GLX_LIBRARIES+=(
1628 - "libnvidia-tls.so.${NV_SOVER}"
1629 - )
1630 - fi
1631 -
1632 - if use kernel_linux; then
1633 - NV_GLX_LIBRARIES+=(
1634 - "libnvidia-ml.so.${NV_SOVER}"
1635 - "libnvidia-tls.so.${NV_SOVER}"
1636 - )
1637 - fi
1638 -
1639 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
1640 - then
1641 - NV_GLX_LIBRARIES+=(
1642 - "libnvidia-cbl.so.${NV_SOVER}"
1643 - "libnvidia-rtcore.so.${NV_SOVER}"
1644 - "libnvoptix.so.${NV_SOVER}"
1645 - )
1646 - fi
1647 -
1648 - for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
1649 - donvidia "${nv_libdir}"/${NV_LIB}
1650 - done
1651 - fi
1652 -}
1653 -
1654 -pkg_preinst() {
1655 - if use driver && use kernel_linux; then
1656 - linux-mod_pkg_preinst
1657 -
1658 - local videogroup="$(getent group video | cut -d ':' -f 3)"
1659 - if [ -z "${videogroup}" ]; then
1660 - eerror "Failed to determine the video group gid"
1661 - die "Failed to determine the video group gid"
1662 - else
1663 - sed -i \
1664 - -e "s:PACKAGE:${PF}:g" \
1665 - -e "s:VIDEOGID:${videogroup}:" \
1666 - "${D}"/etc/modprobe.d/nvidia.conf || die
1667 - fi
1668 - fi
1669 -
1670 - # Clean the dynamic libGL stuff's home to ensure
1671 - # we dont have stale libs floating around
1672 - if [ -d "${ROOT}"/usr/lib/opengl/nvidia ]; then
1673 - rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
1674 - fi
1675 - # Make sure we nuke the old nvidia-glx's env.d file
1676 - if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
1677 - rm -f "${ROOT}"/etc/env.d/09nvidia
1678 - fi
1679 -}
1680 -
1681 -pkg_postinst() {
1682 - use driver && use kernel_linux && linux-mod_pkg_postinst
1683 -
1684 - # Switch to the nvidia implementation
1685 - if ! use libglvnd; then
1686 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
1687 - fi
1688 - "${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
1689 -
1690 - readme.gentoo_print_elog
1691 -
1692 - if ! use X; then
1693 - elog "You have elected to not install the X.org driver. Along with"
1694 - elog "this the OpenGL libraries and VDPAU libraries were not"
1695 - elog "installed. Additionally, once the driver is loaded your card"
1696 - elog "and fan will run at max speed which may not be desirable."
1697 - elog "Use the 'nvidia-smi' init script to have your card and fan"
1698 - elog "speed scale appropriately."
1699 - elog
1700 - fi
1701 - if ! use tools; then
1702 - elog "USE=tools controls whether the nvidia-settings application"
1703 - elog "is installed. If you would like to use it, enable that"
1704 - elog "flag and re-emerge this ebuild. Optionally you can install"
1705 - elog "media-video/nvidia-settings"
1706 - elog
1707 - fi
1708 -}
1709 -
1710 -pkg_prerm() {
1711 - if ! use libglvnd; then
1712 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
1713 - fi
1714 -}
1715 -
1716 -pkg_postrm() {
1717 - use driver && use kernel_linux && linux-mod_pkg_postrm
1718 - if ! use libglvnd; then
1719 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
1720 - fi
1721 -}
1722
1723 diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-435.21-r2.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-435.21-r2.ebuild
1724 deleted file mode 100644
1725 index b4d71c11943..00000000000
1726 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-435.21-r2.ebuild
1727 +++ /dev/null
1728 @@ -1,573 +0,0 @@
1729 -# Copyright 1999-2020 Gentoo Authors
1730 -# Distributed under the terms of the GNU General Public License v2
1731 -
1732 -EAPI=7
1733 -inherit desktop flag-o-matic linux-info linux-mod multilib-minimal \
1734 - nvidia-driver portability toolchain-funcs unpacker udev
1735 -
1736 -DESCRIPTION="NVIDIA Accelerated Graphics Driver"
1737 -HOMEPAGE="https://www.nvidia.com/"
1738 -
1739 -AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
1740 -AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
1741 -ARM_NV_PACKAGE="NVIDIA-Linux-armv7l-gnueabihf-${PV}"
1742 -
1743 -NV_URI="https://us.download.nvidia.com/XFree86/"
1744 -SRC_URI="
1745 - amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
1746 - amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
1747 - tools? (
1748 - https://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2
1749 - )
1750 -"
1751 -
1752 -EMULTILIB_PKG="true"
1753 -KEYWORDS="-* ~amd64"
1754 -LICENSE="GPL-2 NVIDIA-r2"
1755 -SLOT="0/${PV%.*}"
1756 -
1757 -IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms +libglvnd multilib static-libs +tools uvm wayland +X"
1758 -REQUIRED_USE="
1759 - tools? ( X )
1760 - static-libs? ( tools )
1761 -"
1762 -
1763 -COMMON="
1764 - driver? ( kernel_linux? ( acct-group/video ) )
1765 - kernel_linux? ( >=sys-libs/glibc-2.6.1 )
1766 - tools? (
1767 - dev-libs/atk
1768 - dev-libs/glib:2
1769 - dev-libs/jansson
1770 - gtk3? (
1771 - x11-libs/gtk+:3
1772 - )
1773 - x11-libs/cairo
1774 - x11-libs/gdk-pixbuf[X]
1775 - x11-libs/gtk+:2
1776 - x11-libs/libX11
1777 - x11-libs/libXext
1778 - x11-libs/libXrandr
1779 - x11-libs/libXv
1780 - x11-libs/libXxf86vm
1781 - x11-libs/pango[X]
1782 - )
1783 - X? (
1784 - !libglvnd? ( >=app-eselect/eselect-opengl-1.0.9 )
1785 - libglvnd? (
1786 - media-libs/libglvnd[${MULTILIB_USEDEP}]
1787 - !app-eselect/eselect-opengl
1788 - )
1789 - app-misc/pax-utils
1790 - )
1791 -"
1792 -DEPEND="
1793 - ${COMMON}
1794 - kernel_linux? ( virtual/linux-sources )
1795 - tools? ( sys-apps/dbus )
1796 -"
1797 -RDEPEND="
1798 - ${COMMON}
1799 - acpi? ( sys-power/acpid )
1800 - tools? ( !media-video/nvidia-settings )
1801 - uvm? ( >=virtual/opencl-3 )
1802 - wayland? ( dev-libs/wayland[${MULTILIB_USEDEP}] )
1803 - X? (
1804 - <x11-base/xorg-server-1.20.99:=
1805 - >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
1806 - >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
1807 - >=x11-libs/libvdpau-1.0[${MULTILIB_USEDEP}]
1808 - sys-libs/zlib[${MULTILIB_USEDEP}]
1809 - )
1810 -"
1811 -QA_PREBUILT="opt/* usr/lib*"
1812 -S=${WORKDIR}/
1813 -NV_KV_MAX_PLUS="5.4"
1814 -CONFIG_CHECK="!DEBUG_MUTEXES ~!I2C_NVIDIA_GPU ~!LOCKDEP ~MTRR ~SYSVIPC ~ZONE_DMA"
1815 -
1816 -pkg_pretend() {
1817 - nvidia-driver_check
1818 -}
1819 -
1820 -pkg_setup() {
1821 - nvidia-driver_check
1822 -
1823 - # try to turn off distcc and ccache for people that have a problem with it
1824 - export DISTCC_DISABLE=1
1825 - export CCACHE_DISABLE=1
1826 -
1827 - if use driver && use kernel_linux; then
1828 - MODULE_NAMES="nvidia(video:${S}/kernel)"
1829 - use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
1830 - use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel) nvidia-drm(video:${S}/kernel)"
1831 -
1832 - # This needs to run after MODULE_NAMES (so that the eclass checks
1833 - # whether the kernel supports loadable modules) but before BUILD_PARAMS
1834 - # is set (so that KV_DIR is populated).
1835 - linux-mod_pkg_setup
1836 -
1837 - BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
1838 - SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
1839 -
1840 - # linux-mod_src_compile calls set_arch_to_kernel, which
1841 - # sets the ARCH to x86 but NVIDIA's wrapping Makefile
1842 - # expects x86_64 or i386 and then converts it to x86
1843 - # later on in the build process
1844 - BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
1845 - fi
1846 -
1847 - if use kernel_linux && kernel_is lt 2 6 9; then
1848 - eerror "You must build this against 2.6.9 or higher kernels."
1849 - fi
1850 -
1851 - # set variables to where files are in the package structure
1852 - if use kernel_FreeBSD; then
1853 - use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
1854 - NV_DOC="${S}/doc"
1855 - NV_OBJ="${S}/obj"
1856 - NV_SRC="${S}/src"
1857 - NV_MAN="${S}/x11/man"
1858 - NV_X11="${S}/obj"
1859 - NV_SOVER=1
1860 - elif use kernel_linux; then
1861 - NV_DOC="${S}"
1862 - NV_OBJ="${S}"
1863 - NV_SRC="${S}/kernel"
1864 - NV_MAN="${S}"
1865 - NV_X11="${S}"
1866 - NV_SOVER=${PV}
1867 - else
1868 - die "Could not determine proper NVIDIA package"
1869 - fi
1870 -}
1871 -
1872 -src_configure() {
1873 - tc-export AR CC LD
1874 -
1875 - default
1876 -}
1877 -
1878 -src_prepare() {
1879 - local man_file
1880 - for man_file in "${NV_MAN}"/*1.gz; do
1881 - gunzip $man_file || die
1882 - done
1883 -
1884 - if use tools; then
1885 - cp "${FILESDIR}"/nvidia-settings-fno-common.patch "${WORKDIR}" || die
1886 - cp "${FILESDIR}"/nvidia-settings-linker.patch "${WORKDIR}" || die
1887 - sed -i \
1888 - -e "s:@PV@:${PV}:g" \
1889 - "${WORKDIR}"/nvidia-settings-fno-common.patch \
1890 - "${WORKDIR}"/nvidia-settings-linker.patch \
1891 - || die
1892 - eapply "${WORKDIR}"/nvidia-settings-fno-common.patch
1893 - eapply "${WORKDIR}"/nvidia-settings-linker.patch
1894 - fi
1895 -
1896 - default
1897 -
1898 - if ! [ -f nvidia_icd.json ]; then
1899 - cp nvidia_icd.json.template nvidia_icd.json || die
1900 - sed -i -e 's:__NV_VK_ICD__:libGLX_nvidia.so.0:g' nvidia_icd.json || die
1901 - fi
1902 -}
1903 -
1904 -src_compile() {
1905 - cd "${NV_SRC}"
1906 - if use kernel_FreeBSD; then
1907 - MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
1908 - LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
1909 - elif use driver && use kernel_linux; then
1910 - BUILD_TARGETS=module linux-mod_src_compile \
1911 - KERNELRELEASE="${KV_FULL}" \
1912 - src="${KERNEL_DIR}"
1913 - fi
1914 -
1915 - if use tools; then
1916 - emake -C "${S}"/nvidia-settings-${PV}/src/libXNVCtrl \
1917 - DO_STRIP= \
1918 - LIBDIR="$(get_libdir)" \
1919 - NVLD="$(tc-getLD)" \
1920 - NV_VERBOSE=1 \
1921 - OUTPUTDIR=. \
1922 - RANLIB="$(tc-getRANLIB)"
1923 -
1924 - emake -C "${S}"/nvidia-settings-${PV}/src \
1925 - DO_STRIP= \
1926 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
1927 - LIBDIR="$(get_libdir)" \
1928 - NVLD="$(tc-getLD)" \
1929 - NVML_ENABLED=0 \
1930 - NV_USE_BUNDLED_LIBJANSSON=0 \
1931 - NV_VERBOSE=1 \
1932 - OUTPUTDIR=.
1933 - fi
1934 -}
1935 -
1936 -# Install nvidia library:
1937 -# the first parameter is the library to install
1938 -# the second parameter is the provided soversion
1939 -# the third parameter is the target directory if it is not /usr/lib
1940 -donvidia() {
1941 - # Full path to library
1942 - nv_LIB="${1}"
1943 -
1944 - # SOVER to use
1945 - nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})"
1946 -
1947 - # Where to install
1948 - nv_DEST="${2}"
1949 -
1950 - # Get just the library name
1951 - nv_LIBNAME=$(basename "${nv_LIB}")
1952 -
1953 - if [[ "${nv_DEST}" ]]; then
1954 - exeinto ${nv_DEST}
1955 - action="doexe"
1956 - else
1957 - nv_DEST="/usr/$(get_libdir)"
1958 - action="dolib.so"
1959 - fi
1960 -
1961 - # Install the library
1962 - ${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}"
1963 -
1964 - # If the library has a SONAME and SONAME does not match the library name,
1965 - # then we need to create a symlink
1966 - if [[ ${nv_SOVER} ]] && ! [[ "${nv_SOVER}" = "${nv_LIBNAME}" ]]; then
1967 - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER}
1968 - fi
1969 -
1970 - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so}
1971 -}
1972 -
1973 -src_install() {
1974 - if use driver && use kernel_linux; then
1975 - linux-mod_src_install
1976 -
1977 - # Add the aliases
1978 - # This file is tweaked with the appropriate video group in
1979 - # pkg_preinst, see bug #491414
1980 - insinto /etc/modprobe.d
1981 - newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
1982 - if use uvm; then
1983 - doins "${FILESDIR}"/nvidia-rmmod.conf
1984 - udev_newrules "${FILESDIR}"/nvidia-uvm.udev-rule 99-nvidia-uvm.rules
1985 - else
1986 - sed -e 's|nvidia-uvm ||g' "${FILESDIR}"/nvidia-rmmod.conf \
1987 - > "${T}"/nvidia-rmmod.conf || die
1988 - doins "${T}"/nvidia-rmmod.conf
1989 - fi
1990 -
1991 - # Ensures that our device nodes are created when not using X
1992 - exeinto "$(get_udevdir)"
1993 - newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
1994 - udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
1995 - elif use kernel_FreeBSD; then
1996 - if use x86-fbsd; then
1997 - insinto /boot/modules
1998 - doins "${S}/src/nvidia.kld"
1999 - fi
2000 -
2001 - exeinto /boot/modules
2002 - doexe "${S}/src/nvidia.ko"
2003 - fi
2004 -
2005 - # NVIDIA kernel <-> userspace driver config lib
2006 - donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER}
2007 -
2008 - # NVIDIA framebuffer capture library
2009 - donvidia ${NV_OBJ}/libnvidia-fbc.so.${NV_SOVER}
2010 -
2011 - # NVIDIA video encode/decode <-> CUDA
2012 - if use kernel_linux; then
2013 - donvidia ${NV_OBJ}/libnvcuvid.so.${NV_SOVER}
2014 - donvidia ${NV_OBJ}/libnvidia-encode.so.${NV_SOVER}
2015 - fi
2016 -
2017 - if use X; then
2018 - # Xorg DDX driver
2019 - insinto /usr/$(get_libdir)/xorg/modules/drivers
2020 - doins ${NV_X11}/nvidia_drv.so
2021 -
2022 - # Xorg GLX driver
2023 - donvidia ${NV_X11}/libglxserver_nvidia.so.${NV_SOVER} \
2024 - /usr/$(get_libdir)/xorg/modules/extensions
2025 -
2026 - # Xorg nvidia.conf
2027 - if has_version '>=x11-base/xorg-server-1.16'; then
2028 - insinto /usr/share/X11/xorg.conf.d
2029 - newins {,50-}nvidia-drm-outputclass.conf
2030 - fi
2031 -
2032 - insinto /usr/share/glvnd/egl_vendor.d
2033 - doins ${NV_X11}/10_nvidia.json
2034 - fi
2035 -
2036 - if use wayland; then
2037 - insinto /usr/share/egl/egl_external_platform.d
2038 - doins ${NV_X11}/10_nvidia_wayland.json
2039 - fi
2040 -
2041 - # OpenCL ICD for NVIDIA
2042 - if use kernel_linux; then
2043 - insinto /etc/OpenCL/vendors
2044 - doins ${NV_OBJ}/nvidia.icd
2045 - fi
2046 -
2047 - # Helper Apps
2048 - exeinto /opt/bin/
2049 -
2050 - if use X; then
2051 - doexe ${NV_OBJ}/nvidia-xconfig
2052 -
2053 - insinto /etc/vulkan/icd.d
2054 - doins nvidia_icd.json
2055 - fi
2056 -
2057 - if use kernel_linux; then
2058 - doexe ${NV_OBJ}/nvidia-cuda-mps-control
2059 - doexe ${NV_OBJ}/nvidia-cuda-mps-server
2060 - doexe ${NV_OBJ}/nvidia-debugdump
2061 - doexe ${NV_OBJ}/nvidia-persistenced
2062 - doexe ${NV_OBJ}/nvidia-smi
2063 -
2064 - # install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
2065 - doexe ${NV_OBJ}/nvidia-modprobe
2066 - fowners root:video /opt/bin/nvidia-modprobe
2067 - fperms 4710 /opt/bin/nvidia-modprobe
2068 - dosym /{opt,usr}/bin/nvidia-modprobe
2069 -
2070 - doman nvidia-cuda-mps-control.1
2071 - doman nvidia-modprobe.1
2072 - doman nvidia-persistenced.1
2073 - newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
2074 - newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
2075 - newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
2076 - fi
2077 -
2078 - if use tools; then
2079 - emake -C "${S}"/nvidia-settings-${PV}/src/ \
2080 - DESTDIR="${D}" \
2081 - DO_STRIP= \
2082 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
2083 - LIBDIR="${D}/usr/$(get_libdir)" \
2084 - NV_USE_BUNDLED_LIBJANSSON=0 \
2085 - NV_VERBOSE=1 \
2086 - OUTPUTDIR=. \
2087 - PREFIX=/usr \
2088 - install
2089 -
2090 - if use static-libs; then
2091 - dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
2092 -
2093 - insinto /usr/include/NVCtrl
2094 - doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
2095 - fi
2096 -
2097 - insinto /usr/share/nvidia/
2098 - doins nvidia-application-profiles-${PV}-key-documentation
2099 -
2100 - insinto /etc/nvidia
2101 - newins \
2102 - nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
2103 -
2104 - # There is no icon in the FreeBSD tarball.
2105 - use kernel_FreeBSD || \
2106 - doicon ${NV_OBJ}/nvidia-settings.png
2107 -
2108 - domenu "${FILESDIR}"/nvidia-settings.desktop
2109 -
2110 - exeinto /etc/X11/xinit/xinitrc.d
2111 - newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
2112 - fi
2113 -
2114 - dobin ${NV_OBJ}/nvidia-bug-report.sh
2115 -
2116 - dobin nvidia-sleep.sh
2117 -
2118 - if has_multilib_profile && use multilib; then
2119 - local OABI=${ABI}
2120 - for ABI in $(get_install_abis); do
2121 - src_install-libs
2122 - done
2123 - ABI=${OABI}
2124 - unset OABI
2125 - else
2126 - src_install-libs
2127 - fi
2128 -
2129 - is_final_abi || die "failed to iterate through all ABIs"
2130 -
2131 - # Documentation
2132 - if use kernel_FreeBSD; then
2133 - dodoc "${NV_DOC}/README"
2134 - use X && doman "${NV_MAN}"/nvidia-xconfig.1
2135 - use tools && doman "${NV_MAN}"/nvidia-settings.1
2136 - else
2137 - # Docs
2138 - newdoc "${NV_DOC}/README.txt" README
2139 - dodoc "${NV_DOC}/NVIDIA_Changelog"
2140 - doman "${NV_MAN}"/nvidia-smi.1
2141 - use X && doman "${NV_MAN}"/nvidia-xconfig.1
2142 - use tools && doman "${NV_MAN}"/nvidia-settings.1
2143 - doman "${NV_MAN}"/nvidia-cuda-mps-control.1
2144 - fi
2145 -
2146 - readme.gentoo_create_doc
2147 -
2148 - docinto html
2149 - dodoc -r ${NV_DOC}/html/*
2150 -}
2151 -
2152 -src_install-libs() {
2153 - local inslibdir=$(get_libdir)
2154 - if use libglvnd; then
2155 - local GL_ROOT="/usr/$(get_libdir)"
2156 - else
2157 - local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
2158 - fi
2159 - local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
2160 - local nv_libdir="${NV_OBJ}"
2161 -
2162 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then
2163 - nv_libdir="${NV_OBJ}"/32
2164 - fi
2165 -
2166 - if use X; then
2167 - NV_GLX_LIBRARIES=(
2168 - "libEGL_nvidia.so.${NV_SOVER} ${GL_ROOT}"
2169 - "libGLESv1_CM_nvidia.so.${NV_SOVER} ${GL_ROOT}"
2170 - "libGLESv2_nvidia.so.${NV_SOVER} ${GL_ROOT}"
2171 - "libGLX_nvidia.so.${NV_SOVER} ${GL_ROOT}"
2172 - "libOpenCL.so.1.0.0 ${CL_ROOT}"
2173 - "libcuda.so.${NV_SOVER}"
2174 - "libnvcuvid.so.${NV_SOVER}"
2175 - "libnvidia-compiler.so.${NV_SOVER}"
2176 - "libnvidia-eglcore.so.${NV_SOVER}"
2177 - "libnvidia-encode.so.${NV_SOVER}"
2178 - "libnvidia-fatbinaryloader.so.${NV_SOVER}"
2179 - "libnvidia-fbc.so.${NV_SOVER}"
2180 - "libnvidia-glcore.so.${NV_SOVER}"
2181 - "libnvidia-glsi.so.${NV_SOVER}"
2182 - "libnvidia-glvkspirv.so.${NV_SOVER}"
2183 - "libnvidia-ifr.so.${NV_SOVER}"
2184 - "libnvidia-opencl.so.${NV_SOVER}"
2185 - "libnvidia-ptxjitcompiler.so.${NV_SOVER}"
2186 - "libvdpau_nvidia.so.${NV_SOVER}"
2187 - )
2188 - if ! use libglvnd; then
2189 - NV_GLX_LIBRARIES+=(
2190 - "libEGL.so.$( [[ ${ABI} == "amd64" ]] && usex compat ${NV_SOVER} 1.1.0 || echo 1.1.0) ${GL_ROOT}"
2191 - "libGL.so.1.7.0 ${GL_ROOT}"
2192 - "libGLESv1_CM.so.1.2.0 ${GL_ROOT}"
2193 - "libGLESv2.so.2.1.0 ${GL_ROOT}"
2194 - "libGLX.so.0 ${GL_ROOT}"
2195 - "libGLdispatch.so.0 ${GL_ROOT}"
2196 - "libOpenGL.so.0 ${GL_ROOT}"
2197 - )
2198 - fi
2199 -
2200 - if use wayland && has_multilib_profile && [[ ${ABI} == "amd64" ]];
2201 - then
2202 - NV_GLX_LIBRARIES+=(
2203 - "libnvidia-egl-wayland.so.1.1.3"
2204 - )
2205 - fi
2206 -
2207 - if use kernel_FreeBSD; then
2208 - NV_GLX_LIBRARIES+=(
2209 - "libnvidia-tls.so.${NV_SOVER}"
2210 - )
2211 - fi
2212 -
2213 - if use kernel_linux; then
2214 - NV_GLX_LIBRARIES+=(
2215 - "libnvidia-ml.so.${NV_SOVER}"
2216 - "libnvidia-tls.so.${NV_SOVER}"
2217 - )
2218 - fi
2219 -
2220 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
2221 - then
2222 - NV_GLX_LIBRARIES+=(
2223 - "libnvidia-cbl.so.${NV_SOVER}"
2224 - "libnvidia-rtcore.so.${NV_SOVER}"
2225 - "libnvoptix.so.${NV_SOVER}"
2226 - )
2227 - fi
2228 -
2229 - for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
2230 - donvidia "${nv_libdir}"/${NV_LIB}
2231 - done
2232 - fi
2233 -}
2234 -
2235 -pkg_preinst() {
2236 - if use driver && use kernel_linux; then
2237 - linux-mod_pkg_preinst
2238 -
2239 - local videogroup="$(getent group video | cut -d ':' -f 3)"
2240 - if [ -z "${videogroup}" ]; then
2241 - eerror "Failed to determine the video group gid"
2242 - die "Failed to determine the video group gid"
2243 - else
2244 - sed -i \
2245 - -e "s:PACKAGE:${PF}:g" \
2246 - -e "s:VIDEOGID:${videogroup}:" \
2247 - "${D}"/etc/modprobe.d/nvidia.conf || die
2248 - fi
2249 - fi
2250 -
2251 - # Clean the dynamic libGL stuff's home to ensure
2252 - # we dont have stale libs floating around
2253 - if [ -d "${ROOT}"/usr/lib/opengl/nvidia ]; then
2254 - rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
2255 - fi
2256 - # Make sure we nuke the old nvidia-glx's env.d file
2257 - if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
2258 - rm -f "${ROOT}"/etc/env.d/09nvidia
2259 - fi
2260 -}
2261 -
2262 -pkg_postinst() {
2263 - use driver && use kernel_linux && linux-mod_pkg_postinst
2264 -
2265 - # Switch to the nvidia implementation
2266 - if ! use libglvnd; then
2267 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
2268 - fi
2269 -
2270 - readme.gentoo_print_elog
2271 -
2272 - if ! use X; then
2273 - elog "You have elected to not install the X.org driver. Along with"
2274 - elog "this the OpenGL libraries and VDPAU libraries were not"
2275 - elog "installed. Additionally, once the driver is loaded your card"
2276 - elog "and fan will run at max speed which may not be desirable."
2277 - elog "Use the 'nvidia-smi' init script to have your card and fan"
2278 - elog "speed scale appropriately."
2279 - elog
2280 - fi
2281 - if ! use tools; then
2282 - elog "USE=tools controls whether the nvidia-settings application"
2283 - elog "is installed. If you would like to use it, enable that"
2284 - elog "flag and re-emerge this ebuild. Optionally you can install"
2285 - elog "media-video/nvidia-settings"
2286 - elog
2287 - fi
2288 -}
2289 -
2290 -pkg_prerm() {
2291 - if ! use libglvnd; then
2292 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
2293 - fi
2294 -}
2295 -
2296 -pkg_postrm() {
2297 - use driver && use kernel_linux && linux-mod_pkg_postrm
2298 - if ! use libglvnd; then
2299 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
2300 - fi
2301 -}
2302
2303 diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-440.82-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-440.82-r1.ebuild
2304 deleted file mode 100644
2305 index 37b1d1b678d..00000000000
2306 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-440.82-r1.ebuild
2307 +++ /dev/null
2308 @@ -1,579 +0,0 @@
2309 -# Copyright 1999-2020 Gentoo Authors
2310 -# Distributed under the terms of the GNU General Public License v2
2311 -
2312 -EAPI=7
2313 -inherit desktop flag-o-matic linux-info linux-mod multilib-minimal \
2314 - nvidia-driver portability toolchain-funcs unpacker udev
2315 -
2316 -DESCRIPTION="NVIDIA Accelerated Graphics Driver"
2317 -HOMEPAGE="https://www.nvidia.com/"
2318 -
2319 -AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
2320 -AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
2321 -ARM_NV_PACKAGE="NVIDIA-Linux-armv7l-gnueabihf-${PV}"
2322 -
2323 -NV_URI="https://us.download.nvidia.com/XFree86/"
2324 -SRC_URI="
2325 - amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
2326 - amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
2327 - tools? (
2328 - https://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2
2329 - )
2330 -"
2331 -
2332 -EMULTILIB_PKG="true"
2333 -KEYWORDS="-* ~amd64"
2334 -LICENSE="GPL-2 NVIDIA-r2"
2335 -SLOT="0/${PV%.*}"
2336 -
2337 -IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms +libglvnd multilib static-libs +tools uvm wayland +X"
2338 -REQUIRED_USE="
2339 - tools? ( X )
2340 - static-libs? ( tools )
2341 -"
2342 -
2343 -COMMON="
2344 - driver? ( kernel_linux? ( acct-group/video ) )
2345 - kernel_linux? ( >=sys-libs/glibc-2.6.1 )
2346 - tools? (
2347 - dev-libs/atk
2348 - dev-libs/glib:2
2349 - dev-libs/jansson
2350 - gtk3? (
2351 - x11-libs/gtk+:3
2352 - )
2353 - x11-libs/cairo
2354 - x11-libs/gdk-pixbuf[X]
2355 - x11-libs/gtk+:2
2356 - x11-libs/libX11
2357 - x11-libs/libXext
2358 - x11-libs/libXrandr
2359 - x11-libs/libXv
2360 - x11-libs/libXxf86vm
2361 - x11-libs/pango[X]
2362 - )
2363 - X? (
2364 - !libglvnd? ( >=app-eselect/eselect-opengl-1.0.9 )
2365 - libglvnd? (
2366 - media-libs/libglvnd[${MULTILIB_USEDEP}]
2367 - !app-eselect/eselect-opengl
2368 - )
2369 - app-misc/pax-utils
2370 - )
2371 -"
2372 -DEPEND="
2373 - ${COMMON}
2374 - kernel_linux? ( virtual/linux-sources )
2375 - tools? ( sys-apps/dbus )
2376 -"
2377 -RDEPEND="
2378 - ${COMMON}
2379 - acpi? ( sys-power/acpid )
2380 - tools? ( !media-video/nvidia-settings )
2381 - uvm? ( >=virtual/opencl-3 )
2382 - wayland? ( dev-libs/wayland[${MULTILIB_USEDEP}] )
2383 - X? (
2384 - <x11-base/xorg-server-1.20.99:=
2385 - >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
2386 - >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
2387 - >=x11-libs/libvdpau-1.0[${MULTILIB_USEDEP}]
2388 - sys-libs/zlib[${MULTILIB_USEDEP}]
2389 - )
2390 -"
2391 -QA_PREBUILT="opt/* usr/lib*"
2392 -S=${WORKDIR}/
2393 -PATCHES=(
2394 - "${FILESDIR}"/${PN}-440.26-locale.patch
2395 -)
2396 -NV_KV_MAX_PLUS="5.7"
2397 -CONFIG_CHECK="!DEBUG_MUTEXES ~!I2C_NVIDIA_GPU ~!LOCKDEP ~MTRR ~SYSVIPC ~ZONE_DMA"
2398 -
2399 -pkg_pretend() {
2400 - nvidia-driver_check
2401 -}
2402 -
2403 -pkg_setup() {
2404 - nvidia-driver_check
2405 -
2406 - # try to turn off distcc and ccache for people that have a problem with it
2407 - export DISTCC_DISABLE=1
2408 - export CCACHE_DISABLE=1
2409 -
2410 - if use driver && use kernel_linux; then
2411 - MODULE_NAMES="nvidia(video:${S}/kernel)"
2412 - use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
2413 - use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel) nvidia-drm(video:${S}/kernel)"
2414 -
2415 - # This needs to run after MODULE_NAMES (so that the eclass checks
2416 - # whether the kernel supports loadable modules) but before BUILD_PARAMS
2417 - # is set (so that KV_DIR is populated).
2418 - linux-mod_pkg_setup
2419 -
2420 - BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
2421 - SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
2422 -
2423 - # linux-mod_src_compile calls set_arch_to_kernel, which
2424 - # sets the ARCH to x86 but NVIDIA's wrapping Makefile
2425 - # expects x86_64 or i386 and then converts it to x86
2426 - # later on in the build process
2427 - BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
2428 - fi
2429 -
2430 - if use kernel_linux && kernel_is lt 2 6 9; then
2431 - eerror "You must build this against 2.6.9 or higher kernels."
2432 - fi
2433 -
2434 - # set variables to where files are in the package structure
2435 - if use kernel_FreeBSD; then
2436 - use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
2437 - NV_DOC="${S}/doc"
2438 - NV_OBJ="${S}/obj"
2439 - NV_SRC="${S}/src"
2440 - NV_MAN="${S}/x11/man"
2441 - NV_X11="${S}/obj"
2442 - NV_SOVER=1
2443 - elif use kernel_linux; then
2444 - NV_DOC="${S}"
2445 - NV_OBJ="${S}"
2446 - NV_SRC="${S}/kernel"
2447 - NV_MAN="${S}"
2448 - NV_X11="${S}"
2449 - NV_SOVER=${PV}
2450 - else
2451 - die "Could not determine proper NVIDIA package"
2452 - fi
2453 -}
2454 -
2455 -src_configure() {
2456 - tc-export AR CC LD
2457 -
2458 - default
2459 -}
2460 -
2461 -src_prepare() {
2462 - local man_file
2463 - for man_file in "${NV_MAN}"/*1.gz; do
2464 - gunzip $man_file || die
2465 - done
2466 -
2467 - if use tools; then
2468 - cp "${FILESDIR}"/nvidia-settings-fno-common.patch "${WORKDIR}" || die
2469 - cp "${FILESDIR}"/nvidia-settings-linker.patch "${WORKDIR}" || die
2470 - sed -i \
2471 - -e "s:@PV@:${PV}:g" \
2472 - "${WORKDIR}"/nvidia-settings-fno-common.patch \
2473 - "${WORKDIR}"/nvidia-settings-linker.patch \
2474 - || die
2475 - eapply "${WORKDIR}"/nvidia-settings-fno-common.patch
2476 - eapply "${WORKDIR}"/nvidia-settings-linker.patch
2477 - fi
2478 -
2479 - default
2480 -
2481 - if ! [ -f nvidia_icd.json ]; then
2482 - cp nvidia_icd.json.template nvidia_icd.json || die
2483 - sed -i -e 's:__NV_VK_ICD__:libGLX_nvidia.so.0:g' nvidia_icd.json || die
2484 - fi
2485 -}
2486 -
2487 -src_compile() {
2488 - cd "${NV_SRC}"
2489 - if use kernel_FreeBSD; then
2490 - MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
2491 - LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
2492 - elif use driver && use kernel_linux; then
2493 - BUILD_TARGETS=module linux-mod_src_compile \
2494 - KERNELRELEASE="${KV_FULL}" \
2495 - src="${KERNEL_DIR}"
2496 - fi
2497 -
2498 - if use tools; then
2499 - emake -C "${S}"/nvidia-settings-${PV}/src/libXNVCtrl \
2500 - DO_STRIP= \
2501 - LIBDIR="$(get_libdir)" \
2502 - NVLD="$(tc-getLD)" \
2503 - NV_VERBOSE=1 \
2504 - OUTPUTDIR=. \
2505 - RANLIB="$(tc-getRANLIB)"
2506 -
2507 - emake -C "${S}"/nvidia-settings-${PV}/src \
2508 - DO_STRIP= \
2509 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
2510 - LIBDIR="$(get_libdir)" \
2511 - NVLD="$(tc-getLD)" \
2512 - NVML_ENABLED=0 \
2513 - NV_USE_BUNDLED_LIBJANSSON=0 \
2514 - NV_VERBOSE=1 \
2515 - OUTPUTDIR=.
2516 - fi
2517 -}
2518 -
2519 -# Install nvidia library:
2520 -# the first parameter is the library to install
2521 -# the second parameter is the provided soversion
2522 -# the third parameter is the target directory if it is not /usr/lib
2523 -donvidia() {
2524 - # Full path to library
2525 - nv_LIB="${1}"
2526 -
2527 - # SOVER to use
2528 - nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})"
2529 -
2530 - # Where to install
2531 - nv_DEST="${2}"
2532 -
2533 - # Get just the library name
2534 - nv_LIBNAME=$(basename "${nv_LIB}")
2535 -
2536 - if [[ "${nv_DEST}" ]]; then
2537 - exeinto ${nv_DEST}
2538 - action="doexe"
2539 - else
2540 - nv_DEST="/usr/$(get_libdir)"
2541 - action="dolib.so"
2542 - fi
2543 -
2544 - # Install the library
2545 - ${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}"
2546 -
2547 - # If the library has a SONAME and SONAME does not match the library name,
2548 - # then we need to create a symlink
2549 - if [[ ${nv_SOVER} ]] && ! [[ "${nv_SOVER}" = "${nv_LIBNAME}" ]]; then
2550 - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER}
2551 - fi
2552 -
2553 - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so}
2554 -}
2555 -
2556 -src_install() {
2557 - if use driver && use kernel_linux; then
2558 - linux-mod_src_install
2559 -
2560 - # Add the aliases
2561 - # This file is tweaked with the appropriate video group in
2562 - # pkg_preinst, see bug #491414
2563 - insinto /etc/modprobe.d
2564 - newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
2565 - if use uvm; then
2566 - doins "${FILESDIR}"/nvidia-rmmod.conf
2567 - udev_newrules "${FILESDIR}"/nvidia-uvm.udev-rule 99-nvidia-uvm.rules
2568 - else
2569 - sed -e 's|nvidia-uvm ||g' "${FILESDIR}"/nvidia-rmmod.conf \
2570 - > "${T}"/nvidia-rmmod.conf || die
2571 - doins "${T}"/nvidia-rmmod.conf
2572 - fi
2573 -
2574 - # Ensures that our device nodes are created when not using X
2575 - exeinto "$(get_udevdir)"
2576 - newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
2577 - udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
2578 - elif use kernel_FreeBSD; then
2579 - if use x86-fbsd; then
2580 - insinto /boot/modules
2581 - doins "${S}/src/nvidia.kld"
2582 - fi
2583 -
2584 - exeinto /boot/modules
2585 - doexe "${S}/src/nvidia.ko"
2586 - fi
2587 -
2588 - # NVIDIA kernel <-> userspace driver config lib
2589 - donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER}
2590 -
2591 - # NVIDIA framebuffer capture library
2592 - donvidia ${NV_OBJ}/libnvidia-fbc.so.${NV_SOVER}
2593 -
2594 - # NVIDIA video encode/decode <-> CUDA
2595 - if use kernel_linux; then
2596 - donvidia ${NV_OBJ}/libnvcuvid.so.${NV_SOVER}
2597 - donvidia ${NV_OBJ}/libnvidia-encode.so.${NV_SOVER}
2598 - fi
2599 -
2600 - if use X; then
2601 - # Xorg DDX driver
2602 - insinto /usr/$(get_libdir)/xorg/modules/drivers
2603 - doins ${NV_X11}/nvidia_drv.so
2604 -
2605 - # Xorg GLX driver
2606 - donvidia ${NV_X11}/libglxserver_nvidia.so.${NV_SOVER} \
2607 - /usr/$(get_libdir)/xorg/modules/extensions
2608 -
2609 - # Xorg nvidia.conf
2610 - if has_version '>=x11-base/xorg-server-1.16'; then
2611 - insinto /usr/share/X11/xorg.conf.d
2612 - newins {,50-}nvidia-drm-outputclass.conf
2613 - fi
2614 -
2615 - insinto /usr/share/glvnd/egl_vendor.d
2616 - doins ${NV_X11}/10_nvidia.json
2617 - fi
2618 -
2619 - if use wayland; then
2620 - insinto /usr/share/egl/egl_external_platform.d
2621 - doins ${NV_X11}/10_nvidia_wayland.json
2622 - fi
2623 -
2624 - # OpenCL ICD for NVIDIA
2625 - if use kernel_linux; then
2626 - insinto /etc/OpenCL/vendors
2627 - doins ${NV_OBJ}/nvidia.icd
2628 - fi
2629 -
2630 - # Helper Apps
2631 - exeinto /opt/bin/
2632 -
2633 - if use X; then
2634 - doexe ${NV_OBJ}/nvidia-xconfig
2635 -
2636 - insinto /etc/vulkan/icd.d
2637 - doins nvidia_icd.json
2638 -
2639 - insinto /etc/vulkan/implicit_layer.d
2640 - doins nvidia_layers.json
2641 - fi
2642 -
2643 - if use kernel_linux; then
2644 - doexe ${NV_OBJ}/nvidia-cuda-mps-control
2645 - doexe ${NV_OBJ}/nvidia-cuda-mps-server
2646 - doexe ${NV_OBJ}/nvidia-debugdump
2647 - doexe ${NV_OBJ}/nvidia-persistenced
2648 - doexe ${NV_OBJ}/nvidia-smi
2649 -
2650 - # install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
2651 - doexe ${NV_OBJ}/nvidia-modprobe
2652 - fowners root:video /opt/bin/nvidia-modprobe
2653 - fperms 4710 /opt/bin/nvidia-modprobe
2654 - dosym /{opt,usr}/bin/nvidia-modprobe
2655 -
2656 - doman nvidia-cuda-mps-control.1
2657 - doman nvidia-modprobe.1
2658 - doman nvidia-persistenced.1
2659 - newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
2660 - newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
2661 - newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
2662 - fi
2663 -
2664 - if use tools; then
2665 - emake -C "${S}"/nvidia-settings-${PV}/src/ \
2666 - DESTDIR="${D}" \
2667 - DO_STRIP= \
2668 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
2669 - LIBDIR="${D}/usr/$(get_libdir)" \
2670 - NV_USE_BUNDLED_LIBJANSSON=0 \
2671 - NV_VERBOSE=1 \
2672 - OUTPUTDIR=. \
2673 - PREFIX=/usr \
2674 - install
2675 -
2676 - if use static-libs; then
2677 - dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
2678 -
2679 - insinto /usr/include/NVCtrl
2680 - doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
2681 - fi
2682 -
2683 - insinto /usr/share/nvidia/
2684 - doins nvidia-application-profiles-${PV}-key-documentation
2685 -
2686 - insinto /etc/nvidia
2687 - newins \
2688 - nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
2689 -
2690 - # There is no icon in the FreeBSD tarball.
2691 - use kernel_FreeBSD || \
2692 - doicon ${NV_OBJ}/nvidia-settings.png
2693 -
2694 - domenu "${FILESDIR}"/nvidia-settings.desktop
2695 -
2696 - exeinto /etc/X11/xinit/xinitrc.d
2697 - newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
2698 - fi
2699 -
2700 - dobin ${NV_OBJ}/nvidia-bug-report.sh
2701 -
2702 - dobin nvidia-sleep.sh
2703 -
2704 - if has_multilib_profile && use multilib; then
2705 - local OABI=${ABI}
2706 - for ABI in $(get_install_abis); do
2707 - src_install-libs
2708 - done
2709 - ABI=${OABI}
2710 - unset OABI
2711 - else
2712 - src_install-libs
2713 - fi
2714 -
2715 - is_final_abi || die "failed to iterate through all ABIs"
2716 -
2717 - # Documentation
2718 - if use kernel_FreeBSD; then
2719 - dodoc "${NV_DOC}/README"
2720 - use X && doman "${NV_MAN}"/nvidia-xconfig.1
2721 - use tools && doman "${NV_MAN}"/nvidia-settings.1
2722 - else
2723 - # Docs
2724 - newdoc "${NV_DOC}/README.txt" README
2725 - dodoc "${NV_DOC}/NVIDIA_Changelog"
2726 - doman "${NV_MAN}"/nvidia-smi.1
2727 - use X && doman "${NV_MAN}"/nvidia-xconfig.1
2728 - use tools && doman "${NV_MAN}"/nvidia-settings.1
2729 - doman "${NV_MAN}"/nvidia-cuda-mps-control.1
2730 - fi
2731 -
2732 - readme.gentoo_create_doc
2733 -
2734 - docinto html
2735 - dodoc -r ${NV_DOC}/html/*
2736 -}
2737 -
2738 -src_install-libs() {
2739 - local inslibdir=$(get_libdir)
2740 - if use libglvnd; then
2741 - local GL_ROOT="/usr/$(get_libdir)"
2742 - else
2743 - local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
2744 - fi
2745 - local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
2746 - local nv_libdir="${NV_OBJ}"
2747 -
2748 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then
2749 - nv_libdir="${NV_OBJ}"/32
2750 - fi
2751 -
2752 - if use X; then
2753 - NV_GLX_LIBRARIES=(
2754 - "libEGL_nvidia.so.${NV_SOVER} ${GL_ROOT}"
2755 - "libGLESv1_CM_nvidia.so.${NV_SOVER} ${GL_ROOT}"
2756 - "libGLESv2_nvidia.so.${NV_SOVER} ${GL_ROOT}"
2757 - "libGLX_nvidia.so.${NV_SOVER} ${GL_ROOT}"
2758 - "libOpenCL.so.1.0.0 ${CL_ROOT}"
2759 - "libcuda.so.${NV_SOVER}"
2760 - "libnvcuvid.so.${NV_SOVER}"
2761 - "libnvidia-compiler.so.${NV_SOVER}"
2762 - "libnvidia-eglcore.so.${NV_SOVER}"
2763 - "libnvidia-encode.so.${NV_SOVER}"
2764 - "libnvidia-fatbinaryloader.so.${NV_SOVER}"
2765 - "libnvidia-fbc.so.${NV_SOVER}"
2766 - "libnvidia-glcore.so.${NV_SOVER}"
2767 - "libnvidia-glsi.so.${NV_SOVER}"
2768 - "libnvidia-glvkspirv.so.${NV_SOVER}"
2769 - "libnvidia-ifr.so.${NV_SOVER}"
2770 - "libnvidia-opencl.so.${NV_SOVER}"
2771 - "libnvidia-ptxjitcompiler.so.${NV_SOVER}"
2772 - "libvdpau_nvidia.so.${NV_SOVER}"
2773 - )
2774 - if ! use libglvnd; then
2775 - NV_GLX_LIBRARIES+=(
2776 - "libEGL.so.$( [[ ${ABI} == "amd64" ]] && usex compat ${NV_SOVER} 1.1.0 || echo 1.1.0) ${GL_ROOT}"
2777 - "libGL.so.1.7.0 ${GL_ROOT}"
2778 - "libGLESv1_CM.so.1.2.0 ${GL_ROOT}"
2779 - "libGLESv2.so.2.1.0 ${GL_ROOT}"
2780 - "libGLX.so.0 ${GL_ROOT}"
2781 - "libGLdispatch.so.0 ${GL_ROOT}"
2782 - "libOpenGL.so.0 ${GL_ROOT}"
2783 - )
2784 - fi
2785 -
2786 - if use wayland && has_multilib_profile && [[ ${ABI} == "amd64" ]];
2787 - then
2788 - NV_GLX_LIBRARIES+=(
2789 - "libnvidia-egl-wayland.so.1.1.4"
2790 - )
2791 - fi
2792 -
2793 - if use kernel_FreeBSD; then
2794 - NV_GLX_LIBRARIES+=(
2795 - "libnvidia-tls.so.${NV_SOVER}"
2796 - )
2797 - fi
2798 -
2799 - if use kernel_linux; then
2800 - NV_GLX_LIBRARIES+=(
2801 - "libnvidia-ml.so.${NV_SOVER}"
2802 - "libnvidia-tls.so.${NV_SOVER}"
2803 - )
2804 - fi
2805 -
2806 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
2807 - then
2808 - NV_GLX_LIBRARIES+=(
2809 - "libnvidia-cbl.so.${NV_SOVER}"
2810 - "libnvidia-rtcore.so.${NV_SOVER}"
2811 - "libnvoptix.so.${NV_SOVER}"
2812 - )
2813 - fi
2814 -
2815 - for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
2816 - donvidia "${nv_libdir}"/${NV_LIB}
2817 - done
2818 - fi
2819 -}
2820 -
2821 -pkg_preinst() {
2822 - if use driver && use kernel_linux; then
2823 - linux-mod_pkg_preinst
2824 -
2825 - local videogroup="$(getent group video | cut -d ':' -f 3)"
2826 - if [ -z "${videogroup}" ]; then
2827 - eerror "Failed to determine the video group gid"
2828 - die "Failed to determine the video group gid"
2829 - else
2830 - sed -i \
2831 - -e "s:PACKAGE:${PF}:g" \
2832 - -e "s:VIDEOGID:${videogroup}:" \
2833 - "${D}"/etc/modprobe.d/nvidia.conf || die
2834 - fi
2835 - fi
2836 -
2837 - # Clean the dynamic libGL stuff's home to ensure
2838 - # we dont have stale libs floating around
2839 - if [ -d "${ROOT}"/usr/lib/opengl/nvidia ]; then
2840 - rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
2841 - fi
2842 - # Make sure we nuke the old nvidia-glx's env.d file
2843 - if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
2844 - rm -f "${ROOT}"/etc/env.d/09nvidia
2845 - fi
2846 -}
2847 -
2848 -pkg_postinst() {
2849 - use driver && use kernel_linux && linux-mod_pkg_postinst
2850 -
2851 - # Switch to the nvidia implementation
2852 - if ! use libglvnd; then
2853 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
2854 - fi
2855 -
2856 - readme.gentoo_print_elog
2857 -
2858 - if ! use X; then
2859 - elog "You have elected to not install the X.org driver. Along with"
2860 - elog "this the OpenGL libraries and VDPAU libraries were not"
2861 - elog "installed. Additionally, once the driver is loaded your card"
2862 - elog "and fan will run at max speed which may not be desirable."
2863 - elog "Use the 'nvidia-smi' init script to have your card and fan"
2864 - elog "speed scale appropriately."
2865 - elog
2866 - fi
2867 - if ! use tools; then
2868 - elog "USE=tools controls whether the nvidia-settings application"
2869 - elog "is installed. If you would like to use it, enable that"
2870 - elog "flag and re-emerge this ebuild. Optionally you can install"
2871 - elog "media-video/nvidia-settings"
2872 - elog
2873 - fi
2874 -}
2875 -
2876 -pkg_prerm() {
2877 - if ! use libglvnd; then
2878 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
2879 - fi
2880 -}
2881 -
2882 -pkg_postrm() {
2883 - use driver && use kernel_linux && linux-mod_pkg_postrm
2884 - if ! use libglvnd; then
2885 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
2886 - fi
2887 -}
2888
2889 diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-440.82.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-440.82.ebuild
2890 deleted file mode 100644
2891 index b3258ed2785..00000000000
2892 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-440.82.ebuild
2893 +++ /dev/null
2894 @@ -1,580 +0,0 @@
2895 -# Copyright 1999-2020 Gentoo Authors
2896 -# Distributed under the terms of the GNU General Public License v2
2897 -
2898 -EAPI=7
2899 -inherit desktop flag-o-matic linux-info linux-mod multilib-minimal \
2900 - nvidia-driver portability toolchain-funcs unpacker udev
2901 -
2902 -DESCRIPTION="NVIDIA Accelerated Graphics Driver"
2903 -HOMEPAGE="https://www.nvidia.com/"
2904 -
2905 -AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
2906 -AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
2907 -ARM_NV_PACKAGE="NVIDIA-Linux-armv7l-gnueabihf-${PV}"
2908 -
2909 -NV_URI="https://us.download.nvidia.com/XFree86/"
2910 -SRC_URI="
2911 - amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
2912 - amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
2913 - tools? (
2914 - https://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2
2915 - )
2916 -"
2917 -
2918 -EMULTILIB_PKG="true"
2919 -KEYWORDS="-* amd64"
2920 -LICENSE="GPL-2 NVIDIA-r2"
2921 -SLOT="0/${PV%.*}"
2922 -
2923 -IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms +libglvnd multilib static-libs +tools uvm wayland +X"
2924 -REQUIRED_USE="
2925 - tools? ( X )
2926 - static-libs? ( tools )
2927 -"
2928 -
2929 -COMMON="
2930 - app-eselect/eselect-opencl
2931 - driver? ( kernel_linux? ( acct-group/video ) )
2932 - kernel_linux? ( >=sys-libs/glibc-2.6.1 )
2933 - tools? (
2934 - dev-libs/atk
2935 - dev-libs/glib:2
2936 - dev-libs/jansson
2937 - gtk3? (
2938 - x11-libs/gtk+:3
2939 - )
2940 - x11-libs/cairo
2941 - x11-libs/gdk-pixbuf[X]
2942 - x11-libs/gtk+:2
2943 - x11-libs/libX11
2944 - x11-libs/libXext
2945 - x11-libs/libXrandr
2946 - x11-libs/libXv
2947 - x11-libs/libXxf86vm
2948 - x11-libs/pango[X]
2949 - )
2950 - X? (
2951 - !libglvnd? ( >=app-eselect/eselect-opengl-1.0.9 )
2952 - libglvnd? (
2953 - media-libs/libglvnd[${MULTILIB_USEDEP}]
2954 - !app-eselect/eselect-opengl
2955 - )
2956 - app-misc/pax-utils
2957 - )
2958 -"
2959 -DEPEND="
2960 - ${COMMON}
2961 - kernel_linux? ( virtual/linux-sources )
2962 - tools? ( sys-apps/dbus )
2963 -"
2964 -RDEPEND="
2965 - ${COMMON}
2966 - acpi? ( sys-power/acpid )
2967 - tools? ( !media-video/nvidia-settings )
2968 - wayland? ( dev-libs/wayland[${MULTILIB_USEDEP}] )
2969 - X? (
2970 - <x11-base/xorg-server-1.20.99:=
2971 - >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
2972 - >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
2973 - >=x11-libs/libvdpau-1.0[${MULTILIB_USEDEP}]
2974 - sys-libs/zlib[${MULTILIB_USEDEP}]
2975 - )
2976 -"
2977 -QA_PREBUILT="opt/* usr/lib*"
2978 -S=${WORKDIR}/
2979 -PATCHES=(
2980 - "${FILESDIR}"/${PN}-440.26-locale.patch
2981 -)
2982 -NV_KV_MAX_PLUS="5.7"
2983 -CONFIG_CHECK="!DEBUG_MUTEXES ~!I2C_NVIDIA_GPU ~!LOCKDEP ~MTRR ~SYSVIPC ~ZONE_DMA"
2984 -
2985 -pkg_pretend() {
2986 - nvidia-driver_check
2987 -}
2988 -
2989 -pkg_setup() {
2990 - nvidia-driver_check
2991 -
2992 - # try to turn off distcc and ccache for people that have a problem with it
2993 - export DISTCC_DISABLE=1
2994 - export CCACHE_DISABLE=1
2995 -
2996 - if use driver && use kernel_linux; then
2997 - MODULE_NAMES="nvidia(video:${S}/kernel)"
2998 - use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
2999 - use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel) nvidia-drm(video:${S}/kernel)"
3000 -
3001 - # This needs to run after MODULE_NAMES (so that the eclass checks
3002 - # whether the kernel supports loadable modules) but before BUILD_PARAMS
3003 - # is set (so that KV_DIR is populated).
3004 - linux-mod_pkg_setup
3005 -
3006 - BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
3007 - SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
3008 -
3009 - # linux-mod_src_compile calls set_arch_to_kernel, which
3010 - # sets the ARCH to x86 but NVIDIA's wrapping Makefile
3011 - # expects x86_64 or i386 and then converts it to x86
3012 - # later on in the build process
3013 - BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
3014 - fi
3015 -
3016 - if use kernel_linux && kernel_is lt 2 6 9; then
3017 - eerror "You must build this against 2.6.9 or higher kernels."
3018 - fi
3019 -
3020 - # set variables to where files are in the package structure
3021 - if use kernel_FreeBSD; then
3022 - use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
3023 - NV_DOC="${S}/doc"
3024 - NV_OBJ="${S}/obj"
3025 - NV_SRC="${S}/src"
3026 - NV_MAN="${S}/x11/man"
3027 - NV_X11="${S}/obj"
3028 - NV_SOVER=1
3029 - elif use kernel_linux; then
3030 - NV_DOC="${S}"
3031 - NV_OBJ="${S}"
3032 - NV_SRC="${S}/kernel"
3033 - NV_MAN="${S}"
3034 - NV_X11="${S}"
3035 - NV_SOVER=${PV}
3036 - else
3037 - die "Could not determine proper NVIDIA package"
3038 - fi
3039 -}
3040 -
3041 -src_configure() {
3042 - tc-export AR CC LD
3043 -
3044 - default
3045 -}
3046 -
3047 -src_prepare() {
3048 - local man_file
3049 - for man_file in "${NV_MAN}"/*1.gz; do
3050 - gunzip $man_file || die
3051 - done
3052 -
3053 - if use tools; then
3054 - cp "${FILESDIR}"/nvidia-settings-fno-common.patch "${WORKDIR}" || die
3055 - cp "${FILESDIR}"/nvidia-settings-linker.patch "${WORKDIR}" || die
3056 - sed -i \
3057 - -e "s:@PV@:${PV}:g" \
3058 - "${WORKDIR}"/nvidia-settings-fno-common.patch \
3059 - "${WORKDIR}"/nvidia-settings-linker.patch \
3060 - || die
3061 - eapply "${WORKDIR}"/nvidia-settings-fno-common.patch
3062 - eapply "${WORKDIR}"/nvidia-settings-linker.patch
3063 - fi
3064 -
3065 - default
3066 -
3067 - if ! [ -f nvidia_icd.json ]; then
3068 - cp nvidia_icd.json.template nvidia_icd.json || die
3069 - sed -i -e 's:__NV_VK_ICD__:libGLX_nvidia.so.0:g' nvidia_icd.json || die
3070 - fi
3071 -}
3072 -
3073 -src_compile() {
3074 - cd "${NV_SRC}"
3075 - if use kernel_FreeBSD; then
3076 - MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
3077 - LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
3078 - elif use driver && use kernel_linux; then
3079 - BUILD_TARGETS=module linux-mod_src_compile \
3080 - KERNELRELEASE="${KV_FULL}" \
3081 - src="${KERNEL_DIR}"
3082 - fi
3083 -
3084 - if use tools; then
3085 - emake -C "${S}"/nvidia-settings-${PV}/src/libXNVCtrl \
3086 - DO_STRIP= \
3087 - LIBDIR="$(get_libdir)" \
3088 - NVLD="$(tc-getLD)" \
3089 - NV_VERBOSE=1 \
3090 - OUTPUTDIR=. \
3091 - RANLIB="$(tc-getRANLIB)"
3092 -
3093 - emake -C "${S}"/nvidia-settings-${PV}/src \
3094 - DO_STRIP= \
3095 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
3096 - LIBDIR="$(get_libdir)" \
3097 - NVLD="$(tc-getLD)" \
3098 - NVML_ENABLED=0 \
3099 - NV_USE_BUNDLED_LIBJANSSON=0 \
3100 - NV_VERBOSE=1 \
3101 - OUTPUTDIR=.
3102 - fi
3103 -}
3104 -
3105 -# Install nvidia library:
3106 -# the first parameter is the library to install
3107 -# the second parameter is the provided soversion
3108 -# the third parameter is the target directory if it is not /usr/lib
3109 -donvidia() {
3110 - # Full path to library
3111 - nv_LIB="${1}"
3112 -
3113 - # SOVER to use
3114 - nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})"
3115 -
3116 - # Where to install
3117 - nv_DEST="${2}"
3118 -
3119 - # Get just the library name
3120 - nv_LIBNAME=$(basename "${nv_LIB}")
3121 -
3122 - if [[ "${nv_DEST}" ]]; then
3123 - exeinto ${nv_DEST}
3124 - action="doexe"
3125 - else
3126 - nv_DEST="/usr/$(get_libdir)"
3127 - action="dolib.so"
3128 - fi
3129 -
3130 - # Install the library
3131 - ${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}"
3132 -
3133 - # If the library has a SONAME and SONAME does not match the library name,
3134 - # then we need to create a symlink
3135 - if [[ ${nv_SOVER} ]] && ! [[ "${nv_SOVER}" = "${nv_LIBNAME}" ]]; then
3136 - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER}
3137 - fi
3138 -
3139 - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so}
3140 -}
3141 -
3142 -src_install() {
3143 - if use driver && use kernel_linux; then
3144 - linux-mod_src_install
3145 -
3146 - # Add the aliases
3147 - # This file is tweaked with the appropriate video group in
3148 - # pkg_preinst, see bug #491414
3149 - insinto /etc/modprobe.d
3150 - newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
3151 - if use uvm; then
3152 - doins "${FILESDIR}"/nvidia-rmmod.conf
3153 - udev_newrules "${FILESDIR}"/nvidia-uvm.udev-rule 99-nvidia-uvm.rules
3154 - else
3155 - sed -e 's|nvidia-uvm ||g' "${FILESDIR}"/nvidia-rmmod.conf \
3156 - > "${T}"/nvidia-rmmod.conf || die
3157 - doins "${T}"/nvidia-rmmod.conf
3158 - fi
3159 -
3160 - # Ensures that our device nodes are created when not using X
3161 - exeinto "$(get_udevdir)"
3162 - newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
3163 - udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
3164 - elif use kernel_FreeBSD; then
3165 - if use x86-fbsd; then
3166 - insinto /boot/modules
3167 - doins "${S}/src/nvidia.kld"
3168 - fi
3169 -
3170 - exeinto /boot/modules
3171 - doexe "${S}/src/nvidia.ko"
3172 - fi
3173 -
3174 - # NVIDIA kernel <-> userspace driver config lib
3175 - donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER}
3176 -
3177 - # NVIDIA framebuffer capture library
3178 - donvidia ${NV_OBJ}/libnvidia-fbc.so.${NV_SOVER}
3179 -
3180 - # NVIDIA video encode/decode <-> CUDA
3181 - if use kernel_linux; then
3182 - donvidia ${NV_OBJ}/libnvcuvid.so.${NV_SOVER}
3183 - donvidia ${NV_OBJ}/libnvidia-encode.so.${NV_SOVER}
3184 - fi
3185 -
3186 - if use X; then
3187 - # Xorg DDX driver
3188 - insinto /usr/$(get_libdir)/xorg/modules/drivers
3189 - doins ${NV_X11}/nvidia_drv.so
3190 -
3191 - # Xorg GLX driver
3192 - donvidia ${NV_X11}/libglxserver_nvidia.so.${NV_SOVER} \
3193 - /usr/$(get_libdir)/xorg/modules/extensions
3194 -
3195 - # Xorg nvidia.conf
3196 - if has_version '>=x11-base/xorg-server-1.16'; then
3197 - insinto /usr/share/X11/xorg.conf.d
3198 - newins {,50-}nvidia-drm-outputclass.conf
3199 - fi
3200 -
3201 - insinto /usr/share/glvnd/egl_vendor.d
3202 - doins ${NV_X11}/10_nvidia.json
3203 - fi
3204 -
3205 - if use wayland; then
3206 - insinto /usr/share/egl/egl_external_platform.d
3207 - doins ${NV_X11}/10_nvidia_wayland.json
3208 - fi
3209 -
3210 - # OpenCL ICD for NVIDIA
3211 - if use kernel_linux; then
3212 - insinto /etc/OpenCL/vendors
3213 - doins ${NV_OBJ}/nvidia.icd
3214 - fi
3215 -
3216 - # Helper Apps
3217 - exeinto /opt/bin/
3218 -
3219 - if use X; then
3220 - doexe ${NV_OBJ}/nvidia-xconfig
3221 -
3222 - insinto /etc/vulkan/icd.d
3223 - doins nvidia_icd.json
3224 -
3225 - insinto /etc/vulkan/implicit_layer.d
3226 - doins nvidia_layers.json
3227 - fi
3228 -
3229 - if use kernel_linux; then
3230 - doexe ${NV_OBJ}/nvidia-cuda-mps-control
3231 - doexe ${NV_OBJ}/nvidia-cuda-mps-server
3232 - doexe ${NV_OBJ}/nvidia-debugdump
3233 - doexe ${NV_OBJ}/nvidia-persistenced
3234 - doexe ${NV_OBJ}/nvidia-smi
3235 -
3236 - # install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
3237 - doexe ${NV_OBJ}/nvidia-modprobe
3238 - fowners root:video /opt/bin/nvidia-modprobe
3239 - fperms 4710 /opt/bin/nvidia-modprobe
3240 - dosym /{opt,usr}/bin/nvidia-modprobe
3241 -
3242 - doman nvidia-cuda-mps-control.1
3243 - doman nvidia-modprobe.1
3244 - doman nvidia-persistenced.1
3245 - newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
3246 - newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
3247 - newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
3248 - fi
3249 -
3250 - if use tools; then
3251 - emake -C "${S}"/nvidia-settings-${PV}/src/ \
3252 - DESTDIR="${D}" \
3253 - DO_STRIP= \
3254 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
3255 - LIBDIR="${D}/usr/$(get_libdir)" \
3256 - NV_USE_BUNDLED_LIBJANSSON=0 \
3257 - NV_VERBOSE=1 \
3258 - OUTPUTDIR=. \
3259 - PREFIX=/usr \
3260 - install
3261 -
3262 - if use static-libs; then
3263 - dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
3264 -
3265 - insinto /usr/include/NVCtrl
3266 - doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
3267 - fi
3268 -
3269 - insinto /usr/share/nvidia/
3270 - doins nvidia-application-profiles-${PV}-key-documentation
3271 -
3272 - insinto /etc/nvidia
3273 - newins \
3274 - nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
3275 -
3276 - # There is no icon in the FreeBSD tarball.
3277 - use kernel_FreeBSD || \
3278 - doicon ${NV_OBJ}/nvidia-settings.png
3279 -
3280 - domenu "${FILESDIR}"/nvidia-settings.desktop
3281 -
3282 - exeinto /etc/X11/xinit/xinitrc.d
3283 - newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
3284 - fi
3285 -
3286 - dobin ${NV_OBJ}/nvidia-bug-report.sh
3287 -
3288 - dobin nvidia-sleep.sh
3289 -
3290 - if has_multilib_profile && use multilib; then
3291 - local OABI=${ABI}
3292 - for ABI in $(get_install_abis); do
3293 - src_install-libs
3294 - done
3295 - ABI=${OABI}
3296 - unset OABI
3297 - else
3298 - src_install-libs
3299 - fi
3300 -
3301 - is_final_abi || die "failed to iterate through all ABIs"
3302 -
3303 - # Documentation
3304 - if use kernel_FreeBSD; then
3305 - dodoc "${NV_DOC}/README"
3306 - use X && doman "${NV_MAN}"/nvidia-xconfig.1
3307 - use tools && doman "${NV_MAN}"/nvidia-settings.1
3308 - else
3309 - # Docs
3310 - newdoc "${NV_DOC}/README.txt" README
3311 - dodoc "${NV_DOC}/NVIDIA_Changelog"
3312 - doman "${NV_MAN}"/nvidia-smi.1
3313 - use X && doman "${NV_MAN}"/nvidia-xconfig.1
3314 - use tools && doman "${NV_MAN}"/nvidia-settings.1
3315 - doman "${NV_MAN}"/nvidia-cuda-mps-control.1
3316 - fi
3317 -
3318 - readme.gentoo_create_doc
3319 -
3320 - docinto html
3321 - dodoc -r ${NV_DOC}/html/*
3322 -}
3323 -
3324 -src_install-libs() {
3325 - local inslibdir=$(get_libdir)
3326 - if use libglvnd; then
3327 - local GL_ROOT="/usr/$(get_libdir)"
3328 - else
3329 - local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
3330 - fi
3331 - local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
3332 - local nv_libdir="${NV_OBJ}"
3333 -
3334 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then
3335 - nv_libdir="${NV_OBJ}"/32
3336 - fi
3337 -
3338 - if use X; then
3339 - NV_GLX_LIBRARIES=(
3340 - "libEGL_nvidia.so.${NV_SOVER} ${GL_ROOT}"
3341 - "libGLESv1_CM_nvidia.so.${NV_SOVER} ${GL_ROOT}"
3342 - "libGLESv2_nvidia.so.${NV_SOVER} ${GL_ROOT}"
3343 - "libGLX_nvidia.so.${NV_SOVER} ${GL_ROOT}"
3344 - "libOpenCL.so.1.0.0 ${CL_ROOT}"
3345 - "libcuda.so.${NV_SOVER}"
3346 - "libnvcuvid.so.${NV_SOVER}"
3347 - "libnvidia-compiler.so.${NV_SOVER}"
3348 - "libnvidia-eglcore.so.${NV_SOVER}"
3349 - "libnvidia-encode.so.${NV_SOVER}"
3350 - "libnvidia-fatbinaryloader.so.${NV_SOVER}"
3351 - "libnvidia-fbc.so.${NV_SOVER}"
3352 - "libnvidia-glcore.so.${NV_SOVER}"
3353 - "libnvidia-glsi.so.${NV_SOVER}"
3354 - "libnvidia-glvkspirv.so.${NV_SOVER}"
3355 - "libnvidia-ifr.so.${NV_SOVER}"
3356 - "libnvidia-opencl.so.${NV_SOVER}"
3357 - "libnvidia-ptxjitcompiler.so.${NV_SOVER}"
3358 - "libvdpau_nvidia.so.${NV_SOVER}"
3359 - )
3360 - if ! use libglvnd; then
3361 - NV_GLX_LIBRARIES+=(
3362 - "libEGL.so.$( [[ ${ABI} == "amd64" ]] && usex compat ${NV_SOVER} 1.1.0 || echo 1.1.0) ${GL_ROOT}"
3363 - "libGL.so.1.7.0 ${GL_ROOT}"
3364 - "libGLESv1_CM.so.1.2.0 ${GL_ROOT}"
3365 - "libGLESv2.so.2.1.0 ${GL_ROOT}"
3366 - "libGLX.so.0 ${GL_ROOT}"
3367 - "libGLdispatch.so.0 ${GL_ROOT}"
3368 - "libOpenGL.so.0 ${GL_ROOT}"
3369 - )
3370 - fi
3371 -
3372 - if use wayland && has_multilib_profile && [[ ${ABI} == "amd64" ]];
3373 - then
3374 - NV_GLX_LIBRARIES+=(
3375 - "libnvidia-egl-wayland.so.1.1.4"
3376 - )
3377 - fi
3378 -
3379 - if use kernel_FreeBSD; then
3380 - NV_GLX_LIBRARIES+=(
3381 - "libnvidia-tls.so.${NV_SOVER}"
3382 - )
3383 - fi
3384 -
3385 - if use kernel_linux; then
3386 - NV_GLX_LIBRARIES+=(
3387 - "libnvidia-ml.so.${NV_SOVER}"
3388 - "libnvidia-tls.so.${NV_SOVER}"
3389 - )
3390 - fi
3391 -
3392 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
3393 - then
3394 - NV_GLX_LIBRARIES+=(
3395 - "libnvidia-cbl.so.${NV_SOVER}"
3396 - "libnvidia-rtcore.so.${NV_SOVER}"
3397 - "libnvoptix.so.${NV_SOVER}"
3398 - )
3399 - fi
3400 -
3401 - for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
3402 - donvidia "${nv_libdir}"/${NV_LIB}
3403 - done
3404 - fi
3405 -}
3406 -
3407 -pkg_preinst() {
3408 - if use driver && use kernel_linux; then
3409 - linux-mod_pkg_preinst
3410 -
3411 - local videogroup="$(getent group video | cut -d ':' -f 3)"
3412 - if [ -z "${videogroup}" ]; then
3413 - eerror "Failed to determine the video group gid"
3414 - die "Failed to determine the video group gid"
3415 - else
3416 - sed -i \
3417 - -e "s:PACKAGE:${PF}:g" \
3418 - -e "s:VIDEOGID:${videogroup}:" \
3419 - "${D}"/etc/modprobe.d/nvidia.conf || die
3420 - fi
3421 - fi
3422 -
3423 - # Clean the dynamic libGL stuff's home to ensure
3424 - # we dont have stale libs floating around
3425 - if [ -d "${ROOT}"/usr/lib/opengl/nvidia ]; then
3426 - rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
3427 - fi
3428 - # Make sure we nuke the old nvidia-glx's env.d file
3429 - if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
3430 - rm -f "${ROOT}"/etc/env.d/09nvidia
3431 - fi
3432 -}
3433 -
3434 -pkg_postinst() {
3435 - use driver && use kernel_linux && linux-mod_pkg_postinst
3436 -
3437 - # Switch to the nvidia implementation
3438 - if ! use libglvnd; then
3439 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
3440 - fi
3441 - "${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
3442 -
3443 - readme.gentoo_print_elog
3444 -
3445 - if ! use X; then
3446 - elog "You have elected to not install the X.org driver. Along with"
3447 - elog "this the OpenGL libraries and VDPAU libraries were not"
3448 - elog "installed. Additionally, once the driver is loaded your card"
3449 - elog "and fan will run at max speed which may not be desirable."
3450 - elog "Use the 'nvidia-smi' init script to have your card and fan"
3451 - elog "speed scale appropriately."
3452 - elog
3453 - fi
3454 - if ! use tools; then
3455 - elog "USE=tools controls whether the nvidia-settings application"
3456 - elog "is installed. If you would like to use it, enable that"
3457 - elog "flag and re-emerge this ebuild. Optionally you can install"
3458 - elog "media-video/nvidia-settings"
3459 - elog
3460 - fi
3461 -}
3462 -
3463 -pkg_prerm() {
3464 - if ! use libglvnd; then
3465 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
3466 - fi
3467 -}
3468 -
3469 -pkg_postrm() {
3470 - use driver && use kernel_linux && linux-mod_pkg_postrm
3471 - if ! use libglvnd; then
3472 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
3473 - fi
3474 -}