[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: