allow multiple slices with the same content paths to co-exist within the same Chisel release
- Dominant language
- Go
- Stars
- 424
- Forks
- 65
- Avg merge
- 12d 19h
- Merged PRs (30d)
- 1
Description
### Diffs between `dotnet-host-7.0` and `dotnet-host` SDFs
```
package: dotnet-host-7.0 | package: dotnet-host
slices: slices:
bins: bins:
essential: essential:
- libc6_libs - libc6_libs
- libgcc-s1_libs - libgcc-s1_libs
- libstdc++6_libs - libstdc++6_libs
contents: contents:
/usr/lib/dotnet/dotnet: /usr/lib/dotnet/dotnet:
```
### Problem
By design, Chisel is currently looking at the entire Chisel release to catch any conflicts [1]. The reason why it was designed this way was to cope with people doing `/usr/lib/*` in their slices, thus avoiding the produced outputs from growing unbounded as fat packages change.
In practice, this means that even if we’re just installing .NET7, Chisel will still complain about conflicts with .NET6, even though it is not targeted. And that’s because `dotnet-host-7.0` and `dotnet-host` both have the same content path.
### Reproduce
Copy the two SDFs from above, into an existing chisel-release (tested with `kinetic`), as `slices/dotnet-host-7.0.yaml` and `slices/dotnet-host.yaml`, respectively.
Then run
```bash
$ chisel cut --release ./ --root rootfs base-files_base
```
And you’ll get
> 2023/02/03 12:36:33 Processing ./ release...
> error: slices dotnet-host_bins and dotnet-host-7.0_bins conflict on /usr/lib/dotnet/dotnet
**Chisel version:** https://github.com/canonical/chisel/tree/bd27f8700cd7d2a6b4e0df6b10c3761c83a70485
### Refs
[1] https://github.com/canonical/chisel/blob/main/internal/setup/setup.go#L154
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.