mirror of
https://github.com/terrapkg/packages.git
synced 2026-05-31 09:01:55 +00:00
feat: NVIDIA DKMS Package
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "dkms-nvidia.spec"
|
||||
}
|
||||
labels {
|
||||
subrepo = "nvidia"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
PACKAGE_NAME="nvidia"
|
||||
PACKAGE_VERSION="__VERSION_STRING"
|
||||
AUTOINSTALL="yes"
|
||||
|
||||
. /etc/nvidia/kernel.conf
|
||||
|
||||
# Quote make to avoid DKMS replacing it with "make -j$parallel_jobs KERNELRELEASE=$kernelver"
|
||||
CLEAN="'make' -j$(nproc) -C ${MODULE_VARIANT} clean"
|
||||
MAKE[0]="'make' -j$(nproc) -C ${MODULE_VARIANT} KERNEL_UNAME=${kernelver} modules"
|
||||
|
||||
BUILT_MODULE_NAME[0]="nvidia"
|
||||
BUILT_MODULE_LOCATION[0]="${MODULE_VARIANT}"
|
||||
DEST_MODULE_LOCATION[0]="/extra"
|
||||
|
||||
BUILT_MODULE_NAME[1]="nvidia-modeset"
|
||||
BUILT_MODULE_LOCATION[1]="${MODULE_VARIANT}"
|
||||
DEST_MODULE_LOCATION[1]="/extra"
|
||||
|
||||
BUILT_MODULE_NAME[2]="nvidia-drm"
|
||||
BUILT_MODULE_LOCATION[2]="${MODULE_VARIANT}"
|
||||
DEST_MODULE_LOCATION[2]="/extra"
|
||||
|
||||
BUILT_MODULE_NAME[3]="nvidia-uvm"
|
||||
BUILT_MODULE_LOCATION[3]="${MODULE_VARIANT}"
|
||||
DEST_MODULE_LOCATION[3]="/extra"
|
||||
|
||||
BUILT_MODULE_NAME[4]="nvidia-peermem"
|
||||
BUILT_MODULE_LOCATION[4]="${MODULE_VARIANT}"
|
||||
DEST_MODULE_LOCATION[4]="/extra"
|
||||
@@ -0,0 +1,55 @@
|
||||
## NVIDIA DKMS package, based on the work of Negativo17 with tweaks for Terra.
|
||||
|
||||
%global debug_package %{nil}
|
||||
%global modulename nvidia
|
||||
|
||||
Name: dkms-%{modulename}
|
||||
Version: 570.133.07
|
||||
Release: 1%{?dist}
|
||||
Summary: NVIDIA display driver kernel module
|
||||
Epoch: 3
|
||||
License: NVIDIA License
|
||||
URL: http://www.nvidia.com/object/unix.html
|
||||
Source0: http://download.nvidia.com/XFree86/Linux-%{_arch}/%{version}/NVIDIA-Linux-%{_arch}-%{version}.run
|
||||
Source1: %{name}.conf
|
||||
BuildRequires: sed
|
||||
Provides: %{modulename}-kmod = %{?epoch:%{epoch}:}%{version}
|
||||
Requires: %{modulename}-kmod-common = %{?epoch:%{epoch}:}%{version}
|
||||
Requires: dkms
|
||||
Conflicts: akmod-nvidia
|
||||
# Unlike most DKMS packages, this package is NOT noarch!
|
||||
ExclusiveArch: x86_64 aarch64
|
||||
|
||||
%description
|
||||
This package provides the proprietary NVIDIA kernel driver modules.
|
||||
|
||||
%prep
|
||||
sh %{SOURCE0} -x --target dkms-nvidia-%{version}-%{_arch}
|
||||
%setup -T -D -n dkms-nvidia-%{version}-%{_arch}
|
||||
|
||||
cp -f %{SOURCE1} dkms.conf
|
||||
|
||||
sed -i -e 's/__VERSION_STRING/%{version}/g' dkms.conf
|
||||
|
||||
%build
|
||||
|
||||
%install
|
||||
mkdir -p %{buildroot}%{_usrsrc}/%{modulename}-%{version}/
|
||||
cp -fr * %{buildroot}%{_usrsrc}/%{modulename}-%{version}/
|
||||
rm -f %{buildroot}%{_usrsrc}/%{modulename}-%{version}/*/dkms.conf
|
||||
|
||||
%post
|
||||
dkms add -m %{modulename} -v %{version} -q --rpm_safe_upgrade || :
|
||||
# Rebuild and make available for the currently running kernel:
|
||||
dkms build -m %{modulename} -v %{version} -q || :
|
||||
dkms install -m %{modulename} -v %{version} -q --force || :
|
||||
|
||||
%preun
|
||||
# Remove all versions from DKMS registry:
|
||||
dkms remove -m %{modulename} -v %{version} -q --all --rpm_safe_upgrade || :
|
||||
|
||||
%files
|
||||
%{_usrsrc}/%{modulename}-%{version}
|
||||
|
||||
%changelog
|
||||
%autochangelog
|
||||
@@ -0,0 +1,3 @@
|
||||
import "andax/nvidia.rhai" as nvidia;
|
||||
|
||||
rpm.version(nvidia::nvidia_driver_version());
|
||||
@@ -23,6 +23,7 @@ Source19: nvidia-modeset.conf
|
||||
Source20: nvidia.conf
|
||||
Source21: 60-nvidia.rules
|
||||
Source24: 99-nvidia.conf
|
||||
Source25: akmod-modules.conf
|
||||
|
||||
# UDev rule location (_udevrulesdir) and systemd macros:
|
||||
BuildRequires: systemd-rpm-macros
|
||||
@@ -37,11 +38,19 @@ Obsoletes: cuda-nvidia-kmod-common < %{?epoch:%{epoch}:}%{version}
|
||||
%description
|
||||
This package provides the common files required by all NVIDIA kernel module
|
||||
package variants.
|
||||
|
||||
%package -n nvidia-akmod-modules
|
||||
Summary: Modules for the NVIDIA Akmods package
|
||||
BuildArch: noarch
|
||||
|
||||
%description -n nvidia-akmod-modules
|
||||
Modules needed for the akmod-nvidia package.
|
||||
|
||||
%prep
|
||||
sh %{SOURCE0} -x --target nvidia-kmod-%{version}-x86_64
|
||||
%setup -T -D -n nvidia-kmod-%{version}-x86_64
|
||||
|
||||
|
||||
%install
|
||||
# Script for post/preun tasks
|
||||
install -p -m 0755 -D %{SOURCE17} %{buildroot}%{_sbindir}/nvidia-boot-update
|
||||
|
||||
Reference in New Issue
Block a user