#1082650 firmware-sof-signed: Broken upgrade path 2023.12.1-1 => 2024.06-1

#1082650#5
Date:
2024-09-24 03:02:04 UTC
From:
To:
Dear Maintainer,

The bug was originally reported on the Kali Linux bug tracker at
https://bugs.kali.org/view.php?id=8930

I can reproduce it on Debian. Note that it affects the specific upgrade
path 2023.12.1-1 => 2024.06-1.

It does NOT affect the following upgrade paths:
- 2.2.4-1       => 2024.06-1 (ie. Debian stable => unstable)
- 2023.12.1-1.1 => 2024.06-1 (ie. binNMU that closed #1059757)

It's easy to reproduce the issue using a Debian unstable container, with
the following commands:

```
## on your machine, get the package version 2023.12.1-1
debsnap --binary -d . firmware-sof-signed 2023.12.1-1

## start a container
podman pull debian:unstable
podman run -it --rm --net host debian:unstable
sed -i 's/: main$/: main non-free-firmware/' /etc/apt/sources.list.d/debian.sources
apt update

## install the package version 2023.12.1-1
apt install ./firmware-sof-signed_2023.12.1-1_all.deb

## upgrade
apt upgrade -V
```

Output from upgrade:

```
Upgrading:
   firmware-sof-signed (2023.12.1-1 => 2024.06-1)
[...]
Preparing to unpack .../firmware-sof-signed_2024.06-1_all.deb ...
dpkg-maintscript-helper: error: file '/usr/lib/firmware/intel/sof-ace-tplg' not owned by package 'firmware-sof-signed:all'
dpkg-maintscript-helper: error: file '/usr/lib/firmware/intel/sof-ace-tplg/sof-mtl-max98357a-rt5682.tplg' not owned by package 'firmware-sof-signed:all'
dpkg-maintscript-helper: error: file '/usr/lib/firmware/intel/sof-ace-tplg/sof-hda-generic-cavs25-2ch.tplg' not owned by package 'firmware-sof-signed:all'
dpkg-maintscript-helper: error: file '/usr/lib/firmware/intel/sof-ace-tplg/sof-mtl-hdmi-ssp02.tplg' not owned by package 'firmware-sof-signed:all'
dpkg-maintscript-helper: error: file '/usr/lib/firmware/intel/sof-ace-tplg/sof-hda-generic-2ch.tplg' not owned by package 'firmware-sof-signed:all'
dpkg-maintscript-helper: error: file '/usr/lib/firmware/intel/sof-ace-tplg/sof-hda-generic-4ch.tplg' not owned by package 'firmware-sof-signed:all'
dpkg-maintscript-helper: error: file '/usr/lib/firmware/intel/sof-ace-tplg/sof-hda-generic-ace1-2ch.tplg' not owned by package 'firmware-sof-signed:all'
dpkg-maintscript-helper: error: file '/usr/lib/firmware/intel/sof-ace-tplg/sof-mtl-max98357a-rt5682-ssp2-ssp0-2ch-pdm1.tplg' not owned by package 'firmware-sof-signed:all'
dpkg-maintscript-helper: error: file '/usr/lib/firmware/intel/sof-ace-tplg/sof-hda-generic-idisp.tplg' not owned by package 'firmware-sof-signed:all'
dpkg-maintscript-helper: error: file '/usr/lib/firmware/intel/sof-ace-tplg/sof-hda-generic-ace1-4ch.tplg' not owned by package 'firmware-sof-signed:all'
dpkg-maintscript-helper: error: file '/usr/lib/firmware/intel/sof-ace-tplg/sof-mtl-rt713-l0-rt1316-l12-rt1713-l3.tplg' not owned by package 'firmware-sof-signed:all'
dpkg-maintscript-helper: error: file '/usr/lib/firmware/intel/sof-ace-tplg/sof-mtl-rt1019-rt5682.tplg' not owned by package 'firmware-sof-signed:all'
dpkg-maintscript-helper: error: file '/usr/lib/firmware/intel/sof-ace-tplg/sof-mtl-rt722-l0.tplg' not owned by package 'firmware-sof-signed:all'
dpkg-maintscript-helper: error: file '/usr/lib/firmware/intel/sof-ace-tplg/sof-mtl-rt713-l0-rt1316-l12.tplg' not owned by package 'firmware-sof-signed:all'
dpkg-maintscript-helper: error: file '/usr/lib/firmware/intel/sof-ace-tplg/sof-mtl-rt1318-l12-rt714-l0.tplg' not owned by package 'firmware-sof-signed:all'
dpkg-maintscript-helper: error: file '/usr/lib/firmware/intel/sof-ace-tplg/sof-hda-generic-cavs25-4ch.tplg' not owned by package 'firmware-sof-signed:all'
dpkg-maintscript-helper: error: file '/usr/lib/firmware/intel/sof-ace-tplg/sof-mtl-rt711-4ch.tplg' not owned by package 'firmware-sof-signed:all'
dpkg-maintscript-helper: error: file '/usr/lib/firmware/intel/sof-ace-tplg/sof-mtl-rt712-l0-rt1712-l3.tplg' not owned by package 'firmware-sof-signed:all'
dpkg-maintscript-helper: error: file '/usr/lib/firmware/intel/sof-ace-tplg/sof-mtl-sdw-cs42l42-l0-max98363-l2.tplg' not owned by package 'firmware-sof-signed:all'
dpkg-maintscript-helper: error: file '/usr/lib/firmware/intel/sof-ace-tplg/sof-mtl-max98357a-rt5682-ssp2-ssp0.tplg' not owned by package 'firmware-sof-signed:all'
dpkg-maintscript-helper: error: file '/usr/lib/firmware/intel/sof-ace-tplg/sof-hda-generic.tplg' not owned by package 'firmware-sof-signed:all'
dpkg-maintscript-helper: error: file '/usr/lib/firmware/intel/sof-ace-tplg/sof-mtl-cs42l43-l0-cs35l56-l12.tplg' not owned by package 'firmware-sof-signed:all'
dpkg-maintscript-helper: error: file '/usr/lib/firmware/intel/sof-ace-tplg/sof-mtl-rt711-l0-rt1316-l23-rt714-l1.tplg' not owned by package 'firmware-sof-signed:all'
dpkg-maintscript-helper: error: file '/usr/lib/firmware/intel/sof-ace-tplg/sof-mtl-es83x6-ssp1-hdmi-ssp02.tplg' not owned by package 'firmware-sof-signed:all'
dpkg-maintscript-helper: error: directory '/usr/lib/firmware/intel/sof-ace-tplg' contains files not owned by package firmware-sof-signed:all, cannot switch to symlink
dpkg: error processing archive /var/cache/apt/archives/firmware-sof-signed_2024.06-1_all.deb (--unpack):
 new firmware-sof-signed package pre-installation script subprocess returned error exit status 1
Errors were encountered while processing:
 /var/cache/apt/archives/firmware-sof-signed_2024.06-1_all.deb
Error: Sub-process /usr/bin/dpkg returned an error code (1)
```

At a quick glance, I think that the maintscript must add a line such as:

```
dir_to_symlink /lib/firmware/intel/sof-ace-tplg sof-ipc4-tplg 2023.12.1-1.1~
```

I'll try and report back here.

Thanks,

Arnaud

#1082650#10
Date:
2024-09-24 04:06:00 UTC
From:
To:
Hi again,

please find a fix at
https://salsa.debian.org/mpearson/firmware-sof/-/merge_requests/7. Feel
free to adjust or reword comments as you see fit.

The core of the problem is that we want to run maintscript only for
version between 2023.12.1-1.1 and 2024.06-1, however the file
<package>.maintscript doesn't permit to express a version range. So we
have to go back to do it manually in postinst, preinst and postrm.

I tested upgrades from the following versions: 2.2.4-1, 2023.12.1-1 and
2023.12.1-1.1. It all worked.

Best,

#1082650#15
Date:
2024-09-24 14:11:05 UTC
From:
To:
Hi Arnaud,

Thanks for the report and the patches - I will review, test and update.

Mark