Skip to content
Snippets Groups Projects
Commit e7881598 authored by Arnaud Ferraris's avatar Arnaud Ferraris Committed by Emanuele Aina
Browse files

coreutils-replacement: update to reflect current state


Signed-off-by: default avatarArnaud Ferraris <arnaud.ferraris@collabora.com>
parent 0bd11346
No related branches found
No related tags found
1 merge request!270coreutils-replacement: update to reflect current state
Pipeline #264117 passed with warnings
......@@ -304,13 +304,19 @@ As part of an initial test using `uutils-coreutils` the following steps have bee
These initial results are promising, however more detailed tests should be planned and executed to spot potential issues.
# Migration
Since `coreutils-gplv2` is a base package special care should be taken. Also the fact that it is outdated adds additions possible security issues, which should be addressed in the short term.
The following guidelines will be followed to assure a smooth transition minimizing risks.
As of `v2022dev3`, `uutils-coreutils` is the default `coreutils` implementation shipped on the Apertis reference images for devices, while GNU coreutils remains in use in the package building pipelines and on the SDK images. This work involved importing
Debian's [`rust-coreutils`](https://tracker.debian.org/pkg/rust-coreutils) package along with its dependencies.
- Determine the list of tools supported and successfully tested provided by `uutils-coreutils`.
- Create a new package based on `uutils-coreutils` named `coreutils-uutils` with all the tools that are supported and successfully tested.
- For missing tools a replacement will be provided on case by case basis.
- Generate APT and OSTree based images for target and minimal configuration.
The upstream Debian package isn't aimed at replacing `coreutils` yet, meaning some packaging changes were necessary to get Apertis images
to build using `rust-coreutils` only:
- Change the package's priority from `optional` to `required`: this ensures `debootstrap` will pick up this package when bootstrapping the system
- Add Conflicts/Breaks/Provides/Replaces relationships so all dependencies are satisfied and conflicting packages (such as `coreutils-gplv2`) cannot be installed
- Install the binaries to `/bin` and `/usr/bin` instead of `/usr/libexec/rust-coreutils`
Due to the [Apertis release flow]( {{< ref "release-flow.md" >}} ) this process will start on development releases allowing any potential issue to be addressed before a stable point release, with the possibility of switching back to `coreutils-gplv2` if a proper fix cannot be implemented on time.
Additionally, a few patches were necessary to implement missing command-line options and most of them are in the process of being upstreamed.
Some of our patches still require more work, especially regarding SELinux-related options: for now, we made sure the corresponding command-line
options would be recognized, but the associated behavior isn't implemented yet.
Since SELinux is not used in Apertis this was enough to ensure images could be built successfully, but these patches are not suitable for upstreaming. Implementing full SELinux support is not currently in the scope of Apertis, maintaining the downstream patches until upstream implements proper support is not going to be particularly problematic.
`coreutils-gplv2` have been consequently removed from Apertis `v2022dev3` and later repository.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment