From 7f0cefc2098e3b1011d1b43f297d9cce57393972 Mon Sep 17 00:00:00 2001 From: Jan Palus Date: Thu, 3 May 2018 13:16:52 +0200 Subject: [PATCH] up to 396.24 (32bit driver support dropped) when built for 32bit target only package with compatibility libraries is created --- linux-4.16.patch | 12 ---- xorg-driver-video-nvidia.spec | 125 +++++++++++++++++++++------------- 2 files changed, 76 insertions(+), 61 deletions(-) delete mode 100644 linux-4.16.patch diff --git a/linux-4.16.patch b/linux-4.16.patch deleted file mode 100644 index 8fd7e1d..0000000 --- a/linux-4.16.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -ur NVIDIA-Linux-x86_64-390.48-no-compat32.orig/kernel/common/inc/nv-linux.h NVIDIA-Linux-x86_64-390.48-no-compat32/kernel/common/inc/nv-linux.h ---- NVIDIA-Linux-x86_64-390.48-no-compat32.orig/kernel/common/inc/nv-linux.h 2018-04-06 23:06:17.967287478 +0200 -+++ NVIDIA-Linux-x86_64-390.48-no-compat32/kernel/common/inc/nv-linux.h 2018-04-06 23:06:31.980554716 +0200 -@@ -1209,7 +1209,7 @@ - static inline NvBool nv_dma_maps_swiotlb(struct pci_dev *dev) - { - NvBool swiotlb_in_use = NV_FALSE; --#if defined(CONFIG_SWIOTLB) -+#if defined(CONFIG_SWIOTLB) && LINUX_VERSION_CODE < KERNEL_VERSION(4, 16, 0) - #if defined(NV_DMA_OPS_PRESENT) || defined(NV_GET_DMA_OPS_PRESENT) - /* - * We only use the 'dma_ops' symbol on older x86_64 kernels; later kernels, diff --git a/xorg-driver-video-nvidia.spec b/xorg-driver-video-nvidia.spec index ff7904c..94a0039 100644 --- a/xorg-driver-video-nvidia.spec +++ b/xorg-driver-video-nvidia.spec @@ -33,29 +33,26 @@ exit 1 %define no_install_post_check_so 1 -%define rel 2 +%define rel 1 %define pname xorg-driver-video-nvidia Summary: Linux Drivers for nVidia GeForce/Quadro Chips Summary(hu.UTF-8): Linux meghajtók nVidia GeForce/Quadro chipekhez Summary(pl.UTF-8): Sterowniki do kart graficznych nVidia GeForce/Quadro Name: %{pname}%{?_pld_builder:%{?with_kernel:-kernel}}%{_alt_kernel} # when updating version here, keep nvidia-settings.spec in sync as well -Version: 390.48 +Version: 396.24 Release: %{rel}%{?_pld_builder:%{?with_kernel:@%{_kernel_ver_str}}} Epoch: 1 License: nVidia Binary Group: X11 -Source0: http://us.download.nvidia.com/XFree86/Linux-x86/%{version}/NVIDIA-Linux-x86-%{version}.run -# Source0-md5: 754bbdc3eb6f3873cca49ae807964c0e -Source1: http://us.download.nvidia.com/XFree86/Linux-x86_64/%{version}/NVIDIA-Linux-x86_64-%{version}-no-compat32.run -# Source1-md5: 8ed67fc67710b6cfd9c9273054e2117a +Source0: http://us.download.nvidia.com/XFree86/Linux-x86_64/%{version}/NVIDIA-Linux-x86_64-%{version}.run +# Source0-md5: 7b5c4735a5b7ad3a9d166ca85cc88e17 Source2: %{pname}-xinitrc.sh Source3: gl.pc.in Source4: 10-nvidia.conf Source5: 10-nvidia-modules.conf Patch0: X11-driver-nvidia-GL.patch Patch1: X11-driver-nvidia-desktop.patch -Patch2: linux-4.16.patch URL: http://www.nvidia.com/object/unix.html BuildRequires: rpmbuild(macros) >= 1.701 %{?with_kernel:%{expand:%buildrequires_kernel kernel%%{_alt_kernel}-module-build >= 3:2.6.20.2}} @@ -63,7 +60,7 @@ BuildRequires: sed >= 4.0 BuildConflicts: XFree86-nvidia Requires: %{pname}-libs = %{epoch}:%{version}-%{rel} Requires: xorg-xserver-server -Requires: xorg-xserver-server(videodrv-abi) <= 23.0 +Requires: xorg-xserver-server(videodrv-abi) <= 24.0 Requires: xorg-xserver-server(videodrv-abi) >= 2.0 Provides: ocl-icd(nvidia) Provides: ocl-icd-driver @@ -192,6 +189,7 @@ Eszközök az nVidia grafikus kártyák beállításához. %description progs -l pl.UTF-8 Narzędzia do zarządzania kartami graficznymi nVidia. +%ifarch %{x8664} %define kernel_pkg()\ %package -n kernel%{_alt_kernel}-video-nvidia\ Summary: nVidia kernel module for nVidia Architecture support\ @@ -250,30 +248,25 @@ cd kernel\ %{__make} SYSSRC=%{_kernelsrcdir} IGNORE_CC_MISMATCH=1 NV_VERBOSE=1 CC=%{__cc} module\ cd ..\ %install_kernel_modules -D installed -m kernel/nvidia,kernel/nvidia-drm,kernel/nvidia-modeset -d misc\ -%ifarch %{x8664}\ %install_kernel_modules -D installed -m kernel/nvidia-uvm -d misc\ -%endif\ %{nil} %{?with_kernel:%{expand:%create_kernel_packages}} +%endif %prep cd %{_builddir} -rm -rf NVIDIA-Linux-x86*-%{version}* -%ifarch %{ix86} +rm -rf NVIDIA-Linux-x86_64-%{version} /bin/sh %{SOURCE0} --extract-only -%setup -qDT -n NVIDIA-Linux-x86-%{version} -%else -/bin/sh %{SOURCE1} --extract-only -%setup -qDT -n NVIDIA-Linux-x86_64-%{version}-no-compat32 -%endif +%setup -qDT -n NVIDIA-Linux-x86_64-%{version} %patch0 -p1 %patch1 -p1 -%patch2 -p1 echo 'EXTRA_CFLAGS += -Wno-pointer-arith -Wno-sign-compare -Wno-unused' >> kernel/Makefile.kbuild %build +%ifarch %{x8664} %{?with_kernel:%{expand:%build_kernel_packages}} +%endif %install rm -rf $RPM_BUILD_ROOT @@ -285,6 +278,7 @@ install -d $RPM_BUILD_ROOT%{_libdir}/{nvidia,xorg/modules/{drivers,extensions/nv $RPM_BUILD_ROOT%{_sysconfdir}/{OpenCL/vendors,ld.so.conf.d,X11/xorg.conf.d} \ $RPM_BUILD_ROOT%{_datadir}/{glvnd/egl_vendor.d,nvidia,vulkan/icd.d} +%ifarch %{x8664} %if %{with settings} install -p nvidia-settings $RPM_BUILD_ROOT%{_bindir} cp -p nvidia-settings.1* $RPM_BUILD_ROOT%{_mandir}/man1 @@ -305,53 +299,67 @@ install -p nvidia-drm-outputclass.conf $RPM_BUILD_ROOT/etc/X11/xorg.conf.d/10-nv install -p nvidia-application-profiles-%{version}-key-documentation $RPM_BUILD_ROOT%{_datadir}/nvidia install -p nvidia-application-profiles-%{version}-rc $RPM_BUILD_ROOT%{_datadir}/nvidia +%endif + +%ifarch %{ix86} +%define srcdir 32 +%else +%define srcdir . +%endif for f in \ %if %{with glvnd} %if %{without system_libglvnd} - libGL.so.1.7.0 \ - libGLX.so.0 \ - libOpenGL.so.0 \ - libGLdispatch.so.0 \ - libGLESv1_CM.so.1.2.0 \ - libGLESv2.so.2.1.0 \ - libEGL.so.1.1.0 \ -%endif - libGLX_nvidia.so.%{version} \ - libEGL_nvidia.so.%{version} \ - libGLESv1_CM_nvidia.so.%{version} \ - libGLESv2_nvidia.so.%{version} \ - libnvidia-egl-wayland.so.1.0.2 \ - libnvidia-eglcore.so.%{version} \ + %{srcdir}/libGL.so.1.7.0 \ + %{srcdir}/libGLX.so.0 \ + %{srcdir}/libOpenGL.so.0 \ + %{srcdir}/libGLdispatch.so.0 \ + %{srcdir}/libGLESv1_CM.so.1.2.0 \ + %{srcdir}/libGLESv2.so.2.1.0 \ + %{srcdir}/libEGL.so.1.1.0 \ +%endif + %{srcdir}/libGLX_nvidia.so.%{version} \ + %{srcdir}/libEGL_nvidia.so.%{version} \ + %{srcdir}/libGLESv1_CM_nvidia.so.%{version} \ + %{srcdir}/libGLESv2_nvidia.so.%{version} \ +%ifarch %{x8664} + %{srcdir}/libnvidia-egl-wayland.so.1.0.3 \ + %{srcdir}/libnvidia-eglcore.so.%{version} \ +%endif %else - libGL.so.%{version} \ -%endif - libcuda.so.%{version} \ - libnvcuvid.so.%{version} \ - libnvidia-cfg.so.%{version} \ - libnvidia-compiler.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-opencl.so.%{version} \ - libnvidia-ptxjitcompiler.so.%{version} \ - tls/libnvidia-tls.so.%{version} \ + %{srcdir}/libGL.so.%{version} \ +%endif + %{srcdir}/libcuda.so.%{version} \ + %{srcdir}/libnvcuvid.so.%{version} \ +%ifarch %{x8664} + %{srcdir}/libnvidia-cfg.so.%{version} \ +%endif + %{srcdir}/libnvidia-compiler.so.%{version} \ + %{srcdir}/libnvidia-encode.so.%{version} \ + %{srcdir}/libnvidia-fatbinaryloader.so.%{version} \ + %{srcdir}/libnvidia-fbc.so.%{version} \ + %{srcdir}/libnvidia-glcore.so.%{version} \ + %{srcdir}/libnvidia-glsi.so.%{version} \ + %{srcdir}/libnvidia-glvkspirv.so.%{version} \ + %{srcdir}/libnvidia-ifr.so.%{version} \ + %{srcdir}/libnvidia-ml.so.%{version} \ + %{srcdir}/libnvidia-opencl.so.%{version} \ + %{srcdir}/libnvidia-ptxjitcompiler.so.%{version} \ + %{srcdir}/tls/libnvidia-tls.so.%{version} \ ; do install -p $f $RPM_BUILD_ROOT%{_libdir}/nvidia done -install -p libvdpau_nvidia.so.%{version} $RPM_BUILD_ROOT%{_libdir}/vdpau +install -p %{srcdir}/libvdpau_nvidia.so.%{version} $RPM_BUILD_ROOT%{_libdir}/vdpau +%ifarch %{x8664} install -p libglx.so.%{version} $RPM_BUILD_ROOT%{_libdir}/xorg/modules/extensions/nvidia ln -s libglx.so.%{version} $RPM_BUILD_ROOT%{_libdir}/xorg/modules/extensions/nvidia/libglx.so install -p nvidia_drv.so $RPM_BUILD_ROOT%{_libdir}/xorg/modules/drivers/nvidia_drv.so.%{version} ln -s nvidia_drv.so.%{version} $RPM_BUILD_ROOT%{_libdir}/xorg/modules/drivers/nvidia_drv.so install -p libnvidia-wfb.so.%{version} $RPM_BUILD_ROOT%{_libdir}/xorg/modules/extensions/nvidia ln -s libnvidia-wfb.so.1 $RPM_BUILD_ROOT%{_libdir}/xorg/modules/extensions/nvidia/libnvidia-wfb.so +%endif /sbin/ldconfig -n $RPM_BUILD_ROOT%{_libdir}/nvidia /sbin/ldconfig -n $RPM_BUILD_ROOT%{_libdir}/xorg/modules/extensions/nvidia @@ -388,7 +396,9 @@ ln -sf libEGL_nvidia.so.%{version} $RPM_BUILD_ROOT%{_libdir}/nvidia/libEGL_nvidi ln -sf libGLESv1_CM_nvidia.so.%{version} $RPM_BUILD_ROOT%{_libdir}/nvidia/libGLESv1_CM_nvidia.so.1 ln -sf libGLESv2_nvidia.so.%{version} $RPM_BUILD_ROOT%{_libdir}/nvidia/libGLESv2_nvidia.so.2 +%ifarch %{x8664} install -p 10_nvidia.json $RPM_BUILD_ROOT%{_datadir}/glvnd/egl_vendor.d +%endif %else ln -sf libGL.so.%{version} $RPM_BUILD_ROOT%{_libdir}/nvidia/libGL.so.1 ln -sf libGL.so.1 $RPM_BUILD_ROOT%{_libdir}/nvidia/libGL.so @@ -396,13 +406,17 @@ ln -sf libGL.so.1 $RPM_BUILD_ROOT%{_libdir}/nvidia/libGL.so ln -sf libcuda.so.1 $RPM_BUILD_ROOT%{_libdir}/nvidia/libcuda.so ln -sf libnvcuvid.so.1 $RPM_BUILD_ROOT%{_libdir}/nvidia/libnvcuvid.so +%ifarch %{x8664} sed 's!__NV_VK_ICD__!%{vulkan_lib}!g' nvidia_icd.json.template > $RPM_BUILD_ROOT%{_datadir}/vulkan/icd.d/nvidia_icd.json %endif +%endif +%ifarch %{x8664} %if %{with kernel} install -d $RPM_BUILD_ROOT cp -a installed/* $RPM_BUILD_ROOT %endif +%endif install -d $RPM_BUILD_ROOT%{_pkgconfigdir} sed -e ' @@ -426,6 +440,7 @@ EOF %postun libs -p /sbin/ldconfig %if %{with userspace} +%ifarch %{x8664} %files %defattr(644,root,root,755) %doc LICENSE NVIDIA_Changelog README.txt @@ -443,12 +458,15 @@ EOF %dir %{_datadir}/nvidia %{_datadir}/nvidia/nvidia-application-profiles-%{version}-key-documentation %{_datadir}/nvidia/nvidia-application-profiles-%{version}-rc +%endif %files libs %defattr(644,root,root,755) +%ifarch %{x8664} %dir %{_sysconfdir}/OpenCL %dir %{_sysconfdir}/OpenCL/vendors %{_sysconfdir}/OpenCL/vendors/nvidia.icd +%endif} %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ld.so.conf.d/nvidia*.conf %dir %{_libdir}/nvidia %if %{with glvnd} @@ -474,9 +492,11 @@ EOF %attr(755,root,root) %ghost %{_libdir}/nvidia/libGLX_indirect.so.0 %attr(755,root,root) %ghost %{_libdir}/nvidia/libGLX_nvidia.so.0 %attr(755,root,root) %{_libdir}/nvidia/libGLX_nvidia.so.*.* +%ifarch %{x8664} %attr(755,root,root) %{_libdir}/nvidia/libnvidia-egl-wayland.so.*.*.* %attr(755,root,root) %ghost %{_libdir}/nvidia/libnvidia-egl-wayland.so.1 %attr(755,root,root) %{_libdir}/nvidia/libnvidia-eglcore.so.*.* +%endif %else %attr(755,root,root) %{_libdir}/nvidia/libGL.so.*.* %attr(755,root,root) %ghost %{_libdir}/nvidia/libGL.so.1 @@ -487,8 +507,10 @@ EOF %attr(755,root,root) %{_libdir}/nvidia/libnvcuvid.so.*.* %attr(755,root,root) %ghost %{_libdir}/nvidia/libnvcuvid.so.1 %attr(755,root,root) %{_libdir}/nvidia/libnvcuvid.so +%ifarch %{x8664} %attr(755,root,root) %{_libdir}/nvidia/libnvidia-cfg.so.*.* %attr(755,root,root) %ghost %{_libdir}/nvidia/libnvidia-cfg.so.1 +%endif %attr(755,root,root) %{_libdir}/nvidia/libnvidia-compiler.so.*.* %attr(755,root,root) %{_libdir}/nvidia/libnvidia-encode.so.*.* %attr(755,root,root) %ghost %{_libdir}/nvidia/libnvidia-encode.so.1 @@ -497,6 +519,7 @@ EOF %attr(755,root,root) %{_libdir}/nvidia/libnvidia-fbc.so.*.* %attr(755,root,root) %{_libdir}/nvidia/libnvidia-glcore.so.*.* %attr(755,root,root) %{_libdir}/nvidia/libnvidia-glsi.so.*.* +%attr(755,root,root) %{_libdir}/nvidia/libnvidia-glvkspirv.so.*.* %attr(755,root,root) %ghost %{_libdir}/nvidia/libnvidia-ifr.so.1 %attr(755,root,root) %{_libdir}/nvidia/libnvidia-ifr.so.*.* %attr(755,root,root) %{_libdir}/nvidia/libnvidia-ptxjitcompiler.so.1 @@ -508,10 +531,12 @@ EOF %attr(755,root,root) %{_libdir}/nvidia/libnvidia-tls.so.*.* %attr(755,root,root) %{_libdir}/vdpau/libvdpau_nvidia.so.*.* %attr(755,root,root) %ghost %{_libdir}/vdpau/libvdpau_nvidia.so.1 +%ifarch %{x8664} %if %{with glvnd} %{_datadir}/glvnd/egl_vendor.d/10_nvidia.json %endif %{_datadir}/vulkan/icd.d/nvidia_icd.json +%endif %files devel %defattr(644,root,root,755) @@ -538,6 +563,7 @@ EOF %defattr(644,root,root,755) %doc html/* +%ifarch %{x8664} %files progs %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/nvidia-bug-report.sh @@ -556,3 +582,4 @@ EOF %{_pixmapsdir}/nvidia-settings.png %endif %endif +%endif -- 2.43.0