File x11-video-nvidia.spec of Package dkms-nvidia
#
# spec file for package x11-video-bumblebee-nvidia
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
#
# Please submit bugfixes or comments via bumblebee.obs@gmail.com
#
# norootforbuild
# nodebuginfo
#define mirror1 http://download.nvidia.com/XFree86
#define mirror1 http://uk.download.nvidia.com/XFree86
%define mirror1 http://us.download.nvidia.com/XFree86
%define egl_version 1.1.0
%define gles1_version 1.2.0
%define gles2_version 2.1.0
%define cl_version 1.0.0
%define gl_version 1.7.0
Name: x11-video-nvidia
Summary: Installer for the proprietary graphics driver for GeForce 6xxx and newer GPUs
Version: %{package_ver}
Release: 0.1
Url: https://build.opensuse.org/project/show/home:Bumblebee-Project
Group: System/Libraries
License: GPL-2.0+
Vendor: The Bumblebee Project
#Source0: nvidia-settings.desktop
Source1: xorg.conf
Source2: xorg.conf-x86_64
Source3: README
Source100: %{name}-rpmlintrc
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if 0%{?suse_version}
BuildRequires: update-desktop-files
%endif
Requires: nvidia-kernel-module = %{version}
Requires: nvidia-compute = %{version}-%{release}
Requires: %{name}-devel = %{version}-%{release}
Requires: libglvnd
Provides: x11-video-nvidiaG02 = %{version}-%{release}
Provides: x11-video-bumblebee-nvidiaG02 = %{version}-%{release}
Obsoletes: x11-video-nvidiaG02 < %{version}-%{release}
Obsoletes: x11-video-bumblebee-nvidiaG02 < %{version}-%{release}
ExclusiveArch: %ix86 x86_64
%description
This package will download and install the proprietary NVIDIA
Accelerated Linux Graphics Driver that brings accelerated 2D functionality
and high-performance OpenGL support to Linux x86 with the
use of NVIDIA graphics processing units (GPUs).
These drivers provide optimized hardware acceleration for OpenGL and X
applications and support nearly all recent NVIDIA GPU products
(see README.txt, Appendix A for a complete list of supported GPUs).
TwinView, TV-Out and flat panel displays are also supported.
http://www.nvidia.com
%package devel
License: GPL-2.0+
Summary: Installer for the proprietary graphics driver for GeForce 6xxx and newer GPUs
Group: Development/Libraries/Other
Requires: %{name} = %{version}-%{release}
%description devel
This package will download and install the proprietary NVIDIA
Accelerated Linux Graphics Driver that brings accelerated 2D functionality
and high-performance OpenGL support to Linux x86 with the
use of NVIDIA graphics processing units (GPUs).
These drivers provide optimized hardware acceleration for OpenGL and X
applications and support nearly all recent NVIDIA GPU products
(see README.txt, Appendix A for a complete list of supported GPUs).
TwinView, TV-Out and flat panel displays are also supported.
http://www.nvidia.com
%ifarch x86_64
%package 32bit
License: GPL-2.0+
Summary: Installer for the proprietary graphics driver for GeForce 6xxx and newer GPUs
Group: System/Libraries
Requires: %{name} = %{version}-%{release}
Requires: nvidia-compute-32bit = %{version}-%{release}
Requires: %{name}-devel-32bit = %{version}-%{release}
%description 32bit
This package will download and install the proprietary NVIDIA
Accelerated Linux Graphics Driver that brings accelerated 2D functionality
and high-performance OpenGL support to Linux x86 with the
use of NVIDIA graphics processing units (GPUs).
These drivers provide optimized hardware acceleration for OpenGL and X
applications and support nearly all recent NVIDIA GPU products
(see README.txt, Appendix A for a complete list of supported GPUs).
TwinView, TV-Out and flat panel displays are also supported.
http://www.nvidia.com
%package devel-32bit
License: GPL-2.0+
Summary: Installer for the proprietary graphics driver for GeForce 6xxx and newer GPUs
Group: Development/Libraries/Other
Requires: %{name}-32bit = %{version}-%{release}
%description devel-32bit
This package will download and install the proprietary NVIDIA
Accelerated Linux Graphics Driver that brings accelerated 2D functionality
and high-performance OpenGL support to Linux x86 with the
use of NVIDIA graphics processing units (GPUs).
These drivers provide optimized hardware acceleration for OpenGL and X
applications and support nearly all recent NVIDIA GPU products
(see README.txt, Appendix A for a complete list of supported GPUs).
TwinView, TV-Out and flat panel displays are also supported.
http://www.nvidia.com
%endif
%package -n nvidia-compute
Summary: Installer for the proprietary NVIDIA driver for computing with GPGPU
Group: System/Libraries
Requires: nvidia-kernel-module = %{version}
Provides: nvidia-computeG02 = %{version}-%{release}
Obsoletes: nvidia-computeG02 < %{version}-%{release}
%description -n nvidia-compute
This package will download and install the proprietary NVIDIA driver
for computing with GPGPUs using CUDA or OpenCL
%package -n nvidia-compute-devel
Summary: Installer for the proprietary NVIDIA driver for computing with GPGPU
Group: Development/Libraries/Other
Requires: nvidia-compute = %{version}-%{release}
%description -n nvidia-compute-devel
This package will download and install the proprietary NVIDIA driver
for computing with GPGPUs using CUDA or OpenCL
%ifarch x86_64
%package -n nvidia-compute-32bit
Summary: Installer for the proprietary NVIDIA driver for computing with GPGPU
Group: System/Libraries
Requires: nvidia-compute = %{version}-%{release}
%description -n nvidia-compute-32bit
This package will download and install the proprietary NVIDIA driver
for computing with GPGPUs using CUDA or OpenCL
%package -n nvidia-compute-devel-32bit
Summary: Installer for the proprietary NVIDIA driver for computing with GPGPU
Group: Development/Libraries/Other
Requires: nvidia-compute-32bit = %{version}-%{release}
%description -n nvidia-compute-devel-32bit
This package will download and install the proprietary NVIDIA driver
for computing with GPGPUs using CUDA or OpenCL
%endif
%prep
%if %{undefined package_name}
%{error:%%package_name missing in the Project Config}
exit -1
%endif
%if %{undefined package_ver}
%{error:%%package_ver missing in the Project Config}
exit -1
%endif
%if %{undefined md5_x86}
%{error:%%md5_x86 missing in the Project Config}
exit -1
%endif
%if %{undefined md5_x86_64}
%{error:%%md5_x86_64 missing in the Project Config}
exit -1
%endif
#
cp %SOURCE3 README.x11-video-nvidia
cp %SOURCE3 README.x11-video-nvidia-devel
cp %SOURCE3 README.nvidia-compute
cp %SOURCE3 README.nvidia-compute-devel
%ifarch x86_64
cp %SOURCE3 README.x11-video-nvidia-32bit
cp %SOURCE3 README.x11-video-nvidia-devel-32bit
cp %SOURCE3 README.nvidia-compute-32bit
cp %SOURCE3 README.nvidia-compute-devel-32bit
%endif
%build
%install
#
# Setup
#
install -d %{buildroot}/etc/X11
install -d 755 %{buildroot}/usr/lib/nvidia
%ifarch x86_64
install -d 755 %{buildroot}/usr/lib64/nvidia
install -m 644 %{SOURCE2} %{buildroot}/etc/X11/xorg.conf.nvidia-example
%else
install -m 644 %{SOURCE1} %{buildroot}/etc/X11/xorg.conf.nvidia-example
%endif
%pre
pushd /usr/src >/dev/null 2>&1
#
# Get the nVidia package and unpack
#
%ifarch x86_64
LIB=lib64
NV_NAME=%{package_name}_64-%{version}
if [ -f $NV_NAME.run ] ; then
#
# Check the package
#
md5sum --status -c <<EOF || rm -f $NV_NAME.run
%{md5_x86_64}
EOF
fi
#
if [ -x /usr/bin/wget ] && [ ! -f $NV_NAME.run ] ; then
#
# Get the package
#
wget %{mirror1}/Linux-x86_64/%{version}/$NV_NAME.run || { rm -f $NV_NAME.run ; exit -1 ; }
#
# Check the package
#
md5sum --status -c <<EOF || { rm -f $NV_NAME.run ; exit -1 ; }
%{md5_x86_64}
EOF
fi
%else
LIB=lib
NV_NAME=%{package_name}-%{version}
if [ -f $NV_NAME.run ] ; then
#
# Check the nVidia package
#
md5sum --status -c <<EOF || rm -f $NV_NAME.run
%{md5_x86}
EOF
fi
#
if [ -x /usr/bin/wget ] && [ ! -f $NV_NAME.run ] ; then
#
# Get the package
#
wget %{mirror1}/Linux-x86/%{version}/$NV_NAME.run || { rm -f $NV_NAME.run ; exit -1 ; }
#
# Check the package
#
md5sum --status -c <<EOF || { rm -f $NV_NAME.run ; exit -1 ; }
%{md5_x86}
EOF
fi
%endif
#
if [ -f $NV_NAME.run ] ; then
#
# Check the nVidia package
#
sh $NV_NAME.run --check || { rm -f $NV_NAME.run ; exit -2 ; }
fi
#
if [ ! -d $NV_NAME ] && [ -f $NV_NAME.run ] ; then
#
# Unpack
#
sh $NV_NAME.run -x || { rm -f $NV_NAME.run ; exit -3 ; }
fi
#
NV_USAGE_FILE=/usr/src/$NV_NAME.usage
#
NV_USED=0
touch $NV_USAGE_FILE
source $NV_USAGE_FILE
NV_USED=$((NV_USED + 1))
echo "NV_USED=$NV_USED" > $NV_USAGE_FILE
#
popd >/dev/null 2>&1
%posttrans
pushd /usr/src >/dev/null 2>&1
#
%ifarch x86_64
LIB=lib64
NV_NAME=%{package_name}_64-%{version}
%else
LIB=lib
NV_NAME=%{package_name}-%{version}
%endif
#
if [ -d $NV_NAME ] ; then
#
# Install
#
pushd $NV_NAME >/dev/null 2>&1
install -d /usr/bin
install -d /usr/$LIB/nvidia
install -d /usr/$LIB/nvidia/vdpau
install -d /usr/$LIB/nvidia/xorg/modules/updates/drivers
install -d /usr/$LIB/nvidia/xorg/modules/updates/extensions
install -d /usr/share/egl/egl_external_platform.d
install -d /usr/share/nvidia
install nvidia-settings /usr/bin
install nvidia-bug-report.sh /usr/bin
install nvidia-xconfig /usr/bin
install -m 644 10_nvidia_wayland.json /usr/share/egl/egl_external_platform.d
install -m 644 15_nvidia_gbm.json /usr/share/egl/egl_external_platform.d
install -m 644 nvidia-application-profiles-%{version}-key-documentation /usr/share/nvidia
install -m 644 nvidia-application-profiles-%{version}-rc /usr/share/nvidia
install libEGL_nvidia.so.%{version} /usr/$LIB/nvidia
install libEGL.so.%{egl_version} /usr/$LIB/nvidia/libEGL.so.1.0.0
install libGLdispatch.so.0 /usr/$LIB/nvidia/libGLdispatch.so.0.0.0
install libGLESv1_CM_nvidia.so.%{version} /usr/$LIB/nvidia
install libGLESv1_CM.so.%{gles1_version} /usr/$LIB/nvidia/libGLESv1_CM.so.1.0.0
install libGLESv2_nvidia.so.%{version} /usr/$LIB/nvidia
install libGLESv2.so.%{gles2_version} /usr/$LIB/nvidia/libGLESv2.so.2.0.0
install libGL.so.%{gl_version} /usr/$LIB/nvidia/libGL.so.1.0.0
install libGLX_nvidia.so.%{version} /usr/$LIB/nvidia
install libglxserver_nvidia.so.%{version} /usr/$LIB/nvidia/xorg/modules/updates/extensions
install libGLX.so.0 /usr/$LIB/nvidia/libGLX.so.0.0.0
install libnvcuvid.so.%{version} /usr/$LIB/nvidia
install libnvidia-allocator.so.%{version} /usr/$LIB/nvidia
install libnvidia-cfg.so.%{version} /usr/$LIB/nvidia
install libnvidia-compiler.so.%{version} /usr/$LIB/nvidia
install libnvidia-eglcore.so.%{version} /usr/$LIB/nvidia
install libnvidia-egl-gbm.so.%{version} /usr/$LIB/nvidia
install libnvidia-egl-wayland.so.%{version} /usr/$LIB/nvidia
install libnvidia-encode.so.%{version} /usr/$LIB/nvidia
install libnvidia-fatbinaryloader.so.%{version} /usr/$LIB/nvidia
install libnvidia-fbc.so.%{version} /usr/$LIB/nvidia
install libnvidia-glcore.so.%{version} /usr/$LIB/nvidia
install libnvidia-glsi.so.%{version} /usr/$LIB/nvidia
install libnvidia-glvkspirv.so.%{version} /usr/$LIB/nvidia
install libnvidia-gtk2.so.%{version} /usr/$LIB/nvidia
install libnvidia-gtk3.so.%{version} /usr/$LIB/nvidia
install libnvidia-ifr.so.%{version} /usr/$LIB/nvidia
install libnvidia-ngx.so.%{version} /usr/$LIB/nvidia
install libnvidia-opencl.so.%{version} /usr/$LIB
install libnvidia-opticalflow.so.%{version} /usr/$LIB/nvidia
install libnvidia-ptxjitcompiler.so.%{version} /usr/$LIB/nvidia
install libnvidia-rtcore.so.%{version} /usr/$LIB/nvidia
install libnvidia-tls.so.%{version} /usr/$LIB/nvidia
install libnvoptix.so.%{version} /usr/$LIB/nvidia
install libvdpau_nvidia.so.%{version} /usr/$LIB/nvidia/vdpau
install nvidia_drv.so /usr/$LIB/nvidia/xorg/modules/updates/drivers
#
# Links
#
# ln -sf libnvidia-wfb.so.{version} /usr/$LIB/nvidia/xorg/modules/updates/libnvidia-wfb.so.1
# still a lot of applications make a dlopen to the .so file
ln -sf libEGL.so.1.0.0 /usr/$LIB/nvidia/libEGL.so.1
ln -sf libGL.so.1.0.0 /usr/$LIB/nvidia/libGL.so.1
ln -sf libGLdispatch.so.0.0.0 /usr/$LIB/nvidia/libGLdispatch.so.0
ln -sf libGLESv1_CM_nvidia.so.%{version} /usr/$LIB/nvidia/libGLESv1_CM_nvidia.so.1
ln -sf libGLESv1_CM.so.1.0.0 /usr/$LIB/nvidia/libGLESv1_CM.so.1
ln -sf libGLESv2_nvidia.so.%{version} /usr/$LIB/nvidia/libGLESv2_nvidia.so.1
ln -sf libGLESv2.so.2.0.0 /usr/$LIB/nvidia/libGLESv2.so.2
ln -sf libGLX_nvidia.so.%{version} /usr/$LIB/nvidia/libGLX_nvidia.so.0
ln -sf libGLX_nvidia.so.%{version} /usr/$LIB/nvidia/libGLX_indirect.so.0
ln -sf libGLX.so.0.0.0 /usr/$LIB/nvidia/libGLX.so.0
ln -sf libnvcuvid.so.%{version} /usr/$LIB/nvidia/libnvcuvid.so.1
ln -sf libnvidia-allocator.so.%{version} /usr/$LIB/nvidia/libnvidia-egl-gbm.so.1.1.0
ln -sf libnvidia-allocator.so.%{version} /usr/$LIB/nvidia/libnvidia-egl-gbm.so.1
ln -sf libnvidia-cfg.so.%{version} /usr/$LIB/nvidia/libnvidia-cfg.so.1
ln -sf libvdpau_nvidia.so.%{version} /usr/$LIB/nvidia/vdpau/libvdpau_nvidia.so.1
ln -sf /usr/$LIB/libnvidia-opencl.so.%{version} /usr/$LIB/libnvidia-opencl.so.1.0.0
ln -sf /usr/$LIB/libnvidia-opencl.so.%{version} /usr/$LIB/libnvidia-opencl.so.1
#
# Documentation
#
install -d /usr/share/doc/packages/%name
cp -a html /usr/share/doc/packages/%name
install -m 644 LICENSE /usr/share/doc/packages/%name
install -d %{_mandir}/man1
install -m 644 *.1.gz %{_mandir}/man1
#
# Setup
#
install -d /usr/share/pixmaps
install -m 644 nvidia-settings.png /usr/share/pixmaps
popd >/dev/null 2>&1
fi
#
popd >/dev/null 2>&1
#
# Funcs
#
setup_nvidia_xorg_conf()
{
#
# Is the current xorg.conf for nVidia ?
#
if [[ ! -n "$(cat /etc/X11/xorg.conf | sed 's/^\([ \t]*Driver[ \t]*\"nvidia\"\)/FoundMagic/' | grep 'FoundMagic')" ]] ; then
#
# No nVidia driver selected in current xorg.conf, start a new one
#
rm -f /etc/X11/xorg.conf
cp /etc/X11/xorg.conf.nvidia-example /etc/X11/xorg.conf
else
#
# nVidia xorg.conf found, change the module paths
#
if [[ ! -n "$(grep '\"Files\"' /etc/X11/xorg.conf)" ]] ; then
#
# Add new section
#
cat >> /etc/X11/xorg.conf << EOF
Section "Files"
EndSection
EOF
fi
#
# Remove all module paths
#
sed -i "/^[ \t]*ModulePath.*/d" /etc/X11/xorg.conf
#
# Add new paths
#
sed -i "s?\"Files\"?\"Files\"\n ModulePath \"$MODULE_PATH1\"\n ModulePath \"$MODULE_PATH2\"\n ModulePath \"$MODULE_PATH3\"?" /etc/X11/xorg.conf
fi
}
#
# Main
#
ARCH=$(uname -m)
if [ "$ARCH" == "x86_64" ] ; then
MODULE_PATH1="/usr/lib64/nvidia/xorg/modules/updates"
MODULE_PATH2="/usr/lib64/xorg/modules/updates"
MODULE_PATH3="/usr/lib64/xorg/modules"
else
MODULE_PATH1="/usr/lib/nvidia/xorg/modules/updates"
MODULE_PATH2="/usr/lib/xorg/modules/updates"
MODULE_PATH3="/usr/lib/xorg/modules"
fi
#
# Install / Upgrade
#
#
# Get the number of video cards
#
if [ -x /sbin/lspci ] ; then
VIDEO_CARDS=$(/sbin/lspci -n | grep "^.* 030[02]:" | wc -l)
NVIDIA_CARDS=$(/sbin/lspci -n -d 10de: | grep "^.* 030[02]:" | wc -l)
else
VIDEO_CARDS=1
NVIDIA_CARDS=0
fi
#
if [ $NVIDIA_CARDS -eq $VIDEO_CARDS ] ; then
#
# All nvidia cards, install xorg.conf, library paths and Wrapper
#
if [ -f /etc/X11/xorg.conf ] ; then
cp -f /etc/X11/xorg.conf /etc/X11/xorg.conf.nvidia_post
#
# Check xorg.conf
#
setup_nvidia_xorg_conf
else
#
# If configuration for proprietary driver already exists, bring it back
#
if [ -f /etc/X11/xorg.conf.nvidia_postun ] ; then
mv /etc/X11/xorg.conf.nvidia_postun /etc/X11/xorg.conf
#
# Check xorg.conf
#
setup_nvidia_xorg_conf
else
#
# Clean machine, use the example
#
cp -f /etc/X11/xorg.conf.nvidia-example /etc/X11/xorg.conf
fi
fi
#
# Add the libs to the dynamic lib search path
#
%if 0%{?suse_version}
%if 0%{?suse_version} <= 1140
#
# There is no nice way to add the new lib paths.
# We need to edit the ld.so.conf file to ensure they are first in the path.
#
sed -i "/^.*\/lib\/nvidia.*/d" /etc/ld.so.conf
if [[ "$ARCH" == "x86_64" ]] ; then
sed -i "/^.*\/lib64\/nvidia.*/d" /etc/ld.so.conf
fi
#
> /etc/ld.so.conf.new
if [[ "$ARCH" == "x86_64" ]] ; then
echo "/usr/lib64/nvidia" >> /etc/ld.so.conf.new
echo "/usr/lib64/nvidia/vdpau" >> /etc/ld.so.conf.new
fi
echo "/usr/lib/nvidia" >> /etc/ld.so.conf.new
echo "/usr/lib/nvidia/vdpau" >> /etc/ld.so.conf.new
cat /etc/ld.so.conf >> /etc/ld.so.conf.new
mv -f /etc/ld.so.conf.new /etc/ld.so.conf
#
# Activate new search path
#
/sbin/ldconfig
%else
#
# Use the ld.so.conf.d ( make sure it is first in the list )
#
> /etc/ld.so.conf.d/00-nvidia.conf
if [[ "$ARCH" == "x86_64" ]] ; then
echo "/usr/lib64/nvidia" >> /etc/ld.so.conf.d/00-nvidia.conf
echo "/usr/lib64/nvidia/vdpau" >> /etc/ld.so.conf.d/00-nvidia.conf
fi
echo "/usr/lib/nvidia" >> /etc/ld.so.conf.d/00-nvidia.conf
echo "/usr/lib/nvidia/vdpau" >> /etc/ld.so.conf.d/00-nvidia.conf
%endif
%else
#
# Use the ld.so.conf.d ( make sure it is first in the list )
#
> /etc/ld.so.conf.d/00-nvidia.conf
if [[ "$ARCH" == "x86_64" ]] ; then
echo "/usr/lib64/nvidia" >> /etc/ld.so.conf.d/00-nvidia.conf
echo "/usr/lib64/nvidia/vdpau" >> /etc/ld.so.conf.d/00-nvidia.conf
fi
echo "/usr/lib/nvidia" >> /etc/ld.so.conf.d/00-nvidia.conf
echo "/usr/lib/nvidia/vdpau" >> /etc/ld.so.conf.d/00-nvidia.conf
%endif
fi
%preun
%postun
%ifarch x86_64
LIB=lib64
NV_NAME=%{package_name}_64-%{version}
%else
LIB=lib
NV_NAME=%{package_name}-%{version}
%endif
#
#if [ "$1" == "0" ] ; then
#
rm -f /usr/bin/nvidia-settings
rm -f /usr/bin/nvidia-bug-report.sh
rm -f /usr/bin/nvidia-xconfig
#
rm -f /usr/$LIB/nvidia/libEGL_nvidia.so.*
rm -f /usr/$LIB/nvidia/libEGL.so.*
rm -f /usr/$LIB/nvidia/libGLdispatch.so.*
rm -f /usr/$LIB/nvidia/libGLES*
rm -f /usr/$LIB/nvidia/libGL.so.*
rm -f /usr/$LIB/nvidia/libGLdispatch.so.*
rm -f /usr/$LIB/nvidia/libGLX_nvidia.so.*
rm -f /usr/$LIB/nvidia/libGLX_indirect.so.*
rm -f /usr/$LIB/nvidia/xorg/modules/updates/extensions/libglxserver_nvidia.so.*
rm -f /usr/$LIB/nvidia/libGLX.so.*
rm -f /usr/$LIB/nvidia/libnvcuvid.so.*
rm -f /usr/$LIB/nvidia/libnvidia-allocator.so.*
rm -f /usr/$LIB/nvidia/libnvidia-cfg.so.*
rm -f /usr/$LIB/nvidia/libnvidia-compiler.so.*
rm -f /usr/$LIB/nvidia/libnvidia-eglcore.so.*
rm -f /usr/$LIB/nvidia/libnvidia-egl-gbm.so.*
rm -f /usr/$LIB/nvidia/libnvidia-egl-wayland.so.*
rm -f /usr/$LIB/nvidia/libnvidia-encode.so.*
rm -f /usr/$LIB/nvidia/libnvidia-fatbinaryloader.so.*
rm -f /usr/$LIB/nvidia/libnvidia-fbc.so.*
rm -f /usr/$LIB/nvidia/libnvidia-glcore.so.*
rm -f /usr/$LIB/nvidia/libnvidia-glsi.so.*
rm -f /usr/$LIB/nvidia/libnvidia-glvkspirv.so.*
rm -f /usr/$LIB/nvidia/libnvidia-gtk2.so.*
rm -f /usr/$LIB/nvidia/libnvidia-gtk3.so.*
rm -f /usr/$LIB/nvidia/libnvidia-ifr.so.*
rm -f /usr/$LIB/nvidia/libnvidia-ngx.so.*
rm -f /usr/$LIB/libnvidia-opencl.so.*
rm -f /usr/$LIB/nvidia/libnvidia-opticalflow.so.*
rm -f /usr/$LIB/nvidia/libnvidia-ptxjitcompiler.so.*
rm -f /usr/$LIB/nvidia/libnvidia-rtcore.so.*
rm -f /usr/$LIB/nvidia/libnvidia-tls.so.*
rm -f /usr/$LIB/nvidia/libnvoptix.so.*
rm -f /usr/$LIB/nvidia/vdpau/libvdpau_nvidia.so.*
rm -f /usr/$LIB/nvidia/xorg/modules/updates/drivers/nvidia_drv.so
rm -f /usr/share/doc/packages/%name/LICENSE
rm -rf /usr/share/doc/packages/%name/html
rm -f %{_mandir}/man1/nvidia-installer.*
rm -f %{_mandir}/man1/nvidia-settings.*
rm -f %{_mandir}/man1/nvidia-smi.*
rm -f %{_mandir}/man1/nvidia-xconfig.*
#
if [ -d /usr/$LIB/nvidia/vdpau ] ; then
rm -rf /usr/$LIB/nvidia/vdpau
fi
if [ -d /usr/$LIB/nvidia/xorg ] ; then
rm -rf /usr/$LIB/nvidia/xorg
fi
if [ -d /usr/share/nvidia ] ; then
rm -rf /usr/share/nvidia
fi
#
ARCH=$(uname -m)
#
# Cleanup dynamic library search path
#
%if 0%{?suse_version}
%if 0%{?suse_version} <= 1140
sed -i "/^.*\/lib\/nvidia.*/d" /etc/ld.so.conf
if [[ "$ARCH" == "x86_64" ]] ; then
sed -i "/^.*\/lib64\/nvidia.*/d" /etc/ld.so.conf
fi
%else
rm -f /etc/ld.so.conf.d/00-nvidia.conf
%endif
%else
rm -f /etc/ld.so.conf.d/00-nvidia.conf
%endif
#
# Restore xorg.conf
#
if [ -f /etc/X11/xorg.conf ] ; then
mv -f /etc/X11/xorg.conf /etc/X11/xorg.conf.nvidia_postun
fi
if [ -r /etc/X11/xorg.conf.nvidia_post ] ; then
mv -f /etc/X11/xorg.conf.nvidia_post /etc/X11/xorg.conf
fi
#
#fi
#
NV_USAGE_FILE=/usr/src/$NV_NAME.usage
#
NV_USED=1
touch $NV_USAGE_FILE
source $NV_USAGE_FILE
NV_USED=$((NV_USED - 1))
echo "NV_USED=$NV_USED" > $NV_USAGE_FILE
if [ $NV_USED == 0 ] ; then
#
# Remove the sources
#
[ -d /usr/src/$NV_NAME ] && rm -rf /usr/src/$NV_NAME
[ -f /usr/src/$NV_NAME.run ] && rm -f /usr/src/$NV_NAME.run
[ -f /usr/src/$NV_NAME.usage ] && rm -f /usr/src/$NV_NAME.usage
fi
#
# Activate new search path
#
/sbin/ldconfig
%pre devel
pushd /usr/src >/dev/null 2>&1
#
# Get the nVidia package and unpack
#
%ifarch x86_64
LIB=lib64
NV_NAME=%{package_name}_64-%{version}
if [ -f $NV_NAME.run ] ; then
#
# Check the package
#
md5sum --status -c <<EOF || rm -f $NV_NAME.run
%{md5_x86_64}
EOF
fi
#
if [ -x /usr/bin/wget ] && [ ! -f $NV_NAME.run ] ; then
#
# Get the package
#
wget %{mirror1}/Linux-x86_64/%{version}/$NV_NAME.run || { rm -f $NV_NAME.run ; exit -1 ; }
#
# Check the package
#
md5sum --status -c <<EOF || { rm -f $NV_NAME.run ; exit -1 ; }
%{md5_x86_64}
EOF
fi
%else
LIB=lib
NV_NAME=%{package_name}-%{version}
if [ -f $NV_NAME.run ] ; then
#
# Check the nVidia package
#
md5sum --status -c <<EOF || rm -f $NV_NAME.run
%{md5_x86}
EOF
fi
#
if [ -x /usr/bin/wget ] && [ ! -f $NV_NAME.run ] ; then
#
# Get the package
#
wget %{mirror1}/Linux-x86/%{version}/$NV_NAME.run || { rm -f $NV_NAME.run ; exit -1 ; }
#
# Check the package
#
md5sum --status -c <<EOF || { rm -f $NV_NAME.run ; exit -1 ; }
%{md5_x86}
EOF
fi
%endif
#
if [ -f $NV_NAME.run ] ; then
#
# Check the nVidia package
#
sh $NV_NAME.run --check || { rm -f $NV_NAME.run ; exit -2 ; }
fi
#
if [ ! -d $NV_NAME ] && [ -f $NV_NAME.run ] ; then
#
# Unpack
#
sh $NV_NAME.run -x || { rm -f $NV_NAME.run ; exit -3 ; }
fi
#
NV_USAGE_FILE=/usr/src/$NV_NAME.usage
#
NV_USED=0
touch $NV_USAGE_FILE
source $NV_USAGE_FILE
NV_USED=$((NV_USED + 1))
echo "NV_USED=$NV_USED" > $NV_USAGE_FILE
#
popd >/dev/null 2>&1
%posttrans devel
pushd /usr/src >/dev/null 2>&1
#
%ifarch x86_64
LIB=lib64
NV_NAME=%{package_name}_64-%{version}
%else
LIB=lib
NV_NAME=%{package_name}-%{version}
%endif
#
if [ -d $NV_NAME ] ; then
#
# Install
#
pushd $NV_NAME >/dev/null 2>&1
install -d /usr/$LIB/nvidia
install -d /usr/$LIB/nvidia/vdpau
install -d /usr/$LIB/nvidia/xorg/modules/updates/extensions
#
# Links
#
ln -sf libglxserver_nvidia.so.%{version} /usr/$LIB/nvidia/xorg/modules/updates/extensions/libglxserver_nvidia.so
# still a lot of applications make a dlopen to the .so file
ln -sf libnvcuvid.so.%{version} /usr/$LIB/nvidia/libnvcuvid.so
ln -sf libnvidia-allocator.so.%{version} /usr/$LIB/nvidia/libnvidia-allocator.so
ln -sf libnvidia-allocator.so.%{version} /usr/$LIB/nvidia/libnvidia-egl-gbm.so
ln -sf libnvidia-cfg.so.%{version} /usr/$LIB/nvidia/libnvidia-cfg.so
ln -sf libvdpau_nvidia.so.%{version} /usr/$LIB/nvidia/vdpau/libvdpau_nvidia.so
ln -sf libEGL.so.1.0.0 /usr/$LIB/nvidia/libEGL.so
ln -sf libGL.so.1.0.0 /usr/$LIB/nvidia/libEGL.so
ln -sf libGLdispatch.so.0.0.0 /usr/$LIB/nvidia/libGLdispatch.so
ln -sf libGLESv1_CM.so.1.0.0 /usr/$LIB/nvidia/libGLESv1_CM.so
ln -sf libGLESv2.so.2.0.0 /usr/$LIB/nvidia/libGLESv2.so
ln -sf libGLX.so.0.0.0 /usr/$LIB/nvidia/libGLX.so
popd >/dev/null 2>&1
fi
#
popd >/dev/null 2>&1
#
/sbin/ldconfig
%postun devel
%ifarch x86_64
LIB=lib64
NV_NAME=%{package_name}_64-%{version}
%else
LIB=lib
NV_NAME=%{package_name}-%{version}
%endif
#
#if [ "$1" == "0" ] ; then
#
rm -f /usr/$LIB/nvidia/xorg/modules/updates/extensions/libglxserver_nvidia.so
rm -f /usr/$LIB/nvidia/libnvcuvid.so
rm -f /usr/$LIB/nvidia/libnvidia-allocator.so
rm -f /usr/$LIB/nvidia/libnvidia-egl-gbm.so
rm -f /usr/$LIB/nvidia/libnvidia-cfg.so
rm -f /usr/$LIB/nvidia/vdpau/libvdpau_nvidia.so
rm -f /usr/$LIB/nvidia/libEGL.so
rm -f /usr/$LIB/nvidia/libGL.so
rm -f /usr/$LIB/nvidia/libGLdispatch.so
rm -f /usr/$LIB/nvidia/libGLESv1_CM.so
rm -f /usr/$LIB/nvidia/libGLESv2.so
rm -f /usr/$LIB/nvidia/libGLX.so
#
#fi
#
NV_USAGE_FILE=/usr/src/$NV_NAME.usage
#
NV_USED=1
touch $NV_USAGE_FILE
source $NV_USAGE_FILE
NV_USED=$((NV_USED - 1))
echo "NV_USED=$NV_USED" > $NV_USAGE_FILE
if [ $NV_USED == 0 ] ; then
#
# Remove the sources
#
[ -d /usr/src/$NV_NAME ] && rm -rf /usr/src/$NV_NAME
[ -f /usr/src/$NV_NAME.run ] && rm -f /usr/src/$NV_NAME.run
[ -f /usr/src/$NV_NAME.usage ] && rm -f /usr/src/$NV_NAME.usage
fi
#
/sbin/ldconfig
%ifarch x86_64
%pre 32bit
pushd /usr/src >/dev/null 2>&1
#
# Get the nVidia package and unpack
#
NV_NAME=%{package_name}_64-%{version}
if [ -f $NV_NAME.run ] ; then
#
# Check the package
#
md5sum --status -c <<EOF || rm -f $NV_NAME.run
%{md5_x86_64}
EOF
fi
#
if [ -x /usr/bin/wget ] && [ ! -f $NV_NAME.run ] ; then
#
# Get the package
#
wget %{mirror1}/Linux-x86_64/%{version}/$NV_NAME.run || { rm -f $NV_NAME.run ; exit -1 ; }
#
# Check the package
#
md5sum --status -c <<EOF || { rm -f $NV_NAME.run ; exit -1 ; }
%{md5_x86_64}
EOF
fi
#
if [ -f $NV_NAME.run ] ; then
#
# Check the nVidia package
#
sh $NV_NAME.run --check || { rm -f $NV_NAME.run ; exit -2 ; }
fi
#
if [ ! -d $NV_NAME ] && [ -f /usr/src/$NV_NAME.run ] ; then
#
# Unpack
#
sh /usr/src/$NV_NAME.run -x || { rm -f $NV_NAME.run ; exit -3 ; }
fi
#
NV_USAGE_FILE=/usr/src/$NV_NAME.usage
#
NV_USED=0
touch $NV_USAGE_FILE
source $NV_USAGE_FILE
NV_USED=$((NV_USED + 1))
echo "NV_USED=$NV_USED" > $NV_USAGE_FILE
#
popd >/dev/null 2>&1
%posttrans 32bit
pushd /usr/src >/dev/null 2>&1
#
NV_NAME=%{package_name}_64-%{version}
#
if [ -d $NV_NAME ] ; then
#
# Install
#
pushd $NV_NAME >/dev/null 2>&1
install -d /usr/lib/nvidia
install -d /usr/lib/nvidia/vdpau
install 32/libnvidia-allocator.so.* /usr/lib/nvidia
install 32/libnvidia-compiler.so.* /usr/lib/nvidia
install 32/libnvidia-eglcore.so.* /usr/lib/nvidia
install 32/libnvidia-encode.so.* /usr/lib/nvidia
install 32/libnvidia-fatbinaryloader.so.* /usr/lib/nvidia
install 32/libnvidia-fbc.so.* /usr/lib/nvidia
install 32/libnvidia-glcore.so.* /usr/lib/nvidia
install 32/libnvidia-glsi.so.* /usr/lib/nvidia
install 32/libnvidia-glvkspirv.so.* /usr/lib/nvidia
install 32/libnvidia-ifr.so.* /usr/lib/nvidia
install 32/libnvidia-opencl.so.* /usr/lib
install 32/libnvidia-opticalflow.so.* /usr/lib/nvidia
install 32/libnvidia-ptxjitcompiler.so.* /usr/lib/nvidia
install 32/libnvidia-tls.so.* /usr/lib/nvidia
install 32/libvdpau_nvidia.so.* /usr/lib/nvidia/vdpau
install 32/libEGL.so.%{egl_version} /usr/lib/nvidia/libEGL.so.1.0.0
install 32/libGL.so.%{gl_version} /usr/lib/nvidia/libGL.so.1.0.0
install 32/libGLdispatch.so.0 /usr/lib/nvidia/libGLdispatch.so.0.0.0
install 32/libGLESv1_CM_nvidia.so.%{version} /usr/lib/nvidia
install 32/libGLESv1_CM.so.%{gles1_version} /usr/lib/nvidia/libGLESv1_CM.so.1.0.0
install 32/libGLESv2_nvidia.so.%{version} /usr/lib/nvidia
install 32/libGLESv2.so.%{gles2_version} /usr/lib/nvidia/libGLESv2.so.2.0.0
install 32/libGLX_nvidia.so.%{version} /usr/lib/nvidia
install 32/libGLX.so.0 /usr/lib/nvidia/libGLX.so.0.0.0
install 32/libOpenGL.so.0 /usr/lib/nvidia/libOpenGL.so.0.0.0
popd >/dev/null 2>&1
#
# Links
#
ln -sf libEGL.so.1.0.0 /usr/lib/nvidia/libEGL.so.1
ln -sf libGLESv1_CM_nvidia.so.%{version} /usr/lib/nvidia/libGLESv1_CM_nvidia.so.1
ln -sf libGLESv1_CM.so.1.0.0 /usr/lib/nvidia/libGLESv1_CM.so.1
ln -sf libGLESv2_nvidia.so.%{version} /usr/lib/nvidia/libGLESv2_nvidia.so.1
ln -sf libGLESv2.so.2.0.0 /usr/lib/nvidia/libGLESv2.so.2
ln -sf libGLX_nvidia.so.%{version} /usr/lib/nvidia/libGLX_nvidia.so.0
ln -sf libGLX_nvidia.so.%{version} /usr/$LIB/nvidia/libGLX_indirect.so.0
ln -sf libGLX.so.0.0.0 /usr/lib/nvidia/libGLX.so.0
ln -sf libGLdispatch.so.0.0.0 /usr/lib/nvidia/libGLdispatch.so.0
ln -sf libOpenGL.so.0.0.0 /usr/lib/nvidia/libOpenGL.so.0
ln -sf libnvidia-allocator.so.%{version} /usr/lib/nvidia/libnvidia-egl-gbm.so.1.1.0
ln -sf libnvidia-allocator.so.%{version} /usr/lib/nvidia/libnvidia-egl-gbm.so.1
ln -sf libvdpau_nvidia.so.%{version} /usr/lib/nvidia/vdpau/libvdpau_nvidia.so.1
ln -sf /usr/lib/libnvidia-opencl.so.%{version} /usr/lib/libnvidia-opencl.so.1.0.0
ln -sf /usr/lib/libnvidia-opencl.so.%{version} /usr/lib/libnvidia-opencl.so.1
fi
#
popd >/dev/null 2>&1
#
/sbin/ldconfig
%preun 32bit
%postun 32bit
NV_NAME=%{package_name}_64-%{version}
#
#if [ "$1" == "0" ] ; then
#
rm -f /usr/lib/nvidia/libnvidia-allocator.so.*
rm -f /usr/lib/nvidia/libnvidia-compiler.so.*
rm -f /usr/lib/nvidia/libnvidia-egl-gbm.so.*
rm -f /usr/lib/nvidia/libnvidia-eglcore.so.*
rm -f /usr/lib/nvidia/libnvidia-encode.so.*
rm -f /usr/lib/nvidia/libnvidia-fatbinaryloader.so.*
rm -f /usr/lib/nvidia/libnvidia-fbc.so.*
rm -f /usr/lib/nvidia/libnvidia-glcore.so.*
rm -f /usr/lib/nvidia/libnvidia-glsi.so.*
rm -f /usr/lib/nvidia/libnvidia-glvkspirv.so.*
rm -f /usr/lib/nvidia/libnvidia-ifr.so.*
rm -f /usr/lib/libnvidia-opencl.so.*
rm -f /usr/lib/nvidia/libnvidia-opticalflow.so.*
rm -f /usr/lib/nvidia/libnvidia-ptxjitcompiler.so.*
rm -f /usr/lib/nvidia/libnvidia-tls.so.*
rm -f /usr/lib/nvidia/vdpau/libvdpau_nvidia.so.*
rm -f /usr/lib/nvidia/vdpau/libvdpau_trace.so.*
rm -f /usr/lib/nvidia/libEGL*
rm -f /usr/lib/nvidia/libGL.so.*
rm -f /usr/lib/nvidia/libGLdispatch.so.*
rm -f /usr/lib/nvidia/libGLES*
rm -f /usr/lib/nvidia/libGLX*
rm -f /usr/lib/nvidia/libOpen*
#
if [ -d /usr/lib/nvidia/vdpau ] ; then
rm -rf /usr/lib/nvidia/vdpau
fi
#
#fi
#
NV_USAGE_FILE=/usr/src/$NV_NAME.usage
#
NV_USED=1
touch $NV_USAGE_FILE
source $NV_USAGE_FILE
NV_USED=$((NV_USED - 1))
echo "NV_USED=$NV_USED" > $NV_USAGE_FILE
if [ $NV_USED == 0 ] ; then
#
# Remove the sources
#
[ -d /usr/src/$NV_NAME ] && rm -rf /usr/src/$NV_NAME
[ -f /usr/src/$NV_NAME.run ] && rm -f /usr/src/$NV_NAME.run
[ -f /usr/src/$NV_NAME.usage ] && rm -f /usr/src/$NV_NAME.usage
fi
#
/sbin/ldconfig
%posttrans devel-32bit
install -d /usr/lib/nvidia
install -d /usr/lib/nvidia/vdpau
ln -sf libnvidia-allocator.so.%{version} /usr/lib/nvidia/libnvidia-allocator.so
ln -sf libnvidia-allocator.so.%{version} /usr/lib/nvidia/libnvidia-egl-gbm.so
ln -sf libvdpau_nvidia.so.%{version} /usr/lib/nvidia/vdpau/libvdpau_nvidia.so
ln -sf libEGL.so.1.0.0 /usr/lib/nvidia/libEGL.so
ln -sf libGL.so.1.0.0 /usr/lib/nvidia/libGL.so
ln -sf libGLESv1_CM.so.1.0.0 /usr/lib/nvidia/libGLESv1_CM.so
ln -sf libGLESv2.so.2.0.0 /usr/lib/nvidia/libGLESv2.so
ln -sf libGLX.so.0.0.0 /usr/lib/nvidia/libGLX.so
ln -sf libOpenGL.so.0.0.0 /usr/lib/nvidia/libOpenGL.so
%postun devel-32bit
NV_NAME=%{package_name}_64-%{version}
#
#if [ "$1" == "0" ] ; then
#
rm -f /usr/lib/nvidia/vdpau/libnvidia-egl-gbm.so
rm -f /usr/lib/nvidia/vdpau/libvdpau_nvidia.so
rm -f /usr/lib/nvidia/libEGL.so
rm -f /usr/lib/nvidia/libGL.so
rm -f /usr/lib/nvidia/libGLESv1_CM.so
rm -f /usr/lib/nvidia/libGLESv2.so
rm -f /usr/lib/nvidia/libGLX.so
#
#fi
#
/sbin/ldconfig
%endif
%pre -n nvidia-compute
pushd /usr/src >/dev/null 2>&1
#
# Get the nVidia package and unpack
#
%ifarch x86_64
LIB=lib64
NV_NAME=%{package_name}_64-%{version}
if [ -f $NV_NAME.run ] ; then
#
# Check the package
#
md5sum --status -c <<EOF || rm -f $NV_NAME.run
%{md5_x86_64}
EOF
fi
#
if [ -x /usr/bin/wget ] && [ ! -f $NV_NAME.run ] ; then
#
# Get the package
#
wget %{mirror1}/Linux-x86_64/%{version}/$NV_NAME.run || { rm -f $NV_NAME.run ; exit -1 ; }
#
# Check the package
#
md5sum --status -c <<EOF || { rm -f $NV_NAME.run ; exit -1 ; }
%{md5_x86_64}
EOF
fi
%else
LIB=lib
NV_NAME=%{package_name}-%{version}
if [ -f $NV_NAME.run ] ; then
#
# Check the nVidia package
#
md5sum --status -c <<EOF || rm -f $NV_NAME.run
%{md5_x86}
EOF
fi
#
if [ -x /usr/bin/wget ] && [ ! -f $NV_NAME.run ] ; then
#
# Get the package
#
wget %{mirror1}/Linux-x86/%{version}/$NV_NAME.run || { rm -f $NV_NAME.run ; exit -1 ; }
#
# Check the package
#
md5sum --status -c <<EOF || { rm -f $NV_NAME.run ; exit -1 ; }
%{md5_x86}
EOF
fi
%endif
#
if [ -f $NV_NAME.run ] ; then
#
# Check the nVidia package
#
sh $NV_NAME.run --check || { rm -f $NV_NAME.run ; exit -2 ; }
fi
#
if [ ! -d $NV_NAME ] && [ -f $NV_NAME.run ] ; then
#
# Unpack
#
sh $NV_NAME.run -x || { rm -f $NV_NAME.run ; exit -3 ; }
fi
#
NV_USAGE_FILE=/usr/src/$NV_NAME.usage
#
NV_USED=0
touch $NV_USAGE_FILE
source $NV_USAGE_FILE
NV_USED=$((NV_USED + 1))
echo "NV_USED=$NV_USED" > $NV_USAGE_FILE
#
popd >/dev/null 2>&1
%posttrans -n nvidia-compute
pushd /usr/src >/dev/null 2>&1
#
%ifarch x86_64
LIB=lib64
NV_NAME=%{package_name}_64-%{version}
%else
LIB=lib
NV_NAME=%{package_name}-%{version}
%endif
#
if [ -d $NV_NAME ] ; then
#
# Install
#
pushd $NV_NAME >/dev/null 2>&1
install -d /etc/OpenCL/vendors
install -m 644 nvidia.icd /etc/OpenCL/vendors
install -d /usr/bin
install -d /usr/$LIB/nvidia
install nvidia-smi /usr/bin
install libcuda.so.* /usr/$LIB/nvidia
install libOpenCL.so.%{cl_version} /usr/$LIB/nvidia
install libOpenGL.so.0 /usr/$LIB/nvidia/libOpenGL.so.0.0.0
install libnvidia-ml.so.%{version} /usr/$LIB/nvidia
popd >/dev/null 2>&1
#
# Links
#
ln -sf libcuda.so.%{version} /usr/$LIB/nvidia/libcuda.so.1
ln -sf libOpenCL.so.%{cl_version} /usr/$LIB/nvidia/libOpenCL.so.1
ln -sf libOpenGL.so.0.0.0 /usr/$LIB/nvidia/libOpenGL.so.0
ln -sf libnvidia-ml.so.%{version} /usr/$LIB/nvidia/libnvidia-ml.so.1
fi
#
popd >/dev/null 2>&1
#
/sbin/ldconfig
%postun -n nvidia-compute
%ifarch x86_64
LIB=lib64
NV_NAME=%{package_name}_64-%{version}
%else
LIB=lib
NV_NAME=%{package_name}-%{version}
%endif
#
#if [ "$1" == "0" ] ; then
#
rm -f /etc/OpenCL/vendors/nvidia.icd
rm -f /usr/bin/nvidia-smi
rm -f /usr/$LIB/nvidia/libcuda.so.*
rm -f /usr/$LIB/nvidia/libOpenCL.so.*
rm -f /usr/$LIB/nvidia/libOpenGL.so.*
rm -f /usr/$LIB/nvidia/libnvidia-ml.so.*
#
if [ -d /etc/OpenCL ] ; then
rmdir --ignore-fail-on-non-empty /etc/OpenCL/vendors
rmdir --ignore-fail-on-non-empty /etc/OpenCL
fi
#
#fi
#
NV_USAGE_FILE=/usr/src/$NV_NAME.usage
#
NV_USED=1
touch $NV_USAGE_FILE
source $NV_USAGE_FILE
NV_USED=$((NV_USED - 1))
echo "NV_USED=$NV_USED" > $NV_USAGE_FILE
if [ $NV_USED == 0 ] ; then
#
# Remove the sources
#
[ -d /usr/src/$NV_NAME ] && rm -rf /usr/src/$NV_NAME
[ -f /usr/src/$NV_NAME.run ] && rm -f /usr/src/$NV_NAME.run
[ -f /usr/src/$NV_NAME.usage ] && rm -f /usr/src/$NV_NAME.usage
fi
#
/sbin/ldconfig
%pre -n nvidia-compute-devel
pushd /usr/src >/dev/null 2>&1
#
# Get the nVidia package and unpack
#
%ifarch x86_64
LIB=lib64
NV_NAME=%{package_name}_64-%{version}
if [ -f $NV_NAME.run ] ; then
#
# Check the package
#
md5sum --status -c <<EOF || rm -f $NV_NAME.run
%{md5_x86_64}
EOF
fi
#
if [ -x /usr/bin/wget ] && [ ! -f $NV_NAME.run ] ; then
#
# Get the package
#
wget %{mirror1}/Linux-x86_64/%{version}/$NV_NAME.run || { rm -f $NV_NAME.run ; exit -1 ; }
#
# Check the package
#
md5sum --status -c <<EOF || { rm -f $NV_NAME.run ; exit -1 ; }
%{md5_x86_64}
EOF
fi
%else
LIB=lib
NV_NAME=%{package_name}-%{version}
if [ -f $NV_NAME.run ] ; then
#
# Check the nVidia package
#
md5sum --status -c <<EOF || rm -f $NV_NAME.run
%{md5_x86}
EOF
fi
#
if [ -x /usr/bin/wget ] && [ ! -f $NV_NAME.run ] ; then
#
# Get the package
#
wget %{mirror1}/Linux-x86/%{version}/$NV_NAME.run || { rm -f $NV_NAME.run ; exit -1 ; }
#
# Check the package
#
md5sum --status -c <<EOF || { rm -f $NV_NAME.run ; exit -1 ; }
%{md5_x86}
EOF
fi
%endif
#
if [ -f $NV_NAME.run ] ; then
#
# Check the nVidia package
#
sh $NV_NAME.run --check || { rm -f $NV_NAME.run ; exit -2 ; }
fi
#
if [ ! -d $NV_NAME ] && [ -f $NV_NAME.run ] ; then
#
# Unpack
#
sh $NV_NAME.run -x || { rm -f $NV_NAME.run ; exit -3 ; }
fi
#
NV_USAGE_FILE=/usr/src/$NV_NAME.usage
#
NV_USED=0
touch $NV_USAGE_FILE
source $NV_USAGE_FILE
NV_USED=$((NV_USED + 1))
echo "NV_USED=$NV_USED" > $NV_USAGE_FILE
#
popd >/dev/null 2>&1
%posttrans -n nvidia-compute-devel
pushd /usr/src >/dev/null 2>&1
#
%ifarch x86_64
LIB=lib64
NV_NAME=%{package_name}_64-%{version}
%else
LIB=lib
NV_NAME=%{package_name}-%{version}
%endif
#
if [ -d $NV_NAME ] ; then
#
# Links
#
ln -sf libcuda.so.%{version} /usr/$LIB/nvidia/libcuda.so
ln -sf libOpenCL.so.%{cl_version} /usr/$LIB/nvidia/libOpenCL.so
ln -sf libOpenGL.so.0 /usr/$LIB/nvidia/libOpenGL.so
ln -sf libnvidia-ml.so.%{version} /usr/$LIB/nvidia/libnvidia-ml.so
fi
#
popd >/dev/null 2>&1
#
/sbin/ldconfig
%postun -n nvidia-compute-devel
%ifarch x86_64
LIB=lib64
NV_NAME=%{package_name}_64-%{version}
%else
LIB=lib
NV_NAME=%{package_name}-%{version}
%endif
#
#if [ "$1" == "0" ] ; then
#
rm -f /usr/$LIB/nvidia/libcuda.so
rm -f /usr/$LIB/nvidia/libOpenCL.so
rm -f /usr/$LIB/nvidia/libOpenGL.so
rm -f /usr/$LIB/nvidia/libnvidia-ml.so
#
#if [ -d /usr/$LIB/nvidia ] ; then
# rmdir --ignore-fail-on-non-empty /usr/$LIB/nvidia
#fi
#
#fi
#
NV_USAGE_FILE=/usr/src/$NV_NAME.usage
#
NV_USED=1
touch $NV_USAGE_FILE
source $NV_USAGE_FILE
NV_USED=$((NV_USED - 1))
echo "NV_USED=$NV_USED" > $NV_USAGE_FILE
if [ $NV_USED == 0 ] ; then
#
# Remove the sources
#
[ -d /usr/src/$NV_NAME ] && rm -rf /usr/src/$NV_NAME
[ -f /usr/src/$NV_NAME.run ] && rm -f /usr/src/$NV_NAME.run
[ -f /usr/src/$NV_NAME.usage ] && rm -f /usr/src/$NV_NAME.usage
fi
#
/sbin/ldconfig
%files
%defattr(-,root,root)
%doc README.x11-video-nvidia
%config /etc/X11/xorg.conf.nvidia-example
%{_libdir}/nvidia
%files devel
%defattr(-,root,root)
%doc README.x11-video-nvidia-devel
%ifarch x86_64
%files 32bit
%defattr(-,root,root)
%doc README.x11-video-nvidia-32bit
/usr/lib/nvidia
%files devel-32bit
%defattr(-,root,root)
%doc README.x11-video-nvidia-devel-32bit
%endif
%files -n nvidia-compute
%defattr(-,root,root)
%doc README.nvidia-compute
%files -n nvidia-compute-devel
%defattr(-,root,root)
%doc README.nvidia-compute-devel
%ifarch x86_64
%files -n nvidia-compute-32bit
%defattr(-,root,root)
%doc README.nvidia-compute-32bit
%files -n nvidia-compute-devel-32bit
%defattr(-,root,root)
%doc README.nvidia-compute-devel-32bit
%endif
%changelog