generate_firmware_task: restrict components according to NONFREE_COMPONENTS

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. ]
This commit is contained in:
Cyril Brulebois 2023-01-20 17:06:11 +01:00
parent a2378ed25d
commit 4fbca52c5e
1 changed files with 22 additions and 11 deletions

View File

@ -5,6 +5,7 @@
# Work out which firmware packages we need
# Several steps:
#
# 0. See comments above @components below.
# 1. Look for packages which contain "firmware" or "microcode" in their package names
# 2. Check each of those packages to see if they contain files in /lib/firmware
# 3. For those that do, output the package name into the firmware task
@ -23,6 +24,12 @@ my $bp_pkgfiles = "";
my ($pkg, $filename, $arch);
my %seen;
# kibi @ 2023-01-20: with https://www.debian.org/vote/2022/vote_003 we'd like to
# focus on main and non-free-firmware; contrib usually has installers (that
# require network), and packages not moved from non-free are deemed less
# interesting than those in non-free-firmware anyway.
my @components = ('main', split /\ /,$ENV{NONFREE_COMPONENTS});
$codename = $ENV{'CODENAME'};
$mirror = $ENV{'MIRROR'};
$localdebs = $ENV{'LOCALDEBS'};
@ -36,22 +43,26 @@ if (!defined($codename) || !defined($mirror) ||
}
foreach $arch (split(' ', $archlist)) {
if (defined($backports)) {
$bp_pkgfiles = "$pkgfiles $mirror/dists/$codename-backports/*/binary-$arch/Packages.gz";
$bp_pkgfiles = "$pkgfiles $mirror/dists/$codename-backports/*/binary-$arch/Packages.xz";
for my $component (@components) {
if (defined($backports)) {
$bp_pkgfiles = "$pkgfiles $mirror/dists/$codename-backports/$component/binary-$arch/Packages.gz";
$bp_pkgfiles = "$pkgfiles $mirror/dists/$codename-backports/$component/binary-$arch/Packages.xz";
}
$pkgfiles = "$pkgfiles $mirror/dists/$codename/$component/binary-$arch/Packages.gz";
$pkgfiles = "$pkgfiles $mirror/dists/$codename/$component/binary-$arch/Packages.xz";
}
$pkgfiles = "$pkgfiles $mirror/dists/$codename/*/binary-$arch/Packages.gz";
$pkgfiles = "$pkgfiles $mirror/dists/$codename/*/binary-$arch/Packages.xz";
}
if (defined($localdebs)) {
foreach $arch (split(' ', $archlist)) {
if (defined($backports)) {
$bp_pkgfiles = "$pkgfiles $localdebs/dists/$codename-backports/*/binary-$arch/Packages.gz";
$bp_pkgfiles = "$pkgfiles $localdebs/dists/$codename-backports/*/binary-$arch/Packages.xz";
for my $component (@components) {
foreach $arch (split(' ', $archlist)) {
if (defined($backports)) {
$bp_pkgfiles = "$pkgfiles $localdebs/dists/$codename-backports/$component/binary-$arch/Packages.gz";
$bp_pkgfiles = "$pkgfiles $localdebs/dists/$codename-backports/$component/binary-$arch/Packages.xz";
}
$pkgfiles = "$pkgfiles $localdebs/dists/$codename/$component/binary-$arch/Packages.gz";
$pkgfiles = "$pkgfiles $localdebs/dists/$codename/$component/binary-$arch/Packages.xz";
}
$pkgfiles = "$pkgfiles $localdebs/dists/$codename/*/binary-$arch/Packages.gz";
$pkgfiles = "$pkgfiles $localdebs/dists/$codename/*/binary-$arch/Packages.xz";
}
}