x11-drivers/nvidia-drivers: Old

Package-Manager: Portage-2.3.80, Repoman-2.3.19
Signed-off-by: Jeroen Roovers <jer@gentoo.org>
This commit is contained in:
Jeroen Roovers
2019-12-03 19:22:29 +01:00
parent 5831af5132
commit 13f1d1be53
3 changed files with 0 additions and 1138 deletions

View File

@@ -1,29 +1,20 @@
DIST NVIDIA-FreeBSD-x86-340.107.tar.gz 60305952 BLAKE2B b634bfd610653f1c546b68e87d934c5d0e25a2e5be6df15e0cb6016793274b4cf08577669e61c35976f3482da2221b05797459b2814965bcfdbf519c8a6d2681 SHA512 fe09e1b3dd870a07b4edd163d302e2d98f00e139d05a8fa627c292182b61d2bd9b37eb746d639ba592dcf90fecedc57430cf1ef76b6522785ffcb3fd46fe9ba0
DIST NVIDIA-FreeBSD-x86-390.129.tar.gz 64565178 BLAKE2B d21aed3fffec9c0ed8618021594f7719c98928e4d916e1e668c03089beb9dd1deeebd7cdc9a594fee3d3d7f3eff3f6ef2cab7b6f61b25448bccb6e7339e6c025 SHA512 757761386ea57adb3377a8c3aa6aa3f572935bf5fd2b1cd0c66739d3bcb4535d7ae5d55f9e3790dee43e7567c773a8933738aabaf5d912ef6b392c2e7206cfa4
DIST NVIDIA-FreeBSD-x86-390.132.tar.gz 64863740 BLAKE2B aa92a8968c81b64e2df637fd20116320431cc9b2acde4e71c5828c37ac124ed15f89074cf2ae1a3dc039d042f3bd87b27f8fe0a07f073e2cfac02871a79e7e72 SHA512 f11152e14ed3c0806df007559087a74f8841c382b19aceb00880f9d92fd549f256874223c987f6b167215c711bee8962d49f34eb047957885a57c1dd6f1eb27a
DIST NVIDIA-FreeBSD-x86_64-340.107.tar.gz 61179967 BLAKE2B c12c7c07c090fd7bca78a30082890d0b0330dde07ce9beacdb94fad97d40e9ff9e1413fc36fd94116821137e74076d99a82ab85ecd0a8e16d52b47abeb747802 SHA512 661a4cc79a0adc9a1abebfb3567c26e69628266794b5b539c112112a0989760ea1ea2d8c35a5fe7539b579d4e9cef2685e3e1d12fc7031cd6d1b743c23eadc52
DIST NVIDIA-FreeBSD-x86_64-390.129.tar.gz 63905694 BLAKE2B 7cde21e5b4a63dcf91b103c209222a9715de02e032501ace2bc9897230178a750d523eca4798041f4813b174ab3c7700818a09bdbafe62f217495ce6b4c465e5 SHA512 7485c9807e7d1684e3394a88f1129726fd1c97920e5a033b0c428f8f72daa87c6d210c17fdec0947f786ccaa633e14c8f6b2cc39083087e9989df8621b66918d
DIST NVIDIA-FreeBSD-x86_64-390.132.tar.gz 64206643 BLAKE2B a95bc5bbb99c89b817692167946deddff1c131c54165e5958e0600432c59fa7ce06cfc6037f4bcf090232c8c25ae36e370e77594ca9a057565adc8e8ac231e72 SHA512 120bf1c5784ef2c74047780383ce5ba8997dc588bab7a5178afeca99fb3829f7b99651238348c9098d023eee1c7f94b5321e6fb4c6e542ece2af705fe33da863
DIST NVIDIA-FreeBSD-x86_64-430.64.tar.gz 62723909 BLAKE2B f3e48bc38a3ec051a75c08845b45c0ba6b80bca31d7efd85f115e6244f9cdff70c68466f9139f69c645207d4cf61103432d75c943d3f3508811d405fba55d1b6 SHA512 498a3007c065d8b17f94024f6ca80ffbe3dca253fdb73c4a08babede821e52f8466523b402af350e961f153c5f732eb04160937fabef1f1be3846a0a4743b310
DIST NVIDIA-FreeBSD-x86_64-435.21.tar.gz 64153630 BLAKE2B fee655cc843c004ac0c1ec85b9417292016a013136e04ad047d2513edbdc7c732561d6bcc4603c658905972dce6618de49d4d6ac583e84fdf212cf45397b48c1 SHA512 2c160c06ca58e3009deb1ba4a4a28d39419e251ced3bfa9a442942f9cce17003d67e8a8bfa23036d3916cc0e66f4bff0fbedaae73db6f10b995235a56d7eba7c
DIST NVIDIA-FreeBSD-x86_64-440.31.tar.gz 65011247 BLAKE2B 9c2b482419868d27e5e45a519c321fd0b5613b670b42e6c1ecd28b2f9e789469b6d947574d0540055b6526bc90623ec2672dd763299da55a6d4780cc58d5aa7f SHA512 40a169b3f63b4cb0a5573f9c34f9ba170c3f5e1b3026e6641c8018cfaf70d37574de25985c59159482c7b4946eaf1029a13754ba5036515a4eedd369d42a768d
DIST NVIDIA-FreeBSD-x86_64-440.36.tar.gz 81694177 BLAKE2B 641fac7a20a45bd3c4029bcbb4bccfed900fd08f21935d2194e6317fb8c866aa05c0d558b5ad88fd18338791ef1f161045f0c2aab85704e12de52a969665b51a SHA512 c7c131a55e8158a11c24cbf0246f724b669c1ac03aab0ef0b22610b50e71110bca048d2c44d844af4d4ae4fbbf82246cbfd3f1c561759391fd5cffb8988caa78
DIST NVIDIA-Linux-armv7l-gnueabihf-390.129.run 29102893 BLAKE2B 19f73b7ac4df7d0584f180492676eba65a42c527566175308ebb78bd10e0a43c3f300f013193cafc9eccf1cb32a58f8d6dc574073d4197d2d71d90f224e6a5c4 SHA512 9e7a10e0bbd856a7a630fb8d1660a3e5cd224a04243989dbd24f3cc2e869a817a1fabe98b4257e9e5870a96f8d6dbcf51312c960a4a185457cb011ac9a0246fc
DIST NVIDIA-Linux-armv7l-gnueabihf-390.132.run 29084574 BLAKE2B 4727627de610928f0808c0213c9d359c5566900972ab9fbd3d0c58b36c0a1331799ceea22b4defdcfb81c3132f6124d8a6357de8124921eef608938afdc1380d SHA512 2f78a722ec31ceda86afc1831cb42d0eab8f8698b94c7fbc8569a6d34693b50e74453d5aaf3c0180f1fc2511b8c237ac635aceb24bcbea468f2a092cb44f98ee
DIST NVIDIA-Linux-x86-340.107.run 39016798 BLAKE2B 2632c8f257d0cf7c5b9294eb2c0b763eee6feb60eacc316024655971e4d067c4af6548aab3b7b2b295792b064f3f3ac3e6403a2ecfa096761d308dfb6b2569b8 SHA512 0add713942bcdb639d19b5c36f5e0cea14f9e07490191d46dfeba0515ede7700fd8e9467ec531d38329fe1e76bf45905e70e0d440e7bc2dc79c1d767eab03338
DIST NVIDIA-Linux-x86-390.129.run 47560033 BLAKE2B e9b34c51d63dada2714c74cdb4ab199a141b1f5dd9f0d3222b1f5eec6a6a07dd2fdc2a609b9d0683b99c26078f4426082ea25b663c47f33fff4bb84599ac41e2 SHA512 b31d8f6b663fa7da1291fc25b4b08e17019476da521baea41201410a1d8a803b8ac9bad18485ff53589cea281ae4ece749118fa23a63e2c0720aafc60367255f
DIST NVIDIA-Linux-x86-390.132.run 48152101 BLAKE2B f1e76c2796d12476a35701607226483a34ee3b50a0c7dc03e3626e8cab4250b07c0f5aa238a0d5d5b65b79dc504963f2723089108281668b2f4fae03f4bf25c5 SHA512 12b0f80b4bbaebc984c7dbacd365795646c7697606242b05095ac61d69d89ab89fded47d583b4b99793ebcea9e38ec1e7b63dda1c2fdce53ab697cafcdbb3a85
DIST NVIDIA-Linux-x86_64-340.107.run 70233686 BLAKE2B 821a2672dcc3b546fbb3f826230fb06741503d75b06f72cb407dd3c9de4f2cbd150bff34e554dca8aa86e7f6bf64ce4f7f9b52976799a477c6c2659aaa5bb4d3 SHA512 51df9370526732db099a8a925d35cdf1317ae2b0ab2c130eaf82373f25186165b4af7d44f71e51e2a68f7d07c7ae3f441a6c6c4be8467003b15dc770c4f4e89b
DIST NVIDIA-Linux-x86_64-390.129.run 82314424 BLAKE2B 46e648f413ac2b62dfa02ef63d4fafd87cf71e3c6035435a727a9079a545277efd57865f0a42cd6ea29f74b29955985f0f32e8ade4d5bb0a9cd5de663f2e3f2a SHA512 79e53177f8feb9480215e0bcc6a30896f70e39f55f81879eeb4539492c01ce55471d27ccb9af49040b96946836d387ff8c71d25d06f6b13bdb626b44ac7d4777
DIST NVIDIA-Linux-x86_64-390.132.run 82900057 BLAKE2B e94cc2493701e34c4dd2f0fc4f89501d6b1d3e44abf80af2eff20c19a22c1160ce322c25d2b5b13e212bf48fb41f94d3c1bb6f9251302e6c8facb687d807a3dc SHA512 bad3453472e8af9ef0681b82db75f9c53816a7d57ff2bf1facd2ea010e757bf7fd4fb907317471934a0cb56510eaf2a90503a3a86ec80b76afdacfa2b9ee6c13
DIST NVIDIA-Linux-x86_64-430.64.run 111331457 BLAKE2B 59d8b739bc472810eb896ef620735b6f21ccfde653e08f248797720d21d75580dcea2448f17a5d1c32be393595d9dfedc48c81e96a8ea422c7f0d9eadf36ae1c SHA512 552bf1e8c4725258c07cbb0e000d0e407fba1b51207903f2b77c0d9fd8b15b629f791b20239f75a1aec85aa03cbcca90a1cb633090919cf0599054231f715250
DIST NVIDIA-Linux-x86_64-435.21.run 144387574 BLAKE2B e9afd6335182a28f5136dbef55195a2f2d8f768376ebc148190a0a82470a34d008ce04170ffc1aab36585605910c1300567a90443b5f58cb46ec3bff6ab9409c SHA512 e83b6dff80434971c0b254815945d485a45c978b8a19994244f50a463658863948b2eac8bc62d667bb10c23f41cf1c3521c409d23ac2ab6a0c0cd094a6e20270
DIST NVIDIA-Linux-x86_64-440.31.run 141511198 BLAKE2B 10dade6dddca6c3fcb0d20929d237d70eb19b8e6ce6c59ce814cf723e0a25d1e1e3749d013174e3683c9d002b9a61fbc1ff014ba17fee51bf1900e1eecb64181 SHA512 5598d362f21fb4e75a07d77167e24411b5a550e3f1329b39fe004987e2bcb191c9bbf1b3d1a43a8754a9ba00faef57a943c7778999a4e3121c13c30f912fae38
DIST NVIDIA-Linux-x86_64-440.36.run 142387822 BLAKE2B f89d4355b4779483ec42e60501fdd5ef1616a3d50f6def0d3f9b1ac9a64d19cdefb4cb331f0a008d0c7a7b199daf6e96053ccb6fad2e7043e41f2615f35305a2 SHA512 445d7f58de418cbee79895469a27afa2186656a961499dfc0e7e62ba1f773f5a011affa563b0fc50c212b9e06b23f63e182c122b36d0d93c39cc3e9ff3641410
DIST nvidia-settings-340.107.tar.bz2 1549413 BLAKE2B 127442ee2c35ceec47ab4f103bdd2d0278c621fcb9be47051111f6f8728ef5699bdc95fe33a3812a807c38c4868b04c2176e2ed218a422171d2a88ac0c00de96 SHA512 593e7e83aa350a3a7beaaa32aca8660d7e203f6f2e460a6e6eabcdc092087f9917ee4e6d141e37ad4e3b0a1b9908c085e4a71d2f579e481a03bbd1c6f75ca776
DIST nvidia-settings-390.129.tar.bz2 1109456 BLAKE2B cdce0bba52697e214ea26514467ea6f61fa06429f0a58ca549b74d8da1f7b07cbc52b1c9de6a13aed77545c2ba8c98b212a7865fdc5026dcd74f5565b73c4e1e SHA512 bf004608fbee6a12521fbcd9ab4e3d0333896b320c943ed9f2dc5373d8ffb2eb9cb4c6873a263acac87a9ab67a5f4589344d2bbd70bce36cf14242f4d57e1b87
DIST nvidia-settings-390.132.tar.bz2 1109373 BLAKE2B cec60b7409f6d352afe3845a2ec65db96183d1fe009340fa3601166718f21b43bb08b63c5eaaaf4c266c7b16e7d374f6ecc00691763d5ae1b6902c8002da5bea SHA512 12553edc1a1ba9c3f578e0e921b25ec7114cbc80a55621cbd612a1bd85c9a518e221b30809058e4df5da6ae75ea7a1cd5c3d9c8f02a0898bc8c08ac9c22ccee3
DIST nvidia-settings-430.64.tar.bz2 1130931 BLAKE2B 032bbe8cdb7ec3b353e8f8ef33d0e86f4b4f3ef24b38de669e09173519149efe0aa55d5d30d0a0c6d2b8398d5ce38bbe4176df735501725475df4137d533e57d SHA512 fa82699610aa0f4709101e1a4e9e8147b133c85afb20ecb4506bfccf233e4f42dac26e53e2966f2137eb29190b5e4173b267167f5341b516fa1169785946e240
DIST nvidia-settings-435.21.tar.bz2 1131222 BLAKE2B 855f5c7667f4a5ec0f917fbb017d70ec6ee5e768f7087e77e54a66dea852c471bd1810a2163fb33204e5f381998a27a4254e0a5d2c73e2b6b624813ff8294f24 SHA512 8b408cc70118df3a138a99fe7fc14f6370d500b8ae26888b27b07de22f6fc6eebd65bd437d83ee82e18a1d8ee4cceec601c414b1947302ca808fff48165f31bb
DIST nvidia-settings-440.31.tar.bz2 1128258 BLAKE2B 46976f763e9aba85d92720d38adeda859a10078c24b778c3e9b170f8b5472477ad377486574827156844b7133811e57ea524e6a246c2f0528b45fc1bae5e36ec SHA512 10199915e9b2245d908016058e15a3f6569705d0c27d7d6aab83b3229aa9e66a0b1da4803b3a0c377de18cc205e1011eebb7fd2121022d638061f661036f8cb9
DIST nvidia-settings-440.36.tar.bz2 1128259 BLAKE2B 1505b71cd51546e59662abe9baf1640241fcc15a9d1cb0723ef852a7beb021c9a51fbda23c9d9a7a1f864918c0531597bbbcd48afac3dec2b3be6b038060a7cf SHA512 43b849ae86f54241eaacc2de2deabc011715d176b828c1b550bc5ca14031dc66b4103edf0b8f398119c8968496d00cca4c863c8ab82c19f2f83ef6217db0889d

View File

@@ -1,557 +0,0 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit desktop flag-o-matic linux-info linux-mod multilib-minimal \
nvidia-driver portability toolchain-funcs unpacker user udev
DESCRIPTION="NVIDIA Accelerated Graphics Driver"
HOMEPAGE="https://www.nvidia.com/"
AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
ARM_NV_PACKAGE="NVIDIA-Linux-armv7l-gnueabihf-${PV}"
X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
NV_URI="https://us.download.nvidia.com/XFree86/"
SRC_URI="
amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
arm? ( ${NV_URI}Linux-x86-ARM/${PV}/${ARM_NV_PACKAGE}.run )
x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
tools? (
https://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2
)
"
EMULTILIB_PKG="true"
KEYWORDS="-* amd64 x86"
LICENSE="GPL-2 NVIDIA-r2"
SLOT="0/${PV%.*}"
IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib static-libs +tools uvm wayland +X"
REQUIRED_USE="
tools? ( X )
static-libs? ( tools )
"
COMMON="
app-eselect/eselect-opencl
kernel_linux? ( >=sys-libs/glibc-2.6.1 )
tools? (
dev-libs/atk
dev-libs/glib:2
dev-libs/jansson
gtk3? (
x11-libs/gtk+:3
)
x11-libs/cairo
x11-libs/gdk-pixbuf[X]
x11-libs/gtk+:2
x11-libs/libX11
x11-libs/libXext
x11-libs/libXrandr
x11-libs/libXv
x11-libs/libXxf86vm
x11-libs/pango[X]
)
X? (
>=app-eselect/eselect-opengl-1.0.9
app-misc/pax-utils
)
"
DEPEND="
${COMMON}
kernel_linux? ( virtual/linux-sources )
tools? ( sys-apps/dbus )
"
RDEPEND="
${COMMON}
acpi? ( sys-power/acpid )
tools? ( !media-video/nvidia-settings )
wayland? ( dev-libs/wayland[${MULTILIB_USEDEP}] )
X? (
<x11-base/xorg-server-1.20.99:=
>=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
>=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
>=x11-libs/libvdpau-1.0[${MULTILIB_USEDEP}]
sys-libs/zlib[${MULTILIB_USEDEP}]
)
"
QA_PREBUILT="opt/* usr/lib*"
S=${WORKDIR}/
NV_KV_MAX_PLUS="5.4"
CONFIG_CHECK="!DEBUG_MUTEXES ~!LOCKDEP ~MTRR ~SYSVIPC ~ZONE_DMA"
pkg_pretend() {
use x86 && CONFIG_CHECK+=" ~HIGHMEM"
nvidia-driver_check
}
pkg_setup() {
use x86 && CONFIG_CHECK+=" ~HIGHMEM"
nvidia-driver_check
# try to turn off distcc and ccache for people that have a problem with it
export DISTCC_DISABLE=1
export CCACHE_DISABLE=1
if use driver && use kernel_linux; then
MODULE_NAMES="nvidia(video:${S}/kernel)"
use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel) nvidia-drm(video:${S}/kernel)"
# This needs to run after MODULE_NAMES (so that the eclass checks
# whether the kernel supports loadable modules) but before BUILD_PARAMS
# is set (so that KV_DIR is populated).
linux-mod_pkg_setup
BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
# linux-mod_src_compile calls set_arch_to_kernel, which
# sets the ARCH to x86 but NVIDIA's wrapping Makefile
# expects x86_64 or i386 and then converts it to x86
# later on in the build process
BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
fi
if use kernel_linux && kernel_is lt 2 6 9; then
eerror "You must build this against 2.6.9 or higher kernels."
fi
# set variables to where files are in the package structure
if use kernel_FreeBSD; then
use x86-fbsd && S="${WORKDIR}/${X86_FBSD_NV_PACKAGE}"
use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
NV_DOC="${S}/doc"
NV_OBJ="${S}/obj"
NV_SRC="${S}/src"
NV_MAN="${S}/x11/man"
NV_X11="${S}/obj"
NV_SOVER=1
elif use kernel_linux; then
NV_DOC="${S}"
NV_OBJ="${S}"
NV_SRC="${S}/kernel"
NV_MAN="${S}"
NV_X11="${S}"
NV_SOVER=${PV}
else
die "Could not determine proper NVIDIA package"
fi
}
src_prepare() {
local man_file
for man_file in "${NV_MAN}"/*1.gz; do
gunzip $man_file || die
done
if use tools; then
cp "${FILESDIR}"/nvidia-settings-linker.patch "${WORKDIR}" || die
sed -i \
-e "s:@PV@:${PV}:g" \
"${WORKDIR}"/nvidia-settings-linker.patch || die
eapply "${WORKDIR}"/nvidia-settings-linker.patch
fi
default
if ! [ -f nvidia_icd.json ]; then
cp nvidia_icd.json.template nvidia_icd.json || die
sed -i -e 's:__NV_VK_ICD__:libGLX_nvidia.so.0:g' nvidia_icd.json || die
fi
}
src_compile() {
# This is already the default on Linux, as there's no toplevel Makefile, but
# on FreeBSD there's one and triggers the kernel module build, as we install
# it by itself, pass this.
cd "${NV_SRC}"
if use kernel_FreeBSD; then
MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
elif use driver && use kernel_linux; then
BUILD_TARGETS=module linux-mod_src_compile \
KERNELRELEASE="${KV_FULL}" \
src="${KERNEL_DIR}"
fi
if use tools; then
emake -C "${S}"/nvidia-settings-${PV}/src \
AR="$(tc-getAR)" \
CC="$(tc-getCC)" \
DO_STRIP= \
LD="$(tc-getCC)" \
LIBDIR="$(get_libdir)" \
NVLD="$(tc-getLD)" \
NV_VERBOSE=1 \
RANLIB="$(tc-getRANLIB)" \
build-xnvctrl
emake -C "${S}"/nvidia-settings-${PV}/src \
CC="$(tc-getCC)" \
DO_STRIP= \
GTK3_AVAILABLE=$(usex gtk3 1 0) \
LD="$(tc-getCC)" \
LIBDIR="$(get_libdir)" \
NVLD="$(tc-getLD)" \
NVML_ENABLED=0 \
NV_USE_BUNDLED_LIBJANSSON=0 \
NV_VERBOSE=1
fi
}
# Install nvidia library:
# the first parameter is the library to install
# the second parameter is the provided soversion
# the third parameter is the target directory if it is not /usr/lib
donvidia() {
# Full path to library
nv_LIB="${1}"
# SOVER to use
nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})"
# Where to install
nv_DEST="${2}"
# Get just the library name
nv_LIBNAME=$(basename "${nv_LIB}")
if [[ "${nv_DEST}" ]]; then
exeinto ${nv_DEST}
action="doexe"
else
nv_DEST="/usr/$(get_libdir)"
action="dolib.so"
fi
# Install the library
${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}"
# If the library has a SONAME and SONAME does not match the library name,
# then we need to create a symlink
if [[ ${nv_SOVER} ]] && ! [[ "${nv_SOVER}" = "${nv_LIBNAME}" ]]; then
dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER} \
|| die "failed to create ${nv_DEST}/${nv_SOVER} symlink"
fi
dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so} \
|| die "failed to create ${nv_LIBNAME/.so*/.so} symlink"
}
src_install() {
if use driver && use kernel_linux; then
linux-mod_src_install
# Add the aliases
# This file is tweaked with the appropriate video group in
# pkg_preinst, see bug #491414
insinto /etc/modprobe.d
newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
if use uvm; then
doins "${FILESDIR}"/nvidia-rmmod.conf
udev_newrules "${FILESDIR}"/nvidia-uvm.udev-rule 99-nvidia-uvm.rules
else
sed -e 's|nvidia-uvm ||g' "${FILESDIR}"/nvidia-rmmod.conf \
> "${T}"/nvidia-rmmod.conf || die
doins "${T}"/nvidia-rmmod.conf
fi
# Ensures that our device nodes are created when not using X
exeinto "$(get_udevdir)"
newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
elif use kernel_FreeBSD; then
if use x86-fbsd; then
insinto /boot/modules
doins "${S}/src/nvidia.kld"
fi
exeinto /boot/modules
doexe "${S}/src/nvidia.ko"
fi
# NVIDIA kernel <-> userspace driver config lib
donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER}
# NVIDIA framebuffer capture library
donvidia ${NV_OBJ}/libnvidia-fbc.so.${NV_SOVER}
# NVIDIA video encode/decode <-> CUDA
if use kernel_linux; then
donvidia ${NV_OBJ}/libnvcuvid.so.${NV_SOVER}
donvidia ${NV_OBJ}/libnvidia-encode.so.${NV_SOVER}
fi
if use X; then
# Xorg DDX driver
insinto /usr/$(get_libdir)/xorg/modules/drivers
doins ${NV_X11}/nvidia_drv.so
# Xorg GLX driver
donvidia ${NV_X11}/libglx.so.${NV_SOVER} \
/usr/$(get_libdir)/opengl/nvidia/extensions
# Xorg nvidia.conf
if has_version '>=x11-base/xorg-server-1.16'; then
insinto /usr/share/X11/xorg.conf.d
newins {,50-}nvidia-drm-outputclass.conf
fi
insinto /usr/share/glvnd/egl_vendor.d
doins ${NV_X11}/10_nvidia.json
fi
if use wayland; then
insinto /usr/share/egl/egl_external_platform.d
doins ${NV_X11}/10_nvidia_wayland.json
fi
# OpenCL ICD for NVIDIA
if use kernel_linux; then
insinto /etc/OpenCL/vendors
doins ${NV_OBJ}/nvidia.icd
fi
# Helper Apps
exeinto /opt/bin/
if use X; then
doexe ${NV_OBJ}/nvidia-xconfig
insinto /etc/vulkan/icd.d
doins nvidia_icd.json
fi
if use kernel_linux; then
doexe ${NV_OBJ}/nvidia-cuda-mps-control
doexe ${NV_OBJ}/nvidia-cuda-mps-server
doexe ${NV_OBJ}/nvidia-debugdump
doexe ${NV_OBJ}/nvidia-persistenced
doexe ${NV_OBJ}/nvidia-smi
# install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
doexe ${NV_OBJ}/nvidia-modprobe
fowners root:video /opt/bin/nvidia-modprobe
fperms 4710 /opt/bin/nvidia-modprobe
dosym /{opt,usr}/bin/nvidia-modprobe
doman nvidia-cuda-mps-control.1
doman nvidia-modprobe.1
doman nvidia-persistenced.1
newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
fi
if use tools; then
emake -C "${S}"/nvidia-settings-${PV}/src/ \
DESTDIR="${D}" \
GTK3_AVAILABLE=$(usex gtk3 1 0) \
LIBDIR="${D}/usr/$(get_libdir)" \
NV_USE_BUNDLED_LIBJANSSON=0 \
NV_VERBOSE=1 \
PREFIX=/usr \
DO_STRIP= \
install
if use static-libs; then
dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
insinto /usr/include/NVCtrl
doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
fi
insinto /usr/share/nvidia/
doins nvidia-application-profiles-${PV}-key-documentation
insinto /etc/nvidia
newins \
nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
# There is no icon in the FreeBSD tarball.
use kernel_FreeBSD || \
doicon ${NV_OBJ}/nvidia-settings.png
domenu "${FILESDIR}"/nvidia-settings.desktop
exeinto /etc/X11/xinit/xinitrc.d
newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
fi
dobin ${NV_OBJ}/nvidia-bug-report.sh
if has_multilib_profile && use multilib; then
local OABI=${ABI}
for ABI in $(get_install_abis); do
src_install-libs
done
ABI=${OABI}
unset OABI
else
src_install-libs
fi
is_final_abi || die "failed to iterate through all ABIs"
# Documentation
if use kernel_FreeBSD; then
dodoc "${NV_DOC}/README"
use X && doman "${NV_MAN}"/nvidia-xconfig.1
use tools && doman "${NV_MAN}"/nvidia-settings.1
else
# Docs
newdoc "${NV_DOC}/README.txt" README
dodoc "${NV_DOC}/NVIDIA_Changelog"
doman "${NV_MAN}"/nvidia-smi.1
use X && doman "${NV_MAN}"/nvidia-xconfig.1
use tools && doman "${NV_MAN}"/nvidia-settings.1
doman "${NV_MAN}"/nvidia-cuda-mps-control.1
fi
readme.gentoo_create_doc
docinto html
dodoc -r ${NV_DOC}/html/*
}
src_install-libs() {
local inslibdir=$(get_libdir)
local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
local nv_libdir="${NV_OBJ}"
if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then
nv_libdir="${NV_OBJ}"/32
fi
if use X; then
NV_GLX_LIBRARIES=(
"libEGL.so.$(usex compat ${NV_SOVER} 1.1.0) ${GL_ROOT}"
"libEGL_nvidia.so.${NV_SOVER} ${GL_ROOT}"
"libGL.so.$(usex compat ${NV_SOVER} 1.7.0) ${GL_ROOT}"
"libGLESv1_CM.so.1.2.0 ${GL_ROOT}"
"libGLESv1_CM_nvidia.so.${NV_SOVER} ${GL_ROOT}"
"libGLESv2.so.2.1.0 ${GL_ROOT}"
"libGLESv2_nvidia.so.${NV_SOVER} ${GL_ROOT}"
"libGLX.so.0 ${GL_ROOT}"
"libGLX_nvidia.so.${NV_SOVER} ${GL_ROOT}"
"libGLdispatch.so.0 ${GL_ROOT}"
"libOpenCL.so.1.0.0 ${CL_ROOT}"
"libOpenGL.so.0 ${GL_ROOT}"
"libcuda.so.${NV_SOVER}"
"libnvcuvid.so.${NV_SOVER}"
"libnvidia-compiler.so.${NV_SOVER}"
"libnvidia-eglcore.so.${NV_SOVER}"
"libnvidia-encode.so.${NV_SOVER}"
"libnvidia-fatbinaryloader.so.${NV_SOVER}"
"libnvidia-fbc.so.${NV_SOVER}"
"libnvidia-glcore.so.${NV_SOVER}"
"libnvidia-glsi.so.${NV_SOVER}"
"libnvidia-ifr.so.${NV_SOVER}"
"libnvidia-opencl.so.${NV_SOVER}"
"libnvidia-ptxjitcompiler.so.${NV_SOVER}"
"libvdpau_nvidia.so.${NV_SOVER}"
)
if use wayland && has_multilib_profile && [[ ${ABI} == "amd64" ]];
then
NV_GLX_LIBRARIES+=(
"libnvidia-egl-wayland.so.1.0.2"
)
fi
if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
then
NV_GLX_LIBRARIES+=(
"libnvidia-wfb.so.${NV_SOVER}"
)
fi
if use kernel_FreeBSD; then
NV_GLX_LIBRARIES+=(
"libnvidia-tls.so.${NV_SOVER}"
)
fi
if use kernel_linux; then
NV_GLX_LIBRARIES+=(
"libnvidia-ml.so.${NV_SOVER}"
"tls/libnvidia-tls.so.${NV_SOVER}"
)
fi
for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
donvidia "${nv_libdir}"/${NV_LIB}
done
fi
}
pkg_preinst() {
if use driver && use kernel_linux; then
linux-mod_pkg_preinst
local videogroup="$(egetent group video | cut -d ':' -f 3)"
if [ -z "${videogroup}" ]; then
eerror "Failed to determine the video group gid"
die "Failed to determine the video group gid"
else
sed -i \
-e "s:PACKAGE:${PF}:g" \
-e "s:VIDEOGID:${videogroup}:" \
"${D}"/etc/modprobe.d/nvidia.conf || die
fi
fi
# Clean the dynamic libGL stuff's home to ensure
# we dont have stale libs floating around
if [ -d "${ROOT}"/usr/lib/opengl/nvidia ]; then
rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
fi
# Make sure we nuke the old nvidia-glx's env.d file
if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
rm -f "${ROOT}"/etc/env.d/09nvidia
fi
}
pkg_postinst() {
use driver && use kernel_linux && linux-mod_pkg_postinst
# Switch to the nvidia implementation
use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
"${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
readme.gentoo_print_elog
if ! use X; then
elog "You have elected to not install the X.org driver. Along with"
elog "this the OpenGL libraries and VDPAU libraries were not"
elog "installed. Additionally, once the driver is loaded your card"
elog "and fan will run at max speed which may not be desirable."
elog "Use the 'nvidia-smi' init script to have your card and fan"
elog "speed scale appropriately."
elog
fi
if ! use tools; then
elog "USE=tools controls whether the nvidia-settings application"
elog "is installed. If you would like to use it, enable that"
elog "flag and re-emerge this ebuild. Optionally you can install"
elog "media-video/nvidia-settings"
elog
fi
}
pkg_prerm() {
use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
}
pkg_postrm() {
use driver && use kernel_linux && linux-mod_pkg_postrm
use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
}

View File

@@ -1,572 +0,0 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit desktop flag-o-matic linux-info linux-mod multilib-minimal \
nvidia-driver portability toolchain-funcs unpacker user udev
DESCRIPTION="NVIDIA Accelerated Graphics Driver"
HOMEPAGE="https://www.nvidia.com/"
AMD64_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86_64-${PV}"
AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
ARM_NV_PACKAGE="NVIDIA-Linux-armv7l-gnueabihf-${PV}"
NV_URI="https://us.download.nvidia.com/XFree86/"
SRC_URI="
amd64-fbsd? ( ${NV_URI}FreeBSD-x86_64/${PV}/${AMD64_FBSD_NV_PACKAGE}.tar.gz )
amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
tools? (
https://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2
)
"
EMULTILIB_PKG="true"
KEYWORDS="-* amd64"
LICENSE="GPL-2 NVIDIA-r2"
SLOT="0/${PV%.*}"
IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms libglvnd multilib static-libs +tools uvm wayland +X"
REQUIRED_USE="
tools? ( X )
static-libs? ( tools )
"
COMMON="
app-eselect/eselect-opencl
kernel_linux? ( >=sys-libs/glibc-2.6.1 )
tools? (
dev-libs/atk
dev-libs/glib:2
dev-libs/jansson
gtk3? (
x11-libs/gtk+:3
)
x11-libs/cairo
x11-libs/gdk-pixbuf[X]
x11-libs/gtk+:2
x11-libs/libX11
x11-libs/libXext
x11-libs/libXrandr
x11-libs/libXv
x11-libs/libXxf86vm
x11-libs/pango[X]
)
X? (
!libglvnd? ( >=app-eselect/eselect-opengl-1.0.9 )
libglvnd? (
media-libs/libglvnd[${MULTILIB_USEDEP}]
!app-eselect/eselect-opengl
)
app-misc/pax-utils
)
"
DEPEND="
${COMMON}
kernel_linux? ( virtual/linux-sources )
tools? ( sys-apps/dbus )
"
RDEPEND="
${COMMON}
acpi? ( sys-power/acpid )
tools? ( !media-video/nvidia-settings )
wayland? ( dev-libs/wayland[${MULTILIB_USEDEP}] )
X? (
<x11-base/xorg-server-1.20.99:=
>=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
>=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
>=x11-libs/libvdpau-1.0[${MULTILIB_USEDEP}]
sys-libs/zlib[${MULTILIB_USEDEP}]
)
"
QA_PREBUILT="opt/* usr/lib*"
S=${WORKDIR}/
PATCHES=(
"${FILESDIR}"/${PN}-440.26-locale.patch
)
NV_KV_MAX_PLUS="5.5"
CONFIG_CHECK="!DEBUG_MUTEXES ~!I2C_NVIDIA_GPU ~!LOCKDEP ~MTRR ~SYSVIPC ~ZONE_DMA"
pkg_pretend() {
nvidia-driver_check
}
pkg_setup() {
nvidia-driver_check
# try to turn off distcc and ccache for people that have a problem with it
export DISTCC_DISABLE=1
export CCACHE_DISABLE=1
if use driver && use kernel_linux; then
MODULE_NAMES="nvidia(video:${S}/kernel)"
use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel) nvidia-drm(video:${S}/kernel)"
# This needs to run after MODULE_NAMES (so that the eclass checks
# whether the kernel supports loadable modules) but before BUILD_PARAMS
# is set (so that KV_DIR is populated).
linux-mod_pkg_setup
BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
# linux-mod_src_compile calls set_arch_to_kernel, which
# sets the ARCH to x86 but NVIDIA's wrapping Makefile
# expects x86_64 or i386 and then converts it to x86
# later on in the build process
BUILD_FIXES="ARCH=$(uname -m | sed -e 's/i.86/i386/')"
fi
if use kernel_linux && kernel_is lt 2 6 9; then
eerror "You must build this against 2.6.9 or higher kernels."
fi
# set variables to where files are in the package structure
if use kernel_FreeBSD; then
use amd64-fbsd && S="${WORKDIR}/${AMD64_FBSD_NV_PACKAGE}"
NV_DOC="${S}/doc"
NV_OBJ="${S}/obj"
NV_SRC="${S}/src"
NV_MAN="${S}/x11/man"
NV_X11="${S}/obj"
NV_SOVER=1
elif use kernel_linux; then
NV_DOC="${S}"
NV_OBJ="${S}"
NV_SRC="${S}/kernel"
NV_MAN="${S}"
NV_X11="${S}"
NV_SOVER=${PV}
else
die "Could not determine proper NVIDIA package"
fi
}
src_configure() {
tc-export AR CC LD
default
}
src_prepare() {
local man_file
for man_file in "${NV_MAN}"/*1.gz; do
gunzip $man_file || die
done
if use tools; then
cp "${FILESDIR}"/nvidia-settings-linker.patch "${WORKDIR}" || die
sed -i \
-e "s:@PV@:${PV}:g" \
"${WORKDIR}"/nvidia-settings-linker.patch || die
eapply "${WORKDIR}"/nvidia-settings-linker.patch
fi
default
if ! [ -f nvidia_icd.json ]; then
cp nvidia_icd.json.template nvidia_icd.json || die
sed -i -e 's:__NV_VK_ICD__:libGLX_nvidia.so.0:g' nvidia_icd.json || die
fi
}
src_compile() {
cd "${NV_SRC}"
if use kernel_FreeBSD; then
MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \
LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
elif use driver && use kernel_linux; then
BUILD_TARGETS=module linux-mod_src_compile \
KERNELRELEASE="${KV_FULL}" \
src="${KERNEL_DIR}"
fi
if use tools; then
emake -C "${S}"/nvidia-settings-${PV}/src/libXNVCtrl \
DO_STRIP= \
LIBDIR="$(get_libdir)" \
NVLD="$(tc-getLD)" \
NV_VERBOSE=1 \
OUTPUTDIR=. \
RANLIB="$(tc-getRANLIB)"
emake -C "${S}"/nvidia-settings-${PV}/src \
DO_STRIP= \
GTK3_AVAILABLE=$(usex gtk3 1 0) \
LIBDIR="$(get_libdir)" \
NVLD="$(tc-getLD)" \
NVML_ENABLED=0 \
NV_USE_BUNDLED_LIBJANSSON=0 \
NV_VERBOSE=1 \
OUTPUTDIR=.
fi
}
# Install nvidia library:
# the first parameter is the library to install
# the second parameter is the provided soversion
# the third parameter is the target directory if it is not /usr/lib
donvidia() {
# Full path to library
nv_LIB="${1}"
# SOVER to use
nv_SOVER="$(scanelf -qF'%S#F' ${nv_LIB})"
# Where to install
nv_DEST="${2}"
# Get just the library name
nv_LIBNAME=$(basename "${nv_LIB}")
if [[ "${nv_DEST}" ]]; then
exeinto ${nv_DEST}
action="doexe"
else
nv_DEST="/usr/$(get_libdir)"
action="dolib.so"
fi
# Install the library
${action} ${nv_LIB} || die "failed to install ${nv_LIBNAME}"
# If the library has a SONAME and SONAME does not match the library name,
# then we need to create a symlink
if [[ ${nv_SOVER} ]] && ! [[ "${nv_SOVER}" = "${nv_LIBNAME}" ]]; then
dosym ${nv_LIBNAME} ${nv_DEST}/${nv_SOVER} \
|| die "failed to create ${nv_DEST}/${nv_SOVER} symlink"
fi
dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so} \
|| die "failed to create ${nv_LIBNAME/.so*/.so} symlink"
}
src_install() {
if use driver && use kernel_linux; then
linux-mod_src_install
# Add the aliases
# This file is tweaked with the appropriate video group in
# pkg_preinst, see bug #491414
insinto /etc/modprobe.d
newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
if use uvm; then
doins "${FILESDIR}"/nvidia-rmmod.conf
udev_newrules "${FILESDIR}"/nvidia-uvm.udev-rule 99-nvidia-uvm.rules
else
sed -e 's|nvidia-uvm ||g' "${FILESDIR}"/nvidia-rmmod.conf \
> "${T}"/nvidia-rmmod.conf || die
doins "${T}"/nvidia-rmmod.conf
fi
# Ensures that our device nodes are created when not using X
exeinto "$(get_udevdir)"
newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh
udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules
elif use kernel_FreeBSD; then
if use x86-fbsd; then
insinto /boot/modules
doins "${S}/src/nvidia.kld"
fi
exeinto /boot/modules
doexe "${S}/src/nvidia.ko"
fi
# NVIDIA kernel <-> userspace driver config lib
donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER}
# NVIDIA framebuffer capture library
donvidia ${NV_OBJ}/libnvidia-fbc.so.${NV_SOVER}
# NVIDIA video encode/decode <-> CUDA
if use kernel_linux; then
donvidia ${NV_OBJ}/libnvcuvid.so.${NV_SOVER}
donvidia ${NV_OBJ}/libnvidia-encode.so.${NV_SOVER}
fi
if use X; then
# Xorg DDX driver
insinto /usr/$(get_libdir)/xorg/modules/drivers
doins ${NV_X11}/nvidia_drv.so
# Xorg GLX driver
donvidia ${NV_X11}/libglxserver_nvidia.so.${NV_SOVER} \
/usr/$(get_libdir)/xorg/modules/extensions
# Xorg nvidia.conf
if has_version '>=x11-base/xorg-server-1.16'; then
insinto /usr/share/X11/xorg.conf.d
newins {,50-}nvidia-drm-outputclass.conf
fi
insinto /usr/share/glvnd/egl_vendor.d
doins ${NV_X11}/10_nvidia.json
fi
if use wayland; then
insinto /usr/share/egl/egl_external_platform.d
doins ${NV_X11}/10_nvidia_wayland.json
fi
# OpenCL ICD for NVIDIA
if use kernel_linux; then
insinto /etc/OpenCL/vendors
doins ${NV_OBJ}/nvidia.icd
fi
# Helper Apps
exeinto /opt/bin/
if use X; then
doexe ${NV_OBJ}/nvidia-xconfig
insinto /etc/vulkan/icd.d
doins nvidia_icd.json
fi
if use kernel_linux; then
doexe ${NV_OBJ}/nvidia-cuda-mps-control
doexe ${NV_OBJ}/nvidia-cuda-mps-server
doexe ${NV_OBJ}/nvidia-debugdump
doexe ${NV_OBJ}/nvidia-persistenced
doexe ${NV_OBJ}/nvidia-smi
# install nvidia-modprobe setuid and symlink in /usr/bin (bug #505092)
doexe ${NV_OBJ}/nvidia-modprobe
fowners root:video /opt/bin/nvidia-modprobe
fperms 4710 /opt/bin/nvidia-modprobe
dosym /{opt,usr}/bin/nvidia-modprobe
doman nvidia-cuda-mps-control.1
doman nvidia-modprobe.1
doman nvidia-persistenced.1
newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi
newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced
newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced
fi
if use tools; then
emake -C "${S}"/nvidia-settings-${PV}/src/ \
DESTDIR="${D}" \
DO_STRIP= \
GTK3_AVAILABLE=$(usex gtk3 1 0) \
LIBDIR="${D}/usr/$(get_libdir)" \
NV_USE_BUNDLED_LIBJANSSON=0 \
NV_VERBOSE=1 \
OUTPUTDIR=. \
PREFIX=/usr \
install
if use static-libs; then
dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
insinto /usr/include/NVCtrl
doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
fi
insinto /usr/share/nvidia/
doins nvidia-application-profiles-${PV}-key-documentation
insinto /etc/nvidia
newins \
nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc
# There is no icon in the FreeBSD tarball.
use kernel_FreeBSD || \
doicon ${NV_OBJ}/nvidia-settings.png
domenu "${FILESDIR}"/nvidia-settings.desktop
exeinto /etc/X11/xinit/xinitrc.d
newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
fi
dobin ${NV_OBJ}/nvidia-bug-report.sh
if has_multilib_profile && use multilib; then
local OABI=${ABI}
for ABI in $(get_install_abis); do
src_install-libs
done
ABI=${OABI}
unset OABI
else
src_install-libs
fi
is_final_abi || die "failed to iterate through all ABIs"
# Documentation
if use kernel_FreeBSD; then
dodoc "${NV_DOC}/README"
use X && doman "${NV_MAN}"/nvidia-xconfig.1
use tools && doman "${NV_MAN}"/nvidia-settings.1
else
# Docs
newdoc "${NV_DOC}/README.txt" README
dodoc "${NV_DOC}/NVIDIA_Changelog"
doman "${NV_MAN}"/nvidia-smi.1
use X && doman "${NV_MAN}"/nvidia-xconfig.1
use tools && doman "${NV_MAN}"/nvidia-settings.1
doman "${NV_MAN}"/nvidia-cuda-mps-control.1
fi
readme.gentoo_create_doc
docinto html
dodoc -r ${NV_DOC}/html/*
}
src_install-libs() {
local inslibdir=$(get_libdir)
if use libglvnd; then
local GL_ROOT="/usr/$(get_libdir)"
else
local GL_ROOT="/usr/$(get_libdir)/opengl/nvidia/lib"
fi
local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
local nv_libdir="${NV_OBJ}"
if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]]; then
nv_libdir="${NV_OBJ}"/32
fi
if use X; then
NV_GLX_LIBRARIES=(
"libEGL_nvidia.so.${NV_SOVER} ${GL_ROOT}"
"libGLESv1_CM_nvidia.so.${NV_SOVER} ${GL_ROOT}"
"libGLESv2_nvidia.so.${NV_SOVER} ${GL_ROOT}"
"libGLX_nvidia.so.${NV_SOVER} ${GL_ROOT}"
"libOpenCL.so.1.0.0 ${CL_ROOT}"
"libcuda.so.${NV_SOVER}"
"libnvcuvid.so.${NV_SOVER}"
"libnvidia-compiler.so.${NV_SOVER}"
"libnvidia-eglcore.so.${NV_SOVER}"
"libnvidia-encode.so.${NV_SOVER}"
"libnvidia-fatbinaryloader.so.${NV_SOVER}"
"libnvidia-fbc.so.${NV_SOVER}"
"libnvidia-glcore.so.${NV_SOVER}"
"libnvidia-glsi.so.${NV_SOVER}"
"libnvidia-glvkspirv.so.${NV_SOVER}"
"libnvidia-ifr.so.${NV_SOVER}"
"libnvidia-opencl.so.${NV_SOVER}"
"libnvidia-ptxjitcompiler.so.${NV_SOVER}"
"libvdpau_nvidia.so.${NV_SOVER}"
)
if ! use libglvnd; then
NV_GLX_LIBRARIES+=(
"libEGL.so.$( [[ ${ABI} == "amd64" ]] && usex compat ${NV_SOVER} 1.1.0 || echo 1.1.0) ${GL_ROOT}"
"libGL.so.1.7.0 ${GL_ROOT}"
"libGLESv1_CM.so.1.2.0 ${GL_ROOT}"
"libGLESv2.so.2.1.0 ${GL_ROOT}"
"libGLX.so.0 ${GL_ROOT}"
"libGLdispatch.so.0 ${GL_ROOT}"
"libOpenGL.so.0 ${GL_ROOT}"
)
fi
if use wayland && has_multilib_profile && [[ ${ABI} == "amd64" ]];
then
NV_GLX_LIBRARIES+=(
"libnvidia-egl-wayland.so.1.1.4"
)
fi
if use kernel_FreeBSD; then
NV_GLX_LIBRARIES+=(
"libnvidia-tls.so.${NV_SOVER}"
)
fi
if use kernel_linux; then
NV_GLX_LIBRARIES+=(
"libnvidia-ml.so.${NV_SOVER}"
"libnvidia-tls.so.${NV_SOVER}"
)
fi
if use kernel_linux && has_multilib_profile && [[ ${ABI} == "amd64" ]];
then
NV_GLX_LIBRARIES+=(
"libnvidia-cbl.so.${NV_SOVER}"
"libnvidia-rtcore.so.${NV_SOVER}"
"libnvoptix.so.${NV_SOVER}"
)
fi
for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
donvidia "${nv_libdir}"/${NV_LIB}
done
fi
}
pkg_preinst() {
if use driver && use kernel_linux; then
linux-mod_pkg_preinst
local videogroup="$(egetent group video | cut -d ':' -f 3)"
if [ -z "${videogroup}" ]; then
eerror "Failed to determine the video group gid"
die "Failed to determine the video group gid"
else
sed -i \
-e "s:PACKAGE:${PF}:g" \
-e "s:VIDEOGID:${videogroup}:" \
"${D}"/etc/modprobe.d/nvidia.conf || die
fi
fi
# Clean the dynamic libGL stuff's home to ensure
# we dont have stale libs floating around
if [ -d "${ROOT}"/usr/lib/opengl/nvidia ]; then
rm -rf "${ROOT}"/usr/lib/opengl/nvidia/*
fi
# Make sure we nuke the old nvidia-glx's env.d file
if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
rm -f "${ROOT}"/etc/env.d/09nvidia
fi
}
pkg_postinst() {
use driver && use kernel_linux && linux-mod_pkg_postinst
# Switch to the nvidia implementation
if ! use libglvnd; then
use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia
fi
"${ROOT}"/usr/bin/eselect opencl set --use-old nvidia
readme.gentoo_print_elog
if ! use X; then
elog "You have elected to not install the X.org driver. Along with"
elog "this the OpenGL libraries and VDPAU libraries were not"
elog "installed. Additionally, once the driver is loaded your card"
elog "and fan will run at max speed which may not be desirable."
elog "Use the 'nvidia-smi' init script to have your card and fan"
elog "speed scale appropriately."
elog
fi
if ! use tools; then
elog "USE=tools controls whether the nvidia-settings application"
elog "is installed. If you would like to use it, enable that"
elog "flag and re-emerge this ebuild. Optionally you can install"
elog "media-video/nvidia-settings"
elog
fi
}
pkg_prerm() {
if ! use libglvnd; then
use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
fi
}
pkg_postrm() {
use driver && use kernel_linux && linux-mod_pkg_postrm
if ! use libglvnd; then
use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11
fi
}