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: Mon, 07 Jan 2019 22:44:50
Message-Id: 1546901080.572eadbcadcdca9caa3b18e225ca4763cd1be910.jer@gentoo
1 commit: 572eadbcadcdca9caa3b18e225ca4763cd1be910
2 Author: Jeroen Roovers <jer <AT> gentoo <DOT> org>
3 AuthorDate: Mon Jan 7 22:44:10 2019 +0000
4 Commit: Jeroen Roovers <jer <AT> gentoo <DOT> org>
5 CommitDate: Mon Jan 7 22:44:40 2019 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=572eadbc
7
8 x11-drivers/nvidia-drivers: Old
9
10 Package-Manager: Portage-2.3.53, Repoman-2.3.12
11 Signed-off-by: Jeroen Roovers <jer <AT> gentoo.org>
12
13 x11-drivers/nvidia-drivers/Manifest | 6 -
14 .../nvidia-drivers/nvidia-drivers-415.18.ebuild | 592 ---------------------
15 .../nvidia-drivers/nvidia-drivers-415.23.ebuild | 592 ---------------------
16 3 files changed, 1190 deletions(-)
17
18 diff --git a/x11-drivers/nvidia-drivers/Manifest b/x11-drivers/nvidia-drivers/Manifest
19 index 7611eaeecee..e168b660eda 100644
20 --- a/x11-drivers/nvidia-drivers/Manifest
21 +++ b/x11-drivers/nvidia-drivers/Manifest
22 @@ -17,8 +17,6 @@ DIST NVIDIA-FreeBSD-x86_64-390.87.tar.gz 63648591 BLAKE2B 88aa38b11b64b2ad91f723
23 DIST NVIDIA-FreeBSD-x86_64-396.54.tar.gz 60938322 BLAKE2B a23488b625a15703b0c40bc6871314b05d117d489f64a6f7c70ac3c934b02028b9623be10f0369c98c7d3b5e018e1eb6f1d2cde9d9e1b90be5065f06f6a646dd SHA512 52df85364bfd45a23394078855859ce85de996f7990bb96ba63eb33e516c3cf8e72c4391af9817213f735286f2cf6444bc8ed00312365f12ae17373cfbdc3fc7
24 DIST NVIDIA-FreeBSD-x86_64-410.78.tar.gz 61935486 BLAKE2B 3bc85aacd0775b600c37cd285de49fe3d35bba04fd8d3db1ec75f1fdfbd93a9d5b3d34b67e6fd82b5056bff875ccbc44cd2f06fed9b66703b26057c85f750867 SHA512 30488f9e5e6a377a478c49f13d648fba77ac910f43c3e561ce7715380480ac8b3860fecfb5b745beefadb6abe0b4c4135684c468a69c5b71b56cd463698b931a
25 DIST NVIDIA-FreeBSD-x86_64-410.93.tar.gz 61977979 BLAKE2B a662fa13866cfb36ef61a0b9dd459519e26ea93a6ad6ae7bf34075fae8e7622a91707d88cec8de0660513cb959c3596e8b6169357891c83e847870ecffd72928 SHA512 ecdd5270f9d5f32117d83cd3e3cf0376f0b37c748fe164e702c4230d225c6b28bdbbea4334555b6928d05f1a7cfaf87caf20dd2e7e06e1259c526f6bd50e4d0e
26 -DIST NVIDIA-FreeBSD-x86_64-415.18.tar.gz 62328268 BLAKE2B 03b53907ba8eed8751b9270e472b05f21e3865a560a7c4b89b16df0d1981f8ee955d26f42ab51ff538898218caa32745ece0cfa562b8325ad29f866205ab0a68 SHA512 9a80f6e15f57d756f0286db5cbb1c520f6c7553368cdc26d9f062e1f5cd1c6080bf3934b3fd55cdc0b67702be8188dcd177f7aec80697ff978ebc90a6dccbb30
27 -DIST NVIDIA-FreeBSD-x86_64-415.23.tar.gz 62373237 BLAKE2B b18e96cf7fd2894a153ccb0e34b889d9658185ee0f1930f52f2d2f6555a1cf3d926002afe75a1f03c181fb22dbf08a83aa27fafdd973f0f1780435ea4599b56b SHA512 c40835b89390b4d14977ef4c7d4740798c5ff73a3aee849f13f479c52c30a810869fba16b8f1719021e2367d83dbbe74296775877148ee96fde8822995e97b28
28 DIST NVIDIA-FreeBSD-x86_64-415.25.tar.gz 62373961 BLAKE2B 4c1ce36ad31933efdb7b9b3a5a530439cadb50c6ee29c0689a521308fbc213266a761765998c44643fd8511159ae96387a3a278accc4a0d00322b06b9b327232 SHA512 792f0cfafb1d6b2137db62c3a5a7e76217d89c3b18cee92ec8317d6c583fdc9676aa46efd55bc795aeaaf1532501f7b40d1d9609d782ffe63e55bb37d0d6db14
29 DIST NVIDIA-Linux-armv7l-gnueabihf-375.82.run 26650801 BLAKE2B 31446667065c56b48f6a3e737afe29a4517459d3462138136bffe383bc6fe514d6e80b49c391c27edc96b8abc3da3dd4d6ee3f3dca17f3c9a0f1cdf0e72cf099 SHA512 28554f1c24fe63c9257c0de3e84e4e739a45bf1c20ec7a53bc2c1b69b4e2355675061491ef5b03f3ae489cf623e553cfa68442f5536f137837327036d1c53d63
30 DIST NVIDIA-Linux-armv7l-gnueabihf-378.13.run 26514235 BLAKE2B 2b3c540704496a290be7ae3f1ff378487c75af2298c12488da8b3a1814446e5df02a1ed99afd8ee7fc459d950aab472155359eae0bf56ac83389711d70638152 SHA512 253786a821df85fa926ae842114321b3c70502f887ea7c2b6790dfe3836039ee5d390e6722ca8785904ec6487e465916923d3042dc6191b3b4522c3161b80cb0
31 @@ -45,8 +43,6 @@ DIST NVIDIA-Linux-x86_64-390.87.run 82690871 BLAKE2B b43a45a7d48160a72185417360a
32 DIST NVIDIA-Linux-x86_64-396.54.run 86946680 BLAKE2B 9b3ab39c9d09c663238d0fac6346c24feea6ecc44b0ecaf3de871522697685c1c474ec4cc83f3bab0a2bcfecc7c77acea0e6bfee6e8ca8e6883bd338fd6da8a2 SHA512 17139abe99d4f32ec87379ee57af2cc0fec7d24605b2be7e3cd6609d9fcdf871e3c1cb7414b3544e14eb32d2213fec7ac45b3261f27c8d6565d510ccb14a1247
33 DIST NVIDIA-Linux-x86_64-410.78.run 107944209 BLAKE2B f493efb4b61716ae1f7ac760d57b330e0160e8cd7a90e80dd00744c2277d0c8024f6704eac3a9f95ff13d66f362bf9eecdc8176edb429ea7e45c4622b52beca7 SHA512 0bd7ed61dcfd4d7634ba450b106d7648fc274c256e7e4c4e51e544bd7779d68ffa08cba709ace5333679eeea1dbe4afa0c267361887eaa784d6f1369b717677d
34 DIST NVIDIA-Linux-x86_64-410.93.run 107257681 BLAKE2B 56e9b6a17ab4d2fe2f18d90b4e209fe048c53dc43846ee9c8bd0960999a06ef9d9b6ba7e4c242f77cc35cfc5b9a0e2ae24aa5f07f68cb7662bd5010de41a9b36 SHA512 1132884210e447d20768c4ae84ff572c9f6886fb9a082da4d229a03c13932a5c6ccc518cad3311a9302b6a0d9e9675e3a53199e7183e07c81282d46883d26105
35 -DIST NVIDIA-Linux-x86_64-415.18.run 107849060 BLAKE2B e4ffbec6a31f79d8c7f18bfbb4e256b94ef8e741526eb07032fd645da1b37751e867d72e998f6b8b773d55127e40bafeb53e8d5f9a4f8be4ce8a8d079e9c3341 SHA512 8e56b5a62f47b4bbe2b0c59e05e2b1a4beb204252aa2000e6dfc257a16f06d00862232d2a3f404192e47b73c3af9f6d6c92e3d530b977a6ecbe3f2d944a12f7e
36 -DIST NVIDIA-Linux-x86_64-415.23.run 109007128 BLAKE2B 48b8fd0e0166148c6687c0bed386e056f12fe9060b9cf9b1e33453a538cf94427786084799d5d3070f6b005c4994e782367059432a32b10277cf16a8a7ecaba8 SHA512 3bdd8c7b3758353f98686361babd14b91dced283c9a27e1c828d87fc4eff66488707345195e27de107c72a408b6ae147ae9c86cfa31bd8468bfa70d56bb68739
37 DIST NVIDIA-Linux-x86_64-415.25.run 108599932 BLAKE2B 958a345f03157ebd8f8a84da91af78143ada75be4bf1d5abbbec9bc8b0ca11549891efb2f78c3ae89ed86fa94a4bf179834d1b229b2dc7d3587a138235a8ce7f SHA512 d289a37344916f5d17425f17d0530a7838b264c49866a0148665c9b87dcb7c23e868abae866a2568abac425701149d9075da540dd0f45f3d18f67b57102c0857
38 DIST nvidia-settings-304.137.tar.bz2 1481361 BLAKE2B cf52a55a34eeb03a685a683487af6a198ba467dd8ba9983cc75624a37a226373cd931d98e8448b7b8ed430c54be2118c7b240ed2a9100b19bec5e832e2f6cdad SHA512 676d1f70c9a78ee234f5f1a283412430a386fa604de211afba02806a45906c5e246a002989b724d74752178d28c92a268de1c98d4c87876797d991253f16b0cc
39 DIST nvidia-settings-340.107.tar.bz2 1549413 BLAKE2B 127442ee2c35ceec47ab4f103bdd2d0278c621fcb9be47051111f6f8728ef5699bdc95fe33a3812a807c38c4868b04c2176e2ed218a422171d2a88ac0c00de96 SHA512 593e7e83aa350a3a7beaaa32aca8660d7e203f6f2e460a6e6eabcdc092087f9917ee4e6d141e37ad4e3b0a1b9908c085e4a71d2f579e481a03bbd1c6f75ca776
40 @@ -59,6 +55,4 @@ DIST nvidia-settings-390.87.tar.bz2 1109274 BLAKE2B 20eb809ceeade932e89592ac9107
41 DIST nvidia-settings-396.54.tar.bz2 1116371 BLAKE2B 114b88f393b0909c8d84a56a280854e258d0e7e7ce800ee58547ef68b4989f22a3bbb380795472b8222493a988dc9308fc20ef03c81589448b518a12285cf204 SHA512 23dc3c61bef71200b3e8185940dd52a50dae7ca7f2b8a68fa96eaa937aabc87ded5d5f73081af51d1e7af2b78b0ec10ab80d28dadbcf10a046c32ec14db1d83c
42 DIST nvidia-settings-410.78.tar.bz2 1115872 BLAKE2B 68471e3c3700c68c1082bd7ca349a791a8b7c9524f71882d78791a11ac4ecaa28d40cdd32baea20354732b4ee8e47767ae8c12d534f95a96494da5787869b4c1 SHA512 28aae1cbec6004d4f532aac2a728d66384440525c3f35f1bf5b7221c4722ccd02be119d44b261204c0f0c116d5455eca7555d10cab3f6d4184a39255750ccf97
43 DIST nvidia-settings-410.93.tar.bz2 1115704 BLAKE2B 1119181feb2704711593c19a43dce5feb58778d0251cb2dcb8647de7bfb1abe3a7f374bddd62e4c983b07a207bca7c1d99a7ac51cba3ae41f78fb97c4d1e9666 SHA512 4e5a5babae382dbe9f6899e51d3b1081fd7123f9ba5e147f7d5cc1899904892ea8d953983e43643ea4355d06348db40005755a02c7c0ff6ba104eac4a9d450f2
44 -DIST nvidia-settings-415.18.tar.bz2 1121712 BLAKE2B d8e8c16e5d1fb41c77a90e4226c79c00ae07f329f4d6d15be3de7b9f3ab1d8ab09dba32295ffbb77b851f9a51cd11e560b0104f2ece52d1af6f7208602b9f5b4 SHA512 d38e32916cf711bda4b9a1a772b5711af1f0c929d28a9818f4c4dfb761d5c1cf33907794b74d4748122211ade08f63f3feacf0976890c59a9d694c850118ff48
45 -DIST nvidia-settings-415.23.tar.bz2 1121875 BLAKE2B d64b0557c28d0ef6d44349f70a7f94a53dd4f2dd77fbdb3d70faca4a007142b59b0ef777145786a7d36ea67db40ad06b745de3fd7fb85092d380700886d5971f SHA512 622bc73e6529621ad7c0ec37ea6e9a7da2f6a90d96538fcb32c86fd920125dd00359de82e1d7ebd0b778708d255ab6aa6c97ad7e3d1f8b18b95c8c367fd878c2
46 DIST nvidia-settings-415.25.tar.bz2 1121689 BLAKE2B acd9dd12b4d9a3d76e08d1498fe2373327308d0764791c7e14c6471cf98e79f635a1073dfacdaa4fa60dd148c15803a18061b185cdea24676d851b3a1b695184 SHA512 8646e4eb8d491cbd20205766833fa9f0629a2567797fbb7ca085e07946f4698645cc134615bc20a42090d4f4fe826df48ab4be717b227ee59c17941d185e0b0b
47
48 diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-415.18.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-415.18.ebuild
49 deleted file mode 100644
50 index e9f557b9387..00000000000
51 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-415.18.ebuild
52 +++ /dev/null
53 @@ -1,592 +0,0 @@
54 -# Copyright 1999-2018 Gentoo Authors
55 -# Distributed under the terms of the GNU General Public License v2
56 -
57 -EAPI=6
58 -inherit eutils flag-o-matic linux-info linux-mod multilib-minimal nvidia-driver \
59 - portability toolchain-funcs unpacker user udev
60 -
61 -DESCRIPTION="NVIDIA Accelerated Graphics Driver"
62 -HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
63 -
64 -AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
65 -AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
66 -ARM_NV_PACKAGE="NVIDIA-Linux-armv7l-gnueabihf-${PV}"
67 -
68 -NV_URI="https://us.download.nvidia.com/XFree86/"
69 -SRC_URI="
70 - amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
71 - amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
72 - tools? (
73 - https://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2
74 - )
75 -"
76 -
77 -LICENSE="GPL-2 NVIDIA-r2"
78 -SLOT="0/${PV%.*}"
79 -KEYWORDS="-* amd64 ~amd64-fbsd"
80 -RESTRICT="bindist mirror"
81 -EMULTILIB_PKG="true"
82 -
83 -IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib pax_kernel static-libs +tools uvm wayland +X"
84 -REQUIRED_USE="
85 - tools? ( X )
86 - static-libs? ( tools )
87 -"
88 -
89 -COMMON="
90 - app-eselect/eselect-opencl
91 - kernel_linux? ( >=sys-libs/glibc-2.6.1 )
92 - tools? (
93 - dev-libs/atk
94 - dev-libs/glib:2
95 - dev-libs/jansson
96 - gtk3? (
97 - x11-libs/gtk+:3
98 - )
99 - x11-libs/cairo
100 - x11-libs/gdk-pixbuf[X]
101 - x11-libs/gtk+:2
102 - x11-libs/libX11
103 - x11-libs/libXext
104 - x11-libs/libXrandr
105 - x11-libs/libXv
106 - x11-libs/libXxf86vm
107 - x11-libs/pango[X]
108 - )
109 - X? (
110 - >=app-eselect/eselect-opengl-1.0.9
111 - app-misc/pax-utils
112 - )
113 -"
114 -DEPEND="
115 - ${COMMON}
116 - kernel_linux? ( virtual/linux-sources )
117 - tools? ( sys-apps/dbus )
118 -"
119 -RDEPEND="
120 - ${COMMON}
121 - acpi? ( sys-power/acpid )
122 - tools? ( !media-video/nvidia-settings )
123 - wayland? ( dev-libs/wayland[${MULTILIB_USEDEP}] )
124 - X? (
125 - <x11-base/xorg-server-1.20.99:=
126 - >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
127 - >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
128 - >=x11-libs/libvdpau-1.0[${MULTILIB_USEDEP}]
129 - sys-libs/zlib[${MULTILIB_USEDEP}]
130 - )
131 -"
132 -QA_PREBUILT="opt/* usr/lib*"
133 -S=${WORKDIR}/
134 -
135 -nvidia_drivers_versions_check() {
136 - if use amd64 && has_multilib_profile && \
137 - [ "${DEFAULT_ABI}" != "amd64" ]; then
138 - eerror "This ebuild doesn't currently support changing your default ABI"
139 - die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
140 - fi
141 -
142 - if use kernel_linux && kernel_is ge 4 20; then
143 - ewarn "Gentoo supports kernels which are supported by NVIDIA"
144 - ewarn "which are limited to the following kernels:"
145 - ewarn "<sys-kernel/gentoo-sources-4.20"
146 - ewarn "<sys-kernel/vanilla-sources-4.20"
147 - ewarn ""
148 - ewarn "You are free to utilize epatch_user to provide whatever"
149 - ewarn "support you feel is appropriate, but will not receive"
150 - ewarn "support as a result of those changes."
151 - ewarn ""
152 - ewarn "Do not file a bug report about this."
153 - ewarn ""
154 - fi
155 -
156 - # Since Nvidia ships many different series of drivers, we need to give the user
157 - # some kind of guidance as to what version they should install. This tries
158 - # to point the user in the right direction but can't be perfect. check
159 - # nvidia-driver.eclass
160 - nvidia-driver-check-warning
161 -
162 - # Kernel features/options to check for
163 - CONFIG_CHECK="!DEBUG_MUTEXES ~!LOCKDEP ~MTRR ~SYSVIPC ~ZONE_DMA"
164 -
165 - # Now do the above checks
166 - use kernel_linux && check_extra_config
167 -}
168 -
169 -pkg_pretend() {
170 - nvidia_drivers_versions_check
171 -}
172 -
173 -pkg_setup() {
174 - nvidia_drivers_versions_check
175 -
176 - # try to turn off distcc and ccache for people that have a problem with it
177 - export DISTCC_DISABLE=1
178 - export CCACHE_DISABLE=1
179 -
180 - if use driver && use kernel_linux; then
181 - MODULE_NAMES="nvidia(video:${S}/kernel)"
182 - use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
183 - use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel) nvidia-drm(video:${S}/kernel)"
184 -
185 - # This needs to run after MODULE_NAMES (so that the eclass checks
186 - # whether the kernel supports loadable modules) but before BUILD_PARAMS
187 - # is set (so that KV_DIR is populated).
188 - linux-mod_pkg_setup
189 -
190 - BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
191 - SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
192 -
193 - # linux-mod_src_compile calls set_arch_to_kernel, which
194 - # sets the ARCH to x86 but NVIDIA's wrapping Makefile
195 - # expects x86_64 or i386 and then converts it to x86
196 - # later on in the build process
197 - BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
198 - fi
199 -
200 - if use kernel_linux && kernel_is lt 2 6 9; then
201 - eerror "You must build this against 2.6.9 or higher kernels."
202 - fi
203 -
204 - # set variables to where files are in the package structure
205 - if use kernel_FreeBSD; then
206 - use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
207 - NV_DOC="${S}/doc"
208 - NV_OBJ="${S}/obj"
209 - NV_SRC="${S}/src"
210 - NV_MAN="${S}/x11/man"
211 - NV_X11="${S}/obj"
212 - NV_SOVER=1
213 - elif use kernel_linux; then
214 - NV_DOC="${S}"
215 - NV_OBJ="${S}"
216 - NV_SRC="${S}/kernel"
217 - NV_MAN="${S}"
218 - NV_X11="${S}"
219 - NV_SOVER=${PV}
220 - else
221 - die "Could not determine proper NVIDIA package"
222 - fi
223 -}
224 -
225 -src_prepare() {
226 - if use pax_kernel; then
227 - ewarn "Using PAX patches is not supported. You will be asked to"
228 - ewarn "use a standard kernel should you have issues. Should you"
229 - ewarn "need support with these patches, contact the PaX team."
230 - eapply "${FILESDIR}"/${PN}-375.20-pax.patch
231 - fi
232 -
233 - local man_file
234 - for man_file in "${NV_MAN}"/*1.gz; do
235 - gunzip $man_file || die
236 - done
237 -
238 - if use tools; then
239 - cp "${FILESDIR}"/nvidia-settings-linker.patch "${WORKDIR}" || die
240 - sed -i \
241 - -e "s:@PV@:${PV}:g" \
242 - "${WORKDIR}"/nvidia-settings-linker.patch || die
243 - eapply "${WORKDIR}"/nvidia-settings-linker.patch
244 - fi
245 -
246 - default
247 -
248 - if ! [ -f nvidia_icd.json ]; then
249 - cp nvidia_icd.json.template nvidia_icd.json || die
250 - sed -i -e 's:__NV_VK_ICD__:libGLX_nvidia.so.0:g' nvidia_icd.json || die
251 - fi
252 -}
253 -
254 -src_compile() {
255 - # This is already the default on Linux, as there's no toplevel Makefile, but
256 - # on FreeBSD there's one and triggers the kernel module build, as we install
257 - # it by itself, pass this.
258 -
259 - cd "${NV_SRC}"
260 - if use kernel_FreeBSD; then
261 - MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
262 - LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
263 - elif use driver && use kernel_linux; then
264 - BUILD_TARGETS=module linux-mod_src_compile \
265 - KERNELRELEASE="${KV_FULL}" \
266 - src="${KERNEL_DIR}"
267 - fi
268 -
269 - if use tools; then
270 - emake -C "${S}"/nvidia-settings-${PV}/src \
271 - AR="$(tc-getAR)" \
272 - CC="$(tc-getCC)" \
273 - DO_STRIP= \
274 - LD="$(tc-getCC)" \
275 - LIBDIR="$(get_libdir)" \
276 - NVLD="$(tc-getLD)" \
277 - NV_VERBOSE=1 \
278 - RANLIB="$(tc-getRANLIB)" \
279 - build-xnvctrl
280 -
281 - emake -C "${S}"/nvidia-settings-${PV}/src \
282 - CC="$(tc-getCC)" \
283 - DO_STRIP= \
284 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
285 - LD="$(tc-getCC)" \
286 - LIBDIR="$(get_libdir)" \
287 - NVLD="$(tc-getLD)" \
288 - NVML_ENABLED=0 \
289 - NV_USE_BUNDLED_LIBJANSSON=0 \
290 - NV_VERBOSE=1
291 - fi
292 -}
293 -
294 -# Install nvidia library:
295 -# the first parameter is the library to install
296 -# the second parameter is the provided soversion
297 -# the third parameter is the target directory if it is not /usr/lib
298 -donvidia() {
299 - # Full path to library
300 - nv_LIB="${1}"
301 -
302 - # SOVER to use
303 - nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})"
304 -
305 - # Where to install
306 - nv_DEST="${2}"
307 -
308 - # Get just the library name
309 - nv_LIBNAME=$(basename "${nv_LIB}")
310 -
311 - if [[ "${nv_DEST}" ]]; then
312 - exeinto ${nv_DEST}
313 - action="doexe"
314 - else
315 - nv_DEST="/usr/$(get_libdir)"
316 - action="dolib.so"
317 - fi
318 -
319 - # Install the library
320 - ${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}"
321 -
322 - # If the library has a SONAME and SONAME does not match the library name,
323 - # then we need to create a symlink
324 - if [[ ${nv_SOVER} ]] && ! [[ "${nv_SOVER}" = "${nv_LIBNAME}" ]]; then
325 - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER} \
326 - || die "failed to create ${nv_DEST}/${nv_SOVER} symlink"
327 - fi
328 -
329 - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so} \
330 - || die "failed to create ${nv_LIBNAME/.so*/.so} symlink"
331 -}
332 -
333 -src_install() {
334 - if use driver && use kernel_linux; then
335 - linux-mod_src_install
336 -
337 - # Add the aliases
338 - # This file is tweaked with the appropriate video group in
339 - # pkg_preinst, see bug #491414
340 - insinto /etc/modprobe.d
341 - newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
342 - doins "${FILESDIR}"/nvidia-rmmod.conf
343 -
344 - # Ensures that our device nodes are created when not using X
345 - exeinto "$(get_udevdir)"
346 - newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
347 - udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
348 - elif use kernel_FreeBSD; then
349 - if use x86-fbsd; then
350 - insinto /boot/modules
351 - doins "${S}/src/nvidia.kld"
352 - fi
353 -
354 - exeinto /boot/modules
355 - doexe "${S}/src/nvidia.ko"
356 - fi
357 -
358 - # NVIDIA kernel <-> userspace driver config lib
359 - donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER}
360 -
361 - # NVIDIA framebuffer capture library
362 - donvidia ${NV_OBJ}/libnvidia-fbc.so.${NV_SOVER}
363 -
364 - # NVIDIA video encode/decode <-> CUDA
365 - if use kernel_linux; then
366 - donvidia ${NV_OBJ}/libnvcuvid.so.${NV_SOVER}
367 - donvidia ${NV_OBJ}/libnvidia-encode.so.${NV_SOVER}
368 - fi
369 -
370 - if use X; then
371 - # Xorg DDX driver
372 - insinto /usr/$(get_libdir)/xorg/modules/drivers
373 - doins ${NV_X11}/nvidia_drv.so
374 -
375 - # Xorg GLX driver
376 - donvidia ${NV_X11}/libglxserver_nvidia.so.${NV_SOVER} \
377 - /usr/$(get_libdir)/xorg/modules/extensions
378 -
379 - # Xorg nvidia.conf
380 - if has_version '>=x11-base/xorg-server-1.16'; then
381 - insinto /usr/share/X11/xorg.conf.d
382 - newins {,50-}nvidia-drm-outputclass.conf
383 - fi
384 -
385 - insinto /usr/share/glvnd/egl_vendor.d
386 - doins ${NV_X11}/10_nvidia.json
387 - fi
388 -
389 - if use wayland; then
390 - insinto /usr/share/egl/egl_external_platform.d
391 - doins ${NV_X11}/10_nvidia_wayland.json
392 - fi
393 -
394 - # OpenCL ICD for NVIDIA
395 - if use kernel_linux; then
396 - insinto /etc/OpenCL/vendors
397 - doins ${NV_OBJ}/nvidia.icd
398 - fi
399 -
400 - # Documentation
401 - if use kernel_FreeBSD; then
402 - dodoc "${NV_DOC}/README"
403 - use X && doman "${NV_MAN}"/nvidia-xconfig.1
404 - use tools && doman "${NV_MAN}"/nvidia-settings.1
405 - else
406 - # Docs
407 - newdoc "${NV_DOC}/README.txt" README
408 - dodoc "${NV_DOC}/NVIDIA_Changelog"
409 - doman "${NV_MAN}"/nvidia-smi.1
410 - use X && doman "${NV_MAN}"/nvidia-xconfig.1
411 - use tools && doman "${NV_MAN}"/nvidia-settings.1
412 - doman "${NV_MAN}"/nvidia-cuda-mps-control.1
413 - fi
414 -
415 - docinto html
416 - dodoc -r ${NV_DOC}/html/*
417 -
418 - # Helper Apps
419 - exeinto /opt/bin/
420 -
421 - if use X; then
422 - doexe ${NV_OBJ}/nvidia-xconfig
423 -
424 - insinto /etc/vulkan/icd.d
425 - doins nvidia_icd.json
426 - fi
427 -
428 - if use kernel_linux; then
429 - doexe ${NV_OBJ}/nvidia-cuda-mps-control
430 - doexe ${NV_OBJ}/nvidia-cuda-mps-server
431 - doexe ${NV_OBJ}/nvidia-debugdump
432 - doexe ${NV_OBJ}/nvidia-persistenced
433 - doexe ${NV_OBJ}/nvidia-smi
434 -
435 - # install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
436 - doexe ${NV_OBJ}/nvidia-modprobe
437 - fowners root:video /opt/bin/nvidia-modprobe
438 - fperms 4710 /opt/bin/nvidia-modprobe
439 - dosym /{opt,usr}/bin/nvidia-modprobe
440 -
441 - doman nvidia-cuda-mps-control.1
442 - doman nvidia-modprobe.1
443 - doman nvidia-persistenced.1
444 - newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
445 - newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
446 - newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
447 - fi
448 -
449 - if use tools; then
450 - emake -C "${S}"/nvidia-settings-${PV}/src/ \
451 - DESTDIR="${D}" \
452 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
453 - LIBDIR="${D}/usr/$(get_libdir)" \
454 - NV_USE_BUNDLED_LIBJANSSON=0 \
455 - NV_VERBOSE=1 \
456 - PREFIX=/usr \
457 - DO_STRIP= \
458 - install
459 -
460 - if use static-libs; then
461 - dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
462 -
463 - insinto /usr/include/NVCtrl
464 - doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
465 - fi
466 -
467 - insinto /usr/share/nvidia/
468 - doins nvidia-application-profiles-${PV}-key-documentation
469 -
470 - insinto /etc/nvidia
471 - newins \
472 - nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
473 -
474 - # There is no icon in the FreeBSD tarball.
475 - use kernel_FreeBSD || \
476 - doicon ${NV_OBJ}/nvidia-settings.png
477 -
478 - domenu "${FILESDIR}"/nvidia-settings.desktop
479 -
480 - exeinto /etc/X11/xinit/xinitrc.d
481 - newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
482 - fi
483 -
484 - dobin ${NV_OBJ}/nvidia-bug-report.sh
485 -
486 - if has_multilib_profile && use multilib; then
487 - local OABI=${ABI}
488 - for ABI in $(get_install_abis); do
489 - src_install-libs
490 - done
491 - ABI=${OABI}
492 - unset OABI
493 - else
494 - src_install-libs
495 - fi
496 -
497 - is_final_abi || die "failed to iterate through all ABIs"
498 -
499 - readme.gentoo_create_doc
500 -}
501 -
502 -src_install-libs() {
503 - local inslibdir=$(get_libdir)
504 - local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
505 - local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
506 - local nv_libdir="${NV_OBJ}"
507 -
508 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then
509 - nv_libdir="${NV_OBJ}"/32
510 - fi
511 -
512 - if use X; then
513 - NV_GLX_LIBRARIES=(
514 - "libEGL.so.$(usex compat ${NV_SOVER} 1.1.0) ${GL_ROOT}"
515 - "libEGL_nvidia.so.${NV_SOVER} ${GL_ROOT}"
516 - "libGL.so.$(usex compat ${NV_SOVER} 1.7.0) ${GL_ROOT}"
517 - "libGLESv1_CM.so.1.2.0 ${GL_ROOT}"
518 - "libGLESv1_CM_nvidia.so.${NV_SOVER} ${GL_ROOT}"
519 - "libGLESv2.so.2.1.0 ${GL_ROOT}"
520 - "libGLESv2_nvidia.so.${NV_SOVER} ${GL_ROOT}"
521 - "libGLX.so.0 ${GL_ROOT}"
522 - "libGLX_nvidia.so.${NV_SOVER} ${GL_ROOT}"
523 - "libGLdispatch.so.0 ${GL_ROOT}"
524 - "libOpenCL.so.1.0.0 ${CL_ROOT}"
525 - "libOpenGL.so.0 ${GL_ROOT}"
526 - "libcuda.so.${NV_SOVER}"
527 - "libnvcuvid.so.${NV_SOVER}"
528 - "libnvidia-compiler.so.${NV_SOVER}"
529 - "libnvidia-eglcore.so.${NV_SOVER}"
530 - "libnvidia-encode.so.${NV_SOVER}"
531 - "libnvidia-fatbinaryloader.so.${NV_SOVER}"
532 - "libnvidia-fbc.so.${NV_SOVER}"
533 - "libnvidia-glcore.so.${NV_SOVER}"
534 - "libnvidia-glsi.so.${NV_SOVER}"
535 - "libnvidia-glvkspirv.so.${NV_SOVER}"
536 - "libnvidia-ifr.so.${NV_SOVER}"
537 - "libnvidia-opencl.so.${NV_SOVER}"
538 - "libnvidia-ptxjitcompiler.so.${NV_SOVER}"
539 - "libvdpau_nvidia.so.${NV_SOVER}"
540 - )
541 -
542 - if use wayland && has_multilib_profile && [[ ${ABI} == "amd64" ]];
543 - then
544 - NV_GLX_LIBRARIES+=(
545 - "libnvidia-egl-wayland.so.1.1.0"
546 - )
547 - fi
548 -
549 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
550 - then
551 - NV_GLX_LIBRARIES+=(
552 - "libnvidia-wfb.so.${NV_SOVER}"
553 - )
554 - fi
555 -
556 - if use kernel_FreeBSD; then
557 - NV_GLX_LIBRARIES+=(
558 - "libnvidia-tls.so.${NV_SOVER}"
559 - )
560 - fi
561 -
562 - if use kernel_linux; then
563 - NV_GLX_LIBRARIES+=(
564 - "libnvidia-ml.so.${NV_SOVER}"
565 - "libnvidia-tls.so.${NV_SOVER}"
566 - )
567 - fi
568 -
569 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
570 - then
571 - NV_GLX_LIBRARIES+=(
572 - "libnvidia-cbl.so.${NV_SOVER}"
573 - "libnvidia-rtcore.so.${NV_SOVER}"
574 - "libnvoptix.so.${NV_SOVER}"
575 - )
576 - fi
577 -
578 - for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
579 - donvidia "${nv_libdir}"/${NV_LIB}
580 - done
581 - fi
582 -}
583 -
584 -pkg_preinst() {
585 - if use driver && use kernel_linux; then
586 - linux-mod_pkg_preinst
587 -
588 - local videogroup="$(egetent group video | cut -d ':' -f 3)"
589 - if [ -z "${videogroup}" ]; then
590 - eerror "Failed to determine the video group gid"
591 - die "Failed to determine the video group gid"
592 - else
593 - sed -i \
594 - -e "s:PACKAGE:${PF}:g" \
595 - -e "s:VIDEOGID:${videogroup}:" \
596 - "${D}"/etc/modprobe.d/nvidia.conf || die
597 - fi
598 - fi
599 -
600 - # Clean the dynamic libGL stuff's home to ensure
601 - # we dont have stale libs floating around
602 - if [ -d "${ROOT}"/usr/lib/opengl/nvidia ]; then
603 - rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
604 - fi
605 - # Make sure we nuke the old nvidia-glx's env.d file
606 - if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
607 - rm -f "${ROOT}"/etc/env.d/09nvidia
608 - fi
609 -}
610 -
611 -pkg_postinst() {
612 - use driver && use kernel_linux && linux-mod_pkg_postinst
613 -
614 - # Switch to the nvidia implementation
615 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
616 - "${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
617 -
618 - readme.gentoo_print_elog
619 -
620 - if ! use X; then
621 - elog "You have elected to not install the X.org driver. Along with"
622 - elog "this the OpenGL libraries and VDPAU libraries were not"
623 - elog "installed. Additionally, once the driver is loaded your card"
624 - elog "and fan will run at max speed which may not be desirable."
625 - elog "Use the 'nvidia-smi' init script to have your card and fan"
626 - elog "speed scale appropriately."
627 - elog
628 - fi
629 - if ! use tools; then
630 - elog "USE=tools controls whether the nvidia-settings application"
631 - elog "is installed. If you would like to use it, enable that"
632 - elog "flag and re-emerge this ebuild. Optionally you can install"
633 - elog "media-video/nvidia-settings"
634 - elog
635 - fi
636 -}
637 -
638 -pkg_prerm() {
639 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
640 -}
641 -
642 -pkg_postrm() {
643 - use driver && use kernel_linux && linux-mod_pkg_postrm
644 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
645 -}
646
647 diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-415.23.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-415.23.ebuild
648 deleted file mode 100644
649 index 86b6c9565d9..00000000000
650 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-415.23.ebuild
651 +++ /dev/null
652 @@ -1,592 +0,0 @@
653 -# Copyright 1999-2018 Gentoo Authors
654 -# Distributed under the terms of the GNU General Public License v2
655 -
656 -EAPI=6
657 -inherit eutils flag-o-matic linux-info linux-mod multilib-minimal nvidia-driver \
658 - portability toolchain-funcs unpacker user udev
659 -
660 -DESCRIPTION="NVIDIA Accelerated Graphics Driver"
661 -HOMEPAGE="http://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx"
662 -
663 -AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
664 -AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
665 -ARM_NV_PACKAGE="NVIDIA-Linux-armv7l-gnueabihf-${PV}"
666 -
667 -NV_URI="https://us.download.nvidia.com/XFree86/"
668 -SRC_URI="
669 - amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
670 - amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
671 - tools? (
672 - https://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2
673 - )
674 -"
675 -
676 -LICENSE="GPL-2 NVIDIA-r2"
677 -SLOT="0/${PV%.*}"
678 -KEYWORDS="-* ~amd64 ~amd64-fbsd"
679 -RESTRICT="bindist mirror"
680 -EMULTILIB_PKG="true"
681 -
682 -IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib pax_kernel static-libs +tools uvm wayland +X"
683 -REQUIRED_USE="
684 - tools? ( X )
685 - static-libs? ( tools )
686 -"
687 -
688 -COMMON="
689 - app-eselect/eselect-opencl
690 - kernel_linux? ( >=sys-libs/glibc-2.6.1 )
691 - tools? (
692 - dev-libs/atk
693 - dev-libs/glib:2
694 - dev-libs/jansson
695 - gtk3? (
696 - x11-libs/gtk+:3
697 - )
698 - x11-libs/cairo
699 - x11-libs/gdk-pixbuf[X]
700 - x11-libs/gtk+:2
701 - x11-libs/libX11
702 - x11-libs/libXext
703 - x11-libs/libXrandr
704 - x11-libs/libXv
705 - x11-libs/libXxf86vm
706 - x11-libs/pango[X]
707 - )
708 - X? (
709 - >=app-eselect/eselect-opengl-1.0.9
710 - app-misc/pax-utils
711 - )
712 -"
713 -DEPEND="
714 - ${COMMON}
715 - kernel_linux? ( virtual/linux-sources )
716 - tools? ( sys-apps/dbus )
717 -"
718 -RDEPEND="
719 - ${COMMON}
720 - acpi? ( sys-power/acpid )
721 - tools? ( !media-video/nvidia-settings )
722 - wayland? ( dev-libs/wayland[${MULTILIB_USEDEP}] )
723 - X? (
724 - <x11-base/xorg-server-1.20.99:=
725 - >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
726 - >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
727 - >=x11-libs/libvdpau-1.0[${MULTILIB_USEDEP}]
728 - sys-libs/zlib[${MULTILIB_USEDEP}]
729 - )
730 -"
731 -QA_PREBUILT="opt/* usr/lib*"
732 -S=${WORKDIR}/
733 -
734 -nvidia_drivers_versions_check() {
735 - if use amd64 && has_multilib_profile && \
736 - [ "${DEFAULT_ABI}" != "amd64" ]; then
737 - eerror "This ebuild doesn't currently support changing your default ABI"
738 - die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
739 - fi
740 -
741 - if use kernel_linux && kernel_is ge 4 21; then
742 - ewarn "Gentoo supports kernels which are supported by NVIDIA"
743 - ewarn "which are limited to the following kernels:"
744 - ewarn "<sys-kernel/gentoo-sources-4.21"
745 - ewarn "<sys-kernel/vanilla-sources-4.21"
746 - ewarn ""
747 - ewarn "You are free to utilize epatch_user to provide whatever"
748 - ewarn "support you feel is appropriate, but will not receive"
749 - ewarn "support as a result of those changes."
750 - ewarn ""
751 - ewarn "Do not file a bug report about this."
752 - ewarn ""
753 - fi
754 -
755 - # Since Nvidia ships many different series of drivers, we need to give the user
756 - # some kind of guidance as to what version they should install. This tries
757 - # to point the user in the right direction but can't be perfect. check
758 - # nvidia-driver.eclass
759 - nvidia-driver-check-warning
760 -
761 - # Kernel features/options to check for
762 - CONFIG_CHECK="!DEBUG_MUTEXES !I2C_NVIDIA_GPU ~!LOCKDEP ~MTRR ~SYSVIPC ~ZONE_DMA"
763 -
764 - # Now do the above checks
765 - use kernel_linux && check_extra_config
766 -}
767 -
768 -pkg_pretend() {
769 - nvidia_drivers_versions_check
770 -}
771 -
772 -pkg_setup() {
773 - nvidia_drivers_versions_check
774 -
775 - # try to turn off distcc and ccache for people that have a problem with it
776 - export DISTCC_DISABLE=1
777 - export CCACHE_DISABLE=1
778 -
779 - if use driver && use kernel_linux; then
780 - MODULE_NAMES="nvidia(video:${S}/kernel)"
781 - use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
782 - use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel) nvidia-drm(video:${S}/kernel)"
783 -
784 - # This needs to run after MODULE_NAMES (so that the eclass checks
785 - # whether the kernel supports loadable modules) but before BUILD_PARAMS
786 - # is set (so that KV_DIR is populated).
787 - linux-mod_pkg_setup
788 -
789 - BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
790 - SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
791 -
792 - # linux-mod_src_compile calls set_arch_to_kernel, which
793 - # sets the ARCH to x86 but NVIDIA's wrapping Makefile
794 - # expects x86_64 or i386 and then converts it to x86
795 - # later on in the build process
796 - BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
797 - fi
798 -
799 - if use kernel_linux && kernel_is lt 2 6 9; then
800 - eerror "You must build this against 2.6.9 or higher kernels."
801 - fi
802 -
803 - # set variables to where files are in the package structure
804 - if use kernel_FreeBSD; then
805 - use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
806 - NV_DOC="${S}/doc"
807 - NV_OBJ="${S}/obj"
808 - NV_SRC="${S}/src"
809 - NV_MAN="${S}/x11/man"
810 - NV_X11="${S}/obj"
811 - NV_SOVER=1
812 - elif use kernel_linux; then
813 - NV_DOC="${S}"
814 - NV_OBJ="${S}"
815 - NV_SRC="${S}/kernel"
816 - NV_MAN="${S}"
817 - NV_X11="${S}"
818 - NV_SOVER=${PV}
819 - else
820 - die "Could not determine proper NVIDIA package"
821 - fi
822 -}
823 -
824 -src_prepare() {
825 - if use pax_kernel; then
826 - ewarn "Using PAX patches is not supported. You will be asked to"
827 - ewarn "use a standard kernel should you have issues. Should you"
828 - ewarn "need support with these patches, contact the PaX team."
829 - eapply "${FILESDIR}"/${PN}-375.20-pax.patch
830 - fi
831 -
832 - local man_file
833 - for man_file in "${NV_MAN}"/*1.gz; do
834 - gunzip $man_file || die
835 - done
836 -
837 - if use tools; then
838 - cp "${FILESDIR}"/nvidia-settings-linker.patch "${WORKDIR}" || die
839 - sed -i \
840 - -e "s:@PV@:${PV}:g" \
841 - "${WORKDIR}"/nvidia-settings-linker.patch || die
842 - eapply "${WORKDIR}"/nvidia-settings-linker.patch
843 - fi
844 -
845 - default
846 -
847 - if ! [ -f nvidia_icd.json ]; then
848 - cp nvidia_icd.json.template nvidia_icd.json || die
849 - sed -i -e 's:__NV_VK_ICD__:libGLX_nvidia.so.0:g' nvidia_icd.json || die
850 - fi
851 -}
852 -
853 -src_compile() {
854 - # This is already the default on Linux, as there's no toplevel Makefile, but
855 - # on FreeBSD there's one and triggers the kernel module build, as we install
856 - # it by itself, pass this.
857 -
858 - cd "${NV_SRC}"
859 - if use kernel_FreeBSD; then
860 - MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
861 - LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
862 - elif use driver && use kernel_linux; then
863 - BUILD_TARGETS=module linux-mod_src_compile \
864 - KERNELRELEASE="${KV_FULL}" \
865 - src="${KERNEL_DIR}"
866 - fi
867 -
868 - if use tools; then
869 - emake -C "${S}"/nvidia-settings-${PV}/src \
870 - AR="$(tc-getAR)" \
871 - CC="$(tc-getCC)" \
872 - DO_STRIP= \
873 - LD="$(tc-getCC)" \
874 - LIBDIR="$(get_libdir)" \
875 - NVLD="$(tc-getLD)" \
876 - NV_VERBOSE=1 \
877 - RANLIB="$(tc-getRANLIB)" \
878 - build-xnvctrl
879 -
880 - emake -C "${S}"/nvidia-settings-${PV}/src \
881 - CC="$(tc-getCC)" \
882 - DO_STRIP= \
883 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
884 - LD="$(tc-getCC)" \
885 - LIBDIR="$(get_libdir)" \
886 - NVLD="$(tc-getLD)" \
887 - NVML_ENABLED=0 \
888 - NV_USE_BUNDLED_LIBJANSSON=0 \
889 - NV_VERBOSE=1
890 - fi
891 -}
892 -
893 -# Install nvidia library:
894 -# the first parameter is the library to install
895 -# the second parameter is the provided soversion
896 -# the third parameter is the target directory if it is not /usr/lib
897 -donvidia() {
898 - # Full path to library
899 - nv_LIB="${1}"
900 -
901 - # SOVER to use
902 - nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})"
903 -
904 - # Where to install
905 - nv_DEST="${2}"
906 -
907 - # Get just the library name
908 - nv_LIBNAME=$(basename "${nv_LIB}")
909 -
910 - if [[ "${nv_DEST}" ]]; then
911 - exeinto ${nv_DEST}
912 - action="doexe"
913 - else
914 - nv_DEST="/usr/$(get_libdir)"
915 - action="dolib.so"
916 - fi
917 -
918 - # Install the library
919 - ${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}"
920 -
921 - # If the library has a SONAME and SONAME does not match the library name,
922 - # then we need to create a symlink
923 - if [[ ${nv_SOVER} ]] && ! [[ "${nv_SOVER}" = "${nv_LIBNAME}" ]]; then
924 - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER} \
925 - || die "failed to create ${nv_DEST}/${nv_SOVER} symlink"
926 - fi
927 -
928 - dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so} \
929 - || die "failed to create ${nv_LIBNAME/.so*/.so} symlink"
930 -}
931 -
932 -src_install() {
933 - if use driver && use kernel_linux; then
934 - linux-mod_src_install
935 -
936 - # Add the aliases
937 - # This file is tweaked with the appropriate video group in
938 - # pkg_preinst, see bug #491414
939 - insinto /etc/modprobe.d
940 - newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
941 - doins "${FILESDIR}"/nvidia-rmmod.conf
942 -
943 - # Ensures that our device nodes are created when not using X
944 - exeinto "$(get_udevdir)"
945 - newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
946 - udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
947 - elif use kernel_FreeBSD; then
948 - if use x86-fbsd; then
949 - insinto /boot/modules
950 - doins "${S}/src/nvidia.kld"
951 - fi
952 -
953 - exeinto /boot/modules
954 - doexe "${S}/src/nvidia.ko"
955 - fi
956 -
957 - # NVIDIA kernel <-> userspace driver config lib
958 - donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER}
959 -
960 - # NVIDIA framebuffer capture library
961 - donvidia ${NV_OBJ}/libnvidia-fbc.so.${NV_SOVER}
962 -
963 - # NVIDIA video encode/decode <-> CUDA
964 - if use kernel_linux; then
965 - donvidia ${NV_OBJ}/libnvcuvid.so.${NV_SOVER}
966 - donvidia ${NV_OBJ}/libnvidia-encode.so.${NV_SOVER}
967 - fi
968 -
969 - if use X; then
970 - # Xorg DDX driver
971 - insinto /usr/$(get_libdir)/xorg/modules/drivers
972 - doins ${NV_X11}/nvidia_drv.so
973 -
974 - # Xorg GLX driver
975 - donvidia ${NV_X11}/libglxserver_nvidia.so.${NV_SOVER} \
976 - /usr/$(get_libdir)/xorg/modules/extensions
977 -
978 - # Xorg nvidia.conf
979 - if has_version '>=x11-base/xorg-server-1.16'; then
980 - insinto /usr/share/X11/xorg.conf.d
981 - newins {,50-}nvidia-drm-outputclass.conf
982 - fi
983 -
984 - insinto /usr/share/glvnd/egl_vendor.d
985 - doins ${NV_X11}/10_nvidia.json
986 - fi
987 -
988 - if use wayland; then
989 - insinto /usr/share/egl/egl_external_platform.d
990 - doins ${NV_X11}/10_nvidia_wayland.json
991 - fi
992 -
993 - # OpenCL ICD for NVIDIA
994 - if use kernel_linux; then
995 - insinto /etc/OpenCL/vendors
996 - doins ${NV_OBJ}/nvidia.icd
997 - fi
998 -
999 - # Documentation
1000 - if use kernel_FreeBSD; then
1001 - dodoc "${NV_DOC}/README"
1002 - use X && doman "${NV_MAN}"/nvidia-xconfig.1
1003 - use tools && doman "${NV_MAN}"/nvidia-settings.1
1004 - else
1005 - # Docs
1006 - newdoc "${NV_DOC}/README.txt" README
1007 - dodoc "${NV_DOC}/NVIDIA_Changelog"
1008 - doman "${NV_MAN}"/nvidia-smi.1
1009 - use X && doman "${NV_MAN}"/nvidia-xconfig.1
1010 - use tools && doman "${NV_MAN}"/nvidia-settings.1
1011 - doman "${NV_MAN}"/nvidia-cuda-mps-control.1
1012 - fi
1013 -
1014 - docinto html
1015 - dodoc -r ${NV_DOC}/html/*
1016 -
1017 - # Helper Apps
1018 - exeinto /opt/bin/
1019 -
1020 - if use X; then
1021 - doexe ${NV_OBJ}/nvidia-xconfig
1022 -
1023 - insinto /etc/vulkan/icd.d
1024 - doins nvidia_icd.json
1025 - fi
1026 -
1027 - if use kernel_linux; then
1028 - doexe ${NV_OBJ}/nvidia-cuda-mps-control
1029 - doexe ${NV_OBJ}/nvidia-cuda-mps-server
1030 - doexe ${NV_OBJ}/nvidia-debugdump
1031 - doexe ${NV_OBJ}/nvidia-persistenced
1032 - doexe ${NV_OBJ}/nvidia-smi
1033 -
1034 - # install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
1035 - doexe ${NV_OBJ}/nvidia-modprobe
1036 - fowners root:video /opt/bin/nvidia-modprobe
1037 - fperms 4710 /opt/bin/nvidia-modprobe
1038 - dosym /{opt,usr}/bin/nvidia-modprobe
1039 -
1040 - doman nvidia-cuda-mps-control.1
1041 - doman nvidia-modprobe.1
1042 - doman nvidia-persistenced.1
1043 - newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
1044 - newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
1045 - newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
1046 - fi
1047 -
1048 - if use tools; then
1049 - emake -C "${S}"/nvidia-settings-${PV}/src/ \
1050 - DESTDIR="${D}" \
1051 - GTK3_AVAILABLE=$(usex gtk3 1 0) \
1052 - LIBDIR="${D}/usr/$(get_libdir)" \
1053 - NV_USE_BUNDLED_LIBJANSSON=0 \
1054 - NV_VERBOSE=1 \
1055 - PREFIX=/usr \
1056 - DO_STRIP= \
1057 - install
1058 -
1059 - if use static-libs; then
1060 - dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
1061 -
1062 - insinto /usr/include/NVCtrl
1063 - doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
1064 - fi
1065 -
1066 - insinto /usr/share/nvidia/
1067 - doins nvidia-application-profiles-${PV}-key-documentation
1068 -
1069 - insinto /etc/nvidia
1070 - newins \
1071 - nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
1072 -
1073 - # There is no icon in the FreeBSD tarball.
1074 - use kernel_FreeBSD || \
1075 - doicon ${NV_OBJ}/nvidia-settings.png
1076 -
1077 - domenu "${FILESDIR}"/nvidia-settings.desktop
1078 -
1079 - exeinto /etc/X11/xinit/xinitrc.d
1080 - newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
1081 - fi
1082 -
1083 - dobin ${NV_OBJ}/nvidia-bug-report.sh
1084 -
1085 - if has_multilib_profile && use multilib; then
1086 - local OABI=${ABI}
1087 - for ABI in $(get_install_abis); do
1088 - src_install-libs
1089 - done
1090 - ABI=${OABI}
1091 - unset OABI
1092 - else
1093 - src_install-libs
1094 - fi
1095 -
1096 - is_final_abi || die "failed to iterate through all ABIs"
1097 -
1098 - readme.gentoo_create_doc
1099 -}
1100 -
1101 -src_install-libs() {
1102 - local inslibdir=$(get_libdir)
1103 - local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
1104 - local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
1105 - local nv_libdir="${NV_OBJ}"
1106 -
1107 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then
1108 - nv_libdir="${NV_OBJ}"/32
1109 - fi
1110 -
1111 - if use X; then
1112 - NV_GLX_LIBRARIES=(
1113 - "libEGL.so.$(usex compat ${NV_SOVER} 1.1.0) ${GL_ROOT}"
1114 - "libEGL_nvidia.so.${NV_SOVER} ${GL_ROOT}"
1115 - "libGL.so.$(usex compat ${NV_SOVER} 1.7.0) ${GL_ROOT}"
1116 - "libGLESv1_CM.so.1.2.0 ${GL_ROOT}"
1117 - "libGLESv1_CM_nvidia.so.${NV_SOVER} ${GL_ROOT}"
1118 - "libGLESv2.so.2.1.0 ${GL_ROOT}"
1119 - "libGLESv2_nvidia.so.${NV_SOVER} ${GL_ROOT}"
1120 - "libGLX.so.0 ${GL_ROOT}"
1121 - "libGLX_nvidia.so.${NV_SOVER} ${GL_ROOT}"
1122 - "libGLdispatch.so.0 ${GL_ROOT}"
1123 - "libOpenCL.so.1.0.0 ${CL_ROOT}"
1124 - "libOpenGL.so.0 ${GL_ROOT}"
1125 - "libcuda.so.${NV_SOVER}"
1126 - "libnvcuvid.so.${NV_SOVER}"
1127 - "libnvidia-compiler.so.${NV_SOVER}"
1128 - "libnvidia-eglcore.so.${NV_SOVER}"
1129 - "libnvidia-encode.so.${NV_SOVER}"
1130 - "libnvidia-fatbinaryloader.so.${NV_SOVER}"
1131 - "libnvidia-fbc.so.${NV_SOVER}"
1132 - "libnvidia-glcore.so.${NV_SOVER}"
1133 - "libnvidia-glsi.so.${NV_SOVER}"
1134 - "libnvidia-glvkspirv.so.${NV_SOVER}"
1135 - "libnvidia-ifr.so.${NV_SOVER}"
1136 - "libnvidia-opencl.so.${NV_SOVER}"
1137 - "libnvidia-ptxjitcompiler.so.${NV_SOVER}"
1138 - "libvdpau_nvidia.so.${NV_SOVER}"
1139 - )
1140 -
1141 - if use wayland && has_multilib_profile && [[ ${ABI} == "amd64" ]];
1142 - then
1143 - NV_GLX_LIBRARIES+=(
1144 - "libnvidia-egl-wayland.so.1.1.0"
1145 - )
1146 - fi
1147 -
1148 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
1149 - then
1150 - NV_GLX_LIBRARIES+=(
1151 - "libnvidia-wfb.so.${NV_SOVER}"
1152 - )
1153 - fi
1154 -
1155 - if use kernel_FreeBSD; then
1156 - NV_GLX_LIBRARIES+=(
1157 - "libnvidia-tls.so.${NV_SOVER}"
1158 - )
1159 - fi
1160 -
1161 - if use kernel_linux; then
1162 - NV_GLX_LIBRARIES+=(
1163 - "libnvidia-ml.so.${NV_SOVER}"
1164 - "libnvidia-tls.so.${NV_SOVER}"
1165 - )
1166 - fi
1167 -
1168 - if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
1169 - then
1170 - NV_GLX_LIBRARIES+=(
1171 - "libnvidia-cbl.so.${NV_SOVER}"
1172 - "libnvidia-rtcore.so.${NV_SOVER}"
1173 - "libnvoptix.so.${NV_SOVER}"
1174 - )
1175 - fi
1176 -
1177 - for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
1178 - donvidia "${nv_libdir}"/${NV_LIB}
1179 - done
1180 - fi
1181 -}
1182 -
1183 -pkg_preinst() {
1184 - if use driver && use kernel_linux; then
1185 - linux-mod_pkg_preinst
1186 -
1187 - local videogroup="$(egetent group video | cut -d ':' -f 3)"
1188 - if [ -z "${videogroup}" ]; then
1189 - eerror "Failed to determine the video group gid"
1190 - die "Failed to determine the video group gid"
1191 - else
1192 - sed -i \
1193 - -e "s:PACKAGE:${PF}:g" \
1194 - -e "s:VIDEOGID:${videogroup}:" \
1195 - "${D}"/etc/modprobe.d/nvidia.conf || die
1196 - fi
1197 - fi
1198 -
1199 - # Clean the dynamic libGL stuff's home to ensure
1200 - # we dont have stale libs floating around
1201 - if [ -d "${ROOT}"/usr/lib/opengl/nvidia ]; then
1202 - rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
1203 - fi
1204 - # Make sure we nuke the old nvidia-glx's env.d file
1205 - if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
1206 - rm -f "${ROOT}"/etc/env.d/09nvidia
1207 - fi
1208 -}
1209 -
1210 -pkg_postinst() {
1211 - use driver && use kernel_linux && linux-mod_pkg_postinst
1212 -
1213 - # Switch to the nvidia implementation
1214 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
1215 - "${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
1216 -
1217 - readme.gentoo_print_elog
1218 -
1219 - if ! use X; then
1220 - elog "You have elected to not install the X.org driver. Along with"
1221 - elog "this the OpenGL libraries and VDPAU libraries were not"
1222 - elog "installed. Additionally, once the driver is loaded your card"
1223 - elog "and fan will run at max speed which may not be desirable."
1224 - elog "Use the 'nvidia-smi' init script to have your card and fan"
1225 - elog "speed scale appropriately."
1226 - elog
1227 - fi
1228 - if ! use tools; then
1229 - elog "USE=tools controls whether the nvidia-settings application"
1230 - elog "is installed. If you would like to use it, enable that"
1231 - elog "flag and re-emerge this ebuild. Optionally you can install"
1232 - elog "media-video/nvidia-settings"
1233 - elog
1234 - fi
1235 -}
1236 -
1237 -pkg_prerm() {
1238 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
1239 -}
1240 -
1241 -pkg_postrm() {
1242 - use driver && use kernel_linux && linux-mod_pkg_postrm
1243 - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
1244 -}