From 4fbca52c5e820c638cfacb675bcecd66c02fc249 Mon Sep 17 00:00:00 2001 From: Cyril Brulebois Date: Fri, 20 Jan 2023 17:06:11 +0100 Subject: [PATCH] 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. ] --- tools/generate_firmware_task | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/tools/generate_firmware_task b/tools/generate_firmware_task index 40c4ddd3..ee126451 100755 --- a/tools/generate_firmware_task +++ b/tools/generate_firmware_task @@ -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"; } }