yocto-cfg-fragments: introduce native provider of configuration fragments

To allow the use of the yocto configuration fragments in scenarios where
a kernel inherits kernel-yocto or has a custom fragment implementation, but
doesn't directly include the yocto-kernel-cache in the kernel SRC_URI,
we introduce a native provider of the fragments.

This fragment provider is independent of a kernel tree and when added
as a dependency to a recipe, the fragments will be placed in:

  recipe-sysroot-native/kcfg/

These can then be referenced on the SRC_URI or in KERNEL_FEEATURES by
using '../recipe-sysroot-native/kcfg' as the relative path to the
.scc or .cfg file. In the future, this won't be required as kernel-yocto
will always check the native sysroot for fragments, and fragments will
always be referenced by relative path from the base of the kernel-cache.

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
This commit is contained in:
Bruce Ashfield 2021-06-16 23:10:15 -04:00
parent 83cf286391
commit fcf53f6a8c

View File

@ -0,0 +1,37 @@
HOMEPAGE = "https://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/"
SUMMARY = "Kernel configuration fragments"
DESCRIPTION = "Typically used as part of a kernel clone, this is the standalone \
fragment repository. Making it available to other fragment management schemes \
"
SECTION = "devel"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
do_configure[noexec] = "1"
do_compile[noexec] = "1"
INHIBIT_DEFAULT_DEPS = "1"
LINUX_VERSION ?= "5.14"
PV = "v${LINUX_VERSION}+git${SRCREV}"
SRCREV = "25509cd5563356638e78d33ec7e5354225fbd3db"
SRC_URI = "\
git://git.yoctoproject.org/yocto-kernel-cache;branch=yocto-${LINUX_VERSION} \
"
S = "${WORKDIR}/git"
do_install() {
install -d ${D}${base_prefix}/kcfg
# copy the configuration fragments over to the native deploy
cp -r ${S}/* ${D}${base_prefix}/kcfg
# scripts bring in a bash dependency we don't want
rm -rf ${D}${base_prefix}/kcfg/scripts
}
FILES:${PN} += "kcfg/"
SYSROOT_DIRS += "${base_prefix}/kcfg"
BBCLASSEXTEND = "native nativesdk"