Opened 5 years ago
[Package Manager] Make system updates robust wrt. format changes
|Reported by:||bonefish||Owned by:||bonefish|
|Has a Patch:||no||Platform:||All|
Package or repository format changes can currently easily break the system update support. If a new mandatory feature is introduced -- e.g. support for a new compression algorithm -- an older Haiku won't be able to read packages using that feature. Since the update process requires the packages to be readable to be installed, updating to a Haiku version with packages using that feature isn't possible.
The introduction of those features will happen inevitably, so it would be wise to implement a mechanism that allows updating the system beyond such a feature barrier as soon as possible.
I think a first step should be to extend the repository format to contain either the maximum format version of the contained packages (respectively for each package the format version) or the Haiku version it is backward compatible to. This way the package manager would at least know up front whether using that repository for an upgrade is possible at all.
The next step is to implement some kind of trampoline update mechanism. We first need to activate code that supports the new format. Thereafter we can perform the actual update. Since the package management code isn't some self-contained module/package (yet?) it isn't as simple as updating to a new version of that module.