feat(belden-coreos): reworked distro settings
Now the distro settings is splitted into two config smaller config file. PACKAGECONFIG for the system package is set to include a reduced set of features by default. Some EFI related feature are now dependant of the EFI DISTRO_ and MACHINE_FEATURES.
This commit is contained in:
parent
ed7ae90d86
commit
0d5e631162
|
|
@ -1,11 +0,0 @@
|
|||
# Add signature support
|
||||
|
||||
inherit coreos-efi-sbsign
|
||||
require conf/image-uefi.conf
|
||||
|
||||
do_deploy:append() {
|
||||
|
||||
if [ -f "${DEPLOYDIR}/efibootguard${EFI_ARCH}.efi" ]; then
|
||||
coreos_efi_secureboot_sign_app "${DEPLOYDIR}/efibootguard${EFI_ARCH}.efi"
|
||||
fi
|
||||
}
|
||||
|
|
@ -9,4 +9,4 @@ SRC_URI += " \
|
|||
${@bb.utils.contains("IMAGE_FEATURES", "debug-tweaks", "file://debug-tweaks.cfg", "", d)} \
|
||||
"
|
||||
|
||||
require u-boot-coreos-efi.inc
|
||||
require ${@bb.utils.contains("COMBINED_FEATURES", "efi", "u-boot-coreos-efi.inc", "", d)}
|
||||
|
|
|
|||
|
|
@ -10,4 +10,4 @@ SRCREV_machine:beaglebone ?= "9aabbaa89fcb21af7028e814c1f5b61171314d5a"
|
|||
COMPATIBLE_MACHINE:beaglebone = "beaglebone"
|
||||
LINUX_VERSION:beaglebone = "5.15.54"
|
||||
|
||||
require linux-yocto-coreos-efi.inc
|
||||
require ${@bb.utils.contains("COMBINED_FEATURES", "efi", "linux-yocto-coreos-efi.inc", "", d)}
|
||||
|
|
|
|||
|
|
@ -90,9 +90,9 @@ IMAGE_ROOTFS_EXTRA_SPACE:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'sys
|
|||
# ==============================================================================
|
||||
|
||||
# Support for Unified Kernel Image and Swupdate are optional
|
||||
COREOS_IMAGE_GENERATE_INSTALLER ?= "1"
|
||||
COREOS_IMAGE_GENERATE_UKI ?= "1"
|
||||
COREOS_IMAGE_GENERATE_SWU ?= "1"
|
||||
COREOS_IMAGE_GENERATE_INSTALLER ?= "${@bb.utils.contains("DISTRO_FEATURES", "swupdate", "1", "0", d)}"
|
||||
COREOS_IMAGE_GENERATE_UKI ?= "${@bb.utils.contains("COMBINED_FEATURES", "efi", "1", "0", d)}"
|
||||
COREOS_IMAGE_GENERATE_SWU ?= "${@bb.utils.contains("DISTRO_FEATURES", "swupdate", "1", "0", d)}"
|
||||
|
||||
# Generate the installer image if needed
|
||||
do_build[depends] += "${@'coreos-image-installer:do_build' if d.getVar('COREOS_IMAGE_GENERATE_INSTALLER') == '1' else ''}"
|
||||
|
|
|
|||
|
|
@ -0,0 +1,8 @@
|
|||
require conf/distro/include/belden-coreos-base.inc
|
||||
|
||||
DISTRO = "belden-coreos-base"
|
||||
DISTRO_NAME = "Belden CoreOS (Base)"
|
||||
MAINTAINER = "Belden CoreOS Team"
|
||||
|
||||
DISTRO_VERSION = "0.0.1"
|
||||
DISTRO_CODENAME = "kirkstone"
|
||||
|
|
@ -1,87 +1,9 @@
|
|||
require conf/distro/include/belden-coreos-base.inc
|
||||
require conf/distro/include/belden-coreos-extra.inc
|
||||
|
||||
DISTRO = "belden-coreos"
|
||||
DISTRO_NAME = "Belden CoreOS"
|
||||
MAINTAINER = "Belden CoreOS Team"
|
||||
|
||||
INHERIT += "coreos_metadata_scm"
|
||||
|
||||
DISTRO_VERSION = "0.0.1"
|
||||
DISTRO_CODENAME = "kirkstone"
|
||||
|
||||
# Distro features and policies
|
||||
# ==============================================================================
|
||||
|
||||
PACKAGE_CLASSES = "package_ipk"
|
||||
INIT_MANAGER = "systemd"
|
||||
|
||||
# CoreOS use journald from the systemd package to handle log
|
||||
# https://docs.yoctoproject.org/singleindex.html#using-systemd-journald-without-a-traditional-syslog-daemon
|
||||
# This remove syslog from packagegroup-core-boot
|
||||
VIRTUAL-RUNTIME_syslog = ""
|
||||
VIRTUAL-RUNTIME_base-utils-syslog = ""
|
||||
|
||||
DISTRO_FEATURES_DEFAULT ?= "bluetooth usbhost pci ipv4 ipv6 wifi multiarch usrmerge ptest efi pam"
|
||||
DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT}"
|
||||
DISTRO_FEATURES_BACKFILL_CONSIDERED = "pulseaudio ldconfig"
|
||||
DISTRO_EXTRA_RDEPENDS += "packagegroup-core-boot"
|
||||
|
||||
# Build configuration
|
||||
# ==============================================================================
|
||||
|
||||
TARGET_VENDOR = "-belden"
|
||||
|
||||
# We don't support multiple libc, so we don't need to append the libc name to
|
||||
# the tmp directory: ie use build/tmp instead of build/tmp-glibc
|
||||
TCLIBCAPPEND = ""
|
||||
|
||||
SANITY_TESTED_DISTROS ?= " \
|
||||
debian-11 \n \
|
||||
ubuntu-22.04 \n \
|
||||
"
|
||||
|
||||
# This variable is used to ensure that any distribution using the CoreOS layer
|
||||
# include this file. This is checked by the coreos-sanity class
|
||||
SANITY_COREOS_COMPATIBLE ?= "1"
|
||||
|
||||
require conf/distro/include/no-static-libs.inc
|
||||
require conf/distro/include/yocto-uninative.inc
|
||||
require conf/distro/include/security_flags.inc
|
||||
|
||||
# uninative is need to share the sstates between multiple host distrubtion
|
||||
INHERIT += "uninative"
|
||||
|
||||
# Bitbake configuration
|
||||
# ==============================================================================
|
||||
|
||||
BB_SIGNATURE_HANDLER ?= "OEBasicHash"
|
||||
|
||||
# SDK Configuration
|
||||
# ==============================================================================
|
||||
|
||||
SDK_VENDOR = "-coreossdk"
|
||||
SDK_VERSION = "${DISTRO_VERSION}"
|
||||
SDK_VERSION[vardepvalue] = "${SDK_VERSION}"
|
||||
SDK_NAME = "${DISTRO}-${TCLIBC}-${SDKMACHINE}-${IMAGE_BASENAME}-${TUNE_PKGARCH}-${MACHINE}"
|
||||
SDKPATHINSTALL = "/opt/${DISTRO}/${SDK_VERSION}"
|
||||
|
||||
# EFI and Secure boot
|
||||
# ==============================================================================
|
||||
|
||||
EFI_PROVIDER = "efibootguard"
|
||||
EFIBOOTGUARD_TIMEOUT ??= "60"
|
||||
INHERIT += "coreos-efi-secureboot"
|
||||
|
||||
# Virtualization configuration
|
||||
# ==============================================================================
|
||||
|
||||
# Use crun insted of runc as a OCI runtime. crun is faster and need less memory
|
||||
# than runc so it's a better fit for embedded
|
||||
#PREFERRED_PROVIDER_virtual/runc = "crun"
|
||||
PACKAGECONFIG:append:pn-podman = " rootless"
|
||||
DISTRO_FEATURES_DEFAULT += "virtualization seccomp ipv6"
|
||||
|
||||
# CoreOS specific options
|
||||
# ==============================================================================
|
||||
|
||||
# Distro based on CoreOS can provide their own configuration files for the
|
||||
# CoreOS installer by overriding this variable
|
||||
PREFERRED_PROVIDER_coreos-installer-config ??= "coreos-installer-config"
|
||||
|
|
|
|||
|
|
@ -0,0 +1,108 @@
|
|||
# This is the base include file for all coreos based distro
|
||||
# it should support the most basic distro without optional coreos
|
||||
# features
|
||||
|
||||
INHERIT += "coreos_metadata_scm"
|
||||
|
||||
# Distro features and policies
|
||||
# ==============================================================================
|
||||
|
||||
PACKAGE_CLASSES = "package_ipk"
|
||||
INIT_MANAGER = "systemd"
|
||||
|
||||
# CoreOS use journald from the systemd package to handle log
|
||||
# https://docs.yoctoproject.org/singleindex.html#using-systemd-journald-without-a-traditional-syslog-daemon
|
||||
# This remove syslog from packagegroup-core-boot
|
||||
VIRTUAL-RUNTIME_syslog = ""
|
||||
VIRTUAL-RUNTIME_base-utils-syslog = ""
|
||||
|
||||
DISTRO_FEATURES ?= "usbhost pci ipv4 ipv6 wifi multiarch usrmerge efi pam"
|
||||
|
||||
# CoreOS wasn't compatible with older Yocto version, so we should not have any
|
||||
# features backfilled. Value are from DISTRO_FEATURES_BACKFILL
|
||||
# with the exception of gobject-introspection-data that are backfilled on
|
||||
# purpose, this allow to use C library based on gobject in python or javascript
|
||||
DISTRO_FEATURES_BACKFILL_CONSIDERED = "pulseaudio sysvinit ldconfig"
|
||||
|
||||
DISTRO_EXTRA_RDEPENDS += "packagegroup-core-boot"
|
||||
|
||||
# Build configuration
|
||||
# ==============================================================================
|
||||
|
||||
TARGET_VENDOR = "-belden"
|
||||
|
||||
# We don't support multiple libc, so we don't need to append the libc name to
|
||||
# the tmp directory: ie use build/tmp instead of build/tmp-glibc
|
||||
TCLIBCAPPEND = ""
|
||||
|
||||
SANITY_TESTED_DISTROS ?= " \
|
||||
debian-11 \n \
|
||||
ubuntu-22.04 \n \
|
||||
"
|
||||
|
||||
# This variable is used to ensure that any distribution using the CoreOS layer
|
||||
# include this file. This is checked by the coreos-sanity class
|
||||
SANITY_COREOS_COMPATIBLE ?= "1"
|
||||
|
||||
require conf/distro/include/no-static-libs.inc
|
||||
require conf/distro/include/yocto-uninative.inc
|
||||
require conf/distro/include/security_flags.inc
|
||||
|
||||
# uninative is need to share the sstates between multiple host distrubtion
|
||||
INHERIT += "uninative"
|
||||
|
||||
# Bitbake configuration
|
||||
# ==============================================================================
|
||||
|
||||
BB_SIGNATURE_HANDLER ?= "OEBasicHash"
|
||||
|
||||
# SDK Configuration
|
||||
# ==============================================================================
|
||||
|
||||
SDK_VENDOR = "-coreossdk"
|
||||
SDK_VERSION = "${DISTRO_VERSION}"
|
||||
SDK_VERSION[vardepvalue] = "${SDK_VERSION}"
|
||||
SDK_NAME = "${DISTRO}-${TCLIBC}-${SDKMACHINE}-${IMAGE_BASENAME}-${TUNE_PKGARCH}-${MACHINE}"
|
||||
SDKPATHINSTALL = "/opt/${DISTRO}/${SDK_VERSION}"
|
||||
|
||||
# EFI and Secure boot
|
||||
# ==============================================================================
|
||||
|
||||
EFI_PROVIDER = "efibootguard"
|
||||
EFIBOOTGUARD_TIMEOUT ??= "60"
|
||||
INHERIT += "coreos-efi-secureboot"
|
||||
|
||||
|
||||
# PACKAGECONFIG
|
||||
# ==============================================================================
|
||||
# Reduce the size of some package by disabling some feature by default
|
||||
|
||||
# Distro using coreos can re-enabled a disabled config by changing
|
||||
# the COREOS_DISABLED_PACKAGECONFIG variable
|
||||
|
||||
PACKAGECONFIG:pn-systemd ?= " \
|
||||
${@bb.utils.filter('DISTRO_FEATURES', 'acl audit efi ldconfig pam selinux smack usrmerge polkit seccomp', d)} \
|
||||
${@bb.utils.contains('DISTRO_FEATURES', 'wifi', 'rfkill', '', d)} \
|
||||
${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xkbcommon', '', d)} \
|
||||
${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', '', 'link-udev-shared', d)} \
|
||||
hostnamed \
|
||||
kmod \
|
||||
localed \
|
||||
logind \
|
||||
set-time-epoch \
|
||||
sysusers \
|
||||
userdb \
|
||||
vconsole \
|
||||
wheel-group \
|
||||
zstd \
|
||||
"
|
||||
|
||||
# DNS Configuration
|
||||
|
||||
|
||||
# CoreOS specific options
|
||||
# ==============================================================================
|
||||
|
||||
# Distro based on CoreOS can provide their own configuration files for the
|
||||
# CoreOS installer by overriding this variable
|
||||
PREFERRED_PROVIDER_coreos-installer-config ??= "coreos-installer-config"
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
# This is the include all the CoreOS feature that are optional
|
||||
|
||||
# Virtualization configuration
|
||||
# ==============================================================================
|
||||
|
||||
PACKAGECONFIG:append:pn-podman = " rootless"
|
||||
DISTRO_FEATURES += "virtualization seccomp"
|
||||
|
||||
# swupdate configuration
|
||||
# ==============================================================================
|
||||
|
||||
# Enable the generation of .swu file for images
|
||||
DISTRO_FEATURES += "swupdate"
|
||||
|
||||
# Networking configuration
|
||||
# ==============================================================================
|
||||
|
||||
# Add networking support to systemd. This allow systemd to handle
|
||||
# network/dhcp/dns/time
|
||||
PACKAGECONFIG:pn-systemd += " \
|
||||
hostnamed \
|
||||
idn \
|
||||
myhostname \
|
||||
nss \
|
||||
nss-resolve \
|
||||
resolved \
|
||||
networkd \
|
||||
timedated \
|
||||
timesyncd \
|
||||
"
|
||||
|
|
@ -1,4 +1,20 @@
|
|||
|
||||
# Add CoreOS A/B Switching support
|
||||
# ==============================================================================
|
||||
|
||||
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
|
||||
|
||||
SRC_URI += "file://0001-coreos-add-a-coreos-specific-rootfs-switch-to-the-UK.patch"
|
||||
|
||||
# Add signature support
|
||||
# ==============================================================================
|
||||
|
||||
inherit coreos-efi-sbsign
|
||||
require conf/image-uefi.conf
|
||||
|
||||
do_deploy:append() {
|
||||
|
||||
if [ -f "${DEPLOYDIR}/efibootguard${EFI_ARCH}.efi" ]; then
|
||||
coreos_efi_secureboot_sign_app "${DEPLOYDIR}/efibootguard${EFI_ARCH}.efi"
|
||||
fi
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
inherit features_check
|
||||
REQUIRED_DISTRO_FEATURES = "swupdate"
|
||||
|
||||
# File in the swupdate subdirectory of this recipe should overwrite the
|
||||
# same file in meta-swupdate
|
||||
FILESEXTRAPATHS:prepend := "${THISDIR}/swupdate:"
|
||||
|
|
@ -9,7 +12,6 @@ SRC_URI += "\
|
|||
|
||||
PACKAGES =+ "${PN}-coreos-config ${PN}-coreos-installer-config"
|
||||
|
||||
|
||||
# Don't use /www as the web root
|
||||
wwwdir = "${datadir}/swupdate-www"
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue