From 19967e19b2cff73048ab2b86da10f1cb500e467de751bdfed1cdcc0245ca8423 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 5 Jun 2025 12:45:00 +0200 Subject: [PATCH] Add workaround for directory/symlink changes (bsc#1243843) --- kernel-firmware-nvidia.changes | 5 ++++ kernel-firmware-nvidia.spec | 32 ++++++++++++++++++++++-- kernel-firmware-tools-20250425.tar.gz | 3 --- kernel-firmware-tools-20250605.tar.gz | 3 +++ post | 35 +++++++++++++++++++++++++++ 5 files changed, 73 insertions(+), 5 deletions(-) delete mode 100644 kernel-firmware-tools-20250425.tar.gz create mode 100644 kernel-firmware-tools-20250605.tar.gz create mode 100644 post diff --git a/kernel-firmware-nvidia.changes b/kernel-firmware-nvidia.changes index 4dd319f..300d8de 100644 --- a/kernel-firmware-nvidia.changes +++ b/kernel-firmware-nvidia.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Thu Jun 5 10:45:00 UTC 2025 - Takashi Iwai + +- Add workaround for directory/symlink changes (bsc#1243843) + ------------------------------------------------------------------- Mon May 19 19:09:24 UTC 2025 - Takashi Iwai diff --git a/kernel-firmware-nvidia.spec b/kernel-firmware-nvidia.spec index e8604e1..0c32d12 100644 --- a/kernel-firmware-nvidia.spec +++ b/kernel-firmware-nvidia.spec @@ -30,10 +30,11 @@ License: GPL-2.0-or-later AND SUSE-Firmware Group: System/Kernel URL: https://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/ 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 Source3: git_id Source10: aliases +Source11: post BuildRequires: suse-module-tools Requires(post): %{_bindir}/mkdir 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 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 -%{?regenerate_initrd_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} %files diff --git a/kernel-firmware-tools-20250425.tar.gz b/kernel-firmware-tools-20250425.tar.gz deleted file mode 100644 index a45f059..0000000 --- a/kernel-firmware-tools-20250425.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7364202554baf494a3a469b17646832374b3651358c255627f99c4ec4a4338b6 -size 16848 diff --git a/kernel-firmware-tools-20250605.tar.gz b/kernel-firmware-tools-20250605.tar.gz new file mode 100644 index 0000000..0cecc61 --- /dev/null +++ b/kernel-firmware-tools-20250605.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc541ac208e869f4cfcd54b506995986a400ba4f15d219750e330c16110e8c40 +size 16885 diff --git a/post b/post new file mode 100644 index 0000000..2c7261c --- /dev/null +++ b/post @@ -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} -- 2.49.0