Version in base suite: 2.104 Base version: kernel-wedge_2.104 Target version: kernel-wedge_2.106~deb12u1 Base file: /srv/ftp-master.debian.org/ftp/pool/main/k/kernel-wedge/kernel-wedge_2.104.dsc Target file: /srv/ftp-master.debian.org/policy/pool/main/k/kernel-wedge/kernel-wedge_2.106~deb12u1.dsc commands/copy-modules | 22 ++--- commands/find-dups | 9 +- commands/find-unpackaged | 11 +- commands/install-files | 16 ++- commands/preprocess | 10 +- debian/changelog | 38 ++++++++- debian/control | 6 - debian/gbp.conf | 2 debian/tests/control | 4 debian/tests/dummy-depmod | 50 ++++++++++++ debian/tests/install-files | 48 +++++++++++ debian/tests/install-files-config/modules/any/dummy-modules | 2 debian/tests/install-files-config/package-list | 6 + debian/tests/preprocess | 2 lib/KernelWedge.pm | 3 15 files changed, 201 insertions(+), 28 deletions(-) dpkg-source: warning: cannot verify inline signature for /srv/release.debian.org/tmp/tmpmzy3k4ql/kernel-wedge_2.104.dsc: no acceptable signature found dpkg-source: warning: cannot verify inline signature for /srv/release.debian.org/tmp/tmpmzy3k4ql/kernel-wedge_2.106~deb12u1.dsc: no acceptable signature found diff -Nru kernel-wedge-2.104/commands/copy-modules kernel-wedge-2.106~deb12u1/commands/copy-modules --- kernel-wedge-2.104/commands/copy-modules 2020-09-23 22:41:11.000000000 +0000 +++ kernel-wedge-2.106~deb12u1/commands/copy-modules 2026-06-04 14:48:42.000000000 +0000 @@ -44,12 +44,14 @@ tmpdir=$(mktemp -d) # SOURCEDIR may be set externally to control where to copy from. -if [ -n "$SOURCEDIR" ]; then - moddir=$SOURCEDIR/lib/modules/$installedname -else - moddir=/lib/modules/$installedname -fi - +# Modules may be found under either /usr/lib/modules or /lib/modules. +# Install them under the same directory in udebs. +for prefix in /usr ''; do + moddir=$SOURCEDIR$prefix/lib/modules/$installedname + if [ -d $moddir ]; then + break + fi +done if [ ! -d $moddir ]; then exit 0 fi @@ -66,8 +68,8 @@ if [ "$os" = "linux" ] ; then if [ "$SOURCEDIR" ]; then modulesdep=$tmpdir/modules.dep - PATH="/usr/sbin:/sbin:$PATH" depmod \ - -b $SOURCEDIR $installedname -n \ + PATH="/usr/sbin:/sbin:$PATH" "${DEPMOD:-depmod}" \ + -b $SOURCEDIR$prefix $installedname -n \ | sed '/^#/d; /^alias /,$d' >$modulesdep elif [ -e "$moddir/modules.dep" ]; then modulesdep=$moddir/modules.dep @@ -80,7 +82,7 @@ # sort it by field 2 perl -lne ' @words=split(" "); - s!'/lib/modules/$installedname'/!! foreach (@words); + s!'$prefix/lib/modules/$installedname'/!! foreach (@words); if ($words[0] =~ /:$/) { $words[0]=~s/:$//; $module=shift @words; @@ -145,7 +147,7 @@ printf $? >&3 ) | ( set +e - dir=$home/debian/$i-$version-di/lib/modules/$installedname + dir=$home/debian/$i-$version-di$prefix/lib/modules/$installedname mkdir -p $dir cd $dir tar xf - diff -Nru kernel-wedge-2.104/commands/find-dups kernel-wedge-2.106~deb12u1/commands/find-dups --- kernel-wedge-2.104/commands/find-dups 2014-03-01 00:08:51.000000000 +0000 +++ kernel-wedge-2.106~deb12u1/commands/find-dups 2026-06-04 14:48:42.000000000 +0000 @@ -3,9 +3,14 @@ kernel=$1 ( shopt -s nullglob - for dir in debian/*-modules-$kernel-di; do + for dir in debian/kernel-image-$kernel-di debian/*-modules-$kernel-di; do cd $dir - find lib -type f -printf "$dir %p\n" + if [ -d usr/lib/modules/$kernel ]; then + moddir=usr/lib/modules/$kernel + else + moddir=lib/modules/$kernel + fi + find $moddir -type f -printf "$dir %p\n" cd ../.. done ) | sort -k2 | perl -ne ' diff -Nru kernel-wedge-2.104/commands/find-unpackaged kernel-wedge-2.106~deb12u1/commands/find-unpackaged --- kernel-wedge-2.104/commands/find-unpackaged 2014-03-01 00:08:51.000000000 +0000 +++ kernel-wedge-2.106~deb12u1/commands/find-unpackaged 2026-06-04 14:48:42.000000000 +0000 @@ -6,25 +6,30 @@ use File::Find (); use File::Spec; +use KernelWedge qw(MODULE_FILENAME_RE); + my $kernel = $ARGV[0]; my $installedname = $ARGV[1]; -my $moddir = "/lib/modules/$installedname"; my $sourcedir = $ENV{SOURCEDIR} || ''; +my ($moddir) = grep {-d "$sourcedir$_"} + ("/usr/lib/modules/$installedname", + "/lib/modules/$installedname"); +die "No source modules directory found" unless defined($moddir); my %unpackaged; my $dir = "$sourcedir$moddir"; File::Find::find( sub { $unpackaged{File::Spec->abs2rel($File::Find::name, $dir)} = 1 - if /\.k?o$/; + if $_ =~ MODULE_FILENAME_RE; }, $dir); for my $dir (glob("debian/*-modules-$kernel-di$moddir")) { File::Find::find( sub { delete $unpackaged{File::Spec->abs2rel($File::Find::name, $dir)} - if /\.k?o$/; + if $_ =~ MODULE_FILENAME_RE; }, $dir); } diff -Nru kernel-wedge-2.104/commands/install-files kernel-wedge-2.106~deb12u1/commands/install-files --- kernel-wedge-2.104/commands/install-files 2019-11-30 23:31:41.000000000 +0000 +++ kernel-wedge-2.106~deb12u1/commands/install-files 2026-06-04 14:48:42.000000000 +0000 @@ -105,13 +105,19 @@ else { die "could not find kernel image"; } - if (-e "$sourcedir/lib/modules/$installedname") { + # Module index files may be found under either + # /usr/lib/modules or /lib/modules. Install them + # under the same directory in kernel-image. + my ($moddir) = grep {-d "$sourcedir$_"} + ("/usr/lib/modules/$installedname", + "/lib/modules/$installedname"); + if (defined($moddir)) { doit("install", "-d", - "debian/kernel-image-$kernelversion-$flavour-di/lib/modules/$installedname"); + "debian/kernel-image-$kernelversion-$flavour-di$moddir"); doit("install", "-m", 644, - "$sourcedir/lib/modules/$installedname/modules.builtin", - "$sourcedir/lib/modules/$installedname/modules.order", - "debian/kernel-image-$kernelversion-$flavour-di/lib/modules/$installedname/"); + "$sourcedir$moddir/modules.builtin", + "$sourcedir$moddir/modules.order", + "debian/kernel-image-$kernelversion-$flavour-di$moddir/"); } } elsif (-e "$sourcedir/boot/kfreebsd-$installedname.gz") { diff -Nru kernel-wedge-2.104/commands/preprocess kernel-wedge-2.106~deb12u1/commands/preprocess --- kernel-wedge-2.104/commands/preprocess 2020-03-30 13:46:51.000000000 +0000 +++ kernel-wedge-2.106~deb12u1/commands/preprocess 2026-06-04 14:48:42.000000000 +0000 @@ -4,6 +4,8 @@ use File::Find (); use File::Spec (); +use KernelWedge qw(MODULE_FILENAME_RE); + # Dummy filename for when we find that a module is actually built-in use constant BUILTIN => ""; @@ -28,7 +30,7 @@ File::Find::find({ follow => 1, # If $moddir is a symlink, follow it. wanted => sub { - if (/\.ko$/) { + if ($_ =~ MODULE_FILENAME_RE) { push @module_files, File::Spec->abs2rel($File::Find::name, $moddir); @@ -105,15 +107,15 @@ } # Add module suffix; anchor at start and end of string - @regexps = ('^' . $re . '\.ko$'); + @regexps = ('^' . $re . MODULE_FILENAME_RE); } else { # If pattern doesn't include a wildcard, find the # module in any subdir, but prefer a module in the # kernel subdir. We still do wildcard processing # to handle equivalence of '-' and '_' for Linux. my $re = wildcard_to_regexp($pattern); - @regexps = ('^kernel/(?:.*/)?' . $re . '\.ko$', - '(?:^|/)' . $re . '\.ko$'); + @regexps = ('^kernel/(?:.*/)?' . $re . MODULE_FILENAME_RE, + '(?:^|/)' . $re . MODULE_FILENAME_RE); } my @modules; diff -Nru kernel-wedge-2.104/debian/changelog kernel-wedge-2.106~deb12u1/debian/changelog --- kernel-wedge-2.104/debian/changelog 2020-09-24 16:44:10.000000000 +0000 +++ kernel-wedge-2.106~deb12u1/debian/changelog 2026-06-04 14:48:42.000000000 +0000 @@ -1,3 +1,39 @@ +kernel-wedge (2.106~deb12u1) bookworm-security; urgency=medium + + * Rebuild for bookworm-security + + -- Ben Hutchings Thu, 04 Jun 2026 16:48:42 +0200 + +kernel-wedge (2.106) unstable; urgency=medium + + * d/tests/preprocess: Add local lib directory to Perl library path + * Use the same module filename regexp in preprocess and find-unpackaged + * find-dups: Look in the kernel-image--di directory as well + * copy-modules: Delete unnecessary condition for use of $SOURCEDIR + * Support modules installed under /usr/lib/modules + * copy-modules: Allow providing an alternate depmod command by setting + $DEPMOD + * d/tests: Add test case for install-files + + -- Ben Hutchings Wed, 28 Aug 2024 16:34:42 +0200 + +kernel-wedge (2.105) unstable; urgency=medium + + [ Debian Janitor ] + * Remove constraints unnecessary since buster: + + kernel-wedge: Drop versioned constraint on debhelper in Depends. + * Bump debhelper from old 12 to 13. + * Fix day-of-week for changelog entry 0.9. + * Update standards version to 4.6.1, no changes needed. + + [ Samuel Thibault ] + * Make gbp produce the right tag format. + + [ Bastian Blank ] + * Support compressed modules. + + -- Bastian Blank Thu, 19 Oct 2023 20:11:44 +0200 + kernel-wedge (2.104) unstable; urgency=medium * build-arch, copy-modules: Replace deprecated tempfile command with mktemp @@ -1993,7 +2029,7 @@ - build-all updated, enhanced to generate cross-compiler stubs automatically. - -- Joey Hess Fri, 26 Oct 2003 13:53:06 +0100 + -- Joey Hess Sun, 26 Oct 2003 13:53:06 +0100 linux-kernel-di (0.8) unstable; urgency=low diff -Nru kernel-wedge-2.104/debian/control kernel-wedge-2.106~deb12u1/debian/control --- kernel-wedge-2.104/debian/control 2020-09-23 22:42:04.000000000 +0000 +++ kernel-wedge-2.106~deb12u1/debian/control 2026-06-04 14:48:42.000000000 +0000 @@ -3,15 +3,15 @@ Priority: optional Maintainer: Debian Install System Team Uploaders: Steve Langasek , Ben Hutchings -Build-Depends: debhelper-compat (= 12) +Build-Depends: debhelper-compat (= 13) Rules-Requires-Root: no -Standards-Version: 4.4.1 +Standards-Version: 4.6.1 Vcs-Browser: https://salsa.debian.org/installer-team/kernel-wedge Vcs-Git: https://salsa.debian.org/installer-team/kernel-wedge.git Package: kernel-wedge Architecture: all -Depends: ${misc:Depends}, debhelper (>= 9), make +Depends: ${misc:Depends}, debhelper, make Multi-Arch: foreign Description: udeb package builder for Debian-Installer kernel-wedge splits udeb packages out of a kernel image deb. The udebs diff -Nru kernel-wedge-2.104/debian/gbp.conf kernel-wedge-2.106~deb12u1/debian/gbp.conf --- kernel-wedge-2.104/debian/gbp.conf 1970-01-01 00:00:00.000000000 +0000 +++ kernel-wedge-2.106~deb12u1/debian/gbp.conf 2023-04-22 13:50:10.000000000 +0000 @@ -0,0 +1,2 @@ +[DEFAULT] +debian-tag=%(version)s diff -Nru kernel-wedge-2.104/debian/tests/control kernel-wedge-2.106~deb12u1/debian/tests/control --- kernel-wedge-2.104/debian/tests/control 2019-11-29 18:14:11.000000000 +0000 +++ kernel-wedge-2.106~deb12u1/debian/tests/control 2026-06-04 14:48:42.000000000 +0000 @@ -1,3 +1,7 @@ Tests: preprocess # We don't use gcc but need it to avoid #945772 Depends: diffutils, gcc + +Tests: install-files +Architecture: linux-any +Depends: @, kmod diff -Nru kernel-wedge-2.104/debian/tests/dummy-depmod kernel-wedge-2.106~deb12u1/debian/tests/dummy-depmod --- kernel-wedge-2.104/debian/tests/dummy-depmod 1970-01-01 00:00:00.000000000 +0000 +++ kernel-wedge-2.106~deb12u1/debian/tests/dummy-depmod 2026-06-04 14:48:42.000000000 +0000 @@ -0,0 +1,50 @@ +#!/bin/sh -eu + +# dummy depmod implementation for use in tests. We can't reasonably +# include binary modules as test data, and the real depmod will fail +# if we give it fake module files. +# +# This needs to print some module dependencies rather than just doing +# nothing, because copy-modules reasonably treats that as an error. + +basedir= +dry_run= +installedname= + +while [ $# -gt 0 ]; do + case "$1" in + -b) + basedir="$2" + shift 2 + ;; + -n) + dry_run=y + shift + ;; + -*) + echo >&2 "$0: unsupported option $1" + exit 2 + ;; + *) + if [ "$installedname" ]; then + echo >&2 "$0: multiple versions given" + exit 2 + fi + installedname="$1" + shift + ;; + esac +done + +if [ -z "$dry_run" ]; then + echo >&2 "%0: missing option -n" + exit 2 +fi + +lastpath= +find "$basedir/lib/modules/$installedname" -name '*.ko*' -printf '%P\n' \ +| LC_COLLATE=C.UTF-8 sort \ +| while read path; do + echo "$path: $lastpath" + lastpath="$path" +done diff -Nru kernel-wedge-2.104/debian/tests/install-files kernel-wedge-2.106~deb12u1/debian/tests/install-files --- kernel-wedge-2.104/debian/tests/install-files 1970-01-01 00:00:00.000000000 +0000 +++ kernel-wedge-2.106~deb12u1/debian/tests/install-files 2026-06-04 14:48:42.000000000 +0000 @@ -0,0 +1,48 @@ +#!/bin/sh -eu + +arch="$(dpkg --print-architecture)" +version=1.2.3 +flavour=generic +installedname=$version-$flavour +tests_dir="$PWD/debian/tests" + +# Create source package directory +mkdir -p "$AUTOPKGTEST_TMP/package/debian" +cd "$AUTOPKGTEST_TMP/package" + +# Install k-w configuration and point to it +cp -R "$tests_dir/install-files-config" debian/installer +mv debian/installer/modules/any debian/installer/modules/$arch +echo >debian/installer/kernel-versions "$arch - $flavour - - -" +export KW_DEFCONFIG_DIR="$PWD/debian/installer" +export KW_CONFIG_DIR="$KW_DEFCONFIG_DIR" + +# Create debian/control +echo >debian/control 'Source: linux' +kernel-wedge gen-control $version >>debian/control + +export SOURCEDIR="$PWD/debian/build/install" +for moddir in /lib/modules/$installedname /usr/lib/modules/$installedname; do + echo "I: Testing with modules in $moddir" + for file in /boot/vmlinuz-$installedname \ + $moddir/modules.builtin \ + $moddir/modules.order \ + $moddir/kernel/drivers/dummy/dummy-core.ko.xz \ + $moddir/kernel/drivers/dummy/dummy-drv.ko.xz; do + mkdir -p "$SOURCEDIR${file%/*}" + touch "$SOURCEDIR$file" + done + DEPMOD="$tests_dir/dummy-depmod" kernel-wedge install-files $version + cat >"$AUTOPKGTEST_TMP/expected-files" < ($ENV{KW_CONFIG_DIR} || '.'); +use constant MODULE_FILENAME_RE => '\.ko(?:\.(?:xz|zstd))?$'; + sub read_package_list { my ($packages, $order, $file) = @_;