pkgname=postmarketos-base
pkgver=7
pkgrel=0
pkgdesc="Meta package for minimal postmarketOS base"
url="https://postmarketos.org"
arch="noarch"
license="GPL-3.0-or-later"
depends="
	alpine-base
	chrony
	cryptsetup
	dnsmasq
	eudev
	haveged
	networkmanager
	openssh
	postmarketos-mkinitfs
	postmarketos-mvcfg
	shadow
	sudo
	util-linux
	wpa_supplicant
	"
install="$pkgname.post-install $pkgname.pre-upgrade"
triggers="$pkgname.trigger=/etc"
subpackages="
	$pkgname-elogind
	$pkgname-tinydm
	$pkgname-x11
	"
options="!check"
replaces="
	alpine-base
	alpine-baselayout
	busybox-initscripts
	chrony
	sudo
	wpa_supplicant-openrc
	"
replaces_priority=100  # leave plenty for alpine

_source044="
	etc/sudoers
	"
_source644="
	etc/NetworkManager/conf.d/00-postmarketos.conf
	etc/chrony/chrony.conf
	etc/conf.d/swapfile
	etc/conf.d/syslog
	etc/conf.d/tinydm
	etc/conf.d/wpa_supplicant
	etc/elogind/logind.conf
	etc/fstab
	etc/issue
	etc/motd
	etc/sleep-inhibitor.conf
	etc/udev/rules.d/50-firmware.rules
	etc/os-release
	"
_source755="
	etc/init.d/deferred-initcalls
	etc/init.d/devmappings
	etc/init.d/swapfile
	etc/polkit-1/rules.d/50-org.freedesktop.NetworkManager.rules
	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 $_source044 $_source644 $_source755)"

prepare() {
	default_prepare

	# setterm -powersave on -blank 5
	echo -ne "\033[9;5]" >> rootfs-etc-issue
}

package() {
	local i
	for i in $_source044; do
		install -Dm044 "$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"
}

x11() {
	install_if="$pkgname=$pkgver-r$pkgrel xorg-server"
	depends="
		libinput
		xf86-input-libinput
		xf86-video-fbdev"
	mkdir "$subpkgdir"
}

elogind() {
	install_if="$pkgname=$pkgver-r$pkgrel elogind"
	depends="sleep-inhibitor"
	install="$subpkgname.pre-upgrade $subpkgname.post-install"
	replaces="
		elogind
		sleep-inhibitor
		"

	amove etc/elogind/logind.conf
	amove etc/sleep-inhibitor.conf

	postmarketos-mvcfg-package "$subpkgdir" "$subpkgname"
}

tinydm() {
	install_if="$pkgname=$pkgver-r$pkgrel tinydm-openrc"
	replaces="tinydm-openrc"
	amove etc/conf.d/tinydm
}

sha512sums="e529f5cef1f31481b577f99b8917704f2cfefb963d98bf40a14b017938e55a00134d2033f81d2cb0b8489c5e9b4a92fdc0a788013f1adb4cd46d9580c9988186  rootfs-etc-sudoers
67a031f309a3232ac1e8abc3fedeaee912c035f9c81b4f709248895905a27ab5844ec92c65e55b79af3894450ba3883549d4004f11efebb47114d41f730e4a5f  rootfs-etc-NetworkManager-conf.d-00-postmarketos.conf
e5d049db1d82c510bab9246208b51b8ec2711d008d67792fc10d4c0b65ed4dece7b5ae3c3dd28a8539d177b6849c1f921cb9fef3d2c7bee0355451f7b4757ec6  rootfs-etc-chrony-chrony.conf
e0d2d48b82a03239a4c0a00acaf83e00d397c23a8d7c71053d4e2a383357c22dcedef9e81b0e12a1d7514e1fdbe0bb3eb82613d18b29034a7ce5447f13c84a53  rootfs-etc-conf.d-swapfile
e4576c58c35f80bedddb1e89e186f37d31a186d3e9eb046581b8c5d7b7d435e18924539e851d3e67dc0ede80f9d44d16bd9ef52e73350d3f13224edc31d73a34  rootfs-etc-conf.d-syslog
44e4283c6f77de83915977dd3bc2d8e2d96b3ed6cc68d3cc156304359ae649b5a8b0bac843e517ec6faa2066dd43ba85e313899b1eda04862f864fb9eb508aa0  rootfs-etc-conf.d-tinydm
fe0651904c1f40ffa67d83daca190af199f63247e53642a59a1e1147cd06776fcf20b7b2fcc5373783d50b8bd6ce8d1354c8e5f4d582d319727b9ceefd1e8e16  rootfs-etc-conf.d-wpa_supplicant
8d2c54fe3ca62c62f8337fb6be28479d0e02ea63f32abae81907f2768631e65c9e17485f8bc0854a013377f729b06dd1873e2b75f86f657ece866d00aecbbdb4  rootfs-etc-elogind-logind.conf
9b8d0493bb64457fe176fea801e0771d3c5279302c61559824bf81b3d2b66d2c1e076f4aaac65f55389005acb18c27e44bed858c2bdbad37d74199f07c86c354  rootfs-etc-fstab
45bd0742a64a9d3c4a88e152b97edcf3fa1edca28884f9ea69e7c4c365f1e41ef9056dbe204545de7d4b2ba92e1e5872b2a929c2dcc1dd468e627cc3f090b8e6  rootfs-etc-issue
2989a2701d96c496bcdb536ce93984c75604e7b248d427f7b7106ea1946760549d4c29590257a598c9ad8d3fa88735d9b168dbda28c2294816065acdbab2e93f  rootfs-etc-motd
041e50a7f78f7f03153175027439fc203f3dc81ed9970c579a16728d36e006e77f49b0321ee4bb7bb127fa6e4c31de3e7029f80ea75c4afc83bae7d24906372d  rootfs-etc-sleep-inhibitor.conf
0b098828080055d3646ea54891cb0e1b578cbc30f5e16f7284f2814c08192f18079a38fb686d192715ae6a3d2cd6625d9e3cf99f234a6f0d94088bb0cb2ce43d  rootfs-etc-udev-rules.d-50-firmware.rules
75451751862a084415212bf2f90fdb4dac6a75bb063a411e15c9060f8c7f0b0b8c994dd6ba964d00a249eb80f5a0665d9cfdf75923af6de47f9723b10e61e9a7  rootfs-etc-os-release
5fd6dd7f9941e975a6ce559924eb252606943276dc09455bbeb05ff718ecd28f20a08eee8e04ca580e5af71d4c944c256ec04f07b07286394f5dfedfa59273e7  rootfs-etc-init.d-deferred-initcalls
dadd251229eb5759e3cba77c39a4afc6f28bcbe0f272cd3ab41b7ff4fe6a3d2b9ee765e1a0b8f9241274e757ed3b2ce035ee5abe91843e55fb4188a3c401ca78  rootfs-etc-init.d-devmappings
f5cc0f1265955d2646e5f099dd4b5d4c287945bfc18c16044db57670d456f55c678fc11cc59e6dab3fa340832ce869d516302a3a35c13518539ed0cedca51819  rootfs-etc-init.d-swapfile
7b34e861bc4ec57d970d2a7aacca36e3c3742a63ff995af1336f80b666e4a38c1035b35e129322e0d62dc75011bfaf495eb2bcae5392f2bf39f1d7b1400afcce  rootfs-etc-polkit-1-rules.d-50-org.freedesktop.NetworkManager.rules
3ceeee37f558e7c95ad973692b6a437f997e6b46c3d1c2257ddfb1529a5633477373aa123c7f08164e818daae50acb203d151379f27ca11bd458809e6a0d4de7  rootfs-sbin-swapfile
38dc75c0ed32b76dccd3d8e7e8173e8b7d91847cf2b07123f376b95af46b4f89798b24f45302a0726fdc1cf253aecaac140f431735ac5c6511553f790badd0af  rootfs-usr-lib-firmwareload.sh"
