From fcf53f6a8c4fb67f60143955c7239f204f633dfe Mon Sep 17 00:00:00 2001 From: Bruce Ashfield Date: Wed, 16 Jun 2021 23:10:15 -0400 Subject: [PATCH] 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 --- recipes-kernel/linux/yocto-cfg-fragments.bb | 37 +++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 recipes-kernel/linux/yocto-cfg-fragments.bb diff --git a/recipes-kernel/linux/yocto-cfg-fragments.bb b/recipes-kernel/linux/yocto-cfg-fragments.bb new file mode 100644 index 00000000..5f858182 --- /dev/null +++ b/recipes-kernel/linux/yocto-cfg-fragments.bb @@ -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" +