mirror of
https://github.com/terrapkg/packages.git
synced 2026-06-24 04:20:46 +00:00
103 lines
3.5 KiB
RPMSpec
103 lines
3.5 KiB
RPMSpec
%global _dracut_conf_d %{_prefix}/lib/dracut/dracut.conf.d
|
|
|
|
# gsp_*.bin: ELF 64-bit LSB executable, UCB RISC-V
|
|
%global _binaries_in_noarch_packages_terminate_build 0
|
|
%global __brp_strip %{nil}
|
|
|
|
Name: nvidia-kmod-common
|
|
Version: 580.105.08
|
|
Release: 3%?dist
|
|
Summary: Common file for NVIDIA's proprietary driver kernel modules
|
|
Epoch: 3
|
|
License: NVIDIA License
|
|
URL: http://www.nvidia.com/object/unix.html
|
|
|
|
BuildArch: noarch
|
|
|
|
Source0: http://download.nvidia.com/XFree86/Linux-x86_64/%{version}/NVIDIA-Linux-x86_64-%{version}.run
|
|
Source16: MODULE_VARIANT.txt
|
|
Source17: nvidia-boot-update
|
|
Source18: nvidia-modeset.conf
|
|
Source19: nvidia.conf
|
|
Source20: 60-nvidia.rules
|
|
Source21: 99-nvidia.conf
|
|
|
|
# UDev rule location (_udevrulesdir) and systemd macros:
|
|
BuildRequires: systemd-rpm-macros
|
|
|
|
Requires: dracut
|
|
Requires: nvidia-modprobe
|
|
Requires: nvidia-driver = %{?epoch:%{epoch}:}%{version}
|
|
Requires: nvidia-driver-libs = %{?epoch:%{epoch}:}%{version}
|
|
Requires: (nvidia-open-kmod = %{?epoch:%{epoch}:}%{version} or nvidia-kmod = %{?epoch:%{epoch}:}%{version})
|
|
Provides: nvidia-kmod-common = %{?epoch:%{epoch}:}%{version}
|
|
Provides: nvidia-open-kmod-common = %{?epoch:%{epoch}:}%{version}
|
|
Obsoletes: cuda-nvidia-kmod-common < %{?epoch:%{epoch}:}%{version}
|
|
|
|
%description
|
|
This package provides the common files required by all NVIDIA kernel module
|
|
package variants.
|
|
|
|
%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}%{_bindir}/nvidia-boot-update
|
|
|
|
# Nvidia modesetting support:
|
|
install -p -m 0644 -D %{SOURCE18} %{buildroot}%{_sysconfdir}/modprobe.d/nvidia-modeset.conf
|
|
|
|
# Load nvidia-uvm, enable complete power management:
|
|
install -p -m 0644 -D %{SOURCE19} %{buildroot}%{_modprobedir}/nvidia.conf
|
|
|
|
# Avoid Nvidia modules getting in the initrd:
|
|
install -p -m 0644 -D %{SOURCE21} %{buildroot}%{_dracut_conf_d}/99-nvidia.conf
|
|
|
|
# UDev rules
|
|
# https://github.com/NVIDIA/nvidia-modprobe/blob/master/modprobe-utils/nvidia-modprobe-utils.h#L33-L46
|
|
# https://github.com/negativo17/nvidia-kmod-common/issues/11
|
|
# https://github.com/negativo17/nvidia-driver/issues/27
|
|
install -p -m 644 -D %{SOURCE20} %{buildroot}%{_udevrulesdir}/60-nvidia.rules
|
|
|
|
# Firmware files:
|
|
mkdir -p %{buildroot}%{_prefix}/lib/firmware/nvidia/%{version}/
|
|
install -p -m 644 firmware/* %{buildroot}%{_prefix}/lib/firmware/nvidia/%{version}
|
|
|
|
# Old kernel.conf rewritten as a doc file.
|
|
cp %{SOURCE16} .
|
|
|
|
# Fallback service. Fall back to Nouveau if NVIDIA drivers fail.
|
|
# This is actually from RPM Fusion.
|
|
%dnl install -Dm644 %{SOURCE22} -t %{buildroot}%{_unitdir}
|
|
%dnl install -Dm644 %{SOURCE23} -t %{buildroot}%{_udevrulesdir}
|
|
|
|
%post
|
|
%{_bindir}/nvidia-boot-update post || :
|
|
|
|
%pre
|
|
# Remove the kernel command line adjustments one last time when doing an upgrade
|
|
# from a version that was still setting up the command line parameters:
|
|
if [ "$1" -eq "2" ] && [ -x %{_bindir}/nvidia-boot-update ]; then
|
|
%{_bindir}/nvidia-boot-update preun || :
|
|
|
|
fi ||:
|
|
|
|
%triggerin -- nvidia-kmod,nvidia-open-kmod
|
|
dracut --regenerate-all --force || :
|
|
|
|
%files
|
|
%doc MODULE_VARIANT.txt
|
|
%{_dracut_conf_d}/99-nvidia.conf
|
|
%{_modprobedir}/nvidia.conf
|
|
%dir %{_prefix}/lib/firmware
|
|
%dir %{_prefix}/lib/firmware/nvidia
|
|
%{_prefix}/lib/firmware/nvidia/%{version}
|
|
%{_bindir}/nvidia-boot-update
|
|
%config(noreplace) %{_sysconfdir}/modprobe.d/nvidia-modeset.conf
|
|
%{_udevrulesdir}/60-nvidia.rules
|
|
|
|
%changelog
|
|
%autochangelog
|