This release brings major improvements to the arm64/aarch64 users, complex network environments, and offline operations! Probably the most interesting aspect of this release is being able to run on ARM64-based Single-Board Computers (SBC) which have good-enough EFI support. This was demonstrated using the [EDK2 Raspberry Pi 4 UEFI firmware](https://github.com/pftf/RPi4) on a CM4 module :) Check out [our new wiki](https://gitlab.freedesktop.org/mupuf/boot2container/-/wikis/home) which details ways of running boot2container! ### Deprecation notice The following parameters have been deprecated, and will be removed at a later time: * `b2c.container`: Replaced by `b2c.run` * `b2c.post_container`: Replaced by `b2c.run_post` * `b2c.service`: Replaced by `b2c.run_service` ### Breaking changes * The ARM64/AARCH64 Linux kernel is now a [self-decompressing EFI binary](https://cateee.net/lkddb/web-lkddb/EFI_ZBOOT.html) ### New features * `b2c.iface`: This option enables fine-grained configuration for multiple network interfaces (@v-a) * `b2c.load`: This option enables side-loading containers without the use of registries (@v-a) * `b2c.cache_device=...,fstrim=pipeline_start`: Run fstrim at boot time (more options will come in future releases) * Boot2container will now wait for up to 10s when the user asks for a cache device (auto, reset, or specific node) but none are present * The tuxes counting the number of cores got replaced by the boot2container logo * Better error handling of failures in the teardown process (podman container stop, ) ### Issues closed (bugs or feature requests) * #33: Adds a feature through filesystem to load a container from an archive instead of pulling a registry * #36: cache_device: mount with `-o discard` * #34: Rename b2c.container into b2c.run * #35: Find a way to share the container tag between .gitlab-ci.yml and Makefile ### Linux configuration changes * Makefile: Compilation will halt if some specified options are missing * all: * Ability to use conditions in config files, enabling options to be set based on architectures (based on [esh](https://github.com/jirutka/esh)) * Added support for the Raspberry Pi 3-4 * `common`: * Removed the WIRELESS, RFKILL, GNSS, CAN, BT, MEDIA_SUPPORT, XEN, BTRFS, and FPGA subsystems * Removed the non-single-board-computers, phones, or laptops AARCH64 platforms * Switched to the new self-decompressing EFI-based * `gpu`: * created by mergeing the `vgpu` and `dgpu` configs * dropped support VKMS (was breaking qemu's consoles) * disable discrete gpus on aarch64 kernels ### Software versions * Podman: version 4.3.1 * Netavark: version 1.4.0 * mcli: December 24th 2022 release * Linux: 6.1.7