pmbootstrap init: Wizard for new port device- and linux-packages (#821)

* pmbootstrap init: Generate new port device- and linux-package
* adds `pmbootstrap aportgen device-*` and
  `pmbootstrap aportgen linux-*`
* ask for confirmation when selecting a non-existing device
* generate the packages directly from init
* refactor aportgen code
* fixed some easy things in the linux- APKBUILD (more to come in
  follow-up PRs!)

Testing:
* Test all questions to the user from pmb.config.init and pmb.aportgen.device
  (except for the timezone question, because we would need to monkeypatch the
  os.path.exists() function, which messes up pytest, so we'd need to refactor
  the timezone function to be more testsuite friendly first)
* Run the device wizard in a testcase a few times and check the output, that
  pmbootstrap.aportgen.device and pmbootstrap.aportgen.linux create by parsing
  the resulting APKBUILDs and deviceinfo and checking its contents.
* Build the generated device package once in the same testcase

Thanks a lot to @drebrez for all the help with this one:
<https://github.com/postmarketOS/pmbootstrap/pull/821>

See also the updated porting guide:
<https://wiki.postmarketos.org/wiki/Porting_to_a_new_device>
This commit is contained in:
Oliver Smith 2017-10-30 19:56:38 +00:00 committed by GitHub
parent 1e72ef48c7
commit b786a5a157
4 changed files with 6 additions and 6 deletions

View file

@ -1,6 +1,6 @@
pkgname=device-nokia-rx51
pkgver=1
pkgrel=25
pkgrel=26
pkgdesc="Nokia N900"
url="https://github.com/postmarketOS"
arch="noarch"
@ -69,7 +69,7 @@ weston() {
"$subpkgdir"/etc/xdg/weston/weston.ini
}
sha512sums="6309f2e0c6c08f8907fc2a0b94c4a0842fc6d927bd92acb35a068605acffecbaa7d4af31e9329e6686b592840ba7761c58856f7b8378c795771fbd84ddbfcf33 deviceinfo
sha512sums="8e010bebddf1bb09cde3966e402d2c146476eb21761c3110d2ac01010eced42519dab7b81915899894914c7e3820eaf6c48767a21c955412ad53da0bade0c38c deviceinfo
1b89309dd4fe7ee0ba37c6224a0152d6864bb1c7bc4e96918a57e01bebc4173559855ae9673887223de4a8baa3191c8ad88ec8594776a4110cdb19a7be790db4 uboot-script.cmd
3d55e34b95791636e44a5f41754f3d0de039dbba41f7a556d43a95c9e64afcfa930046b4b96b40020b6f196096ffba93514682927e32fa4488686fdd19c6da5a backlight-enable.sh
d303734dd49fe75a299ca723f4da52bc0cda2775683c54aa736aabf397db4ae8deb6d912d4116800cf2ba17f3a2987ab3e839652879b8ab023b4a91a55849f08 90-touchscreen-dev.rules

View file

@ -12,7 +12,7 @@ deviceinfo_dtb="omap3-n900"
deviceinfo_modules_initfs="tsc2005 tsc200x-core omap_wdt twl4030_wdt omap-sham"
deviceinfo_external_disk="true"
deviceinfo_external_disk_install="true"
deviceinfo_flash_methods="0xFFFF"
deviceinfo_flash_methods="0xffff"
deviceinfo_generate_legacy_uboot_initfs="true"
deviceinfo_arch="armhf"
deviceinfo_dev_touchscreen="/dev/input/event3"

View file

@ -1,5 +1,5 @@
pkgname=postmarketos-update-kernel
pkgver=0.0.1
pkgver=0.0.2
pkgrel=0
pkgdesc="kernel updater script for postmarketOS"
url="https://github.com/postmarketOS"
@ -12,4 +12,4 @@ package() {
install -Dm755 "$srcdir/update-kernel.sh" \
"$pkgdir/sbin/pmos-update-kernel"
}
sha512sums="7d2f3031b1a468accff5a3584bd51d3607141b01e1d2a93d611852476bdeecc3edd7b80f8e3b034012d9b5f09de907af1de02f48586d82d06ee4b5746d4fd286 update-kernel.sh"
sha512sums="17fa14327622fcdefa335fccfeac33623a8cf3cb93e6ad833631990f3c88757e81d6eb3b02f0a69177c518b8f45f249e8b9709fe3eb5126a7322da5f7700becb update-kernel.sh"

View file

@ -28,7 +28,7 @@ case $METHOD in
echo "Flashing initramfs..."
gunzip -c /boot/initramfs-"$FLAVOR" | lzop | dd of="$INITFS_PARTITION" bs=1M
;;
0xFFFF)
0xffff)
echo -n "No need to use this utility, since uboot loads the kernel directly from"
echo " the boot partition. Your kernel should be updated already."
exit 1