Simplify usage of Replaces
This draft is intended to fix a long standing paper-cut where any use of "Replaces" always requires at least one other field. Notably the trivial case of wanting to move a file between two packages requires:
Breaks: foo (<< 1.0~) Replaces: foo (<< 1.0~)
It should not require specifying the same value in 2-3 fields to get what you want. Especially, when the absence of these "unrelated" fields have non-obvious effects.
Current usages of Replaces:
- Move a file from package A to Package B: Requires Breaks + Replaces, where Replaces should be sufficient in the general case.
- There can be cases where the Breaks is still needed if the version in the Replaces would not be the same version that Breaks the package (or if there is a Breaks for "unrelated" reasons).
- Exclusive providing a package/feature X: This requires the magical combination of "Replaces + Conflicts + Provides". It would be a lot simpler if one could simply use "Provides-Exclusively" (or "Exclusively-Provides", etc.)