diff --git a/kernel-firmware.changes b/kernel-firmware.changes index 2e926bc..54e868e 100644 --- a/kernel-firmware.changes +++ b/kernel-firmware.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Sat Oct 8 15:46:30 UTC 2022 - Takashi Iwai + +- Workaround for update failure of kernel-firmware-qcom package + due to the change from a directory to a symlink (bsc#1204103) + ------------------------------------------------------------------- Mon Oct 03 06:55:34 UTC 2022 - tiwai@suse.com diff --git a/kernel-firmware.spec b/kernel-firmware.spec index 2833732..9bb5319 100644 --- a/kernel-firmware.spec +++ b/kernel-firmware.spec @@ -61,6 +61,7 @@ Source1011: fwtopics.py Source1012: check-topic.py Source1013: update-aliases.py Source1014: README.build +Source1100: qcom-post BuildRequires: fdupes BuildRequires: suse-module-tools Requires(post): /usr/bin/mkdir /usr/bin/touch @@ -6506,13 +6507,32 @@ sh %{_sourcedir}/list-license.sh < %{_sourcedir}/licenses.list %posttrans prestera %{?regenerate_initrd_posttrans} +%pre qcom +# ugly workaround for changing qcom/LENOVO/21BX to a symlink (bsc#1204103) +if [ ! -L %{_firmwaredir}/qcom/LENOVO/21BX ]; then + if [ -d %{_firmwaredir}/qcom/LENOVO/21BX ]; then + mv %{_firmwaredir}/qcom/LENOVO/21BX %{_firmwaredir}/qcom/LENOVO/21BX.xxxold + fi +fi + %post qcom +# ugly workaround (bsc#1204103) +if [ -d %{_firmwaredir}/qcom/LENOVO/21BX.xxxold ]; then + mv %{_firmwaredir}/qcom/LENOVO/21BX %{_firmwaredir}/qcom/LENOVO/21BX.xxxnew + mv %{_firmwaredir}/qcom/LENOVO/21BX.xxxold %{_firmwaredir}/qcom/LENOVO/21BX +else %{?regenerate_initrd_post} +fi %postun qcom %{?regenerate_initrd_post} %posttrans qcom +# ugly workaround (bsc#1204103) +if [ -L %{_firmwaredir}/qcom/LENOVO/21BX.xxxnew ]; then + rm -rf %{_firmwaredir}/qcom/LENOVO/21BX + mv %{_firmwaredir}/qcom/LENOVO/21BX.xxxnew %{_firmwaredir}/qcom/LENOVO/21BX +fi %{?regenerate_initrd_posttrans} %post qlogic diff --git a/kernel-firmware.spec.in b/kernel-firmware.spec.in index 30669d6..0411ec3 100644 --- a/kernel-firmware.spec.in +++ b/kernel-firmware.spec.in @@ -61,6 +61,7 @@ Source1011: fwtopics.py Source1012: check-topic.py Source1013: update-aliases.py Source1014: README.build +Source1100: qcom-post BuildRequires: fdupes BuildRequires: suse-module-tools Requires(post): /usr/bin/mkdir /usr/bin/touch diff --git a/makespec.sh b/makespec.sh index bdd4c6d..2e150d7 100644 --- a/makespec.sh +++ b/makespec.sh @@ -33,6 +33,10 @@ define_subpackage () { define_post () { local l="$*" + if [ -n "$l" -a -f "$l"-post ]; then + cat "$l"-post + return 0 + fi test -n "$l" && l=" $l" echo "%post$l" echo "%{?regenerate_initrd_post}" diff --git a/qcom-post b/qcom-post new file mode 100644 index 0000000..ee79021 --- /dev/null +++ b/qcom-post @@ -0,0 +1,27 @@ +%pre qcom +# ugly workaround for changing qcom/LENOVO/21BX to a symlink (bsc#1204103) +if [ ! -L %{_firmwaredir}/qcom/LENOVO/21BX ]; then + if [ -d %{_firmwaredir}/qcom/LENOVO/21BX ]; then + mv %{_firmwaredir}/qcom/LENOVO/21BX %{_firmwaredir}/qcom/LENOVO/21BX.xxxold + fi +fi + +%post qcom +# ugly workaround (bsc#1204103) +if [ -d %{_firmwaredir}/qcom/LENOVO/21BX.xxxold ]; then + mv %{_firmwaredir}/qcom/LENOVO/21BX %{_firmwaredir}/qcom/LENOVO/21BX.xxxnew + mv %{_firmwaredir}/qcom/LENOVO/21BX.xxxold %{_firmwaredir}/qcom/LENOVO/21BX +else +%{?regenerate_initrd_post} +fi + +%postun qcom +%{?regenerate_initrd_post} + +%posttrans qcom +# ugly workaround (bsc#1204103) +if [ -L %{_firmwaredir}/qcom/LENOVO/21BX.xxxnew ]; then + rm -rf %{_firmwaredir}/qcom/LENOVO/21BX + mv %{_firmwaredir}/qcom/LENOVO/21BX.xxxnew %{_firmwaredir}/qcom/LENOVO/21BX +fi +%{?regenerate_initrd_posttrans}