Chapter 5. Maintenance of the installer

Table of Contents

5.1. Updating to a new Linux kernel version
5.2. Dropping a deprecated filesystem

This document only provides an introduction to some tasks required to keep the installer up and running. It should be mostly helpful for d-i release managers.

5.1. Updating to a new Linux[8] kernel version

This is possible when the linux package gets uploaded, bumping its ABI. For example, it gets bumped from 3.9-1 to 3.10-1. This becomes needed when the linux-latest package gets uploaded, since obsolete linux-image-<oldabi>-<arch> packages (and relevant kernel modules) get decrufted soon after that. Daily builds start to fail to build at this point, failing to fetch decrufted packages.

A cron job on d-i.debian.org generates an linux kernel ABI summary for the testing, unstable, and experimental suites, and also sends a notification when the ABI gets bumped in any of them. The summary is available here: https://d-i.debian.org/kernel-summary.html

The following files need to be updated: build/config/*.cfg; beware, some architectures have specific version handling, so it might be needed to update some extra variables (like the upstream kernel version), rather than only those containing the kernel ABI.

5.2. Dropping a deprecated filesystem

This is needed when the kernel drops support for a filesystem, say foofs; on the kernel side, that means the following packages go away: foofs-modules-<abi>-<arch>. Kernel maintainers should send a notification to the mailing list in advance.

From a quick grep under the packages/ directory, it appears that the following changes are needed. This list isn't ensured to be exhaustive:

  1. Drop all foofs-modules-${kernel:Version} occurrences from the files under the build/config/ directory.
  2. Get partman-foofs removed from the archive.
  3. Move the partman-foofs.git repository below the attic/ directory.
  4. Update the top-level .mrconfig file to mark the said repository as obsolete, adding deleted = true to its section.
  5. Update kernel-wedge if relevant. FIXME: Find out when that's needed, and what's needed.
  6. Update iso-scan to drop foofs from the FS variable in the debian/iso-scan.postinst script.
  7. Update partman-auto to drop foofs from the lib/resize.sh script.
  8. Update os-prober to drop foofs from the FILESYSTEMS variable in the os-probes/init/common/10filesystems file.
  9. Update partconf to drop foofs from the file_system_modules variable, but there might be some more occurrences.
  10. Update rescue to drop relevant dependencies, and remove try_load_module foofs from debian/rescue-mode.postinst accordingly.



[8] The same logic should be applicable to the FreeBSD kernel, even if some details might be different.