Packaging templates for yum and dnf based Linux distros to build NVIDIA xconfig packages.
The main branch contains this README. The .spec and .patch files can be found in the appropriate rhel7, rhel8, and fedora branches.
This repo contains the .spec file used to build the following RPM packages:
note:
XXXis the first.delimited field in the driver version, ex:460in460.32.03
- RHEL8 or Fedora streams:
XXX,XXX-dkms,latest, andlatest-dkms
nvidia-xconfigFor RHEL7 and derivatives, there are three sets of packages with different package dependencies.
The latest and latest-dkms flavors always update to the highest versioned driver, while the branch-XXX flavor locks driver updates to the specified driver branch.
- RHEL7 flavor:
latest-dkms
nvidia-driver-latest-dkms-xconfignote:
XXX-dkmsis not supported for RHEL7
To use the precompiled flavors latest and branch-XXX, use yum-packaging-precompiled-kmod to build kmod-nvidia-latest or kmod-nvidia-branch-XXX kernel modules for a specific kernel and driver combination.
- RHEL7 flavor:
latest
nvidia-driver-latest-xconfig- RHEL7 flavor:
branch-XXX
nvidia-driver-branch-XXX-xconfigSupported branches: rhel7, rhel8 & fedora
git clone -b ${branch} https://github.com/NVIDIA/yum-packaging-nvidia-xconfig
> ex: git clone -b rhel8 https://github.com/NVIDIA/yum-packaging-nvidia-xconfig-
Source code location: https://github.com/NVIDIA/nvidia-xconfig/releases
ex: https://github.com/NVIDIA/nvidia-xconfig/archive/460.32.03.tar.gz
ex: https://github.com/NVIDIA/nvidia-xconfig/archive/460.56.tar.gz
# Compilation
yum install m4 gcc
# Packaging
yum install rpm-buildcd yum-packaging-nvidia-persistenced
git checkout remotes/origin/main -- build.sh./build.sh [$version | path/to/*.tar.{gz,bz2} | path/to/*.run]
> ex: time ./build.sh 460.32.03
> ex: time ./build.sh ~/Downloads/nvidia-xconfig-450.102.04.tar.bz2
> ex: time ./build.sh ~/Downloads/nvidia-xconfig-460.32.03.tar.gz
> ex: time ./build.sh ~/Downloads/NVIDIA-Linux-x86_64-450.102.04.runnote: runfile is only used to determine version
note:
fedora&rhel8-based distros
mkdir BUILD BUILDROOT RPMS SRPMS SOURCES SPECS
cp *.patch SOURCES/
cp nvidia-xconfig-${version}.tar.gz SOURCES/
cp nvidia-xconfig.spec SPECS/
rpmbuild \
--define "%_topdir $(pwd)" \
--define "debug_package %{nil}" \
--define "version $version" \
--define "epoch 3" \
--define "extension gz" \
-v -bb SPECS/nvidia-xconfig.specnote:
rhel7-based distros
mkdir BUILD BUILDROOT RPMS SRPMS SOURCES SPECS
cp *.patch SOURCES/
cp nvidia-xconfig-${version}.tar.gz SOURCES/
cp nvidia-xconfig.spec SPECS/
# latest-dkms
rpmbuild \
--define "%_topdir $(pwd)" \
--define "debug_package %{nil}" \
--define "version $version" \
--define "driver_branch latest-dkms" \
--define "is_dkms 1" \
--define "is_latest 1" \
--define "epoch 3" \
--define "extension gz" \
-v -bb SPECS/nvidia-xconfig.spec
# latest
rpmbuild \
--define "%_topdir $(pwd)" \
--define "debug_package %{nil}" \
--define "version $version" \
--define "driver_branch latest" \
--define "is_dkms 0" \
--define "is_latest 1" \
--define "epoch 3" \
--define "extension gz" \
-v -bb SPECS/nvidia-xconfig.spec
# branch-460
rpmbuild \
--define "%_topdir $(pwd)" \
--define "debug_package %{nil}" \
--define "version $version" \
--define "driver_branch branch-460" \
--define "is_dkms 0" \
--define "is_latest 0" \
--define "epoch 3" \
--define "extension gz" \
-v -bb SPECS/nvidia-xconfig.spec- nvidia-driver
- nvidia-modprobe
- nvidia-persistenced
- dnf-plugin-nvidia & yum-plugin-nvidia
- Precompiled kernel modules
- nvidia-settings
See CONTRIBUTING.md