diff options
Diffstat (limited to 'x11-drivers')
-rw-r--r-- | x11-drivers/nvidia-drivers/Manifest | 2 | ||||
-rw-r--r-- | x11-drivers/nvidia-drivers/files/dkms.patch | 2 | ||||
-rw-r--r-- | x11-drivers/nvidia-drivers/nvidia-drivers-470.63.01.ebuild (renamed from x11-drivers/nvidia-drivers/nvidia-drivers-470.57.02.ebuild) | 212 |
3 files changed, 81 insertions, 135 deletions
diff --git a/x11-drivers/nvidia-drivers/Manifest b/x11-drivers/nvidia-drivers/Manifest index 964f7d93..7001d5c4 100644 --- a/x11-drivers/nvidia-drivers/Manifest +++ b/x11-drivers/nvidia-drivers/Manifest @@ -1 +1 @@ -DIST NVIDIA-Linux-x86_64-470.57.02.run 273219658 BLAKE2B 4e9b6d0f08226f38e76157a64923a4b4bb07b46e1b37879da353a4ff39bcf6a3aa0689a04e16ebcb2ff19f453d9b265c53546f101f34cca998a5da4dba5c2826 SHA512 7123ee05aa0cc94c4cf1f0717daf85b116f0200b8f78f9322ea847db70e56386a065e0085959f27cbf0a8f9befe6fc7a0145d1bf2a28616df9bc8b5effd812f8 +DIST NVIDIA-Linux-x86_64-470.63.01.run 271484294 BLAKE2B 7769f53897dccea716d459a12808d1f5a738072415639063e47dee82b489bb17121516cf585c1bb6b39f71b11f62f636a466284aba5854a5cfb4f553353cf8d3 SHA512 d3dadf93df86e5462ecb4ae6a04f03b05bf1450ad91e8c2aa73e838ddc9aa11b4e926fc32714d32bd7c606498fee5a54c77d5e40ecc08a039d3e9c2d331ad454 diff --git a/x11-drivers/nvidia-drivers/files/dkms.patch b/x11-drivers/nvidia-drivers/files/dkms.patch index ea60558a..33707051 100644 --- a/x11-drivers/nvidia-drivers/files/dkms.patch +++ b/x11-drivers/nvidia-drivers/files/dkms.patch @@ -5,7 +5,7 @@ diff -Nur a/kernel/dkms.conf b/kernel/dkms.conf -PACKAGE_NAME="nvidia" -PACKAGE_VERSION="__VERSION_STRING" +PACKAGE_NAME="nvidia-drivers-dkms" -+PACKAGE_VERSION="470.57.02" ++PACKAGE_VERSION="470.63.01" AUTOINSTALL="yes" # By default, DKMS will add KERNELRELEASE to the make command line; however, diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-470.57.02.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-470.63.01.ebuild index 851732dd..41b95655 100644 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-470.57.02.ebuild +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-470.63.01.ebuild @@ -15,18 +15,16 @@ KEYWORDS="-* ~amd64" LICENSE="GPL-2 NVIDIA-r2" SLOT="0" -IUSE="acpi compat +dkms +libglvnd multilib +tools wayland +X" +IUSE="acpi +dkms multilib +tools wayland +X" REQUIRED_USE="tools? ( X )" COMMON=" acct-group/video acct-user/nvpd net-libs/libtirpc - >=sys-libs/glibc-2.6.1 X? ( >=x11-libs/libvdpau-1.0[${MULTILIB_USEDEP}] - app-misc/pax-utils - libglvnd? ( media-libs/libglvnd[X,${MULTILIB_USEDEP}] ) + media-libs/libglvnd[X,${MULTILIB_USEDEP}] ) " @@ -40,7 +38,6 @@ RDEPEND=" dkms? ( ~sys-kernel/${PN}-dkms-${PV}:${SLOT} ) tools? ( ~x11-misc/nvidia-settings-${PV}:${SLOT} ) wayland? ( - dev-libs/wayland[${MULTILIB_USEDEP}] >=gui-libs/egl-wayland-1.1.7-r1 ) X? ( @@ -59,8 +56,6 @@ PATCHES=( ) pkg_setup() { - - # try to turn off distcc and ccache for people that have a problem with it export DISTCC_DISABLE=1 export CCACHE_DISABLE=1 @@ -85,21 +80,10 @@ src_prepare() { 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 @@ -110,11 +94,8 @@ donvidia() { 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} fi @@ -122,107 +103,9 @@ donvidia() { dosym ${nv_LIBNAME} ${nv_DEST}/${nv_LIBNAME/.so*/.so} } -src_install() { - # blacklist nouveau - insinto /etc/modprobe.d - doins "${FILESDIR}"/nouveau.conf - - # 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 - donvidia ${NV_OBJ}/libnvcuvid.so.${NV_SOVER} - donvidia ${NV_OBJ}/libnvidia-encode.so.${NV_SOVER} - - 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)/nvidia/xorg - - # Xorg nvidia.conf - if has_version '>=x11-base/xorg-server-1.16'; then - insinto /usr/share/X11/xorg.conf.d - newins ${FILESDIR}/nvidia-drm-outputclass.conf 50-nvidia-drm-outputclass.conf - fi - - insinto /usr/share/glvnd/egl_vendor.d - doins ${NV_X11}/10_nvidia.json - fi - - insinto /etc/vulkan/icd.d - doins nvidia_icd.json - - insinto /etc/vulkan/implicit_layer.d - doins nvidia_layers.json - - # OpenCL ICD for NVIDIA - insinto /etc/OpenCL/vendors - doins ${NV_OBJ}/nvidia.icd - - # Helper Apps - exeinto /opt/bin/ - - if use X; then - doexe ${NV_OBJ}/nvidia-xconfig - fi - - 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 - - if has_multilib_profile && use multilib; then - local OABI=${ABI} - for ABI in $(multilib_get_enabled_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" - - # 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 - doman "${NV_MAN}"/nvidia-cuda-mps-control.1 - - 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 GL_ROOT="/usr/$(get_libdir)" local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia" local nv_libdir="${NV_OBJ}" @@ -243,7 +126,6 @@ src_install-libs() { "libnvidia-allocator.so.${NV_SOVER}" "libnvidia-eglcore.so.${NV_SOVER}" "libnvidia-encode.so.${NV_SOVER}" - "libnvidia-fbc.so.${NV_SOVER}" "libnvidia-glcore.so.${NV_SOVER}" "libnvidia-glsi.so.${NV_SOVER}" "libnvidia-glvkspirv.so.${NV_SOVER}" @@ -255,22 +137,10 @@ src_install-libs() { "libnvidia-ml.so.${NV_SOVER}" "libnvidia-tls.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 has_multilib_profile && [[ ${ABI} == "amd64" ]]; then NV_GLX_LIBRARIES+=( "libnvidia-cbl.so.${NV_SOVER}" - "libnvidia-cfg.so.${NV_SOVER}" "libnvidia-ngx.so.${NV_SOVER}" "libnvidia-rtcore.so.${NV_SOVER}" "libnvoptix.so.${NV_SOVER}" @@ -283,6 +153,82 @@ src_install-libs() { fi } +src_install() { + donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER} + donvidia ${NV_OBJ}/libnvidia-fbc.so.${NV_SOVER} + donvidia ${NV_OBJ}/libnvcuvid.so.${NV_SOVER} + donvidia ${NV_OBJ}/libnvidia-encode.so.${NV_SOVER} + + if has_multilib_profile && use multilib; then + local OABI=${ABI} + for ABI in $(multilib_get_enabled_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" + + if use X; then + donvidia ${NV_X11}/libglxserver_nvidia.so.${NV_SOVER} /usr/$(get_libdir)/nvidia/xorg + + insinto /usr/$(get_libdir)/xorg/modules/drivers + doins ${NV_X11}/nvidia_drv.so + + insinto /usr/share/X11/xorg.conf.d + newins ${FILESDIR}/nvidia-drm-outputclass.conf 50-nvidia-drm-outputclass.conf + + insinto /usr/share/glvnd/egl_vendor.d + doins ${NV_X11}/10_nvidia.json + + exeinto /opt/bin + doexe ${NV_OBJ}/nvidia-xconfig + + doman "${NV_MAN}"/nvidia-xconfig.1 + fi + + insinto /etc/modprobe.d + doins "${FILESDIR}"/nouveau.conf + + insinto /etc/vulkan/icd.d + doins nvidia_icd.json + + insinto /etc/vulkan/implicit_layer.d + doins nvidia_layers.json + + insinto /etc/OpenCL/vendors + doins ${NV_OBJ}/nvidia.icd + + exeinto /opt/bin/ + 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 + doexe ${NV_OBJ}/nvidia-modprobe + + fowners root:video /opt/bin/nvidia-modprobe + fperms 4710 /opt/bin/nvidia-modprobe + dosym /{opt,usr}/bin/nvidia-modprobe + + newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi + newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced + newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced + + newdoc "${NV_DOC}/README.txt" README + dodoc "${NV_DOC}/NVIDIA_Changelog" + doman "${NV_MAN}"/nvidia-smi.1 + doman "${NV_MAN}"/nvidia-cuda-mps-control.1 + doman "${NV_MAN}"/nvidia-modprobe.1 + doman "${NV_MAN}"/nvidia-persistenced.1 + + docinto html + dodoc -r ${NV_DOC}/html/* +} + _dracut_initramfs_regen() { if [ -x $(which dracut) ]; then dracut -N -f --no-hostonly-cmdline |