pmbootstrap, with Synit changes
Go to file
Oliver Smith 255c715624
Fix aportgen without initializing buildenv
After initializing the build environment, the cache_distfiles folder
currently is writable by everyone (which is not ideal, fix following
soon). The aportgen code for `busybox-static-*` and `musl-*` copies
the foreign arch `.apk` file to the distfiles, but it executes this
action as regular user and not as root. This only works as long as
build initialization ran before (which may not be the case on Travis
and expecting this to run before is a bug in general).

With this commit, the copy action gets executed as root, so it works
in any case. I'm commiting this directly (without a PR), because it
is a super simple fix and it unblocks our continuous integration.

Local testing:
$ pmbootstrap -y zap
$ sudo rm -r ~/.local/var/pmbootstrap/cache_distfiles
$ pmbootstrap aportgen musl-armhf
2018-03-12 17:17:32 +01:00
aports i9195/Qualcomm modem support (#1314) 2018-03-11 15:59:09 +00:00
helpers Rudimentary ZSH autocompletion helper (#1232) 2018-02-17 22:46:20 +00:00
keys Close #871: Enable binary repository (#887) 2017-11-19 15:04:08 +00:00
pmb Fix aportgen without initializing buildenv 2018-03-12 17:17:32 +01:00
test aportgen: Gracefully handle old aports_upstream (#1291) 2018-03-11 14:18:21 +00:00
.gitignore gitignore: Add pytest cache 2018-02-06 23:10:25 +01:00
.travis.yml aportgen: Gracefully handle old aports_upstream (#1291) 2018-03-11 14:18:21 +00:00
CONTRIBUTING.md CONTRIBUTING.md: Mention that we squash PRs (#651) 2017-09-29 21:23:46 +00:00
LICENSE Initial commit 2017-05-26 19:25:48 +00:00
MANIFEST.in Close #327: Add initial setup.py (#443) 2017-09-02 19:30:40 +00:00
README.md Update README.md (#1249) 2018-02-22 22:50:39 +01:00
pmbootstrap.py Happy new year! (update copyright to 2018) 2018-01-04 04:53:35 +01:00
setup.cfg Close #327: Add initial setup.py (#443) 2017-09-02 19:30:40 +00:00
setup.py Close #327: Add initial setup.py (#443) 2017-09-02 19:30:40 +00:00

README.md

pmbootstrap

Introduction | Security Warning | Supported Devices | travis badge | Coverage status

Sophisticated chroot/build/flash tool to develop and install postmarketOS.

For in-depth information please refer to the postmarketOS wiki.

Requirements

Usage

Assuming you have a supported device, you can build and flash a postmarketOS image by running through the following steps. For new devices check the porting guide.

First, clone the git repository and initialize your pmbootstrap environment:

$ git clone https://github.com/postmarketOS/pmbootstrap
$ cd pmbootstrap
$ ./pmbootstrap.py init

While running any pmbootstrap command, it's always useful to have a log open in a separate window where further details can be seen:

$ ./pmbootstrap.py log

It's now time to run a full build which will create the boot and system images:

$ ./pmbootstrap.py install

Once your device is connected and is ready to be flashed (e.g. via fastboot), you can run a flash of the kernel (boot) and system partitions:

$ ./pmbootstrap.py flasher flash_kernel
$ ./pmbootstrap.py flasher flash_system

After a reboot, the device will prompt for the full-disk encryption password, which you typed in the install step (unless you have disabled full-disk encryption with --no-fde). Once the partition has been unlocked it is possible to connect via SSH:

$ dhclient -v enp0s20f0u1
$ ssh user@172.16.42.1

Development

Testing

Install pytest (via your package manager or pip) and run it inside the pmbootstrap folder.

License

GPLv3