main/postmarketos-base: don't depend on alpine-base

alpine-base directly depends on openrc. We have had different[1]
conversations[2] with upstream. And the main conclussion[3] has been:
if you want to do something different, just depend on things
yourself. This is indeed what docker images do. So let's just get the
things that we want from alpine base (quite some!), and ignore what we
don't want (openrc, busybox openrc and init packages). Up until commit
12d125ab8b72f0249fd6aae000170a4fa78a83ab in pmbootstrap every
postmarketOS installation would have alpine-base in
/etc/apk/world. Therefore, we add a versioned provides to
postmarketos-base with a very high version, which conflicts with the
upstream version but should be chosen instead.

alpine-conf is now a dependency of postmarketos-base-openrc, since it
dependes on openrc for calling setup-*
scripts. postmarketos-base-systemd already implements those needed.

Contrary to the first attempt[4], I have kept the dependency on
alpine-release. Changes to that are independent to the usr-merge, and
can be done as a follow-up.

This should allow to drop the fork of alpine-base currently in the
systemd-extra repository!

To this day, every single pmOS installation will have alpine-base in
the world file, which means that systemd installs will the forked
package until users specifically run "apk del alpine-base". We must
add this to release notes and to an edge blog post. Alternatively we
could have an empty package with a very high version providing
alpine-base. This also means that to get installs to work, we need a
pmbootstrap release with[5] on it.

[1] https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/63935
[2] https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/71686
[3] https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/71686#note_435428
[4] https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/5026
[5] https://gitlab.postmarketos.org/postmarketOS/pmbootstrap/-/merge_requests/2580

Fixes #2806

Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6475
This commit is contained in:
Pablo Correa Gómez
2025-05-15 10:22:04 +02:00
committed by Pablo Correa Gómez
parent a00d027b40
commit 196748d419
2 changed files with 23 additions and 4 deletions
+21 -2
View File
@@ -1,15 +1,23 @@
pkgname=postmarketos-base
pkgver=44
pkgrel=2
pkgrel=3
pkgdesc="Meta package for minimal postmarketOS base"
url="https://postmarketos.org"
arch="noarch"
license="GPL-3.0-or-later"
makedepends="postmarketos-initramfs"
# Several of these dependencies come from alpine - base, as the upstream
# recommendation to not depend on openrc has been to copy them here:
# https: // gitlab.alpinelinux.org/alpine/aports/-/merge_requests/71686#note_435428
depends="
alpine-base
alpine-baselayout
alpine-release
apk-tools
busybox
busybox-suid
devicepkg-utils>=0.2.0
eudev
musl-utils
openssh-server-pam
postmarketos-keys
postmarketos-mvcfg
@@ -41,6 +49,14 @@ replaces="
"
replaces_priority=100 # leave plenty for alpine
# Every postmarketos installation with pmbootstrap <= 3.3.2 has
# alpine-base in /etc/apk/world. But for multiple reasons, we do not
# want to depend on it. So have a versioned provides that conflicts
# with it. See the commit that introduced this message for more details
# THE LINE BELOW MUST NOT BE REMOVED UNTIL WE ARE READY TO DEPEND ON
# alpine-base AGAIN
provides="alpine-base=1000-r0"
_source440="
etc/sudoers
etc/doas.d/10-postmarketos.conf
@@ -160,6 +176,9 @@ openrc() {
"
depends="
!systemd
alpine-conf
busybox-mdev-openrc
busybox-openrc
eudev-openrc
logbookd
logbookd-openrc
+2 -2
View File
@@ -1,7 +1,7 @@
# Reference: https://postmarketos.org/pmaports.cfg
[pmaports]
version=7
pmbootstrap_min_version=2.3.2
pmbootstrap_min_version=2.3.3
channel=edge
supported_root_filesystems=btrfs,ext4,f2fs
supported_firewall=nftables
@@ -15,7 +15,7 @@ supported_heimdall_depends=heimdall,android-tools
[repo:systemd]
pmaports_dir=systemd
# Build forks of Alpine packages that support usr_merge
bootstrap_1=abuild alpine-base
bootstrap_1=abuild
bootstrap_2=systemd
# Build systemd related pkgs without deps on each other
bootstrap_3=dbus linux-pam-pmos