pmaports/main/postmarketos-base-ui/APKBUILD
Clayton Craft 4b516916dc
pmos-base-ui-networkmanager: set up dnsmasq for filtering lookups (MR 3823)
This uses a dispatcher script to configure filtering A and AAAA records
based on which IP versions are routable on the NM primary connection.

gojq is preferred over the 'standard' jq because it's considerably
faster... the dispatcher script took 0.89s on my L5 with jq, and 0.07s
with gojq. the difference is probably greater on slower phones... so it
seemed worth installing it.

fixes #1430

Co-authored-by: Arnavion <me@arnavion.dev>
2023-04-29 23:40:52 -07:00

171 lines
5.8 KiB
Text

# Maintainer: Clayton Craft <clayton@craftyguy.net>
pkgname=postmarketos-base-ui
pkgver=8
pkgrel=0
pkgdesc="Meta package for minimal postmarketOS UI base"
url="https://postmarketos.org"
arch="noarch"
license="GPL-3.0-or-later"
depends="
chrony
dbus
font-dejavu
haveged
nftables
postmarketos-artwork-icons
postmarketos-base
shadow
util-linux
wireless-regdb
wpa_supplicant
"
subpackages="
$pkgname-elogind
$pkgname-openrc-settingsd:_openrc_settingsd
$pkgname-tinydm
$pkgname-x11
$pkgname-pulseaudio
$pkgname-bluez-obexd:_obexd
$pkgname-networkmanager
postmarketos-default-camera:_default_camera
"
install="$pkgname.post-install $pkgname.post-upgrade"
replaces="
chrony
wpa_supplicant-openrc
postmarketos-base
"
replaces_priority=100 # leave plenty for alpine
_source644="
etc/NetworkManager/conf.d/hostname-mode.conf
etc/NetworkManager/conf.d/use-dnsmasq.conf
etc/chrony/chrony.conf
etc/conf.d/openrc-settingsd
etc/conf.d/tinydm
etc/conf.d/wpa_supplicant
etc/elogind/logind.conf
etc/pulse/default.pa.d/postmarketos.pa
etc/skel/.profile
etc/sleep-inhibitor.conf
etc/X11/Xwrapper.config
"
_source755="
etc/NetworkManager/dispatcher.d/99-dns-filter.sh
etc/tinydm.d/env-wayland.d/50-firefox-wayland.sh
etc/tinydm.d/env-wayland.d/50-sdl-wayland.sh
"
# Avoid filename based checksum conflicts by including the whole path.
flatpath() {
local i
for i in $@; do
echo "rootfs-$i" | sed s./.-.g
done
}
source="$(flatpath $_source644 $_source755)"
package() {
local i
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
}
x11() {
install_if="$pkgname=$pkgver-r$pkgrel xorg-server"
depends="
libinput
xf86-input-libinput
xf86-video-fbdev"
provides="postmarketos-base-x11=$pkgver-r$pkgrel"
amove etc/X11/Xwrapper.config
}
elogind() {
install_if="$pkgname=$pkgver-r$pkgrel elogind"
depends="sleep-inhibitor"
install="$subpkgname.pre-upgrade $subpkgname.post-install"
replaces="
elogind
sleep-inhibitor
"
provides="postmarketos-base-elogind=$pkgver-r$pkgrel"
amove etc/elogind/logind.conf
amove etc/sleep-inhibitor.conf
}
_openrc_settingsd() {
install_if="$pkgname=$pkgver-r$pkgrel openrc-settingsd-openrc"
install="$subpkgname.post-install $subpkgname.post-upgrade"
replaces="openrc-settingsd-openrc"
amove etc/conf.d/openrc-settingsd
}
tinydm() {
install_if="$pkgname=$pkgver-r$pkgrel tinydm-openrc"
replaces="tinydm-openrc"
provides="postmarketos-base-tinydm=$pkgver-r$pkgrel"
amove etc/conf.d/tinydm
amove etc/tinydm.d/env-wayland.d/50-firefox-wayland.sh
amove etc/tinydm.d/env-wayland.d/50-sdl-wayland.sh
}
pulseaudio() {
install_if="$pkgname=$pkgver-r$pkgrel pulseaudio"
depends="pulseaudio-utils"
provides="postmarketos-base-pulseaudio=$pkgver-r$pkgrel"
amove etc/pulse/default.pa.d/postmarketos.pa
}
_obexd() {
install_if="$pkgname=$pkgver-r$pkgrel bluez-obexd"
replaces="bluez-obexd"
depends="obex-capabilities"
mkdir -p "$subpkgdir"
}
networkmanager() {
depends="
busctl
dnsmasq-dnssec-dbus>=2.89-r2
gojq
networkmanager
networkmanager-cli
networkmanager-openrc
networkmanager-tui
networkmanager-wifi
networkmanager-wwan"
amove etc/NetworkManager/conf.d/hostname-mode.conf
amove etc/NetworkManager/conf.d/use-dnsmasq.conf
amove etc/NetworkManager/dispatcher.d/99-dns-filter.sh
}
_default_camera() {
# dummy package for camera app, packages can install_if on this to install
# the appropriate camera app for that device/UI
mkdir "$subpkgdir"
}
sha512sums="
3c9ae7415f4891bee8595166ed6a42cb577a837f741c6b5409d193558626348b41516888a01d0c4895282c5f4e9a1ff838c19712888750b2ef68429bb4b42ee3 rootfs-etc-NetworkManager-conf.d-hostname-mode.conf
900554534191fa0797064d35350934cdd8af59f30f0ae7d8ec63c2e11c44a16c643d3024b6543940488cd590fec1d392548bcaacc3be88cddff90f69b17ece07 rootfs-etc-NetworkManager-conf.d-use-dnsmasq.conf
e5d049db1d82c510bab9246208b51b8ec2711d008d67792fc10d4c0b65ed4dece7b5ae3c3dd28a8539d177b6849c1f921cb9fef3d2c7bee0355451f7b4757ec6 rootfs-etc-chrony-chrony.conf
49fb494b659fe0149a93eafe109609acce6a470bb8acea160638d07e0e4b11af2544f34549d5ef2deb2914a7ef13d0d470b04ad62981f14f96999af02a5f24cf rootfs-etc-conf.d-openrc-settingsd
44e4283c6f77de83915977dd3bc2d8e2d96b3ed6cc68d3cc156304359ae649b5a8b0bac843e517ec6faa2066dd43ba85e313899b1eda04862f864fb9eb508aa0 rootfs-etc-conf.d-tinydm
fe0651904c1f40ffa67d83daca190af199f63247e53642a59a1e1147cd06776fcf20b7b2fcc5373783d50b8bd6ce8d1354c8e5f4d582d319727b9ceefd1e8e16 rootfs-etc-conf.d-wpa_supplicant
8d2c54fe3ca62c62f8337fb6be28479d0e02ea63f32abae81907f2768631e65c9e17485f8bc0854a013377f729b06dd1873e2b75f86f657ece866d00aecbbdb4 rootfs-etc-elogind-logind.conf
6c516635a61fbaa93102f02301a75070a91de837456b07a50e24a9e0ee5dac785087d4a8f78906807719ebf6f0124127383441cccf00475d9a91d3dbaf9d4d81 rootfs-etc-pulse-default.pa.d-postmarketos.pa
90b30cbea660ef6cd4c0461b6935de0cd63a84a1a40edb24348a83044c97935b974bd8bafda9cd558e92d3eb69e22c5ccf55483b80f839e24f0eb57ae2df6fe3 rootfs-etc-skel-.profile
6b9c7bb73213187eb9ca8a94109b2b816f50c1158c90fec2e92b373864280d67741589e5bfbab8810945f031d2f4b535aad78a72e46e52ea50be5b85324da381 rootfs-etc-sleep-inhibitor.conf
cac604e25c46e695dd30bd5a10cfd2d69595fcc3bc290096ac94b76b10834d591ea6576afb79c46b5da492a1dbf8660cf87b6110cd39937e15237bc74fa7a5c6 rootfs-etc-X11-Xwrapper.config
52d58729cbf3cd0318de633e8a8da74c7af246025a8c5746d5e7c854bdabbf27fa07d8558ffec92a30491cdb687fe4414de5adcddd7da5be3510f918fba463a2 rootfs-etc-NetworkManager-dispatcher.d-99-dns-filter.sh
d1ddd43489e6016e3ffd716027ed2bae4a2ab5f213118bdbcb96750e267ab7c0367cd0e0e386300aa5550352653144f5caeddd790621fe0879f83ca1995bb65c rootfs-etc-tinydm.d-env-wayland.d-50-firefox-wayland.sh
ecaa57d033a119a53a6574c27636b7c89d659d75ea48a973a6a4ff6f90e5d07202529fd489bfc9dfc7430f5b60f40612f6d5c06f7fab47e681b0a3112a874058 rootfs-etc-tinydm.d-env-wayland.d-50-sdl-wayland.sh
"