commit 58881a78a10e4729620a97415000de3f8af7adbc
Author: leigh123linux <leigh123linux(a)googlemail.com>
Date: Fri May 4 12:01:32 2018 +0100
rebase to 396xx pt2
xorg-x11-drv-nvidia.spec | 138 ++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 136 insertions(+), 2 deletions(-)
---
diff --git a/xorg-x11-drv-nvidia.spec b/xorg-x11-drv-nvidia.spec
index 98d5076..624b2b2 100644
--- a/xorg-x11-drv-nvidia.spec
+++ b/xorg-x11-drv-nvidia.spec
@@ -1,4 +1,5 @@
%global _nvidia_serie nvidia
+%global _libdir32 %{_prefix}/lib
%global _nvidia_libdir %{_libdir}/%{_nvidia_serie}
%global _nvidia_xorgdir %{_nvidia_libdir}/xorg
# Unfortunately this is always hardcoded regardless of architecture:
@@ -58,7 +59,7 @@ Source12: 99-nvidia-dracut.conf
Source13: 10-nvidia.rules
Source14: nvidia-fallback.service
-ExclusiveArch: x86_64
+ExclusiveArch: x86_64 i686
%if 0%{?rhel} > 6 || 0%{?fedora}
Buildrequires: systemd
@@ -186,15 +187,16 @@ 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
+%ifarch x86_64
# Boolean dependencies are only fedora
Requires: (%{name}-libs(x86-32) = %{?epoch}:%{version}-%{release} if
libGL(x86-32))
%endif
+%endif
Requires: vulkan-filesystem
%description libs
This package provides the shared libraries for %{name}.
-
%prep
%setup -q -c -T
sh %{SOURCE0} \
@@ -210,6 +212,7 @@ echo "Nothing to build"
%install
cd nvidiapkg
+%ifarch x86_64
# Install only required libraries
mkdir -p %{buildroot}%{_libdir}
cp -a \
@@ -247,7 +250,74 @@ cp -a \
%{buildroot}%{_nvidia_libdir}/
ldconfig -vn %{buildroot}%{_nvidia_libdir}/
%endif
+%endif
+
+%ifarch i686
+# Install the 32bit libraries
+mkdir -p %{buildroot}%{_libdir32} %{buildroot}%{_alternate_dir}
+pushd 32
+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-eglcore.so.%{version} \
+ libnvidia-encode.so.%{version} \
+ libnvidia-fatbinaryloader.so.%{version} \
+ libnvidia-fbc.so.%{version} \
+ libnvidia-glcore.so.%{version} \
+ libnvidia-glsi.so.%{version} \
+ libnvidia-glvkspirv.so.%{version} \
+ libnvidia-ifr.so.%{version} \
+ libnvidia-ml.so.%{version} \
+ libnvidia-ptxjitcompiler.so.%{version} \
+ %{buildroot}%{_libdir32}/
+
+cp -af \
+ tls/libnvidia-tls.so* \
+ libnvidia-compiler.so.%{version} \
+ libnvidia-opencl.so.%{version} \
+ %{buildroot}%{_libdir32}/
+
+%if 0%{?rhel} && 0%{?rhel} < 8
+mkdir -p %{buildroot}%{_alternate_dir}
+cp -a \
+ libEGL.so.%{version} \
+ libGL.so.%{version} \
+ libGLdispatch.so.0 \
+ %{buildroot}%{_alternate_dir}/
+ldconfig -vn %{buildroot}%{_alternate_dir}/
+%endif
+# Use ldconfig for libraries with a mismatching SONAME/filename
+ldconfig -vn %{buildroot}%{_libdir32}/
+# Libraries you can link against
+ln -sf libcuda.so.%{version} %{buildroot}%{_libdir32}/libcuda.so
+# Vdpau driver
+install -D -p -m 0755 libvdpau_nvidia.so.%{version}
%{buildroot}%{_libdir32}/vdpau/libvdpau_nvidia.so.%{version}
+ln -sf libvdpau_nvidia.so.%{version} %{buildroot}%{_libdir32}/vdpau/libvdpau_nvidia.so.1
+# GlVND
+%if 0%{?rhel} && 0%{?rhel} < 8
+ln -s libGLX_nvidia.so.%{version} %{buildroot}%{_libdir32}/libGLX_indirect.so.0
+# ld.so.conf.d file
+install -m 0755 -d %{buildroot}%{_sysconfdir}/ld.so.conf.d/
+echo -e "%{_alternate_dir} \n" >
%{buildroot}%{_sysconfdir}/ld.so.conf.d/nvidia-lib.conf
+%endif
+# 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.i686.json
+%if 0%{?rhel}
+# 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.i686.json
+touch -r ../nvidia_icd.json.template
%{buildroot}%{_datadir}/vulkan/icd.d/nvidia_icd.i686.json
+%endif
+popd
+# End of 32bit libs
+%endif
+%ifarch x86_64
# Use ldconfig for libraries with a mismatching SONAME/filename
ldconfig -vn %{buildroot}%{_libdir}/
@@ -520,7 +590,47 @@ fi ||:
%{_libdir}/libnvidia-tls.so.%{version}
%{_libdir}/vdpau/libvdpau_nvidia.so.1
%{_libdir}/vdpau/libvdpau_nvidia.so.%{version}
+%endif
+%ifarch i686
+%ldconfig_scriptlets libs
+
+%files libs
+%if 0%{?rhel} && 0%{?rhel} < 8
+%config %{_sysconfdir}/ld.so.conf.d/nvidia-lib.conf
+%{_alternate_dir}/libEGL.so.1
+%{_alternate_dir}/libEGL.so.%{version}
+%{_alternate_dir}/libGL.so.1
+%{_alternate_dir}/libGL.so.%{version}
+%{_alternate_dir}/libGLdispatch.so.0
+%endif
+%{_datadir}/vulkan/icd.d/nvidia_icd.i686.json
+%dir %{_alternate_dir}
+%{_libdir32}/libEGL_nvidia.so.0
+%{_libdir32}/libEGL_nvidia.so.%{version}
+%{_libdir32}/libGLESv1_CM_nvidia.so.1
+%{_libdir32}/libGLESv1_CM_nvidia.so.%{version}
+%{_libdir32}/libGLESv2_nvidia.so.2
+%{_libdir32}/libGLESv2_nvidia.so.%{version}
+%if 0%{?rhel}
+%{_libdir32}/libGLX_indirect.so.0
+%endif
+%{_libdir32}/libGLX_nvidia.so.0
+%{_libdir32}/libGLX_nvidia.so.%{version}
+%{_libdir32}/libnvidia-eglcore.so.%{version}
+%{_libdir32}/libnvidia-fbc.so.1
+%{_libdir32}/libnvidia-fbc.so.%{version}
+%{_libdir32}/libnvidia-glcore.so.%{version}
+%{_libdir32}/libnvidia-glsi.so.%{version}
+%{_libdir32}/libnvidia-glvkspirv.so.%{version}
+%{_libdir32}/libnvidia-ifr.so.1
+%{_libdir32}/libnvidia-ifr.so.%{version}
+%{_libdir32}/libnvidia-tls.so.%{version}
+%{_libdir32}/vdpau/libvdpau_nvidia.so.1
+%{_libdir32}/vdpau/libvdpau_nvidia.so.%{version}
+%endif
+
+%ifarch x86_64
%files cuda
%license nvidiapkg/LICENSE
%{_bindir}/nvidia-debugdump
@@ -549,11 +659,35 @@ fi ||:
%{_libdir}/libnvidia-compiler.so.%{version}
%{_libdir}/libnvidia-opencl.so.1
%{_libdir}/libnvidia-opencl.so.%{version}
+%endif
+
+%ifarch i686
+%ldconfig_scriptlets cuda-libs
+%files cuda-libs
+%{_libdir32}/libcuda.so
+%{_libdir32}/libcuda.so.1
+%{_libdir32}/libcuda.so.%{version}
+%{_libdir32}/libnvcuvid.so.1
+%{_libdir32}/libnvcuvid.so.%{version}
+%{_libdir32}/libnvidia-encode.so.1
+%{_libdir32}/libnvidia-encode.so.%{version}
+%{_libdir32}/libnvidia-fatbinaryloader.so.%{version}
+%{_libdir32}/libnvidia-ml.so.1
+%{_libdir32}/libnvidia-ml.so.%{version}
+%{_libdir32}/libnvidia-ptxjitcompiler.so.1
+%{_libdir32}/libnvidia-ptxjitcompiler.so.%{version}
+%{_libdir32}/libnvidia-compiler.so.%{version}
+%{_libdir32}/libnvidia-opencl.so.1
+%{_libdir32}/libnvidia-opencl.so.%{version}
+%endif
+
+%ifarch x86_64
%files devel
%{_includedir}/nvidia/
%{_libdir}/libnvcuvid.so
%{_libdir}/libnvidia-encode.so
+%endif
%changelog
* Fri May 04 2018 Leigh Scott <leigh123linux(a)googlemail.com> - 3:396.24-1