Patched pmbootstrap to build my packages
Find a file
Oliver Smith 0f15951023
Always prefer native/device arch when building (#1277)
In case the user does not specify for which arch packages should be
built with `pmbootstrap build`, we detect it automatically.

Previous logic was, that if the APKBUILD's arch is "all" or "noarch",
then prefer the native arch, and otherwise use the first one in the
list of available arches.

New behavior is, that we also check if the list of possible arches
contains the native arch (and if that fails, the device arch). If that
is the case, we return the native/device arch instead of the first one
in the list.

### Use case

The arch from `gcc-armhf` and similar packages (as generated by
`pmbootstrap aportgen`) used to be "all", but is nowadays a specific
list of arches. This means, that after updating the `gcc-armhf` and
`gcc-aarch64` packages, and calling `pmbootstrap build gcc-armhf`,
it will try to build `gcc-armhf` for `aarch64` instead of the native
architecture, because that is the first one listed.
And since compiling to `aarch64` requires `gcc-aarch64`, it will build
that for the native architecture first.

So you're asking for `gcc-armhf` and it compiles `gcc-aarch64`, which
is very confusing (see #1272).
2018-03-01 20:04:51 +00:00
aports Bump pkgrel of qt5-qtbase and db8 2018-02-28 21:49:48 +01: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 Always prefer native/device arch when building (#1277) 2018-03-01 20:04:51 +00:00
test Make nonfree depends optional part 2: device pkgs (#1268) 2018-02-26 22:11:44 +00:00
.gitignore gitignore: Add pytest cache 2018-02-06 23:10:25 +01:00
.travis.yml Testsuite: Run UIs in Qemu and check running processes and more (#982) 2018-02-02 00:16:29 +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
pmbootstrap.py Happy new year! (update copyright to 2018) 2018-01-04 04:53:35 +01:00
README.md Update README.md (#1249) 2018-02-22 22:50:39 +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

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