Support transition to new non-free-firmware component
Compare changes
Files
27+ 2
− 0
APT doesn't care all that much about components and this MR actually makes this a tiny bit more true.
The main feature through is introducing notices for users who have likely missed reading the release notes (which have yet to actually include a section about this).
The generated messages are:
a) for a user who has non-free
but not non-free-firmware
in its sources.list
:
N: Repository 'Debian bookworm' changed its 'non-free component' value from 'non-free' to 'non-free non-free-firmware'
N: More information about this can be found online in the Release notes at: https://www.debian.org/releases/bookworm/amd64/release-notes/ch-information.html#non-free-split
and b) for a user who has no non-free
, but has a (hardcoded) firmware package installed and not downloadable which is shipped in non-free-firmware
:
N: Repository 'Debian bookworm' changed its 'firmware component' value from 'non-free' to 'non-free-firmware'
N: More information about this can be found online in the Release notes at: https://www.debian.org/releases/bookworm/amd64/release-notes/ch-information.html#non-free-split
If you think the first line in each sounds a bit cryptic: That is right, but
Compared to the draft version:
component
instead of section
in the first line as somehow that is what the release-notes seem to use (for now) in the chapter I link to.download_packages_file() {
"APTHELPER" download-file "
{MIRROR}/dists/{1}/
{2}/binary-{3}/Packages.xz" "Packages_
{1}${2}${3}.xz"
}
download_all_packages_files() {
"APTHELPER" download-file "
{MIRROR}/dists/{1}/Release" "Release-
{1}"
for ARCH in (grep '^Architectures: ' "Release-
{1}" | cut -d':' -f 2 | tr ' ' '\n'); do
if [ -z "ARCH" -o "
ARCH" = 'all' ]; then continue; fi
download_packages_file "$1" "2" "
ARCH"
done
}
download_all_packages_files "$NEW_REL" 'non-free-firmware' download_all_packages_files "$OLD_REL" 'non-free'
get_binary_firmware_package_names() {
"APTHELPER" cat-file Packages_
{NEW_REL}non-free-firmware*.xz | grep '^Package: ' | cut -d' ' -f 2
# https://lists.debian.org/debian-boot/2023/01/msg00235.html
for SRCPKG in 'amd64-microcode' 'intel-microcode' \
'atmel-firmware' 'firmware-ast' 'firmware-sof' 'rtl8723bt-firmware' \
'bluez-firmware' 'dahdi-firmware' 'firmware-nonfree' \
'zd1211-firmware' \
'ixp4xx-microcode' \
'midisport-firmware' \
; do
apt-helper cat-file Packages_${OLD_REL}_non-free_*.xz | grep-dctrl -nS -s Package "$SRCPKG"
done
}
get_binary_firmware_package_names | sort -u |
sed -e '/^ixp4xx-microcode$/ d' |
sed -e 's#^(.*)$#"\1",#' | tr '\n' ' '
</details>