Sisyphus repository
Last update: 1 october 2023 | SRPMs: 18631 | Visits: 37858094
en ru br
ALT Linux repos
S:470.199.02-alt247

Group :: System/Kernel and hardware
RPM: nvidia_glx_src_470.199.02

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs and FR  Repocop 

%define Nif_ver_gt() %if "%(rpmvercmp '%1' '%2')" > "0"
%define Nif_ver_gteq() %if "%(rpmvercmp '%1' '%2')" >= "0"
%define Nif_ver_lt() %if "%(rpmvercmp '%2' '%1')" > "0"
%define Nif_ver_lteq() %if "%(rpmvercmp '%2' '%1')" >= "0"

%{expand: %(sed 's,^%%,%%global ,' /usr/lib/rpm/macros.d/ubt)}
%define ubt_id %__ubt_branch_id

%define tbname         NVIDIA-Linux-x86_64
%ifarch aarch64
%define tbname         NVIDIA-Linux-aarch64
%endif
%define bin_pkg_name     nvidia_glx
%define module_name    nvidia
%define dirsuffix %nil
%ifarch x86_64
#define dirsuffix -no-compat32
%endif

%define gl_libver 1.7.0
%define egl_libver 1.1.0

# version-release

%define nv_version 470
%define nv_release 199
%define nv_minor   02
%define pkg_rel alt246
%define nv_version_full %{nv_version}.%{nv_release}.%{nv_minor}
%if "%nv_minor" == "%nil"
%define nv_version_full %{nv_version}.%{nv_release}
%endif

%Nif_ver_gteq %ubt_id M90
%def_enable glvnd
%else
%def_disable glvnd
%endif
#
%ifarch %ix86
%def_disable kernelsource
%define subd ./32
%else
%def_enable kernelsource
%define subd ./
%endif
#
%def_disable package_wfb

%define tbver %nv_version_full
%define module_version %nv_version%nv_release%nv_minor
%define module_release %pkg_rel

%define myGroup System/Kernel and hardware
%define mySummary NVIDIA drivers and OpenGL libraries for XOrg X-server
%define mySummaryRu Драйверы NVIDIA и библиотеки OpenGL для Х-сервера XOrg
%define myUrl http://www.nvidia.com
%define myVendor NVIDIA Corp.
%define myLicense NVIDIA

%define mods /modules
%define exts /modules/extensions
%define drvs /modules/drivers
%define lib_sym_dir %_sysconfdir/X11/%_lib
%define nv_lib_sym_dir %{lib_sym_dir}_nvidia
%define nv_lib32_sym_dir %_sysconfdir/X11/lib_nvidia
%define xdrv_d /usr/libexec/X11/drv.d
%define xdrv_d_old /usr/X11R6/lib/drv.d
%define xdrv_pre_d /usr/libexec/X11/drvpre.d
%define xdrv_pre_d_old /usr/X11R6/lib/drvpre.d

%define xinf_dir %_datadir/hwdatabase/videoaliases/
%define nv_workdirdir %_localstatedir/nvidia
%define tls_lib_dir %_libdir
%define x11_lib_dir %_libdir
%define x11_lib_old /usr/X11R6/lib
%define x11_mod_dir /usr/%_lib/X11%mods
%define x11_mod_old /usr/X11R6/%_lib%mods
%define x11_drv_dir /usr/%_lib/X11%drvs
%define x11_drv_old /usr/%_lib/X11%drvs
%define x11_ext_dir /usr/%_lib/X11%exts
%define x11_ext_old /usr/X11R6/%_lib%exts
%define x11driver_dir %_libdir/X11
%define nv_lib_dir_prefix %_libdir/nvidia_
%define nv_lib_dir_prefix_old /usr/X11R6/%_lib/nvidia_
%define nv_lib_dir %nv_lib_dir_prefix%tbver

#add_findreq_skiplist %nv_lib_dir/

%add_findreq_skiplist %x11_lib_old/*
%add_findreq_skiplist %_bindir/nvidia-bug-report*.sh
%filter_from_requires /^libEGL_nvidia\.so\./d

Name: nvidia_glx_src_%nv_version_full
Version: %nv_version_full
Release: %pkg_rel

Source0: null
Source201: ftp://download.nvidia.com/XFree86/Linux-x86_64/%tbver/NVIDIA-Linux-x86_64-%tbver.run
Source202: ftp://download.nvidia.com/XFree86/Linux-aarch64/%tbver/NVIDIA-Linux-aarch64-%tbver.run

Source2: nvidia.xinf
Source100: nvidia_create_xinf

Patch1: alt-fix-build-kernel.patch
Patch2: alt-ignore-dma-remap.patch
#
Patch4: kernel-5.11-aarch64.patch
Patch5: kernel-5.13-aarch64.patch
Patch6: kernel-6.0.patch

BuildRequires(pre): rpm-build-ubt
BuildRequires: rpm-build-kernel rpm-macros-alternatives
BuildRequires: libXext-devel libEGL-devel egl-wayland-devel
BuildRequires: libwayland-client-devel libwayland-server-devel
BuildRequires: libGLdispatch libGLX
ExclusiveArch: x86_64 %ix86 aarch64


Group: %myGroup
Summary: %mySummary
Summary(ru_RU.UTF-8): %mySummaryRu
Url: %myUrl
License: %myLicense
%description
Sources for %{bin_pkg_name}_%{version} package


%package -n %{bin_pkg_name}_%{version}
Requires(pre): %{bin_pkg_name}_common >= %version
Requires(post): x11presetdrv
%ifnarch aarch64
Requires: firmware-%module_name-%version = %version
%endif
%ifnarch aarch64
Provides: libnvidia-compiler = %EVR
Obsoletes: libnvidia-compiler < %EVR
%endif
#
Group: %myGroup
Summary: %mySummary
Summary(ru_RU.UTF-8): %mySummaryRu
Url: %myUrl
License: %myLicense
%description -n %{bin_pkg_name}_%{version}
NVIDIA X11 drivers and OpenGL libraries for GeForce/Quadro
based video cards.
%description -n %{bin_pkg_name}_%{version} -l ru_RU.UTF-8
Драйверы и OpenGL-библиотеки для X11 и видеокарт NVIDIA на базе
GeForce/Quadro.

%package -n kernel-source-%module_name-%module_version
Group: Development/Kernel
Summary: Linux %module_name modules sources
License: %myLicense
Packager: Kernel Maintainer Team <kernel at packages.altlinux.org>
%description -n kernel-source-%module_name-%module_version
%module_name modules sources for Linux kernel

%package -n firmware-%module_name-%version
Group: Development/Kernel
Summary: Firmware for NVIDIA video devices.
License: %myLicense
Requires: %{bin_pkg_name}_common >= %version
Packager: Kernel Maintainer Team <kernel at packages.altlinux.org>
%description -n firmware-%module_name-%version
This package provides the firmware to drive the GSP.
The GPU System Processor (GSP) was first introduced in the Turing
architecture and supports accelerating tasks traditionally performed
by the driver on the CPU.

%prep
%setup -T -c -n %tbname-%tbver%dirsuffix
rm -rf %_builddir/%tbname-%tbver%dirsuffix
cd %_builddir
%ifarch aarch64
sh %SOURCE202 -x
%else
sh %SOURCE201 -x
%endif
cd %tbname-%tbver%dirsuffix

pushd kernel
#%patch1 -p1
%patch2 -p1
#
%ifarch aarch64
%patch4 -p1
%patch5 -p1
%endif
%patch6 -p1
#patch7 -p1
#patch8 -p1
rm -rf precompiled
%ifarch aarch64
fgrep -rl MT_DEVICE_GRE | \
   while read f; do sed -i 's,MT_DEVICE_GRE,MT_NORMAL_NC,' $f; done
sed -ri '/NV_ASM_SET_MEMORY_H_PRESENT/atypedef _Bool bool;' conftest.sh
%endif
popd

%build


%install
%set_verify_elf_method textrel=relaxed
%brp_strip_none %_libdir/*
%brp_strip_none %nv_lib_dir/*

soname()
{
   readelf -a $1| grep SONAME| sed 's/.*\[//'| sed 's/\].*//'
}

%__mkdir_p %buildroot/%_sbindir
%__mkdir_p %buildroot/%tls_lib_dir
%__mkdir_p %buildroot/%nv_lib_dir
%__mkdir_p %buildroot/%x11_mod_dir
#%__mkdir_p %buildroot/%x11_mod_old
%__mkdir_p %buildroot/%x11_drv_dir
#%__mkdir_p %buildroot/%x11_drv_old
%__mkdir_p %buildroot/%x11_ext_dir
#%__mkdir_p %buildroot/%x11_ext_old
%__mkdir_p %buildroot/%lib_sym_dir
%__mkdir_p %buildroot/%nv_lib_sym_dir
%__mkdir_p %buildroot/%nv_lib32_sym_dir
%__mkdir_p %buildroot/%xdrv_d
#%__mkdir_p %buildroot/%xdrv_d_old
%__mkdir_p %buildroot/%xdrv_pre_d
%__mkdir_p %buildroot/%xinf_dir
%__mkdir_p %buildroot/%nv_workdirdir
%__mkdir_p %buildroot/%_datadir/nvidia/


# install libraries

%__install -m 0644 %subd/libnvidia-glvkspirv.so.%tbver %buildroot/%_libdir/
%__install -m 0644 %subd/libnvidia-glcore.so.%tbver %buildroot/%_libdir/
%__install -m 0644 %subd/libnvidia-eglcore.so.%tbver %buildroot/%_libdir/
%__install -m 0644 %subd/libnvidia-glsi.so.%tbver %buildroot/%_libdir/
%__install -m 0644 %subd/libnvidia-tls.so.%tbver %buildroot/%_libdir/
%ifnarch aarch64
%__install -m 0644 %subd/libnvidia-compiler.so.%tbver %buildroot/%_libdir/
%endif
%ifnarch %ix86 armh
%__install -m 0644 %subd/libnvidia-cbl.so.%tbver %buildroot/%_libdir/
%__install -m 0644 %subd/libnvidia-rtcore.so.%tbver %buildroot/%_libdir/
%__install -m 0644 %subd/libnvidia-vulkan-producer.so.%tbver %buildroot/%_libdir/
%endif
#

install -m 0644 %SOURCE2 %buildroot/%nv_lib_dir/nvidia.xinf
ln -sr %buildroot/%nv_lib_dir/nvidia.xinf %buildroot/%nv_lib_sym_dir/nvidia.xinf
ln -sr %buildroot/%nv_lib_dir/nvidia.xinf %buildroot/%xinf_dir/nvidia-%version.xinf

%ifarch x86_64 aarch64
%__install -m 0644 %subd/nvidia_drv.so %buildroot/%nv_lib_dir/
%endif

%if_enabled package_wfb
[ -f %subd/libnvidia-wfb.so.%tbver ] && \
%__install -m 0644 %subd/libnvidia-wfb.so.%tbver %buildroot/%nv_lib_dir/libwfb.so
%endif

%ifarch x86_64 aarch64
%__install -m 0644 %subd/libglxserver_nvidia.so.%tbver %buildroot/%nv_lib_dir/libglxserver_nvidia.so
%endif

%__install -m 0644 %subd/libGLdispatch.so.0  %buildroot/%nv_lib_dir/libGLdispatch.so
#
%if_enabled glvnd
%__install -m 0644 %subd/libGL.so.%gl_libver  %buildroot/%nv_lib_dir/libGL.so
%__install -m 0644 %subd/libEGL.so.%egl_libver  %buildroot/%nv_lib_dir/libEGL.so
%else
%__install -m 0644 %subd/libGL.so.%tbver  %buildroot/%nv_lib_dir/libGL.so
%__install -m 0644 %subd/libEGL.so.%tbver  %buildroot/%nv_lib_dir/libEGL.so
%endif
#
%__install -m 0644 %subd/libEGL_nvidia.so.%tbver    %buildroot/%nv_lib_dir/libEGL_nvidia.so
ln -sr %buildroot/%nv_lib_dir/libEGL_nvidia.so %buildroot/%_libdir/libEGL_nvidia.so.0
%__install -m 0644 %subd/libGLESv2.so.2.1.0  %buildroot/%nv_lib_dir/libGLESv2.so
%__install -m 0644 %subd/libGLESv2_nvidia.so.%tbver %buildroot/%nv_lib_dir/libGLESv2_nvidia.so
%__install -m 0644 %subd/libGLESv1_CM.so.1.2.0  %buildroot/%nv_lib_dir/libGLESv1_CM.so
%__install -m 0644 %subd/libGLESv1_CM_nvidia.so.%tbver %buildroot/%nv_lib_dir/libGLESv1_CM_nvidia.so
%__install -m 0644 %subd/libGLX.so.0  %buildroot/%nv_lib_dir/libGLX.so
%__install -m 0644 %subd/libGLX_nvidia.so.%tbver    %buildroot/%nv_lib_dir/libGLX_nvidia.so
%__install -m 0644 %subd/libnvidia-allocator.so.%tbver    %buildroot/%nv_lib_dir/libnvidia-allocator.so
%ifnarch %ix86 armh
ln -sr %buildroot/%_libdir/libnvidia-vulkan-producer.so.%tbver %buildroot/%nv_lib_dir/libnvidia-vulkan-producer.so
%endif

%__install -m 0644 %subd/libvdpau_nvidia.so.%tbver %buildroot/%nv_lib_dir/libvdpau_nvidia.so
%ifarch x86_64 aarch64
%__install -m 0644 %subd/libnvidia-cfg.so.%tbver %buildroot/%nv_lib_dir/libnvidia-cfg.so
%endif
/sbin/ldconfig -n %buildroot/%nv_lib_dir

%__install -m 0644 nvidia-application-profiles-%version-rc \
   %buildroot/%_datadir/nvidia/nvidia-application-profiles-%version-rc
%__install -m 0644 nvidia-application-profiles-%version-key-documentation \
   %buildroot/%_datadir/nvidia/nvidia-application-profiles-%version-key-documentation

mkdir -p %buildroot/%_datadir/glvnd/egl_vendor.d/
install -m 0644 10_nvidia.json %buildroot/%_datadir/glvnd/egl_vendor.d/%{version}_nvidia.json
mkdir -p %buildroot/%_datadir/egl/egl_external_platform.d
install -m 0644 10_nvidia_wayland.json %buildroot/%_datadir/egl/egl_external_platform.d/%{version}_nvidia_wayland.json
mkdir -p %buildroot/%_datadir/vulkan/icd.d/
NVIDIA_ICD_JSON="nvidia_icd.json.template"
[ -e "$NVIDIA_ICD_JSON" ] || NVIDIA_ICD_JSON="nvidia_icd.json"
install -m 0644 "$NVIDIA_ICD_JSON" %buildroot/%_datadir/vulkan/icd.d/%{version}_nvidia_icd.json
%if_enabled glvnd
sed -i '/\"library_path\"/s|\"library_path\".*:.*\".*\"|"library_path": "libGLX_nvidia.so.0"|' %buildroot/%_datadir/vulkan/icd.d/%{version}_nvidia_icd.json
%else
sed -i '/\"library_path\"/s|\"library_path\".*:.*\".*\"|"library_path": "libGL.so.1"|' %buildroot/%_datadir/vulkan/icd.d/%{version}_nvidia_icd.json
%endif
mkdir -p %buildroot/%_datadir/vulkan/implicit_layer.d/
install -m 0644 nvidia_layers.json %buildroot/%_datadir/vulkan/implicit_layer.d/%{version}_nvidia_layers.json

%if_enabled kernelsource
# kernel-source install
%__rm -rf kernel-source-%module_name-%module_version/
%__mkdir_p %buildroot/%_usrsrc/kernel/sources/ kernel-source-%module_name-%module_version/
%__cp -ar kernel/* kernel-source-%module_name-%module_version/
%__cp LICENSE kernel-source-%module_name-%module_version/
tar -c kernel-source-%module_name-%module_version | bzip2 -c > \
   %buildroot%_usrsrc/kernel/sources/kernel-source-%module_name-%module_version.tar.bz2
%endif

# install firmware

%ifnarch aarch64
mkdir -p %buildroot/lib/firmware/nvidia/%version/
install firmware/gsp*.bin %buildroot/lib/firmware/nvidia/%version/
%endif

# install scripts

mkdir -p %buildroot/%_bindir
install -m 0755 nvidia-bug-report.sh %buildroot/%_bindir/nvidia-bug-report-%version.sh
mkdir -p %buildroot/%_altdir/
cat > %buildroot/%_altdir/%name <<__EOF__
%_bindir/nvidia-bug-report.sh %_bindir/nvidia-bug-report-%version.sh %version
__EOF__


%post -n %{bin_pkg_name}_%{version}
# switch nvidia driver and libraries
if [ -z "$DURING_INSTALL" ]; then
   X11PRESETDRV=`which x11presetdrv 2>/dev/null`
   if [ -n "$X11PRESETDRV" ]; then
$X11PRESETDRV ||:
   else
echo "Warning! x11presetdrv program not found!" >&2
   fi
fi

%files -n %{bin_pkg_name}_%{version}
%doc LICENSE
%doc html NVIDIA_Changelog README.txt
#
%_libdir/libnvidia-tls.so.%version
%_libdir/libnvidia-glcore.so.%version
%_libdir/libnvidia-eglcore.so.%version
%_libdir/libnvidia-glsi.so.%version
%_libdir/libnvidia-glvkspirv.so.%version
%ifnarch aarch64
%_libdir/libnvidia-compiler.so.%version
%endif
%ifnarch %ix86 armh
%_libdir/libnvidia-cbl.so.%version
%_libdir/libnvidia-rtcore.so.%version
%_libdir/libnvidia-vulkan-producer.so.%version
%endif
%_altdir/%name
%_bindir/nvidia-bug-report-%version.sh
%dir %nv_lib_dir
%ifarch x86_64 aarch64
%nv_lib_dir/nvidia_drv.*
%nv_lib_dir/libglx*
%nv_lib_dir/libnvidia-cfg.so*
%endif
%nv_lib_dir/libGL.so*
%nv_lib_dir/libEGL.so*
%nv_lib_dir/libEGL_nvidia.so*
%nv_lib_dir/libGLESv2.so*
%nv_lib_dir/libGLESv2_nvidia.so*
%nv_lib_dir/libGLESv1_CM.so*
%nv_lib_dir/libGLESv1_CM_nvidia.so*
%nv_lib_dir/libGLX_nvidia.so*
%nv_lib_dir/libGLdispatch.so*
%nv_lib_dir/libGLX.so*
%nv_lib_dir/libvdpau_nvidia.so*
%nv_lib_dir/libnvidia-allocator.so*
%ifnarch %ix86 armh
%nv_lib_dir/libnvidia-vulkan-producer.so*
%endif
%if_enabled package_wfb
%nv_lib_dir/libwfb.so
%nv_lib_dir/libnvidia-wfb.so*
%endif
%nv_lib_dir/nvidia.xinf
%xinf_dir/nvidia-%version.xinf
%_datadir/nvidia/nvidia-application-profiles-%version-rc
%_datadir/nvidia/nvidia-application-profiles-%version-key-documentation
%_datadir/glvnd/egl_vendor.d/%{version}_nvidia.json
%_datadir/vulkan/icd.d/%{version}_nvidia_icd.json
%_datadir/vulkan/implicit_layer.d/%{version}_nvidia_layers.json
%_datadir/egl/egl_external_platform.d/%{version}_nvidia_wayland.json

%ifnarch aarch64
%files -n firmware-%module_name-%version
/lib/firmware/nvidia/%version/gsp*.bin
%endif

%if_enabled kernelsource
%files -n kernel-source-%module_name-%module_version
%_usrsrc/*
%endif

%changelog

Full changelog you can see here

 
design & coding: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
current maintainer: Michael Shigorin