pmaports/main/postmarketos-base/APKBUILD
Minecrell 5f140538bf
main/postmarketos-base: install mesa-dri-gallium only if needed (MR 3478)
At the moment almost all device packages force installation of the Mesa
drivers, even when they are not used by any application (for example on
a minimal headless installation with "none" or "console" UI).
Omitting mesa-dri-gallium from such installations saves about ~150 MiB
of disk space (469 MiB -> 317 MiB rootfs for minimal installation on
arrow-db410c).

The "classic" drivers have been removed from Mesa so only one mesa-dri-
package exists now: mesa-dri-gallium contains all Mesa drivers,
llvmpipe, freedreno, lima, panfrost, Intel (iris/crocus), ...

This means we can easily create an install_if package in
postmarketos-base that installs that driver package only if needed
(= only if another package requires the "mesa" package).

Strictly speaking the install_if could be restricted further since
mesa-dri-gallium is only needed by "mesa-egl", "mesa-gbm" and "mesa-gl"
but not e.g. the Vulkan drivers. Having three postmarketos-base
subpackages (one install_if for each of them) seems a bit
overengineered, though. "mesa" is a common dependency of all three
of them, so using install_if="... mesa" should be good enough.
2022-10-11 11:19:30 +02:00

136 lines
5.1 KiB
Text

pkgname=postmarketos-base
pkgver=23
pkgrel=0
pkgdesc="Meta package for minimal postmarketOS base"
url="https://postmarketos.org"
arch="noarch"
license="GPL-3.0-or-later"
depends="
alpine-base
eudev
openssh
postmarketos-mkinitfs
postmarketos-mvcfg
postmarketos-keys
sudo
"
install="$pkgname.post-install $pkgname.pre-upgrade $pkgname.post-upgrade"
triggers="$pkgname.trigger=/etc"
subpackages="
$pkgname-mesa
$pkgname-nftables
$pkgname-nofde
"
options="!check"
# alpine-base and busybox-initscripts can be removed from here after 23.01 is out
replaces="
alpine-base
alpine-baselayout
alpine-baselayout-data
alpine-release
busybox-initscripts
busybox-openrc
openrc
sudo
"
replaces_priority=100 # leave plenty for alpine
_source440="
etc/sudoers
"
_source644="
etc/conf.d/bootmisc
etc/conf.d/swapfile
etc/conf.d/syslog
etc/fstab
etc/issue
etc/motd
etc/os-release
etc/sysctl.d/disable-rp-filter.conf
lib/udev/rules.d/20-tm2-touchkey-input.rules
lib/udev/rules.d/20-tm2-touchkey-leds.rules
lib/udev/rules.d/20-zinitix-input.rules
lib/udev/rules.d/50-firmware.rules
"
_source755="
etc/init.d/deferred-initcalls
etc/init.d/swapfile
sbin/swapfile
usr/lib/firmwareload.sh
"
# Avoid filename based checksum conflicts by including the whole path:
# https://gitlab.alpinelinux.org/alpine/abuild/-/issues/10013
flatpath() {
local i
for i in $@; do
echo "rootfs-$i" | sed s./.-.g
done
}
source="$(flatpath $_source440 $_source644 $_source755)"
prepare() {
default_prepare
# setterm -powersave on -blank 5
echo -ne "\033[9;5]" >> rootfs-etc-issue
}
package() {
local i
for i in $_source440; do
install -Dm440 "$srcdir/$(flatpath "$i")" "$pkgdir/$i"
done
for i in $_source644; do
install -Dm644 "$srcdir/$(flatpath "$i")" "$pkgdir/$i"
done
for i in $_source755; do
install -Dm755 "$srcdir/$(flatpath "$i")" "$pkgdir/$i"
done
postmarketos-mvcfg-package "$pkgdir" "$pkgname"
}
mesa() {
replaces=""
depends="mesa-dri-gallium"
install_if="$pkgname=$pkgver-r$pkgrel mesa"
mkdir "$subpkgdir"
}
nftables() {
install_if="$pkgname=$pkgver-r$pkgrel nftables"
depends="postmarketos-config-nftables"
install="$subpkgname.post-install"
mkdir "$subpkgdir"
}
nofde() {
# dummy package that satisfies the unlocker dependency for mkinitfs without
# installing anything for systems that don't use fde
provides="postmarketos-fde-unlocker"
provider_priority=1
mkdir "$subpkgdir"
}
sha512sums="
e529f5cef1f31481b577f99b8917704f2cfefb963d98bf40a14b017938e55a00134d2033f81d2cb0b8489c5e9b4a92fdc0a788013f1adb4cd46d9580c9988186 rootfs-etc-sudoers
a5c6bfaf6ee41f9623f463b64dab95924453d7b70bdd114cc441be9fc68fb6b0e042ae3163ec357d0dd6db93767232224b8c03df29f2cadf3ac2c6e2c998784f rootfs-etc-conf.d-bootmisc
e0d2d48b82a03239a4c0a00acaf83e00d397c23a8d7c71053d4e2a383357c22dcedef9e81b0e12a1d7514e1fdbe0bb3eb82613d18b29034a7ce5447f13c84a53 rootfs-etc-conf.d-swapfile
e4576c58c35f80bedddb1e89e186f37d31a186d3e9eb046581b8c5d7b7d435e18924539e851d3e67dc0ede80f9d44d16bd9ef52e73350d3f13224edc31d73a34 rootfs-etc-conf.d-syslog
9b8d0493bb64457fe176fea801e0771d3c5279302c61559824bf81b3d2b66d2c1e076f4aaac65f55389005acb18c27e44bed858c2bdbad37d74199f07c86c354 rootfs-etc-fstab
45bd0742a64a9d3c4a88e152b97edcf3fa1edca28884f9ea69e7c4c365f1e41ef9056dbe204545de7d4b2ba92e1e5872b2a929c2dcc1dd468e627cc3f090b8e6 rootfs-etc-issue
01403df3b5a2be0dd70387a3c32cf24a77bc097679fbefca585082a0970b7d756723c33687be3809351b5e31c85947db84861118bfeced8f5f865fe2452555ec rootfs-etc-motd
093c201f0c7aa203df447f2a8c27e5834520a7016ce2934ddc35fb037d2ec9acf0f7df7c06e07ad24ba7b4d94ef21fe7ff848c58bd62277eeeb08659fbddf1e9 rootfs-etc-os-release
b70ee1b39b5f33c9a3e6bf4259158519691c82c8cefb700d4df49eb749a2cce208082e00d4905b9eea2c4f75b6da62f73931931c92157b4132adb35dcf0e0a6f rootfs-etc-sysctl.d-disable-rp-filter.conf
01e042b5433a042d5100e21835c165866be14707f5c6ac7a857ec33e43ce40f470183d36a8e9ad201e00d9630b235f02dc00b3abcc1f25f814bc01c58c8f07e3 rootfs-lib-udev-rules.d-20-tm2-touchkey-input.rules
de4d8f258cb2ce654be15abe0188caa6ca9cc163fd45350f2025e7e9d043878e3f1202ef9033b1b15d7e18c4b40c3b19db387ee050a3baf03c4bd4293f4721e3 rootfs-lib-udev-rules.d-20-tm2-touchkey-leds.rules
1972174b97a99bcc58e87b3e093bdef260054f6aee1c1c345842a53991c2d5faf1b1ebc3c97f9dcf230f4d73ec06e27bf8ca3776527f999e3fd95877ff66d25b rootfs-lib-udev-rules.d-20-zinitix-input.rules
0b098828080055d3646ea54891cb0e1b578cbc30f5e16f7284f2814c08192f18079a38fb686d192715ae6a3d2cd6625d9e3cf99f234a6f0d94088bb0cb2ce43d rootfs-lib-udev-rules.d-50-firmware.rules
5fd6dd7f9941e975a6ce559924eb252606943276dc09455bbeb05ff718ecd28f20a08eee8e04ca580e5af71d4c944c256ec04f07b07286394f5dfedfa59273e7 rootfs-etc-init.d-deferred-initcalls
f5cc0f1265955d2646e5f099dd4b5d4c287945bfc18c16044db57670d456f55c678fc11cc59e6dab3fa340832ce869d516302a3a35c13518539ed0cedca51819 rootfs-etc-init.d-swapfile
3ceeee37f558e7c95ad973692b6a437f997e6b46c3d1c2257ddfb1529a5633477373aa123c7f08164e818daae50acb203d151379f27ca11bd458809e6a0d4de7 rootfs-sbin-swapfile
38dc75c0ed32b76dccd3d8e7e8173e8b7d91847cf2b07123f376b95af46b4f89798b24f45302a0726fdc1cf253aecaac140f431735ac5c6511553f790badd0af rootfs-usr-lib-firmwareload.sh
"