Firmware packages in contrib are usually downloaders (e.g. b43-installer
and b43legacy-installer, which require networking).
Regarding non-free, we've started populating non-free-firmware with
interesting firmware packages[1], and those remaining in non-free don't
need to end up on installation images.
1. https://lists.debian.org/debian-boot/2023/01/msg00150.html
At the moment, NON_FREE_COMPONENTS still has both non-free and
non-free-firmware, but the plan is to only keep non-free-firmware for
bookworm.
[ Best viewed with -b due to indentation changes. ]
Otherwise failures would go unnoticed, logs would pretend firmware-b43-installer
(the first firmware package getting processed) is indeed installed there while
it's not. See next commit.
Update comments:
- Bump linux-image package to the latest found in bullseye.
- Include snd-soc-sof.*\.ko in the lookup.
- Delete the TODO: the list was built using snd-soc-sof*.ko already,
since a80f013b57.
List the desired non-free sections to use in NONFREE_COMPONENTS in
CONF.sh, default to "non-free non-free-firmware" by default until
things are all migrated.
The dependency tree created by parsing the output of "apt-cache depends" always
generates an array of array. The old representation of a simple dependency as
an hash is gone in favor of an OR with a single entry (so the hash is the only
element within the array).
So all the code in add_missing() that was dealing with the case of the hash
was never triggered.
I tweaked the OR case so that the generated log messages actually
mention "OR" only if it's a true OR dependency (i.e. with multiple
entries in the array).
Everywhere where we call add_missing() on Depends, we must do it also
on Recommends and Suggests based on $add_rec and $add_sug.
Tweak the code that is supposed to stop the recursion to use
the list that we have built but don't be strict about version
constraints on Recommends/Suggests since they can't always
be respected.
Closes: #601203
There's no point in passing them as parameters everywhere.
This changes the behaviour in some places:
1/ When we process the non-explicitly included packages (for COMPLETE=1),
we used to never take Recommends/Suggests into account, now we do. But
the only thing that will be changed is the ordering with some
Recommended packages being included before their depending package.
2/ When we process the EXTRANONFREE image, this one was always including
Recommends and Suggests, and it's now respecting the setting too.
It's required by debian-installer and cryptsetup >= 2.4.0 no longer
recommends it, so it ends up missing in the netinst image.
base-installer then fails to honor the apt-setup request and the
resulting system is unbootable because the initramfs doesn't contain
anything to unlock the encrypted partitions. :-(