Nicolas Chauvet 8 years ago
parent 417d70bb39
commit b7bd4f990e

@ -5,10 +5,7 @@
# https://github.com/NVIDIA/nvidia-installer/blob/master/misc.c#L2443 # https://github.com/NVIDIA/nvidia-installer/blob/master/misc.c#L2443
# https://github.com/NVIDIA/nvidia-installer/blob/master/misc.c#L2556-L2558 # https://github.com/NVIDIA/nvidia-installer/blob/master/misc.c#L2556-L2558
%global _alternate_dir %{_prefix}/lib/nvidia %global _alternate_dir %{_prefix}/lib/nvidia
%if 0%{?rhel} || 0%{?fedora} == 24
%global _glvnd_libdir %{_libdir}/libglvnd %global _glvnd_libdir %{_libdir}/libglvnd
%endif
%if 0%{?rhel} == 6 %if 0%{?rhel} == 6
%global _modprobe_d %{_sysconfdir}/modprobe.d/ %global _modprobe_d %{_sysconfdir}/modprobe.d/
@ -17,15 +14,20 @@
%global _modprobe_d %{_sysconfdir}/modprobe.d/ %global _modprobe_d %{_sysconfdir}/modprobe.d/
%global _dracutopts nouveau.modeset=0 rdblacklist=nouveau %global _dracutopts nouveau.modeset=0 rdblacklist=nouveau
%global _grubby /sbin/grubby --grub --update-kernel=ALL %global _grubby /sbin/grubby --grub --update-kernel=ALL
%else %else #rhel > 6 or fedora
%global _modprobe_d %{_prefix}/lib/modprobe.d/ %global _modprobe_d %{_prefix}/lib/modprobe.d/
%global _dracutopts nouveau.modeset=0 rd.driver.blacklist=nouveau
%global _grubby %{_sbindir}/grubby --update-kernel=ALL %global _grubby %{_sbindir}/grubby --update-kernel=ALL
%if 0%{?rhel} == 7
%global _dracutopts nouveau.modeset=0 rd.driver.blacklist=nouveau
%else #fedora
%global _dracutopts rd.driver.blacklist=nouveau modprobe.blacklist=nouveau
%endif
%endif %endif
%global debug_package %{nil} %global debug_package %{nil}
%global __strip /bin/true %global __strip /bin/true
Name: xorg-x11-drv-nvidia Name: xorg-x11-drv-nvidia
Epoch: 1 Epoch: 1
Version: 381.09 Version: 381.09
@ -34,18 +36,17 @@ Summary: NVIDIA's proprietary display driver for NVIDIA graphic cards
License: Redistributable, no modification permitted License: Redistributable, no modification permitted
URL: http://www.nvidia.com/ URL: http://www.nvidia.com/
Source0: ftp://download.nvidia.com/XFree86/Linux-x86/%{version}/NVIDIA-Linux-x86-%{version}.run Source0: http://download.nvidia.com/XFree86/Linux-x86/%{version}/NVIDIA-Linux-x86-%{version}.run
Source1: ftp://download.nvidia.com/XFree86/Linux-x86_64/%{version}/NVIDIA-Linux-x86_64-%{version}.run Source1: http://download.nvidia.com/XFree86/Linux-x86_64/%{version}/NVIDIA-Linux-x86_64-%{version}.run
Source4: ftp://download.nvidia.com/XFree86/Linux-32bit-ARM/%{version}/NVIDIA-Linux-armv7l-gnueabihf-%{version}.run Source2: http://download.nvidia.com/XFree86/Linux-32bit-ARM/%{version}/NVIDIA-Linux-armv7l-gnueabihf-%{version}.run
Source2: 99-nvidia.conf
Source3: xorg.conf.nvidia Source3: xorg.conf.nvidia
Source4: 99-nvidia.conf
Source5: 00-avoid-glamor.conf Source5: 00-avoid-glamor.conf
Source6: blacklist-nouveau.conf Source6: blacklist-nouveau.conf
Source7: alternate-install-present Source7: alternate-install-present
Source8: nvidia-old.conf
Source9: nvidia-settings.desktop Source9: nvidia-settings.desktop
Source10: nvidia.conf Source10: nvidia.conf
Source11: 00-ignoreabi.conf
Source12: xorg-x11-drv-nvidia.metainfo.xml Source12: xorg-x11-drv-nvidia.metainfo.xml
Source13: parse-readme.py Source13: parse-readme.py
Source14: 60-nvidia-uvm.rules Source14: 60-nvidia-uvm.rules
@ -64,6 +65,11 @@ Requires(postun): systemd
# AppStream metadata generation # AppStream metadata generation
BuildRequires: python2 BuildRequires: python2
BuildRequires: libappstream-glib >= 0.6.3 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 %endif
Requires(post): ldconfig Requires(post): ldconfig
@ -73,11 +79,6 @@ Requires: which
Requires: %{_nvidia_serie}-kmod >= %{?epoch}:%{version} Requires: %{_nvidia_serie}-kmod >= %{?epoch}:%{version}
Requires: %{name}-libs%{?_isa} = %{?epoch}:%{version}-%{release} Requires: %{name}-libs%{?_isa} = %{?epoch}:%{version}-%{release}
%if 0%{?fedora} >= 25
# filesystem is needed as we don't own %%{_libdir}
Requires: filesystem
Requires: xorg-x11-server-Xorg%{?_isa} >= 1.19.0-3
%endif
Obsoletes: %{_nvidia_serie}-kmod < %{?epoch}:%{version} Obsoletes: %{_nvidia_serie}-kmod < %{?epoch}:%{version}
Provides: %{_nvidia_serie}-kmod-common = %{?epoch}:%{version} Provides: %{_nvidia_serie}-kmod-common = %{?epoch}:%{version}
@ -190,7 +191,7 @@ sh %{SOURCE0} \
sh %{SOURCE1} \ sh %{SOURCE1} \
%endif %endif
%ifarch armv7hl %ifarch armv7hl
sh %{SOURCE4} \ sh %{SOURCE2} \
%endif %endif
--extract-only --target nvidiapkg-%{_target_cpu} --extract-only --target nvidiapkg-%{_target_cpu}
ln -s nvidiapkg-%{_target_cpu} nvidiapkg ln -s nvidiapkg-%{_target_cpu} nvidiapkg
@ -250,9 +251,11 @@ done
install -D -p -m 0755 libvdpau_nvidia.so.%{version} %{buildroot}%{_libdir}/vdpau/libvdpau_nvidia.so.%{version} 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 ln -sf libvdpau_nvidia.so.%{version} %{buildroot}%{_libdir}/vdpau/libvdpau_nvidia.so.1
%if 0%{?rhel} == 7 || 0%{?rhel} == 6 || 0%{?fedora} == 24
# GlVND # GlVND
ln -s %{_libdir}/libGLX_mesa.so.0 %{buildroot}%{_libdir}/libGLX_indirect.so.0 %if 0%{?fedora} >= 25
ln -s libGLX_mesa.so.0 %{buildroot}%{_libdir}/libGLX_indirect.so.0
%else
ln -s libGLX_nvidia.so.%{version} %{buildroot}%{_libdir}/libGLX_indirect.so.0
%endif %endif
# X DDX driver and GLX extension # X DDX driver and GLX extension
@ -273,14 +276,17 @@ install -m 0755 -d %{buildroot}%{_datadir}/glvnd/egl_vendor.d/
install -p -m 0644 10_nvidia.json %{buildroot}%{_datadir}/glvnd/egl_vendor.d/ install -p -m 0644 10_nvidia.json %{buildroot}%{_datadir}/glvnd/egl_vendor.d/
# ld.so.conf.d file # ld.so.conf.d file
%if 0%{?rhel} > 6 || 0%{?fedora} <= 24 %if ! 0%{?fedora} >= 25
install -m 0755 -d %{buildroot}%{_sysconfdir}/ld.so.conf.d/ install -m 0755 -d %{buildroot}%{_sysconfdir}/ld.so.conf.d/
echo -e "%{_glvnd_libdir} \n" > %{buildroot}%{_sysconfdir}/ld.so.conf.d/nvidia-%{_lib}.conf echo -e "%{_glvnd_libdir} \n" > %{buildroot}%{_sysconfdir}/ld.so.conf.d/nvidia-%{_lib}.conf
%endif %endif
# Blacklist nouveau, autoload nvidia-uvm module after nvidia module # Blacklist nouveau, autoload nvidia-uvm module after nvidia module
install -m 0755 -d %{buildroot}%{_modprobe_d}/ mkdir -p %{buildroot}%{_modprobe_d}
install -p -m 0644 %{SOURCE6} %{SOURCE15} %{buildroot}%{_modprobe_d}/ install -p -m 0644 %{SOURCE15} %{buildroot}%{_modprobe_d}
%if ! 0%{?fedora} >= 25
install -p -m 0644 %{SOURCE6} %{buildroot}%{_modprobe_d}
%endif
# UDev rules for nvidia-uvm # UDev rules for nvidia-uvm
install -m 0755 -d %{buildroot}%{_udevrulesdir} install -m 0755 -d %{buildroot}%{_udevrulesdir}
@ -304,22 +310,6 @@ install -p -m 0644 nvidia-{cuda-mps-control,persistenced,settings,smi,xconfig}.1
mkdir -p %{buildroot}%{_datadir}/pixmaps mkdir -p %{buildroot}%{_datadir}/pixmaps
install -pm 0644 nvidia-settings.png %{buildroot}%{_datadir}/pixmaps install -pm 0644 nvidia-settings.png %{buildroot}%{_datadir}/pixmaps
#Install static driver dependant configuration files
mkdir -p %{buildroot}%{_sysconfdir}/X11/xorg.conf.d
%if 0%{?rhel} > 6 || 0%{?fedora} <= 24
install -pm 0644 %{SOURCE5} %{buildroot}%{_sysconfdir}/X11/xorg.conf.d
%endif
%if 0%{?rhel} == 6
install -pm 0644 %{SOURCE3} %{buildroot}%{_sysconfdir}/X11/xorg.conf.nvidia
%endif
%if 0%{?fedora} <= 24
install -pm 0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/X11/xorg.conf.d
sed -i -e 's|@LIBDIR@|%{_libdir}|g' %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/99-nvidia.conf
touch -r %{SOURCE2} %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/99-nvidia.conf
%endif
# Comment Xorg abi override
#install -pm 0644 %{SOURCE11} %{buildroot}%{_sysconfdir}/X11/xorg.conf.d
# Fix desktop file and validate # Fix desktop file and validate
sed -i -e 's|__UTILS_PATH__/||g' -e 's|__PIXMAP_PATH__/||g' nvidia-settings.desktop sed -i -e 's|__UTILS_PATH__/||g' -e 's|__PIXMAP_PATH__/||g' nvidia-settings.desktop
sed -i -e 's|nvidia-settings.png|nvidia-settings|g' nvidia-settings.desktop sed -i -e 's|nvidia-settings.png|nvidia-settings|g' nvidia-settings.desktop
@ -335,17 +325,23 @@ install -p -m 0644 %{SOURCE7} %{buildroot}%{_alternate_dir}
mkdir -p %{buildroot}%{_datadir}/nvidia mkdir -p %{buildroot}%{_datadir}/nvidia
install -p -m 0644 nvidia-application-profiles-%{version}-{rc,key-documentation} %{buildroot}%{_datadir}/nvidia install -p -m 0644 nvidia-application-profiles-%{version}-{rc,key-documentation} %{buildroot}%{_datadir}/nvidia
#Install the output class configuration file - xorg-server >= 1.16 #Install the Xorg configuration files
%if 0%{?fedora} >= 25 mkdir -p %{buildroot}%{_sysconfdir}/X11/xorg.conf.d
mkdir -p %{buildroot}%{_datadir}/X11/xorg.conf.d mkdir -p %{buildroot}%{_datadir}/X11/xorg.conf.d
%if 0%{?fedora} >= 25
install -pm 0644 %{SOURCE10} %{buildroot}%{_datadir}/X11/xorg.conf.d/nvidia.conf 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 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 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
sed -i -e 's|@LIBDIR@|%{_libdir}|g' %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/99-nvidia.conf
touch -r %{SOURCE4} %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/99-nvidia.conf
%endif %endif
%if 0%{?rhel} == 7 || 0%{?fedora} == 24 #Ghost Xorg nvidia.conf files
mkdir -p %{buildroot}%{_datadir}/X11/xorg.conf.d touch %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/00-avoid-glamor.conf
install -pm 0644 %{SOURCE8} %{buildroot}%{_datadir}/X11/xorg.conf.d/nvidia.conf touch %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/99-nvidia.conf
%endif touch %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/nvidia.conf
#Install the initscript #Install the initscript
tar jxf nvidia-persistenced-init.tar.bz2 tar jxf nvidia-persistenced-init.tar.bz2
@ -360,9 +356,6 @@ sed -i -e "s/__USER__/root/" %{buildroot}%{_unitdir}/nvidia-persistenced.service
#Create the default nvidia config directory #Create the default nvidia config directory
mkdir -p %{buildroot}%{_sysconfdir}/nvidia mkdir -p %{buildroot}%{_sysconfdir}/nvidia
#Ghost Xorg nvidia.conf file
touch %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/nvidia.conf
#Install the nvidia kernel modules sources archive #Install the nvidia kernel modules sources archive
mkdir -p %{buildroot}%{_datadir}/nvidia-kmod-%{version} mkdir -p %{buildroot}%{_datadir}/nvidia-kmod-%{version}
tar Jcf %{buildroot}%{_datadir}/nvidia-kmod-%{version}/nvidia-kmod-%{version}-%{_target_cpu}.tar.xz kernel tar Jcf %{buildroot}%{_datadir}/nvidia-kmod-%{version}/nvidia-kmod-%{version}-%{_target_cpu}.tar.xz kernel
@ -419,10 +412,8 @@ if [ "$1" -eq "0" ]; then
%if 0%{?fedora} || 0%{?rhel} >= 7 %if 0%{?fedora} || 0%{?rhel} >= 7
sed -i -e 's/%{_dracutopts} //g' /etc/default/grub sed -i -e 's/%{_dracutopts} //g' /etc/default/grub
%endif %endif
%if 0%{?rhel} == 6
# Backup and disable previously used xorg.conf # 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 [ -f %{_sysconfdir}/X11/xorg.conf ] && mv %{_sysconfdir}/X11/xorg.conf %{_sysconfdir}/X11/xorg.conf.nvidia_uninstalled &>/dev/null
%endif
fi ||: fi ||:
%if 0%{?rhel} > 6 || 0%{?fedora} %if 0%{?rhel} > 6 || 0%{?fedora}
@ -454,16 +445,21 @@ fi ||:
%endif %endif
%{_datadir}/glvnd/egl_vendor.d/10_nvidia.json %{_datadir}/glvnd/egl_vendor.d/10_nvidia.json
%dir %{_sysconfdir}/nvidia %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 %ghost %{_sysconfdir}/X11/xorg.conf.d/nvidia.conf
%if 0%{?rhel} > 6 || 0%{?fedora} <= 24 %if 0%{?fedora} >= 25
%config %{_sysconfdir}/X11/xorg.conf.d/99-nvidia.conf %{_datadir}/appdata/xorg-x11-drv-nvidia.metainfo.xml
%config %{_sysconfdir}/X11/xorg.conf.d/00-avoid-glamor.conf %{_datadir}/X11/xorg.conf.d/nvidia.conf
%endif %else
# Comment Xorg abi override %{_datadir}/X11/xorg.conf.d/00-avoid-glamor.conf
#%%config %%{_sysconfdir}/X11/xorg.conf.d/00-ignoreabi.conf %{_datadir}/X11/xorg.conf.d/99-nvidia.conf
%config(noreplace) %{_modprobe_d}/blacklist-nouveau.conf # RHEL6 uses /etc
%if 0%{?rhel} == 6 %if 0%{?rhel} == 6
%config(noreplace) %{_sysconfdir}/X11/xorg.conf.nvidia %config(noreplace) %{_modprobe_d}/blacklist-nouveau.conf
%else
%{_modprobe_d}/blacklist-nouveau.conf
%endif
%endif %endif
%config %{_sysconfdir}/xdg/autostart/nvidia-settings.desktop %config %{_sysconfdir}/xdg/autostart/nvidia-settings.desktop
%{_bindir}/nvidia-bug-report.sh %{_bindir}/nvidia-bug-report.sh
@ -487,12 +483,6 @@ fi ||:
%endif %endif
%endif %endif
#/no_multilib #/no_multilib
%if 0%{?rhel} > 6 || 0%{?fedora}
%{_datadir}/X11/xorg.conf.d/nvidia.conf
%endif
%if 0%{?fedora} >= 25
%{_datadir}/appdata/xorg-x11-drv-nvidia.metainfo.xml
%endif
%dir %{_datadir}/nvidia %dir %{_datadir}/nvidia
%{_datadir}/nvidia/nvidia-application-profiles-%{version}-* %{_datadir}/nvidia/nvidia-application-profiles-%{version}-*
%{_datadir}/applications/*nvidia-settings.desktop %{_datadir}/applications/*nvidia-settings.desktop
@ -505,7 +495,7 @@ fi ||:
%{_datadir}/nvidia-kmod-%{version}/nvidia-kmod-%{version}-%{_target_cpu}.tar.xz %{_datadir}/nvidia-kmod-%{version}/nvidia-kmod-%{version}-%{_target_cpu}.tar.xz
%files libs %files libs
%if 0%{?rhel} > 6 || 0%{?fedora} <= 24 %if 0%{?rhel} || 0%{?fedora} == 24
%config %{_sysconfdir}/ld.so.conf.d/nvidia-%{_lib}.conf %config %{_sysconfdir}/ld.so.conf.d/nvidia-%{_lib}.conf
%dir %{_libdir} %dir %{_libdir}
%endif %endif
@ -516,9 +506,7 @@ fi ||:
%{_libdir}/libGLESv1_CM_nvidia.so.%{version} %{_libdir}/libGLESv1_CM_nvidia.so.%{version}
%{_libdir}/libGLESv2_nvidia.so.2 %{_libdir}/libGLESv2_nvidia.so.2
%{_libdir}/libGLESv2_nvidia.so.%{version} %{_libdir}/libGLESv2_nvidia.so.%{version}
%if 0%{?rhel} == 7 || 0%{?rhel} == 6 || 0%{?fedora} == 24
%{_libdir}/libGLX_indirect.so.0 %{_libdir}/libGLX_indirect.so.0
%endif
%{_libdir}/libGLX_nvidia.so.0 %{_libdir}/libGLX_nvidia.so.0
%{_libdir}/libGLX_nvidia.so.%{version} %{_libdir}/libGLX_nvidia.so.%{version}
%{_libdir}/libnvidia-cfg.so.1 %{_libdir}/libnvidia-cfg.so.1

Loading…
Cancel
Save