Add workaround for directory/symlink changes (bsc#1243843) #4

Merged
tiwai merged 1 commits from tiwai/kernel-firmware-nvidia:main into main 2025-06-05 13:20:01 +02:00
5 changed files with 73 additions and 5 deletions

View File

@@ -1,3 +1,8 @@
-------------------------------------------------------------------
Thu Jun 5 10:45:00 UTC 2025 - Takashi Iwai <tiwai@suse.com>
- Add workaround for directory/symlink changes (bsc#1243843)
------------------------------------------------------------------- -------------------------------------------------------------------
Mon May 19 19:09:24 UTC 2025 - Takashi Iwai <tiwai@suse.com> Mon May 19 19:09:24 UTC 2025 - Takashi Iwai <tiwai@suse.com>

View File

@@ -30,10 +30,11 @@ License: GPL-2.0-or-later AND SUSE-Firmware
Group: System/Kernel Group: System/Kernel
URL: https://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/ URL: https://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/
Source0: %{name}-%{version}.tar.xz Source0: %{name}-%{version}.tar.xz
Source1: https://github.com/openSUSE/kernel-firmware-tools/archive/refs/tags/20250425.tar.gz#/kernel-firmware-tools-20250425.tar.gz Source1: https://github.com/openSUSE/kernel-firmware-tools/archive/refs/tags/20250605.tar.gz#/kernel-firmware-tools-20250605.tar.gz
Source2: %{name}-rpmlintrc Source2: %{name}-rpmlintrc
Source3: git_id Source3: git_id
Source10: aliases Source10: aliases
Source11: post
BuildRequires: suse-module-tools BuildRequires: suse-module-tools
Requires(post): %{_bindir}/mkdir Requires(post): %{_bindir}/mkdir
Requires(post): %{_bindir}/touch Requires(post): %{_bindir}/touch
@@ -168,13 +169,40 @@ scripts/install-licenses.sh nvidia %{buildroot}%{_licensedir}/%{name}
install -c -D -m 0644 WHENCE %{buildroot}%{_licensedir}/%{name}/WHENCE install -c -D -m 0644 WHENCE %{buildroot}%{_licensedir}/%{name}/WHENCE
install -c -D -m 0644 README.md %{buildroot}%{_docdir}/%{name}/README.md install -c -D -m 0644 README.md %{buildroot}%{_docdir}/%{name}/README.md
%pre
# ugly workaround for changing nvidia/ad103 & co to symlinks (bsc#1243843)
for d in ad103 ad104 ad106 ad107; do
if [ ! -L %{_firmwaredir}/nvidia/$d ]; then
if [ -d %{_firmwaredir}/nvidia/$d ]; then
mv %{_firmwaredir}/nvidia/$d %{_firmwaredir}/nvidia/$d.xxxold
fi
fi
done
%post %post
# ugly workaround (bsc#1243843)
if [ -d %{_firmwaredir}/nvidia/ad103.xxxold ]; then
for d in ad103 ad104 ad106 ad107; do
mv %{_firmwaredir}/nvidia/$d %{_firmwaredir}/nvidia/$d.xxxnew
if [ -d %{_firmwaredir}/nvidia/$d.xxxold ]; then
mv %{_firmwaredir}/nvidia/$d.xxxold %{_firmwaredir}/nvidia/$d
fi
done
else
%{?regenerate_initrd_post} %{?regenerate_initrd_post}
fi
%postun %postun
%{?regenerate_initrd_post} %{?regenerate_initrd_post}
%posttrans %posttrans
# ugly workaround (bsc#1243843)
for d in ad103 ad104 ad106 ad107; do
if [ -L %{_firmwaredir}/nvidia/$d.xxxnew ]; then
rm -rf %{_firmwaredir}/nvidia/$d
mv %{_firmwaredir}/nvidia/$d.xxxnew %{_firmwaredir}/nvidia/$d
fi
done
%{?regenerate_initrd_posttrans} %{?regenerate_initrd_posttrans}
%files %files

BIN
kernel-firmware-tools-20250425.tar.gz (Stored with Git LFS)

Binary file not shown.

BIN
kernel-firmware-tools-20250605.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

35
post Normal file
View File

@@ -0,0 +1,35 @@
%pre
# ugly workaround for changing nvidia/ad103 & co to symlinks (bsc#1243843)
for d in ad103 ad104 ad106 ad107; do
if [ ! -L %{_firmwaredir}/nvidia/$d ]; then
if [ -d %{_firmwaredir}/nvidia/$d ]; then
mv %{_firmwaredir}/nvidia/$d %{_firmwaredir}/nvidia/$d.xxxold
fi
fi
done
%post
# ugly workaround (bsc#1243843)
if [ -d %{_firmwaredir}/nvidia/ad103.xxxold ]; then
for d in ad103 ad104 ad106 ad107; do
mv %{_firmwaredir}/nvidia/$d %{_firmwaredir}/nvidia/$d.xxxnew
if [ -d %{_firmwaredir}/nvidia/$d.xxxold ]; then
mv %{_firmwaredir}/nvidia/$d.xxxold %{_firmwaredir}/nvidia/$d
fi
done
else
%{?regenerate_initrd_post}
fi
%postun
%{?regenerate_initrd_post}
%posttrans
# ugly workaround (bsc#1243843)
for d in ad103 ad104 ad106 ad107; do
if [ -L %{_firmwaredir}/nvidia/$d.xxxnew ]; then
rm -rf %{_firmwaredir}/nvidia/$d
mv %{_firmwaredir}/nvidia/$d.xxxnew %{_firmwaredir}/nvidia/$d
fi
done
%{?regenerate_initrd_posttrans}