File xorg-x11-drv-nvidia-390xx.spec of Package xorg-x11-drv-nvidia-390xx

%global        _nvidia_serie        nvidia-390xx
%global        _nvidia_libdir       %{_libdir}/%{_nvidia_serie}
%global        _nvidia_xorgdir      %{_nvidia_libdir}/xorg
# Unfortunately this is always hardcoded regardless of architecture:
# https://github.com/NVIDIA/nvidia-installer/blob/master/misc.c#L2443
# https://github.com/NVIDIA/nvidia-installer/blob/master/misc.c#L2556-L2558
%global        _alternate_dir       %{_prefix}/lib/nvidia
%global        _glvnd_libdir        %{_libdir}/libglvnd

%if 0%{?rhel} == 6
%global        _modprobe_d          %{_sysconfdir}/modprobe.d/
# RHEL 6 does not have _udevrulesdir defined
%global        _udevrulesdir        %{_prefix}/lib/udev/rules.d/
%global        _modprobe_d          %{_sysconfdir}/modprobe.d/
%global        _dracutopts          nouveau.modeset=0 rdblacklist=nouveau
%global        _dracut_conf_d	    %{_sysconfdir}/dracut.conf.d
%global        _grubby              /sbin/grubby --grub --update-kernel=ALL
%else #rhel > 6 or fedora
%global        _dracut_conf_d	    %{_prefix}/lib/dracut/dracut.conf.d
%global        _modprobe_d          %{_prefix}/lib/modprobe.d/
%global        _grubby              %{_sbindir}/grubby --update-kernel=ALL
%if 0%{?rhel} == 7
%global        _dracutopts          nouveau.modeset=0 rd.driver.blacklist=nouveau
%else #fedora
%if 0%{?fedora} >= 27
%global        _dracutopts          rd.driver.blacklist=nouveau modprobe.blacklist=nouveau nvidia-drm.modeset=1
%else
%global        _dracutopts          rd.driver.blacklist=nouveau modprobe.blacklist=nouveau
%endif
%endif
%endif

%global	       debug_package %{nil}
%global	       __strip /bin/true


Name:            xorg-x11-drv-nvidia-390xx
Epoch:           3
Version:         390.87
Release:         1%{?dist}
Summary:         NVIDIA's 390xx series proprietary display driver for NVIDIA graphic cards

License:         Redistributable, no modification permitted
URL:             http://www.nvidia.com/
Source0:         https://download.nvidia.com/XFree86/Linux-x86/%{version}/NVIDIA-Linux-x86-%{version}.run
Source1:         https://download.nvidia.com/XFree86/Linux-x86_64/%{version}/NVIDIA-Linux-x86_64-%{version}.run
Source2:         https://download.nvidia.com/XFree86/Linux-32bit-ARM/%{version}/NVIDIA-Linux-armv7l-gnueabihf-%{version}.run

Source4:         99-nvidia.conf
Source5:         00-avoid-glamor.conf
Source6:         blacklist-nouveau.conf
Source7:         alternate-install-present
Source10:        nvidia.conf
Source11:        60-nvidia.rules
Source12:        xorg-x11-drv-nvidia-390xx.metainfo.xml
Source13:        parse-readme.py
Source14:        60-nvidia-uvm.rules
Source15:        nvidia-uvm.conf
Source16:        99-nvidia-dracut.conf
Source20:        10-nvidia.rules
Source21:        nvidia-fallback.service

ExclusiveArch: i686 x86_64 armv7hl

%if 0%{?rhel} > 6 || 0%{?fedora}
Buildrequires:    systemd
Requires(post):   systemd
Requires(preun):  systemd
Requires(postun): systemd
%endif
%if 0%{?fedora} >= 25
# AppStream metadata generation
BuildRequires:    python2
BuildRequires:    python2-rpm-macros
BuildRequires:    libappstream-glib >= 0.6.3
# Xorg with PrimaryGPU
Requires:         Xorg >= 1.19.0-3
%else
# Xorg with OutputClass
Requires:         Xorg >= 1.16.0-1
%endif

Requires(post):   ldconfig
Requires(postun): ldconfig
Requires(post):   grubby
Requires:         which
#Requires:         nvidia-settings%{?_isa} = %{version}
#if 0%{?fedora}
#Suggests:         nvidia-xconfig%{?_isa} = %{version}
#else
#Requires:         nvidia-xconfig%{?_isa} = %{version}
#endif

Requires:        %{_nvidia_serie}-kmod >= %{?epoch}:%{version}
Requires:        %{name}-libs%{?_isa} = %{?epoch}:%{version}-%{release}

Obsoletes:       xorg-x11-drv-nvidia < %{?epoch}:%{version}
Provides:        xorg-x11-drv-nvidia = %{?epoch}:%{version}
Obsoletes:       %{_nvidia_serie}-kmod < %{?epoch}:%{version}
Provides:        %{_nvidia_serie}-kmod-common = %{?epoch}:%{version}
Conflicts:       xorg-x11-drv-nvidia-304xx
Conflicts:       xorg-x11-drv-nvidia-340xx

%if 0%{?fedora} || 0%{?rhel} >= 7
%global         __provides_exclude ^(lib.*GL.*\\.so.*)$
%global         __requires_exclude ^(lib.*GL.*\\.so.*)$
%else

%{?filter_setup:
%filter_from_provides /^lib.*GL.*\.so/d;
%filter_from_requires /^lib.*GL.*\.so/d;
%filter_setup
}
%endif

%description
This package provides the most recent legacy NVIDIA display driver which allows
for hardware accelerated rendering with the following NVIDIA chipsets:
- GeForce 600(M)
- GeForce 700(M) series

For the full product support list, please consult the release notes
http://download.nvidia.com/XFree86/Linux-x86/%{version}/README/index.html

Please use the following documentation:
http://rpmfusion.org/Howto/NVIDIA


%package devel
Summary:         Development files for %{name}
Requires:        %{name}-libs%{?_isa} = %{?epoch}:%{version}-%{release}
Requires:        %{name}-cuda-libs%{?_isa} = %{?epoch}:%{version}-%{release}

#Don't put an epoch here
Provides:        cuda-drivers-devel = %{version}-100
Provides:        cuda-drivers-devel%{?_isa} = %{version}-100

%description devel
This package provides the development files of the %{name} package,
such as OpenGL headers.

%package cuda
Summary:         CUDA driver for %{name}
Requires:        %{_nvidia_serie}-kmod >= %{?epoch}:%{version}
Requires:        %{name}-cuda-libs%{?_isa} = %{?epoch}:%{version}-%{release}
Requires:        nvidia-persistenced%{?_isa} = %{version}
%if 0%{?fedora}
#Suggests:        nvidia-modprobe%{?_isa} = %{version}
# Boolean dependencies are only fedora
%ifarch x86_64
Requires:        (%{name}-cuda-libs(x86-32) = %{?epoch}:%{version} if libGL(x86-32))
%endif
#else
#Requires:        nvidia-modprobe%{?_isa} = %{version}
%endif
Requires:        ocl-icd%{?_isa}
Requires:        opencl-filesystem

Conflicts:       xorg-x11-drv-nvidia-340xx-cuda

#Don't put an epoch here
Provides:        cuda-drivers = %{version}-100
Provides:        cuda-drivers%{?_isa} = %{version}-100
Provides:        nvidia-driver = %{version}-100
Provides:        nvidia-driver%{?_isa} = %{version}-100

%description cuda
This package provides the CUDA driver.

%package cuda-libs
Summary:         CUDA libraries for %{name}

%description cuda-libs
This package provides the CUDA driver libraries.

%package kmodsrc
Summary:         %{name} kernel module source code

%description kmodsrc
Source tree used for building kernel module packages (%{name}-kmod)
which is generated during the build of main package.

%package libs
Summary:         Libraries for %{name}
Requires:        libvdpau%{?_isa} >= 0.5
%if 0%{?fedora} >= 25
Requires:        libglvnd-egl%{?_isa} >= 0.2
Requires:        libglvnd-gles%{?_isa} >= 0.2
Requires:        libglvnd-glx%{?_isa} >= 0.2
Requires:        libglvnd-opengl%{?_isa} >= 0.2
Requires:        egl-wayland%{?_isa} >= 1.0.0
Requires:        mesa-libEGL%{?_isa} >= 13.0.3-3
Requires:        mesa-libGL%{?_isa} >= 13.0.3-3
Requires:        mesa-libGLES%{?_isa} >= 13.0.3-3
# Boolean dependencies are only fedora
%ifarch x86_64
Requires:        (%{name}-libs(x86-32) = %{?epoch}:%{version} if libGL(x86-32))
%endif
%endif
%ifarch x86_64 i686
Requires:        vulkan-filesystem
%endif

%description libs
This package provides the shared libraries for %{name}.


%prep
%setup -q -c -T
#Only extract the needed arch
%ifarch %{ix86}
sh %{SOURCE0} \
%endif
%ifarch x86_64
sh %{SOURCE1} \
%endif
%ifarch armv7hl
sh %{SOURCE2} \
%endif
  --extract-only --target nvidiapkg-%{_target_cpu}
ln -s nvidiapkg-%{_target_cpu} nvidiapkg


%build
# Nothing to build
echo "Nothing to build"


%install
cd nvidiapkg

# Install only required libraries
mkdir -p %{buildroot}%{_libdir}
cp -a \
    libcuda.so.%{version} \
    libEGL_nvidia.so.%{version} \
    libGLESv1_CM_nvidia.so.%{version} \
    libGLESv2_nvidia.so.%{version} \
    libGLX_nvidia.so.%{version} \
    libnvcuvid.so.%{version} \
    libnvidia-cfg.so.%{version} \
    libnvidia-eglcore.so.%{version} \
    libnvidia-encode.so.%{version} \
    libnvidia-fatbinaryloader.so.%{version} \
    libnvidia-fbc.so.%{version} \
    libnvidia-glcore.so.%{version} \
    libnvidia-glsi.so.%{version} \
    libnvidia-ifr.so.%{version} \
    libnvidia-ml.so.%{version} \
    libnvidia-ptxjitcompiler.so.%{version} \
    %{buildroot}%{_libdir}/

%if 0%{?rhel} && 0%{?rhel} < 8
mkdir -p %{buildroot}%{_nvidia_libdir}
cp -a \
    libEGL.so.%{version} \
    libGL.so.%{version} \
    libGLdispatch.so.0 \
    %{buildroot}%{_nvidia_libdir}/
ldconfig -vn %{buildroot}%{_nvidia_libdir}/
%endif

# Use the correct TLS implementation for x86_64/i686, already ok on ARM
# OpenCL is only available on x86_64/i686.
%ifarch x86_64 i686
cp -af \
    tls/libnvidia-tls.so* \
    libnvidia-compiler.so.%{version} \
    libnvidia-opencl.so.%{version} \
    %{buildroot}%{_libdir}/
%else
cp -af libnvidia-tls.so* %{buildroot}%{_libdir}/
%endif

# Use ldconfig for libraries with a mismatching SONAME/filename
ldconfig -vn %{buildroot}%{_libdir}/

# Libraries you can link against
for lib in libcuda libnvcuvid libnvidia-encode; do
    ln -sf $lib.so.%{version} %{buildroot}%{_libdir}/$lib.so
done

# Vdpau driver
install -D -p -m 0755 libvdpau_nvidia.so.%{version} %{buildroot}%{_libdir}/vdpau/libvdpau_nvidia.so.%{version}
ln -sf libvdpau_nvidia.so.%{version} %{buildroot}%{_libdir}/vdpau/libvdpau_nvidia.so.1

# GlVND
%if 0%{?rhel} && 0%{?rhel} < 8
ln -s libGLX_nvidia.so.%{version} %{buildroot}%{_libdir}/libGLX_indirect.so.0
# ld.so.conf.d file
install -m 0755 -d       %{buildroot}%{_sysconfdir}/ld.so.conf.d/
echo -e "%{_nvidia_libdir} \n" > %{buildroot}%{_sysconfdir}/ld.so.conf.d/nvidia-%{_lib}.conf
%endif

# X DDX driver and GLX extension
install -p -D -m 0755 libglx.so.%{version} %{buildroot}%{_nvidia_xorgdir}/libglx.so.%{version}
ln -sf libglx.so.%{version} %{buildroot}%{_nvidia_xorgdir}/libglx.so
install -D -p -m 0755 nvidia_drv.so %{buildroot}%{_libdir}/xorg/modules/drivers/nvidia_drv.so

%ifarch x86_64 i686
# OpenCL config
install    -m 0755         -d %{buildroot}%{_sysconfdir}/OpenCL/vendors/
install -p -m 0644 nvidia.icd %{buildroot}%{_sysconfdir}/OpenCL/vendors/
# Vulkan config
sed -i -e 's|__NV_VK_ICD__|libGLX_nvidia.so.0|' nvidia_icd.json.template
install    -m 0755         -d %{buildroot}%{_datadir}/vulkan/icd.d/
install -p -m 0644 nvidia_icd.json.template %{buildroot}%{_datadir}/vulkan/icd.d/nvidia_icd.%{_target_cpu}.json
%endif

# EGL config for libglvnd
install    -m 0755         -d %{buildroot}%{_datadir}/glvnd/egl_vendor.d/
install -p -m 0644 10_nvidia.json %{buildroot}%{_datadir}/glvnd/egl_vendor.d/10_nvidia.json

# Blacklist nouveau, autoload nvidia-uvm module after nvidia module
mkdir -p %{buildroot}%{_modprobe_d}
install -p -m 0644 %{SOURCE15} %{buildroot}%{_modprobe_d}
%if 0%{?rhel} && 0%{?rhel} < 8
install -p -m 0644 %{SOURCE6} %{buildroot}%{_modprobe_d}
%endif

# UDev rules for nvidia
install    -m 0755 -d          %{buildroot}%{_udevrulesdir}
install -p -m 0644 %{SOURCE11} %{buildroot}%{_udevrulesdir}

# UDev rules for nvidia-uvm
install -p -m 0644 %{SOURCE14} %{buildroot}%{_udevrulesdir}

# dracut.conf.d file, nvidia modules must never be in the initrd
install -p -m 0755 -d          %{buildroot}%{_dracut_conf_d}/
install -p -m 0644 %{SOURCE16} %{buildroot}%{_dracut_conf_d}/

# Install binaries
install -m 0755 -d %{buildroot}%{_bindir}
install -p -m 0755 nvidia-{bug-report.sh,debugdump,smi,cuda-mps-control,cuda-mps-server} \
  %{buildroot}%{_bindir}

# Install headers
install -m 0755 -d %{buildroot}%{_includedir}/nvidia/GL/
install -p -m 0644 {gl.h,glext.h,glx.h,glxext.h} %{buildroot}%{_includedir}/nvidia/GL/

# Install man pages
install    -m 0755 -d   %{buildroot}%{_mandir}/man1/
install -p -m 0644 nvidia-{cuda-mps-control,smi}.1.gz \
  %{buildroot}%{_mandir}/man1/

#Alternate-install-present is checked by the nvidia .run
mkdir -p %{buildroot}%{_alternate_dir}
install -p -m 0644 %{SOURCE7} %{buildroot}%{_alternate_dir}

#install the NVIDIA supplied application profiles
mkdir -p %{buildroot}%{_datadir}/nvidia
install -p -m 0644 nvidia-application-profiles-%{version}-{rc,key-documentation} %{buildroot}%{_datadir}/nvidia

#Install the Xorg configuration files
mkdir -p %{buildroot}%{_sysconfdir}/X11/xorg.conf.d
mkdir -p %{buildroot}%{_datadir}/X11/xorg.conf.d
%if 0%{?fedora} >= 25 || 0%{?rhel} >= 8
install -pm 0644 %{SOURCE10} %{buildroot}%{_datadir}/X11/xorg.conf.d/nvidia.conf
sed -i -e 's|@LIBDIR@|%{_libdir}|g' %{buildroot}%{_datadir}/X11/xorg.conf.d/nvidia.conf
touch -r %{SOURCE10} %{buildroot}%{_datadir}/X11/xorg.conf.d/nvidia.conf
%else
install -pm 0644 nvidia-drm-outputclass.conf %{buildroot}%{_datadir}/X11/xorg.conf.d/nvidia.conf
install -pm 0644 %{SOURCE4} %{buildroot}%{_datadir}/X11/xorg.conf.d
install -pm 0644 %{SOURCE5} %{buildroot}%{_datadir}/X11/xorg.conf.d
sed -i -e 's|@LIBDIR@|%{_libdir}|g' %{buildroot}%{_datadir}/X11/xorg.conf.d/99-nvidia.conf
touch -r %{SOURCE4} %{buildroot}%{_datadir}/X11/xorg.conf.d/99-nvidia.conf
# back to non-glvnd version for vulkan
sed -i -e 's|libGLX_nvidia.so.0|libGL.so.1|' %{buildroot}%{_datadir}/vulkan/icd.d/nvidia_icd.%{_target_cpu}.json
touch -r nvidia_icd.json.template %{buildroot}%{_datadir}/vulkan/icd.d/nvidia_icd.%{_target_cpu}.json
%endif
#Ghost Xorg nvidia.conf files
touch %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/00-avoid-glamor.conf
touch %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/99-nvidia.conf
touch %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/nvidia.conf

#Create the default nvidia config directory
mkdir -p %{buildroot}%{_sysconfdir}/nvidia

#Install the nvidia kernel modules sources archive
mkdir -p %{buildroot}%{_datadir}/nvidia-390xx-kmod-%{version}
tar Jcf %{buildroot}%{_datadir}/nvidia-390xx-kmod-%{version}/nvidia-390xx-kmod-%{version}-%{_target_cpu}.tar.xz kernel

%if 0%{?fedora} >= 25
# install AppData and add modalias provides
mkdir -p %{buildroot}%{_datadir}/appdata/
install -pm 0644 %{SOURCE12} %{buildroot}%{_datadir}/appdata/
fn=%{buildroot}%{_datadir}/appdata/xorg-x11-drv-nvidia-390xx.metainfo.xml
%{__python2} %{SOURCE13} README.txt "NVIDIA GEFORCE GPUS" | xargs appstream-util add-provide ${fn} modalias
%{__python2} %{SOURCE13} README.txt "NVIDIA QUADRO GPUS" | xargs appstream-util add-provide ${fn} modalias
%{__python2} %{SOURCE13} README.txt "NVIDIA NVS GPUS" | xargs appstream-util add-provide ${fn} modalias
%{__python2} %{SOURCE13} README.txt "NVIDIA TESLA GPUS" | xargs appstream-util add-provide ${fn} modalias
mkdir -p %{buildroot}%{_datadir}/pixmaps
install -pm 0644 nvidia-settings.png %{buildroot}%{_datadir}/pixmaps/%{name}.png
%endif

# Install nvidia-fallback
%if 0%{?rhel} > 6 || 0%{?fedora}
mkdir -p %{buildroot}%{_unitdir}
install -p -m 0644 %{SOURCE20} %{buildroot}%{_udevrulesdir}
install -p -m 0644 %{SOURCE21} %{buildroot}%{_unitdir}
%endif


%pre
if [ "$1" -eq "1" ]; then
  if [ -x %{_bindir}/nvidia-uninstall ]; then
    %{_bindir}/nvidia-uninstall -s && rm -f %{_bindir}/nvidia-uninstall &>/dev/null || :
  fi
fi

%post
if [ "$1" -eq "1" ]; then
  %{_grubby} --remove-args='nomodeset' --args='%{_dracutopts}' &>/dev/null
%if 0%{?fedora} || 0%{?rhel} >= 7
  sed -i -e 's/GRUB_CMDLINE_LINUX="/GRUB_CMDLINE_LINUX="%{_dracutopts} /g' /etc/default/grub
%endif
# Until mutter enable egl stream support, we need to disable gdm wayland
# https://bugzilla.redhat.com/1462052
%if 0%{?fedora}
  if [ -f %{_sysconfdir}/gdm/custom.conf ] ; then
    sed -i -e 's/#WaylandEnable=.*/WaylandEnable=false/' %{_sysconfdir}/gdm/custom.conf
  fi
%endif
fi || :

%if 0%{?fedora} || 0%{?rhel} >= 7
%triggerun -- xorg-x11-drv-nvidia < 3:384.59-5
if [ -f %{_sysconfdir}/default/grub ] ; then
  sed -i -e '/GRUB_GFXPAYLOAD_LINUX=text/d' %{_sysconfdir}/default/grub
  . %{_sysconfdir}/default/grub
  if [ -z "${GRUB_CMDLINE_LINUX+x}" ]; then
    echo -e GRUB_CMDLINE_LINUX=\"%{_dracutopts}\" >> %{_sysconfdir}/default/grub
  else
    for i in %{_dracutopts} ; do
      _has_string=$(echo ${GRUB_CMDLINE_LINUX} | fgrep -c $i)
      if [ x"$_has_string" = x0 ] ; then
        GRUB_CMDLINE_LINUX="${GRUB_CMDLINE_LINUX} ${i}"
      fi
    done
    sed -i -e "s|^GRUB_CMDLINE_LINUX=.*|GRUB_CMDLINE_LINUX=\"${GRUB_CMDLINE_LINUX}\"|g" %{_sysconfdir}/default/grub
  fi
fi
%{_grubby} --args='%{_dracutopts}' &>/dev/null || :
%endif

%ldconfig_scriptlets libs
%ldconfig_scriptlets cuda-libs

%preun
if [ "$1" -eq "0" ]; then
  %{_grubby} --remove-args='%{_dracutopts}' &>/dev/null
%if 0%{?fedora} || 0%{?rhel} >= 7
  sed -i -e 's/%{_dracutopts} //g' /etc/default/grub
%endif
  # Backup and disable previously used xorg.conf
  [ -f %{_sysconfdir}/X11/xorg.conf ] && mv %{_sysconfdir}/X11/xorg.conf %{_sysconfdir}/X11/xorg.conf.nvidia_uninstalled &>/dev/null
fi ||:


%files
%license nvidiapkg/LICENSE
%doc nvidiapkg/NVIDIA_Changelog
%doc nvidiapkg/README.txt
%doc nvidiapkg/nvidia-application-profiles-%{version}-rc
%doc nvidiapkg/html
%dir %{_alternate_dir}
%{_alternate_dir}/alternate-install-present
%{_datadir}/glvnd/egl_vendor.d/10_nvidia.json
%dir %{_sysconfdir}/nvidia
%ghost %{_sysconfdir}/X11/xorg.conf.d/00-avoid-glamor.conf
%ghost %{_sysconfdir}/X11/xorg.conf.d/99-nvidia.conf
%ghost %{_sysconfdir}/X11/xorg.conf.d/nvidia.conf
%{_datadir}/X11/xorg.conf.d/nvidia.conf
%if 0%{?rhel} > 6 || 0%{?fedora}
%{_udevrulesdir}/10-nvidia.rules
%{_udevrulesdir}/60-nvidia.rules
%{_unitdir}/nvidia-fallback.service
%endif
%if 0%{?fedora} >= 25
%{_datadir}/appdata/%{name}.metainfo.xml
%{_datadir}/pixmaps/%{name}.png
%{_dracut_conf_d}/99-nvidia-dracut.conf
%else
# Owns the directory since libglvnd is optional here
%dir %{_datadir}/glvnd
%dir %{_datadir}/glvnd/egl_vendor.d
%{_datadir}/X11/xorg.conf.d/00-avoid-glamor.conf
%{_datadir}/X11/xorg.conf.d/99-nvidia.conf
# RHEL6 uses /etc
%if 0%{?rhel} == 6
%config(noreplace) %{_modprobe_d}/blacklist-nouveau.conf
%config(noreplace) %{_dracut_conf_d}/99-nvidia-dracut.conf
%else
%{_modprobe_d}/blacklist-nouveau.conf
%{_dracut_conf_d}/99-nvidia-dracut.conf
%endif
%endif
%{_bindir}/nvidia-bug-report.sh
# Xorg libs that do not need to be multilib
%dir %{_nvidia_xorgdir}
%{_nvidia_xorgdir}/libglx.so
%{_nvidia_xorgdir}/libglx.so.%{version}
%{_libdir}/xorg/modules/drivers/nvidia_drv.so
#/no_multilib
%dir %{_datadir}/nvidia
%{_datadir}/nvidia/nvidia-application-profiles-%{version}-*

%files kmodsrc
%dir %{_datadir}/nvidia-390xx-kmod-%{version}
%{_datadir}/nvidia-390xx-kmod-%{version}/nvidia-390xx-kmod-%{version}-%{_target_cpu}.tar.xz

%files libs
%if 0%{?rhel} && 0%{?rhel} < 8
%config %{_sysconfdir}/ld.so.conf.d/nvidia-%{_lib}.conf
%{_nvidia_libdir}/libEGL.so.1
%{_nvidia_libdir}/libEGL.so.%{version}
%{_nvidia_libdir}/libGL.so.1
%{_nvidia_libdir}/libGL.so.%{version}
%{_nvidia_libdir}/libGLdispatch.so.0
%endif
%ifarch x86_64 i686
%{_datadir}/vulkan/icd.d/nvidia_icd.%{_target_cpu}.json
%endif
%dir %{_nvidia_libdir}
%{_libdir}/libEGL_nvidia.so.0
%{_libdir}/libEGL_nvidia.so.%{version}
%{_libdir}/libGLESv1_CM_nvidia.so.1
%{_libdir}/libGLESv1_CM_nvidia.so.%{version}
%{_libdir}/libGLESv2_nvidia.so.2
%{_libdir}/libGLESv2_nvidia.so.%{version}
%if 0%{?rhel}
%{_libdir}/libGLX_indirect.so.0
%endif
%{_libdir}/libGLX_nvidia.so.0
%{_libdir}/libGLX_nvidia.so.%{version}
%{_libdir}/libnvidia-cfg.so.1
%{_libdir}/libnvidia-cfg.so.%{version}
%{_libdir}/libnvidia-eglcore.so.%{version}
%{_libdir}/libnvidia-fbc.so.1
%{_libdir}/libnvidia-fbc.so.%{version}
%{_libdir}/libnvidia-glcore.so.%{version}
%{_libdir}/libnvidia-glsi.so.%{version}
%{_libdir}/libnvidia-ifr.so.1
%{_libdir}/libnvidia-ifr.so.%{version}
%{_libdir}/libnvidia-tls.so.%{version}
%{_libdir}/vdpau/libvdpau_nvidia.so.1
%{_libdir}/vdpau/libvdpau_nvidia.so.%{version}

%files cuda
%license nvidiapkg/LICENSE
%{_bindir}/nvidia-debugdump
%{_bindir}/nvidia-smi
%{_bindir}/nvidia-cuda-mps-control
%{_bindir}/nvidia-cuda-mps-server
%ifarch x86_64 i686
%config %{_sysconfdir}/OpenCL/vendors/nvidia.icd
%endif
%{_mandir}/man1/nvidia-smi.*
%{_mandir}/man1/nvidia-cuda-mps-control.1.*
%{_modprobe_d}/nvidia-uvm.conf
%{_udevrulesdir}/60-nvidia-uvm.rules

%files cuda-libs
%{_libdir}/libcuda.so
%{_libdir}/libcuda.so.1
%{_libdir}/libcuda.so.%{version}
%{_libdir}/libnvcuvid.so.1
%{_libdir}/libnvcuvid.so.%{version}
%{_libdir}/libnvidia-encode.so.1
%{_libdir}/libnvidia-encode.so.%{version}
%{_libdir}/libnvidia-fatbinaryloader.so.%{version}
%{_libdir}/libnvidia-ml.so.1
%{_libdir}/libnvidia-ml.so.%{version}
%{_libdir}/libnvidia-ptxjitcompiler.so.1
%{_libdir}/libnvidia-ptxjitcompiler.so.%{version}
%ifarch x86_64 i686
%{_libdir}/libnvidia-compiler.so.%{version}
%{_libdir}/libnvidia-opencl.so.1
%{_libdir}/libnvidia-opencl.so.%{version}
%endif

%files devel
%{_includedir}/nvidia/
%{_libdir}/libnvcuvid.so
%{_libdir}/libnvidia-encode.so