forked from Mirror/pmbootstrap
pmbootstrap init: kernel selection / remove linux-pmos-lts (#1363)
* As discussed in IRC/matrix, we're removing `linux-postmarketos-lts` for now. The kernel isn't used right now, and we save lots of maintenance effort with not updating it every week or so. * new config option `"kernel"` with possible values: `"downstream", "mainline", "stable"` (downstream is always `linux-$devicename`) * ask for the kernel during `pmbootstrap init` if the device package has kernel subpackages and install it in `_install.py` * postmarketos-mkinitfs: display note instead of exit with error when the `deviceinfo_dtb` file is missing (because we expect it to be missing for downstream kernels) * device-sony-amami: * add kernel subpackages for downstream, mainline * set `deviceinfo_dtb` * device-qemu-amd64: add kernel subpackages for stable, lts, mainline * test cases and test data for new functions * test case that checks all aports for right usage of the feature: * don't mix specifying kernels in depends *and* subpackages * 1 kernel in depends is maximum * kernel subpackages must have a valid name * Test if devices packages reference at least one kernel * Remove `_build_device_depends_note()` which informs the user that `--ignore-depends` can be used with device packages to avoid building the kernel. The idea was to make the transition easier after a change we did months ago, and now the kernel doesn't always get built before building the device package so it's not relevant anymore. * pmb/chroot/other.py: * Add autoinstall=True to kernel_flavors_installed(). When the flag is set, the function makes sure that at least one kernel for the device is installed. * Remove kernel_flavor_autodetect() function, wherever it was used, it has been replaced with kernel_flavors_installed()[0]. * pmb.helpers.frontend.py: remove code to install at least one kernel, kernel_flavors_installed() takes care of that now.
This commit is contained in:
parent
b7d4e2c11e
commit
b66b5dcc34
23 changed files with 334 additions and 17042 deletions
|
@ -92,6 +92,30 @@ def get_nonfree_packages(args, device):
|
|||
return ret
|
||||
|
||||
|
||||
def get_kernel_package(args, device):
|
||||
"""
|
||||
Get the kernel package based on user's choice in "pmbootstrap init".
|
||||
|
||||
:param device: code name, e.g. "lg-mako"
|
||||
:returns: [] or the package in a list, e.g. ["linux-postmarketos-stable"]
|
||||
"""
|
||||
# Get kernels for the device
|
||||
kernels = pmb.parse._apkbuild.kernels(args, device)
|
||||
if not kernels or args.kernel == "none":
|
||||
return []
|
||||
|
||||
# Sanity check
|
||||
if args.kernel not in kernels:
|
||||
raise RuntimeError("Selected kernel (" + args.kernel + ") is not"
|
||||
" configured for device " + device + ". Please"
|
||||
" run 'pmbootstrap init' to select a valid kernel.")
|
||||
|
||||
# Return the pkgname
|
||||
if args.kernel == "downstream":
|
||||
return ["linux-" + device]
|
||||
return ["linux-postmarketos-" + args.kernel]
|
||||
|
||||
|
||||
def copy_files_from_chroot(args):
|
||||
"""
|
||||
Copy all files from the rootfs chroot to /mnt/install, except
|
||||
|
@ -365,6 +389,7 @@ def install(args):
|
|||
args.device))
|
||||
install_packages = (pmb.config.install_device_packages +
|
||||
["device-" + args.device] +
|
||||
get_kernel_package(args, args.device) +
|
||||
get_nonfree_packages(args, args.device))
|
||||
if args.ui.lower() != "none":
|
||||
install_packages += ["postmarketos-ui-" + args.ui]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue