* having separate `/` and `/usr` filesystems has been useful in the past for booting without initramfs onto a minimal root filesystem that carried just enough to mount the `/usr` filesystem later in the boot process. Given the evolution of physical hosts' capabilities, initramfs'es have been default in Debian (and elsewhere) for a long time, and most systems no longer have an intermediate state during boot in which they have only `/`, but not `/usr`, mounted. Booting hosts through that intermediate state is not systematically tested in Debian anymore.
* another use-case is to share system files from `/usr` between hosts (over a network link) or containers (locally) which use different data or configuration. Having all software under `/usr` (instead of spread between `/` and `/usr`) makes the centralized update and the sharing easier.
-* the packaging infrastructure to install files outside of `/usr` is not standard and represents technical debt:
+* the packaging infrastructure to install files outside of `/usr` (e.g. installing libs under `/lib` instead of `/usr/lib`) is not standard and represents technical debt.
* given its status as remnant "folklore", the distinction between what _needs_ to be shipped in `/` and what can stay in `/usr` is often interpreted arbitrarily;
* allowing shipment of identically-named libraries or binaries in different paths can confuse common understanding of paths precedence.
Various valid long-term desireable situations coexist, and while discussing immediate countermeasures, it is useful to keep the long-term outcome that those are most likely to produce.
-These are the five possible situations at the time of bullseye (buster + 1):
+These are the six possible situations at the time of bullseye (buster + 1):
* `none`: "merged `/usr`" has been reverted
+* `empty`: "merged `/usr`" has been reverted, `/usr` is empty (but the mandatory files)
* `weak`: both directory schemes are allowed, packages only built on classical hosts
* `middle`: both directory schemes are allowed, packages can be built anywhere
* `hard`: both directory schemes are allowed, packages only built on "merged `/usr`" hosts
| Codename | classical hosts | merged `/usr` hosts | symlinks allowed | classical hosts | merged `/usr` hosts | classical hosts | merged `/usr` hosts |
|----------|-----------------|---------------------|-------------------|—----------------|---------------------|---------------------|----------------------|
| none | yes | no | no | yes | no | yes | yes |
+| empty | yes | no | no | yes | no | yes | no |
| weak | yes | yes | yes | yes | no | no | yes |
| middle | yes | yes | yes | yes | yes | no | no |
| hard | yes | yes | yes | no | yes | no | no |