Carefully But Purposefully Oxidising Ubuntu

The alternatives system doesn’t work here because the existing package would need to cooperate, and that makes exploring awkward. Diversions would work, and be preserved across upgrades, but are basically the same thing otherwise (renaming the files).

As for doing this in the archive, see below…

I do not believe we should allow users to select between Rust and non-Rust versions at a per-command level, this will make the resulting systems hard to support - you never know which version the user picked, and these are very low-level tools and if you are looking at bugs 100 layers of indirection up, you might not realize the user is using a different version of a given command.

What I believe we will end up needing to do is roughly:

  • Rename coreutils to gnu-coreutils, add Replaces/Provides/Conflicts: coreutils
  • Add a new transitional package coreutils that Depends: rust-coreutils

You can also change GNU coreutils to build with a g prefix so you get gsha256sum and friends and it would be co-installable (but then if you wanted to fully switch back, that would need yet another package with a symlink farm).

7 Likes