forked from Mirror/pmbootstrap
Add envkernel.sh: instant mainlining environment (#1424)
Changes: * `helpers/envkernel.sh`: * installs everything needed for kernel compilation in the native chroot * mounts the kernel source to `/mnt/linux` inside the chroot * creates `/mnt/linux/.output` and chowns it to the `pmos` user, that folder will be used for the kernel build output * sets up aliases for `make`, `pmbootstrap`, `pmbroot`, `kernelroot` * new action `pmbootstrap work_migrate`: does the interactive work folder migration if necessary, otherwise it doesn't output anything * when calling this first, we can safely use all other commands non-interactively without showing the output Benefits: * Fast setup (especially for people who are new to kernel compilation * No need to figure out distribution specific package names (cross compilers!) * No need to do a test build just to verify that the right packages are installed * Less error prone * The right dependencies are always installed * `ARCH` and `CROSS_COMPILE` variables always get set automatically and based on `deviceinfo_arch` * If the build environment is broken for some reason, just zap and start over * Easy to reproduce problems Notes: * `make menuconfig` works as well * Sourcing was tested with `zsh`, `bash` and `fish`, it should be easy to extend for other shells
This commit is contained in:
parent
8927ac5c3a
commit
a77a0dcc32
5 changed files with 209 additions and 0 deletions
|
@ -317,6 +317,11 @@ def stats(args):
|
|||
pmb.chroot.user(args, ["ccache", "-s"], suffix, log=False)
|
||||
|
||||
|
||||
def work_migrate(args):
|
||||
# do nothing (pmb/__init__.py already did the migration)
|
||||
pmb.helpers.logging.disable()
|
||||
|
||||
|
||||
def log(args):
|
||||
if args.clear_log:
|
||||
pmb.helpers.run.user(args, ["truncate", "-s", "0", args.log],
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue