diff options
author | V3n3RiX <venerix@koprulu.sector> | 2022-10-16 15:52:07 +0100 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2022-10-16 15:52:07 +0100 |
commit | 65c73b332292cf97e537ae4c345cf352dc53fe5e (patch) | |
tree | f0e94d135fb31ceaa4b6634480fd22179c8b3cf3 /sys-kernel/nvidia-drivers-dkms | |
parent | ee301fa587e961154b4a0094772893680c456bf7 (diff) |
x11-drivers/nvidia-drivers : reorganise things so we support multiple versions
Diffstat (limited to 'sys-kernel/nvidia-drivers-dkms')
-rw-r--r-- | sys-kernel/nvidia-drivers-dkms/Manifest | 2 | ||||
-rw-r--r-- | sys-kernel/nvidia-drivers-dkms/files/dkms390.patch | 28 | ||||
-rw-r--r-- | sys-kernel/nvidia-drivers-dkms/files/dkms470.patch (renamed from sys-kernel/nvidia-drivers-dkms/files/dkms.patch) | 7 | ||||
-rw-r--r-- | sys-kernel/nvidia-drivers-dkms/files/dkms515.patch | 58 | ||||
-rw-r--r-- | sys-kernel/nvidia-drivers-dkms/files/fs62142.patch | 13 | ||||
-rw-r--r-- | sys-kernel/nvidia-drivers-dkms/files/kernel-6.0.patch | 43 | ||||
-rw-r--r-- | sys-kernel/nvidia-drivers-dkms/nvidia-drivers-dkms-390.154.ebuild (renamed from sys-kernel/nvidia-drivers-dkms/nvidia-drivers-dkms-470.141.03-r1.ebuild) | 9 | ||||
-rw-r--r-- | sys-kernel/nvidia-drivers-dkms/nvidia-drivers-dkms-470.141.03-r2.ebuild | 48 | ||||
-rw-r--r-- | sys-kernel/nvidia-drivers-dkms/nvidia-drivers-dkms-515.65.01.ebuild | 52 |
9 files changed, 196 insertions, 64 deletions
diff --git a/sys-kernel/nvidia-drivers-dkms/Manifest b/sys-kernel/nvidia-drivers-dkms/Manifest index 08aba9c1..65c872ea 100644 --- a/sys-kernel/nvidia-drivers-dkms/Manifest +++ b/sys-kernel/nvidia-drivers-dkms/Manifest @@ -1 +1,3 @@ +DIST NVIDIA-Linux-x86_64-390.154.run 84438529 BLAKE2B e1bd2982f9697e74b593380acf471e03192cd8d20f14bd9b43e6d5925421c518278e75515a0713be25b29bf99d7ea49c770adf2cede79736a03f323d5ed96a33 SHA512 cab7de6db783089c1e385da0296c43d2cbbe266bac2bc177044e279224a6ef9c76495b46c4b7056eb5a82b21932a2002e0c12f7659b446a2586f9df30a69a9a3 DIST NVIDIA-Linux-x86_64-470.141.03.run 272986406 BLAKE2B 12ef580dd98146715442e6b8e9f27bab4a12121f3edb2e291961f8dea96ec1b81d2c974d380018223999c67a7bec9873675487f436e60aab34e83b1a5b7065f1 SHA512 07aca8ea6aac5592060b4177ef43e9a3a5b2e3bc1a2d5959bf2ae349763fc62ed80b987af5607bf2d9a48e25c4e38e64970bca0177d63bd57a703d47debf5e18 +DIST NVIDIA-Linux-x86_64-515.65.01.run 364182561 BLAKE2B 552084a5347c0388f5cb0a6eecf41fb3d401356cbbbe957569e3eb0a4ca03b3db0dea0f7f6a37a6b66cf6d5377677ee57a6df73668002a13efd8140b153fcf03 SHA512 5221a4ac071eb39a37a841f19cfe4983286dc35e918956b40604404ef36c122612475df7b9a391a9a70bd60f44e598c8a0e5ec54ccc3e90d51f01e1b2fbe5e33 diff --git a/sys-kernel/nvidia-drivers-dkms/files/dkms390.patch b/sys-kernel/nvidia-drivers-dkms/files/dkms390.patch new file mode 100644 index 00000000..19e98d8d --- /dev/null +++ b/sys-kernel/nvidia-drivers-dkms/files/dkms390.patch @@ -0,0 +1,28 @@ +diff -Nur a/kernel/dkms.conf b/kernel/dkms.conf +--- a/kernel/dkms.conf 2021-11-02 06:16:12.000000000 +0000 ++++ b/kernel/dkms.conf 2022-10-16 15:03:27.841471738 +0100 +@@ -1,12 +1,20 @@ +-PACKAGE_NAME="nvidia" +-PACKAGE_VERSION="__VERSION_STRING" ++PACKAGE_NAME="nvidia-drivers-dkms" ++PACKAGE_VERSION="390.154" ++BUILD_EXCLUSIVE_KERNEL=""^5.*"" # only build for Kernel 5 + AUTOINSTALL="yes" + + # By default, DKMS will add KERNELRELEASE to the make command line; however, + # this will cause the kernel module build to infer that it was invoked via + # Kbuild directly instead of DKMS. The dkms(8) manual page recommends quoting + # the 'make' command name to suppress this behavior. +-MAKE[0]="'make' -j__JOBS NV_EXCLUDE_BUILD_MODULES='__EXCLUDE_MODULES' KERNEL_UNAME=${kernelver} modules" ++MAKE[0]="'make' -j`nproc` NV_EXCLUDE_BUILD_MODULES='__EXCLUDE_MODULES' KERNEL_UNAME=${kernelver} IGNORE_CC_MISMATCH='__IGNORE_CC_MISMATCH' modules" + + # The list of kernel modules will be generated by nvidia-installer at runtime. +-__DKMS_MODULES ++BUILT_MODULE_NAME[0]="nvidia" ++DEST_MODULE_LOCATION[0]="/extra/dkms" ++BUILT_MODULE_NAME[1]="nvidia-uvm" ++DEST_MODULE_LOCATION[1]="/extra/dkms" ++BUILT_MODULE_NAME[2]="nvidia-modeset" ++DEST_MODULE_LOCATION[2]="/extra/dkms" ++BUILT_MODULE_NAME[3]="nvidia-drm" ++DEST_MODULE_LOCATION[3]="/extra/dkms" diff --git a/sys-kernel/nvidia-drivers-dkms/files/dkms.patch b/sys-kernel/nvidia-drivers-dkms/files/dkms470.patch index 3e2a7cd9..7ee395df 100644 --- a/sys-kernel/nvidia-drivers-dkms/files/dkms.patch +++ b/sys-kernel/nvidia-drivers-dkms/files/dkms470.patch @@ -1,11 +1,12 @@ diff -Nur a/kernel/dkms.conf b/kernel/dkms.conf ---- a/kernel/dkms.conf 2021-07-07 23:03:22.000000000 +0100 -+++ b/kernel/dkms.conf 2021-08-07 22:05:52.634341135 +0100 -@@ -1,12 +1,21 @@ +--- a/kernel/dkms.conf 2022-06-30 19:31:05.000000000 +0100 ++++ b/kernel/dkms.conf 2022-10-16 15:06:33.644466229 +0100 +@@ -1,12 +1,22 @@ -PACKAGE_NAME="nvidia" -PACKAGE_VERSION="__VERSION_STRING" +PACKAGE_NAME="nvidia-drivers-dkms" +PACKAGE_VERSION="470.141.03" ++BUILD_EXCLUSIVE_KERNEL=""^5.*"" # Only build for kernel 5 AUTOINSTALL="yes" # By default, DKMS will add KERNELRELEASE to the make command line; however, diff --git a/sys-kernel/nvidia-drivers-dkms/files/dkms515.patch b/sys-kernel/nvidia-drivers-dkms/files/dkms515.patch new file mode 100644 index 00000000..fd79108e --- /dev/null +++ b/sys-kernel/nvidia-drivers-dkms/files/dkms515.patch @@ -0,0 +1,58 @@ +diff -Nur a/kernel/dkms.conf b/kernel/dkms.conf +--- a/kernel/dkms.conf 2022-07-20 14:40:39.000000000 +0100 ++++ b/kernel/dkms.conf 2022-10-16 14:05:53.921574151 +0100 +@@ -1,12 +1,22 @@ +-PACKAGE_NAME="nvidia" +-PACKAGE_VERSION="__VERSION_STRING" ++PACKAGE_NAME="nvidia-drivers-dkms" ++PACKAGE_VERSION="515.65.01" + AUTOINSTALL="yes" + + # By default, DKMS will add KERNELRELEASE to the make command line; however, + # this will cause the kernel module build to infer that it was invoked via + # Kbuild directly instead of DKMS. The dkms(8) manual page recommends quoting + # the 'make' command name to suppress this behavior. +-MAKE[0]="'make' -j__JOBS NV_EXCLUDE_BUILD_MODULES='__EXCLUDE_MODULES' KERNEL_UNAME=${kernelver} modules" ++MAKE[0]="'make' -j`nproc` NV_EXCLUDE_BUILD_MODULES='__EXCLUDE_MODULES' KERNEL_UNAME=${kernelver} IGNORE_CC_MISMATCH='__IGNORE_CC_MISMATCH' modules" + + # The list of kernel modules will be generated by nvidia-installer at runtime. +-__DKMS_MODULES ++BUILT_MODULE_NAME[0]="nvidia" ++DEST_MODULE_LOCATION[0]="/extra/dkms" ++BUILT_MODULE_NAME[1]="nvidia-uvm" ++DEST_MODULE_LOCATION[1]="/extra/dkms" ++BUILT_MODULE_NAME[2]="nvidia-modeset" ++DEST_MODULE_LOCATION[2]="/extra/dkms" ++BUILT_MODULE_NAME[3]="nvidia-drm" ++DEST_MODULE_LOCATION[3]="/extra/dkms" ++BUILT_MODULE_NAME[4]="nvidia-peermem" ++DEST_MODULE_LOCATION[4]="/extra/dkms" +diff -Nur a/kernel-open/dkms.conf b/kernel-open/dkms.conf +--- a/kernel-open/dkms.conf 2022-07-20 14:40:39.000000000 +0100 ++++ b/kernel-open/dkms.conf 2022-10-16 14:07:17.596571670 +0100 +@@ -1,12 +1,22 @@ +-PACKAGE_NAME="nvidia" +-PACKAGE_VERSION="__VERSION_STRING" ++PACKAGE_NAME="nvidia-drivers-dkms" ++PACKAGE_VERSION="515.65.01" + AUTOINSTALL="yes" + + # By default, DKMS will add KERNELRELEASE to the make command line; however, + # this will cause the kernel module build to infer that it was invoked via + # Kbuild directly instead of DKMS. The dkms(8) manual page recommends quoting + # the 'make' command name to suppress this behavior. +-MAKE[0]="'make' -j__JOBS NV_EXCLUDE_BUILD_MODULES='__EXCLUDE_MODULES' KERNEL_UNAME=${kernelver} modules" ++MAKE[0]="'make' -j`nproc` NV_EXCLUDE_BUILD_MODULES='__EXCLUDE_MODULES' KERNEL_UNAME=${kernelver} IGNORE_CC_MISMATCH='__IGNORE_CC_MISMATCH' modules" + + # The list of kernel modules will be generated by nvidia-installer at runtime. +-__DKMS_MODULES ++BUILT_MODULE_NAME[0]="nvidia" ++DEST_MODULE_LOCATION[0]="/extra/dkms" ++BUILT_MODULE_NAME[1]="nvidia-uvm" ++DEST_MODULE_LOCATION[1]="/extra/dkms" ++BUILT_MODULE_NAME[2]="nvidia-modeset" ++DEST_MODULE_LOCATION[2]="/extra/dkms" ++BUILT_MODULE_NAME[3]="nvidia-drm" ++DEST_MODULE_LOCATION[3]="/extra/dkms" ++BUILT_MODULE_NAME[4]="nvidia-peermem" ++DEST_MODULE_LOCATION[4]="/extra/dkms" diff --git a/sys-kernel/nvidia-drivers-dkms/files/fs62142.patch b/sys-kernel/nvidia-drivers-dkms/files/fs62142.patch deleted file mode 100644 index 04806bd8..00000000 --- a/sys-kernel/nvidia-drivers-dkms/files/fs62142.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/kernel/nvidia/nv-dma.c b/kernel/nvidia/nv-dma.c -index 73cdeed..e691014 100644 ---- a/kernel/nvidia/nv-dma.c -+++ b/kernel/nvidia/nv-dma.c -@@ -606,7 +606,7 @@ static NvBool nv_dma_is_map_resource_implemented - #if defined(NV_DMA_MAP_RESOURCE_PRESENT) - const struct dma_map_ops *ops = get_dma_ops(&nvl->dev->dev); - -- return (ops->map_resource != NULL); -+ return (ops && ops->map_resource); - #else - return NV_FALSE; - #endif diff --git a/sys-kernel/nvidia-drivers-dkms/files/kernel-6.0.patch b/sys-kernel/nvidia-drivers-dkms/files/kernel-6.0.patch deleted file mode 100644 index 372b6572..00000000 --- a/sys-kernel/nvidia-drivers-dkms/files/kernel-6.0.patch +++ /dev/null @@ -1,43 +0,0 @@ -diff -Nur a/kernel/nvidia/nv-acpi.c b/kernel/nvidia/nv-acpi.c ---- a/kernel/nvidia/nv-acpi.c 2022-06-30 20:05:22.000000000 +0100 -+++ b/kernel/nvidia/nv-acpi.c 2022-10-13 23:34:09.841766070 +0100 -@@ -16,7 +16,10 @@ - - #include <linux/acpi.h> - --#if defined(NV_LINUX_ACPI_EVENTS_SUPPORTED) -+#include <linux/version.h> -+// Rel.commit "ACPI: bus: Drop unused list heads from struct acpi_device" (Rafael J. Wysocki, 4 Jun 2022) -+// Disable ACPI support due to more GPL stuff (acpi_dev_for_each_child is only GPL-exported) -+#if defined(NV_LINUX_ACPI_EVENTS_SUPPORTED) && (LINUX_VERSION_CODE < KERNEL_VERSION(6, 0, 0)) - static NV_STATUS nv_acpi_extract_integer (const union acpi_object *, void *, NvU32, NvU32 *); - static NV_STATUS nv_acpi_extract_buffer (const union acpi_object *, void *, NvU32, NvU32 *); - static NV_STATUS nv_acpi_extract_package (const union acpi_object *, void *, NvU32, NvU32 *); -diff -Nur a/kernel/nvidia/nv.c b/kernel/nvidia/nv.c ---- a/kernel/nvidia/nv.c 2022-06-30 20:05:22.000000000 +0100 -+++ b/kernel/nvidia/nv.c 2022-10-13 23:34:09.841766070 +0100 -@@ -5423,7 +5423,8 @@ - { - NvU8 buf[8]; - --#if defined(NV_SEQ_READ_ITER_PRESENT) -+// FIXME: Avoid this code path because on Linux 6.0-rc1, init_sync_kiocb references a GPL symbol -+#if defined(NV_SEQ_READ_ITER_PRESENT) && (LINUX_VERSION_CODE < KERNEL_VERSION(6, 0, 0)) - struct file *file; - ssize_t num_read; - struct kiocb kiocb; -diff -Nur a/kernel/nvidia-drm/nvidia-drm-helper.c b/kernel/nvidia-drm/nvidia-drm-helper.c ---- a/kernel/nvidia-drm/nvidia-drm-helper.c 2022-06-30 19:33:22.000000000 +0100 -+++ b/kernel/nvidia-drm/nvidia-drm-helper.c 2022-10-13 23:34:09.841766070 +0100 -@@ -41,6 +41,11 @@ - #include <drm/drm_atomic_uapi.h> - #endif - -+// Add header which is no longer indirectly referenced as of Linux 6.0-rc1 -+#if defined(NV_DRM_DRM_FRAMEBUFFER_H_PRESENT) -+#include <drm/drm_framebuffer.h> -+#endif -+ - static void __nv_drm_framebuffer_put(struct drm_framebuffer *fb) - { - #if defined(NV_DRM_FRAMEBUFFER_GET_PRESENT) diff --git a/sys-kernel/nvidia-drivers-dkms/nvidia-drivers-dkms-470.141.03-r1.ebuild b/sys-kernel/nvidia-drivers-dkms/nvidia-drivers-dkms-390.154.ebuild index a24cf3f6..5f6d75ec 100644 --- a/sys-kernel/nvidia-drivers-dkms/nvidia-drivers-dkms-470.141.03-r1.ebuild +++ b/sys-kernel/nvidia-drivers-dkms/nvidia-drivers-dkms-390.154.ebuild @@ -14,18 +14,17 @@ HOMEPAGE="http://www.nvidia.com/" SRC_URI="amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )" LICENSE="GPL-2 NVIDIA-r2" -SLOT="0" +SLOT="390" KEYWORDS="amd64" IUSE="" DEPEND="sys-kernel/dkms" RDEPEND="${DEPEND} - !!sys-kernel/nvidia-drivers-legacy-dkms" + !!sys-kernel/nvidia-drivers-dkms:470 + !!sys-kernel/nvidia-drivers-dkms:515" PATCHES=( - "${FILESDIR}"/fs62142.patch - "${FILESDIR}"/kernel-6.0.patch - "${FILESDIR}"/dkms.patch + "${FILESDIR}"/dkms390.patch ) S="${WORKDIR}/${AMD64_NV_PACKAGE}" diff --git a/sys-kernel/nvidia-drivers-dkms/nvidia-drivers-dkms-470.141.03-r2.ebuild b/sys-kernel/nvidia-drivers-dkms/nvidia-drivers-dkms-470.141.03-r2.ebuild new file mode 100644 index 00000000..a6b908d0 --- /dev/null +++ b/sys-kernel/nvidia-drivers-dkms/nvidia-drivers-dkms-470.141.03-r2.ebuild @@ -0,0 +1,48 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 + +inherit eutils + +NV_URI="http://us.download.nvidia.com/XFree86/" +AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}" + +DESCRIPTION="NVIDIA driver sources for linux" +HOMEPAGE="http://www.nvidia.com/" +SRC_URI="amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )" + +LICENSE="GPL-2 NVIDIA-r2" +SLOT="470" +KEYWORDS="amd64" +IUSE="" + +DEPEND="sys-kernel/dkms" +RDEPEND="${DEPEND} + !!sys-kernel/nvidia-drivers-dkms:390 + !!sys-kernel/nvidia-drivers-dkms:515" + +PATCHES=( + "${FILESDIR}"/dkms470.patch +) + +S="${WORKDIR}/${AMD64_NV_PACKAGE}" + +src_unpack() { + sh ${DISTDIR}/${AMD64_NV_PACKAGE}.run --extract-only +} + +src_install() { + dodir usr/src/${P} + insinto usr/src/${P} + doins -r "${S}"/kernel/* +} + +pkg_postinst() { + dkms add ${PN}/${PV} +} + +pkg_prerm() { + dkms remove ${PN}/${PV} --all +} diff --git a/sys-kernel/nvidia-drivers-dkms/nvidia-drivers-dkms-515.65.01.ebuild b/sys-kernel/nvidia-drivers-dkms/nvidia-drivers-dkms-515.65.01.ebuild new file mode 100644 index 00000000..05200eca --- /dev/null +++ b/sys-kernel/nvidia-drivers-dkms/nvidia-drivers-dkms-515.65.01.ebuild @@ -0,0 +1,52 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 + +inherit eutils + +NV_URI="http://us.download.nvidia.com/XFree86/" +AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}" + +DESCRIPTION="NVIDIA driver sources for linux" +HOMEPAGE="http://www.nvidia.com/" +SRC_URI="amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )" + +LICENSE="GPL-2 NVIDIA-r2" +SLOT="515" +KEYWORDS="amd64" +IUSE="+kernel-open" + +DEPEND="sys-kernel/dkms" +RDEPEND="${DEPEND} + !!sys-kernel/nvidia-drivers-dkms:390 + !!sys-kernel/nvidia-drivers-dkms:470" + +PATCHES=( + "${FILESDIR}"/dkms515.patch +) + +S="${WORKDIR}/${AMD64_NV_PACKAGE}" + +src_unpack() { + sh ${DISTDIR}/${AMD64_NV_PACKAGE}.run --extract-only +} + +src_install() { + dodir usr/src/${P} + insinto usr/src/${P} + if use kernel-open; then + doins -r "${S}"/kernel-open/* + else + doins -r "${S}"/kernel/* + fi +} + +pkg_postinst() { + dkms add ${PN}/${PV} +} + +pkg_prerm() { + dkms remove ${PN}/${PV} --all +} |