summaryrefslogtreecommitdiff
path: root/sys-kernel/nvidia-drivers-dkms
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2022-10-16 15:52:07 +0100
committerV3n3RiX <venerix@koprulu.sector>2022-10-16 15:52:07 +0100
commit65c73b332292cf97e537ae4c345cf352dc53fe5e (patch)
treef0e94d135fb31ceaa4b6634480fd22179c8b3cf3 /sys-kernel/nvidia-drivers-dkms
parentee301fa587e961154b4a0094772893680c456bf7 (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/Manifest2
-rw-r--r--sys-kernel/nvidia-drivers-dkms/files/dkms390.patch28
-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.patch58
-rw-r--r--sys-kernel/nvidia-drivers-dkms/files/fs62142.patch13
-rw-r--r--sys-kernel/nvidia-drivers-dkms/files/kernel-6.0.patch43
-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.ebuild48
-rw-r--r--sys-kernel/nvidia-drivers-dkms/nvidia-drivers-dkms-515.65.01.ebuild52
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
+}