usr-merge preparations
This MR is designed to prepare for the testing of /usr merge. This MR has several distinct parts that could potentially be merged independently:
The introduction of postmarketos-base-init provider
(This is the first 4 commits)
This is necessary so that postmarketos-base-openrc no longer is installed through an install_if, but through an "init" provider. This is what later allows the removal of the openrc dependency from postmarketos-base
Tests (upgrade tests after first rework was not done for this intermediate step):
-
openrc upgrades: the postmarketos-base-openrc remains installed, moves from being an "install_if", to be there because it fulfills the postmarketos-base-init requirements. -
systemd upgrades: postmarketos-base-systemd is still in /etc/apk/world, and it fulfills the new dependency in postmarketos-base. Nothing happens. -
openrc installs: pmbootstrap will choose postmarketos-base-openrc as it's the only thing that is in the repository that fulfills the condition. If both postmarketos-base-openrc and postmarketos-base-systemd where there, I'm not 100% sure of which would be selected. The one with the higher version? -
systemd installs: postmarketos-base-systemd is installed before anything else is. That means, postmarketos-base-init will already be satisfied when postmarketos-base gets installed, and openrc will not be installed
The removal of alpine-base dependency
And thus the hard-coding of openrc generally for postmarketOS. When there is no systemd, openrc is still pulled, but the dependency chain changes:
- From
pmos-base->alpine-base->openrc - To
pmos-base->pmos-base-init->pmos-base-openrc->openrc
This part can be helped with pmbootstrap!2580 (merged)
Tests:
-
openrc upgrades: if people have alpine-basein their/etc/apk/world, it will remain installed. This is not an issue. I had it from the thousand tests I've run for this for several months -
systemd upgrades: Minor issue: due to alpine-basebeing installed in every chroot from pmbootstrap, the forked alpine-base version won't be removed. I've tried adding!alpine-basetopostmarketos-basedependencies, but that doesn't work . Ideas:- Ask everybody to remove manually in an edge blog post, and release notes, once we have a release with /usr merge
- Just keep it there forever? Does it hurt?
-
openrc installs: nothing unexpected -
systemd installs: alpine base does not get install, all goes perfect!
Edited by Clayton Craft