# Maintenance of the installer

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.

## Updating to a new Linux

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

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:

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.

## 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.