7 |
7 |
inherit desktop flag-o-matic linux-mod-r1 multilib readme.gentoo-r1
|
8 |
8 |
inherit systemd toolchain-funcs unpacker user-info
|
9 |
9 |
|
10 |
|
MODULES_KERNEL_MAX=6.4
|
11 |
|
NV_URI="https://download.nvidia.com/XFree86/"
|
|
10 |
MODULES_KERNEL_MAX=6.5
|
|
11 |
NV_PIN=535.113.01
|
12 |
12 |
|
13 |
13 |
DESCRIPTION="NVIDIA Accelerated Graphics Driver"
|
14 |
|
HOMEPAGE="https://www.nvidia.com/download/index.aspx"
|
|
14 |
HOMEPAGE="https://developer.nvidia.com/vulkan-driver"
|
15 |
15 |
SRC_URI="
|
16 |
|
amd64? ( ${NV_URI}Linux-x86_64/${PV}/NVIDIA-Linux-x86_64-${PV}.run )
|
17 |
|
arm64? ( ${NV_URI}Linux-aarch64/${PV}/NVIDIA-Linux-aarch64-${PV}.run )
|
18 |
|
$(printf "${NV_URI}%s/%s-${PV}.tar.bz2 " \
|
|
16 |
https://developer.nvidia.com/downloads/vulkan-beta-${PV//.}-linux
|
|
17 |
-> NVIDIA-Linux-x86_64-${PV}.run
|
|
18 |
$(printf "https://download.nvidia.com/XFree86/%s/%s-${NV_PIN}.tar.bz2 " \
|
19 |
19 |
nvidia-{installer,modprobe,persistenced,settings,xconfig}{,})
|
20 |
|
${NV_URI}NVIDIA-kernel-module-source/NVIDIA-kernel-module-source-${PV}.tar.xz"
|
|
20 |
https://github.com/NVIDIA/open-gpu-kernel-modules/archive/refs/tags/${PV}.tar.gz
|
|
21 |
-> open-gpu-kernel-modules-${PV}.tar.gz"
|
21 |
22 |
# nvidia-installer is unused but here for GPL-2's "distribute sources"
|
22 |
23 |
S="${WORKDIR}"
|
23 |
24 |
|
24 |
|
LICENSE="NVIDIA-r2 BSD BSD-2 GPL-2 MIT ZLIB curl openssl"
|
25 |
|
SLOT="0/${PV%%.*}"
|
26 |
|
KEYWORDS="-* amd64 ~arm64"
|
|
25 |
LICENSE="NVIDIA-r2 Apache-2.0 BSD BSD-2 GPL-2 MIT ZLIB curl openssl"
|
|
26 |
SLOT="0/vulkan"
|
|
27 |
KEYWORDS="-* ~amd64"
|
27 |
28 |
IUSE="+X abi_x86_32 abi_x86_64 kernel-open persistenced +static-libs +tools wayland"
|
28 |
29 |
REQUIRED_USE="kernel-open? ( modules )"
|
29 |
30 |
|
30 |
31 |
COMMON_DEPEND="
|
31 |
32 |
acct-group/video
|
|
33 |
sys-libs/glibc
|
|
34 |
dev-libs/openssl:0/3
|
32 |
35 |
X? ( x11-libs/libpciaccess )
|
33 |
36 |
persistenced? (
|
34 |
37 |
acct-user/nvpd
|
... | ... | |
49 |
52 |
)"
|
50 |
53 |
RDEPEND="
|
51 |
54 |
${COMMON_DEPEND}
|
|
55 |
dev-libs/openssl:0/3
|
52 |
56 |
sys-libs/glibc
|
53 |
57 |
X? (
|
54 |
58 |
media-libs/libglvnd[X,abi_x86_32(-)?]
|
... | ... | |
81 |
85 |
QA_PREBUILT="lib/firmware/* opt/bin/* usr/lib*"
|
82 |
86 |
|
83 |
87 |
PATCHES=(
|
84 |
|
"${FILESDIR}"/nvidia-drivers-525.116.04-clang-unused-option.patch
|
85 |
88 |
"${FILESDIR}"/nvidia-kernel-module-source-515.86.01-raw-ldflags.patch
|
86 |
89 |
"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
|
87 |
|
"${FILESDIR}"/nvidia-settings-390.144-desktop.patch
|
88 |
90 |
"${FILESDIR}"/nvidia-settings-390.144-raw-ldflags.patch
|
|
91 |
"${FILESDIR}"/nvidia-settings-530.30.02-desktop.patch
|
89 |
92 |
)
|
90 |
93 |
|
91 |
94 |
pkg_setup() {
|
... | ... | |
123 |
126 |
|
124 |
127 |
src_prepare() {
|
125 |
128 |
# make patches usable across versions
|
126 |
|
rm nvidia-modprobe && mv nvidia-modprobe{-${PV},} || die
|
127 |
|
rm nvidia-persistenced && mv nvidia-persistenced{-${PV},} || die
|
128 |
|
rm nvidia-settings && mv nvidia-settings{-${PV},} || die
|
129 |
|
rm nvidia-xconfig && mv nvidia-xconfig{-${PV},} || die
|
130 |
|
mv NVIDIA-kernel-module-source-${PV} kernel-module-source || die
|
|
129 |
rm nvidia-modprobe && mv nvidia-modprobe{-${NV_PIN},} || die
|
|
130 |
rm nvidia-persistenced && mv nvidia-persistenced{-${NV_PIN},} || die
|
|
131 |
rm nvidia-settings && mv nvidia-settings{-${NV_PIN},} || die
|
|
132 |
rm nvidia-xconfig && mv nvidia-xconfig{-${NV_PIN},} || die
|
|
133 |
mv open-gpu-kernel-modules-${PV} kernel-module-source || die
|
131 |
134 |
|
132 |
135 |
default
|
133 |
136 |
|
... | ... | |
233 |
236 |
[FIRMWARE]=/lib/firmware/nvidia/${PV}
|
234 |
237 |
[GBM_BACKEND_LIB_SYMLINK]=/usr/${libdir}/gbm
|
235 |
238 |
[GLVND_EGL_ICD_JSON]=/usr/share/glvnd/egl_vendor.d
|
|
239 |
[OPENGL_DATA]=/usr/share/nvidia
|
236 |
240 |
[VULKAN_ICD_JSON]=/usr/share/vulkan
|
237 |
241 |
[WINE_LIB]=/usr/${libdir}/nvidia/wine
|
238 |
242 |
[XORG_OUTPUTCLASS_CONFIG]=/usr/share/X11/xorg.conf.d
|
... | ... | |
249 |
253 |
libnvidia-{gtk,wayland-client} nvidia-{settings,xconfig} # from source
|
250 |
254 |
libnvidia-egl-gbm 15_nvidia_gbm # gui-libs/egl-gbm
|
251 |
255 |
libnvidia-egl-wayland 10_nvidia_wayland # gui-libs/egl-wayland
|
|
256 |
libnvidia-pkcs11.so # using the openssl3 version instead
|
252 |
257 |
)
|
253 |
258 |
local skip_modules=(
|
254 |
259 |
$(usev !X "nvfbc vdpau xdriver")
|
... | ... | |
358 |
363 |
|
359 |
364 |
if [[ -v 'paths[${m[2]}]' ]]; then
|
360 |
365 |
into=${paths[${m[2]}]}
|
|
366 |
elif [[ ${m[2]} == EXPLICIT_PATH ]]; then
|
|
367 |
into=${m[3]}
|
361 |
368 |
elif [[ ${m[2]} == *_BINARY ]]; then
|
362 |
369 |
into=/opt/bin
|
363 |
370 |
elif [[ ${m[3]} == COMPAT32 ]]; then
|