* rewrote find_root_partition to make it compatible with the i9100
again (and added a big description comment about how it works)
* usb network and dhcp server gets started independent of hooks
now. this really makes sense for development now, we can disable
this later (and set up networking via OpenRC, when the usb-shell
hook is not installed)
* telnet splash + unlock telnetd code only runs, when the rootfs
is encrypted
* usb_setup_android wrapped with a generic usb_setup function, so
we can support networking for more device types in a clean way
* the IP of the device is now in init_functions.sh, and init_functions.sh
gets included in all hooks.
* rewrote logging function. it logs all stdout and stderr to
/pmOS_init.log, except when PMOS_NO_OUTPUT_REDIRECT is specified
as kernel command line. This way we can see error output from
all commands.
* used shfmt to format everything, so it looks consistent again
* added automatic shellchecking for init.sh.in and
init_functions.sh
* clear naming scheme for initfs functions, they all start with a
verb now (e.g. setup_usb_network, start_udhcpd, ...)
For some reason /dev/disk/by-label/pmOS_root symlink is not present and
blkid from busybox doesn't support the -L parameter. We could install
blkid from util-linux but I prefered to use shell commands instead
firefox-esr is not apackaged on Alpine for aarch64 right now.
As firefox is just a demo in the current state, it will be left to
the user to add it to his installation with the --add flag, so this
will not break the install step anymore.
* Fix hardcoded `armhf` in pmb/aportgen/binutils.py
* Generate aports: `binutils-aarch64`, `musl-aarch64`, `gcc-aarch64`
* Distccd: Remember the cross-compiler architecture (currently armhf
or aarch64), that the current distccd is running as, and restart
distccd with the correct architecture, in case a different arch
is needed than what it is currently running as. (Depending on the
cross-compiler arch, the PATH variable gets adjusted before
starting distccd)
* Testcases: add aport generation for aarch64, add cross-compiling
to aarch64
* pmb/parse/arch.py: Add aarch64 to the mapping
We have "lazy reproducible builds" now. What I mean by that is, that
the resulting "apk" archive is not fully reproducible, but all binaries
inside it are. This is necessary to kick-off the binary repo, which is
in turn required to get the testsuite going on Travis. Read #64 for more
information.
Usage:
```
pmbootstrap build hello-world --buildinfo
pmbootstrap challenge /tmp/path/to/hello-world-1-r2.apk
```
The "--buildinfo" parameter generates a "buildinfo.json", which contains
the versions of all dependencies. It is not very optimizied, so this
is a performance bottleneck and takes 10 seconds (which is quite much
considering that the hello-world package builds in less than a second).
This can be improved in the future, and then the buildinfo parameter
may become the default.