Bug#1108455: debian-cd: Installer images include two versions of kernel udebs
Cyril, et al,
The Weekly build of the installer image for amd64 just grew by exactly 5%:
* 859832320 Aug 25 01:08 debian-testing-amd64-netinst.is0
* 902823936 Sep 1 03:25 debian-testing-amd64-netinst.iso
This is caused by the following directory:
pool/main/l/linux-signed-amd64
having two versions of each of the 29 kernel udebs.
The three largest pairs:
* 10826124 Jul 17 11:22
nic-wireless-modules-6.12.38+deb13-amd64-di_6.12.38-1_amd64.udeb
* 11748668 Aug 26 13:25
nic-wireless-modules-6.16.3+deb14-amd64-di_6.16.3-1_amd64.udeb
* 8264572 Jul 17 11:22
nic-modules-6.12.38+deb13-amd64-di_6.12.38-1_amd64.udeb
* 8872256 Aug 26 13:25 nic-modules-6.16.3+deb14-amd64-di_6.16.3-1_amd64.udeb
* 7752324 Jul 17 11:22
sound-modules-6.12.38+deb13-amd64-di_6.12.38-1_amd64.udeb
* 8215428 Aug 26 13:25
sound-modules-6.16.3+deb14-amd64-di_6.16.3-1_amd64.udeb
My new, improved tools/generate_di_list patch is attached, which:
* Matches newest Kernel module ABI names, while keeping Perl::Critic happy
* Sorts udeb names to create deterministic output
* Comment that the ARCHES variable needs to be preset too
* Removes trailing space
* Indicates which package file is missing
Thank you!
Daniel Lewart
Urbana, Illinois
diff -ru a/tools/generate_di_list b/tools/generate_di_list
--- a/tools/generate_di_list 2025-08-20 06:17:52.000000000 -0500
+++ b/tools/generate_di_list 2025-09-01 22:00:00.000000000 -0500
@@ -1,7 +1,7 @@
#!/usr/bin/perl
# Generate a list of packages required for debian-installer
# This script makes use of the following variables that need to be preset:
-# MIRROR, DI_CODENAME, BASEDIR
+# MIRROR, DI_CODENAME, BASEDIR, ARCHES
use strict;
use warnings;
@@ -33,7 +33,7 @@
chomp $DATE;
open(OUT, ">debian-installer") || die "write: $!";
print OUT << "EOF";
-/* List of udebs to be included so that debian-installer works fine
+/* List of udebs to be included so that debian-installer works fine
*
* This list can be generated with the command:
* ../tools/generate_di_list
@@ -105,7 +105,7 @@
$pz = $pxz;
}
if (! -f $pz) {
- print "Missing package file for $arch/$component.\n";
+ print "Missing package file $pz for $arch/$component.\n";
next;
}
@@ -141,7 +141,7 @@
# Append this driver udeb to a list for that kernel_ver
push(@{ $driver_udebs{$kernel_ver} }, $udeb);
- } elsif ($udeb =~ m/-modules-(\d+)\.(\d+)\.(\d+)-.*-di/) {
+ } elsif ($udeb =~ m/-modules-(\d+)[.](\d+)[.](\d+)(?:[+]deb\d+)?-$arch-di$/msx) {
# Newer udeb package names don't, so use "0" as a dummy value here
my $kernel_ver = di_ker_abi_to_number($1, $2, $3, 0);
if ($kernel_ver > $highest_kernel_ver) {
@@ -160,7 +160,7 @@
$output .= "/* Udebs found in $pz: */\n";
if (scalar (@output_udebs) > 0) {
$output .= "/* Non-kernel udebs */\n";
- foreach my $udeb (@output_udebs) {
+ foreach my $udeb (sort @output_udebs) {
$output .= "$udeb\n";
}
}
@@ -169,7 +169,7 @@
$output .= "/* Next: $num_this_abi udebs for kernel/ABI version ";
$output .= number_to_di_ker_abi($highest_kernel_ver);
$output .= " */\n";
- foreach my $udeb (@{ $driver_udebs{$highest_kernel_ver}}) {
+ foreach my $udeb (sort @{ $driver_udebs{$highest_kernel_ver}}) {
$output .= "$udeb\n";
}
foreach my $key (keys (%driver_udebs)) {
Reply to: