At this point, the two variants have to be supported, at least as installation targets of Debian packages.
Two initiatives are worth mentioning at this point:
- * [a patch][https://lists.debian.org/20181202212535.GC11687@gaara.hadrons.org] has been proposed for dpkg-buildpackage to mark packages built on "merged `/usr`" hosts with a `Build-Tainted-By: merged-usr-via-symlinks`;
- * the reproducible builds team has added a "merged `/usr`" variation to their setup, and have then [tagged][https://tests.reproducible-builds.org/debian/issues/unstable/paths_vary_due_to_usrmerge_issue.html] the Debian packages from unstable which had differences due to "merged `/usr`". It seems that ~61 packages were affected by differing builds; 32 from these have been fixed in unstable already.
+ * [a patch](https://lists.debian.org/20181202212535.GC11687@gaara.hadrons.org) has been proposed for dpkg-buildpackage to mark packages built on "merged `/usr`" hosts with a `Build-Tainted-By: merged-usr-via-symlinks`;
+ * the reproducible builds team has added a "merged `/usr`" variation to their setup, and have then [tagged](https://tests.reproducible-builds.org/debian/issues/unstable/paths_vary_due_to_usrmerge_issue.html) the Debian packages from unstable which had differences due to "merged `/usr`". It seems that ~61 packages were affected by differing builds; 32 from these have been fixed in unstable already.
## The long-term desireable situation
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 three possible situations for the fleet of bullseye (buster + 1) hosts:
-
-* `none`: "merged `/usr`" has been reverted; no bullseye hosts have `/{bin,sbin,lib}/`→ `/usr/{bin,sbin,lib}/` symlinks; only `cat` only exists at `/bin/cat`;
-* `weak`: bullseye hosts can have any of "merged `/usr`" or "classical" directory schemes; official packages are only built on "classical" directory schemes; packages built on "merged `/usr`" are allowed to break on "classical" directory schemes.
-* `hard`: bullseye hosts can have any of "merged `/usr`" or "classical" directory schemes; official packages are built on either "merged `/usr`" or "classical" directory schemes; packages built on either are forbidden to break on either directory schemes.
-* `all`: bullseyes hosts all have "merged `/usr`"; official packages are built on "merged `/usr`"; packages built on "classical" directory schemes are allowed to break on "classical" directory schemes.
+These are the five possible situations at the time of bullseye (buster + 1):
+
+* `none`: "merged `/usr`" has been happened
+* `weak`: both directory schemes are allowed, packages only built on classical hosts
+* `hard`: both directory schemes are allowed, packages can be built anywhere
+* `all` : only "merged `/usr`" directory schemes are allowed, packages only built on "merged `/usr`" hosts
+* `full`: only "merged `/usr`" directory schemes are allowed, symlinks have been removed
+
+It can be summarized by the following table:
+
+| | Host types that are allowed | Are merged-/usr | Official packages are built on | Packages built on … can break on the other |
+| 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 |
+| weak | yes | yes | yes | yes | no | no | yes |
+| hard | yes | yes | yes | yes | yes | no | no |
+| all | no | yes | yes | no | yes | yes | no |
+| full | no | yes | no | no | yes | yes | yes |
## Immediate actions