pmaports/main/devicepkg-dev/APKBUILD
Minecrell e3d07c832c
main/{devicepkg-dev,postmarketos-mkinitfs}: statically generate splash screens (!899)
We need to generate the splash screens separately for each device,
because they are specific to the device's display resolution.

At the moment we do this dynamically during the installation process.
This has the advantage that there is no need to re-build all device
packages when one of the splash screen is changed (or a new one is added).

In reality, however, the splash screens do not change very frequently.
On the other hand, generating the splash screens dynamically has signficant
disk usage overhead for a minimal ("none" UI) rootfs:

The Python interpreter together with the necessary libraries requires
about ~60 MB of disk space on aarch64.
The splash screens itself require about ~100 KB for 720x1280.

This is not necessary if we move the splash screen generation into
devicepkg-dev, which is used to build the device package for all devices.
Another advantage is that we no longer need the (rather complicated)
caching mechanism for splash screens - so we actually end up with less
lines than before.

rootfs size for samsung-a5ulte ("none" UI):
  Before: 450M
  After:  388M (-62M)

After this change, every(!) device package needs to be rebuilt once.
No changes are necessary in device packages.
2020-01-28 15:33:40 +01:00

67 lines
2.9 KiB
Text

pkgname="devicepkg-dev"
pkgver=0.10.0
pkgrel=0
pkgdesc="Provides default device package functions"
url="https://postmarketos.org"
arch="all"
license="MIT"
depends="postmarketos-splash"
source="
compiler-gcc.h
devicepkg_build.sh
devicepkg_package.sh
downstreamkernel_prepare.sh
devicepkg_subpackage_kernel.sh
testdata/deviceinfo
testdata/expected-deviceinfo-downstream
testdata/expected-deviceinfo-mainline
"
check() {
# Prepare a temporary dir to run the tests
testdir=$(mktemp -d)
install -Dm644 "$srcdir/deviceinfo" \
"$testdir/src/deviceinfo"
# Execute the script to create the subpackage deviceinfo
sh devicepkg_subpackage_kernel.sh \
$testdir linux-test linux-test-kernel-downstream
sh devicepkg_subpackage_kernel.sh \
$testdir linux-test linux-test-kernel-mainline
# Compare the result with the expected files
if ! cmp -s "$srcdir/expected-deviceinfo-downstream" \
"$testdir/pkg/linux-test-kernel-downstream/etc/deviceinfo"; then
echo "ERROR: unexpected result with downstream deviceinfo"
exit 1
fi
if ! cmp -s "$srcdir/expected-deviceinfo-mainline" \
"$testdir/pkg/linux-test-kernel-mainline/etc/deviceinfo"; then
echo "ERROR: unexpected result with mainline deviceinfo"
exit 1
fi
# Cleanup
rm -r "$testdir"
}
package() {
install -Dm755 "$srcdir/devicepkg_build.sh" \
"$pkgdir/usr/bin/devicepkg_build"
install -Dm755 "$srcdir/devicepkg_package.sh" \
"$pkgdir/usr/bin/devicepkg_package"
install -Dm755 "$srcdir/downstreamkernel_prepare.sh" \
"$pkgdir/usr/bin/downstreamkernel_prepare"
install -Dm755 "$srcdir/devicepkg_subpackage_kernel.sh" \
"$pkgdir/usr/bin/devicepkg_subpackage_kernel"
install -Dm644 "$srcdir/compiler-gcc.h" \
"$pkgdir/usr/share/devicepkg-dev/compiler-gcc.h"
}
sha512sums="d69930dd790b00fb39760a37d95a10899f0d167e10e2804feb05d9ce04f94185dc32d36edc90214aba2ea2aa09bf18f7dab93f1d2eff23f67beb2cc83be30e7c compiler-gcc.h
d57f61ccff6546c97b7c90a0c6018f2e603e018cc36268f2c54654029830c63a93661a6128262f574dd6799fa4a1fac13f51b84b9709f628542c5b741ac8edd5 devicepkg_build.sh
5ac4a5087c598582cb12278a4ce0c2dccfe7f91c1620d3328d1d0944c89eff81f8afcc681506d73a80d69615401f96a99fb1fdaa755fea101e0d36ec6ef2d5d0 devicepkg_package.sh
1b038d0bca1e130674497cf7aeb26fac2bcec510ce094fa6f6700fcdcabc778741541c1aa89d3588ed42908f60708a2d9b83ffd5e50e99db619d366458e82256 downstreamkernel_prepare.sh
cf5ee240cd1c1e9d30cdec833b4a007fd2e00f9a32ba3f265f99aa2e3dd3601cf43c08d3f3e01bade1d5b2648a6754b2f236e5cb4a9945e18e5c4e97aa2ed7c8 devicepkg_subpackage_kernel.sh
9bb7f2a0930f397a713e9f4b6d5b83a426d9a2a3f692dcc42ac30717bf26ead869d8823a38f3ad388af12b2b9a02e8ec4d4418e9c2062389ed06d2b891a49ff3 deviceinfo
136247a16ec91dc0c7241eeddb28c2196ae3b29946a9bc7e9566f848491ef1c53b12d05bf2dbc1cc352986712fd76f25c1510bcc8f301af540a2f01c33b299e1 expected-deviceinfo-downstream
8cdbf149e1bdfaf4d4a246a208732836956fd81a3aa01ef968e4c2e2cca4027f71cfc38e22debade83ddfca4e05267983c1c8a9c1aa9461a8cf493ef7e893097 expected-deviceinfo-mainline"