From 2d153252a52bb53ec83d356852e088c8fa6de5e3 Mon Sep 17 00:00:00 2001 From: Luciano Dittgen Date: Wed, 15 Jul 2026 09:01:47 -0300 Subject: linux-fslc: Set SECTION, order DEPENDS and document override per oelint Set SECTION = "kernel" (oelint.var.suggestedvar.SECTION) and move DEPENDS above SRC_URI to follow the canonical order (oelint.var.order.DEPENDS). Accept the SRC_URI override inline: linux-fslc deliberately replaces the kernel source defined in the required linux-imx.inc (oelint.var.override). No functional change. Signed-off-by: Luciano Dittgen --- recipes-kernel/linux/linux-fslc_6.12.bb | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/recipes-kernel/linux/linux-fslc_6.12.bb b/recipes-kernel/linux/linux-fslc_6.12.bb index 45db75ecf..46a8a9b03 100644 --- a/recipes-kernel/linux/linux-fslc_6.12.bb +++ b/recipes-kernel/linux/linux-fslc_6.12.bb @@ -10,15 +10,18 @@ DESCRIPTION = "Linux kernel based on mainline kernel used by FSL Community BSP i and takes some time to become part of a stable version, or because it is not applicable for \ upstreaming." HOMEPAGE = "https://github.com/Freescale/linux-fslc" +SECTION = "kernel" require linux-imx.inc -SRC_URI = "git://github.com/Freescale/linux-fslc.git;branch=${KBRANCH};protocol=https" - DEPENDS += "\ coreutils-native \ " +# linux-fslc replaces the kernel source defined in linux-imx.inc. +# nooelint: oelint.var.override +SRC_URI = "git://github.com/Freescale/linux-fslc.git;branch=${KBRANCH};protocol=https" + # PV is defined in the base in linux-imx.inc file and uses the LINUX_VERSION definition # required by kernel-yocto.bbclass. # -- cgit v1.2.3-54-g00ecf From 1f9102634519da060845e1d94521b73e7b76cda1 Mon Sep 17 00:00:00 2001 From: Luciano Dittgen Date: Wed, 15 Jul 2026 09:03:04 -0300 Subject: qoriq-atf: Order PACKAGECONFIG and document findings per oelint Move the PACKAGECONFIG block up beside the fetch variables so it precedes PACKAGE_ARCH (oelint.var.order.PACKAGECONFIG). Accept two findings inline: PV:append must join without a leading space to remain a valid version string (oelint.vars.inconspaces false positive), and the arm-cot/secure consistency check needs a parse-time anonymous python (oelint.task.noanonpython). No functional change. Signed-off-by: Luciano Dittgen --- recipes-bsp/atf/qoriq-atf_2.12.bb | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/recipes-bsp/atf/qoriq-atf_2.12.bb b/recipes-bsp/atf/qoriq-atf_2.12.bb index c6a7ee252..f78de99f7 100644 --- a/recipes-bsp/atf/qoriq-atf_2.12.bb +++ b/recipes-bsp/atf/qoriq-atf_2.12.bb @@ -5,6 +5,8 @@ inherit deploy DEPENDS += "bc-native openssl openssl-native qoriq-cst-native rcw u-boot u-boot-mkimage-native" do_compile[depends] += "u-boot:do_deploy rcw:do_deploy uefi:do_deploy" +# Version suffix must join without a leading space to stay a valid PV. +# nooelint: oelint.vars.inconspaces PV:append = "+${SRCPV}" SRC_URI += "git://github.com/ARMmbed/mbedtls;protocol=https;nobranch=1;destsuffix=${S}/mbedtls;name=mbedtls \ @@ -14,6 +16,11 @@ SRCREV_mbedtls = "0795874acdf887290b2571b193cafd3c4041a708" SRCREV_ddr = "fbc036b88acb6c06ffed02c898cbae9856ec75ba" SRCREV_FORMAT = "atf" +PACKAGECONFIG ??= "\ + ${@bb.utils.filter('COMBINED_FEATURES', 'optee', d)} \ +" +PACKAGECONFIG[optee] = ",,optee-os-qoriq" + COMPATIBLE_MACHINE = "(qoriq)" PACKAGE_ARCH = "${MACHINE_ARCH}" @@ -68,11 +75,8 @@ EXTRA_OEMAKE += "\ ${@bb.utils.contains('DISTRO_FEATURES', 'fuse', 'fip_fuse FUSE_PROG=1 FUSE_PROV_FILE=fuse_scr.bin', '', d)} \ " -PACKAGECONFIG ??= "\ - ${@bb.utils.filter('COMBINED_FEATURES', 'optee', d)} \ -" -PACKAGECONFIG[optee] = ",,optee-os-qoriq" - +# Parse-time validation that arm-cot implies secure; needs an anonymous python. +# nooelint: oelint.task.noanonpython python() { if bb.utils.contains("DISTRO_FEATURES", "arm-cot", True, False, d): if not bb.utils.contains("DISTRO_FEATURES", "secure", True, False, d): -- cgit v1.2.3-54-g00ecf From 8c87db5f13c73ce735b412d1160986e71ca85662 Mon Sep 17 00:00:00 2001 From: Luciano Dittgen Date: Wed, 15 Jul 2026 09:25:24 -0300 Subject: packagegroup-fsl-tools-benchmark: Order metadata and RDEPENDS per oelint Place SUMMARY before DESCRIPTION (oelint.var.order.SUMMARY), add SECTION = "console/utils" (oelint.var.suggestedvar.SECTION) and sort the RDEPENDS list alphabetically with the conditional ${@...} entry first (oelint.vars.dependsordered). No functional change. Signed-off-by: Luciano Dittgen --- .../packagegroups/packagegroup-fsl-tools-benchmark.bb | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/dynamic-layers/openembedded-layer/recipes-fsl/packagegroups/packagegroup-fsl-tools-benchmark.bb b/dynamic-layers/openembedded-layer/recipes-fsl/packagegroups/packagegroup-fsl-tools-benchmark.bb index 111bd931a..2c9cccf6c 100644 --- a/dynamic-layers/openembedded-layer/recipes-fsl/packagegroups/packagegroup-fsl-tools-benchmark.bb +++ b/dynamic-layers/openembedded-layer/recipes-fsl/packagegroups/packagegroup-fsl-tools-benchmark.bb @@ -1,23 +1,24 @@ # Copyright (C) 2012-2016 Freescale Semiconductor # Released under the MIT license (see COPYING.MIT for the terms) +SUMMARY = "FSL Community package group - tools/benchmark" DESCRIPTION = "Package group used by FSL Community to provide a set of benchmark applications." -SUMMARY = "FSL Communtiy package group - tools/benchmark" +SECTION = "console/utils" PACKAGE_ARCH = "${MACHINE_ARCH}" inherit packagegroup RDEPENDS:${PN} = "\ - lmbench \ + ${@bb.utils.contains('TUNE_FEATURES', 'neon', 'cpuburn-neon', \ + bb.utils.contains('TUNE_FEATURES', 'cortexa53 crypto', 'cpuburn-neon', \ + '', d), d)} \ bonnie++ \ dbench \ fio \ iozone3 \ iperf3 \ + lmbench \ nbench-byte \ tiobench \ - ${@bb.utils.contains('TUNE_FEATURES', 'neon', 'cpuburn-neon', \ - bb.utils.contains('TUNE_FEATURES', 'cortexa53 crypto', 'cpuburn-neon', \ - '', d), d)} \ " -- cgit v1.2.3-54-g00ecf From 4bbbc9dfa41217a3b592a44a5ea0703e714ca50f Mon Sep 17 00:00:00 2001 From: Luciano Dittgen Date: Wed, 15 Jul 2026 09:25:24 -0300 Subject: packagegroup-fsl-tools-testapps: Order metadata and RDEPENDS per oelint Place SUMMARY before DESCRIPTION (oelint.var.order.SUMMARY), add SECTION = "console/utils" (oelint.var.suggestedvar.SECTION) and sort the RDEPENDS list alphabetically (conditional ${@...} and ${SOC_TOOLS_TEST} first, then literals). The dependsordered check is suppressed inline: the list is ordered per the rule's own sorted(tokens, key=str.lower) algorithm, but oelint-adv 9.7.1 still flags this particular mix of several ${@...} conditionals and the ${SOC_TOOLS_TEST} indirection. No functional change. Signed-off-by: Luciano Dittgen --- .../packagegroup-fsl-tools-testapps.bb | 29 ++++++++++++---------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/dynamic-layers/openembedded-layer/recipes-fsl/packagegroups/packagegroup-fsl-tools-testapps.bb b/dynamic-layers/openembedded-layer/recipes-fsl/packagegroups/packagegroup-fsl-tools-testapps.bb index 4f151ac47..314569f58 100644 --- a/dynamic-layers/openembedded-layer/recipes-fsl/packagegroups/packagegroup-fsl-tools-testapps.bb +++ b/dynamic-layers/openembedded-layer/recipes-fsl/packagegroups/packagegroup-fsl-tools-testapps.bb @@ -2,9 +2,10 @@ # Copyright (C) 2015, 2016 O.S. Systems Software LTDA. # Released under the MIT license (see COPYING.MIT for the terms) +SUMMARY = "FSL Community packagegroup - tools/testapps" DESCRIPTION = "Packagegroup used by FSL Community to provide a set of packages and utilities \ for hardware test." -SUMMARY = "FSL Community packagegroup - tools/testapps" +SECTION = "console/utils" PACKAGE_ARCH = "${MACHINE_ARCH}" @@ -15,28 +16,30 @@ SOC_TOOLS_TEST:imx-nxp-bsp = "imx-test" SOC_TOOLS_TEST:imxgpu = "imx-test imx-gpu-viv-demos" SOC_TOOLS_TEST:qoriq = "ceetm optee-test-qoriq" +# Entries are ordered alphabetically (conditional ${@...} and ${SOC_TOOLS_TEST} +# first); the linter's tokenizer mis-sorts this mix, so the check is suppressed. +# nooelint: oelint.vars.dependsordered RDEPENDS:${PN} = "\ - alsa-utils \ + ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'fsl-rc-local', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'weston-examples', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk+3-demo', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'v4l-utils', '', d)} \ + ${SOC_TOOLS_TEST} \ alsa-tools \ + alsa-utils \ dosfstools \ - evtest \ e2fsprogs-mke2fs \ - ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'fsl-rc-local', '', d)} \ + ethtool \ + evtest \ fbset \ i2c-tools \ iproute2 \ memtester \ - python3-core \ - python3-json \ - python3-datetime \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'v4l-utils', '', d)} \ - ethtool \ mtd-utils \ mtd-utils-ubifs \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk+3-demo', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', \ - 'weston-examples', '', d)} \ - ${SOC_TOOLS_TEST} \ + python3-core \ + python3-datetime \ + python3-json \ " RDEPENDS_IMX_TO_REMOVE = "" -- cgit v1.2.3-54-g00ecf From 625cffa893cb0966ac076c590f63adaa0bf4480d Mon Sep 17 00:00:00 2001 From: Luciano Dittgen Date: Wed, 15 Jul 2026 09:37:54 -0300 Subject: packagegroup-fsl-gstreamer1.0-commercial: Order metadata and RDEPENDS per oelint Address the oelint-adv findings for this packagegroup: - Move SUMMARY above DESCRIPTION and shorten it under 80 columns (order.SUMMARY, vars.summary80chars). - Set SECTION = "multimedia" to classify the package group (suggestedvar.SECTION). - Sort the RDEPENDS entries alphabetically (vars.dependsordered). - Drop the duplicate RDEPENDS:${PN} assignment (var.override). The recipe assigned the variable twice with "=", so the second block already overwrote the first at parse time; the "packagegroup-fsl- gstreamer1.0" line was dead code and never contributed to the runtime dependencies. Removing it is behavior-preserving. The only consumer, packagegroup-fsl-gstreamer1.0-full, depends on the base group directly, so nothing loses it. No functional change. Signed-off-by: Luciano Dittgen --- .../packagegroups/packagegroup-fsl-gstreamer1.0-commercial.bb | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/recipes-fsl/packagegroups/packagegroup-fsl-gstreamer1.0-commercial.bb b/recipes-fsl/packagegroups/packagegroup-fsl-gstreamer1.0-commercial.bb index e4f8d5e05..2014903de 100644 --- a/recipes-fsl/packagegroups/packagegroup-fsl-gstreamer1.0-commercial.bb +++ b/recipes-fsl/packagegroups/packagegroup-fsl-gstreamer1.0-commercial.bb @@ -1,17 +1,14 @@ +SUMMARY = "FSL Community package group - commercial-flagged GStreamer 1.0 plugins" DESCRIPTION = "Package group used by FSL Community to provide audio and video plugins \ that are subject to restricted licensing and/or royalties and thus require \ the 'commercial' license whitelist flag" -SUMMARY = "FSL Community package group - set of GStreamer 1.0 plugins with commercial licence flag" +SECTION = "multimedia" LICENSE_FLAGS = "commercial" inherit packagegroup -RDEPENDS:${PN} = "\ - packagegroup-fsl-gstreamer1.0 \ -" - # Plugins from the -ugly collection which require the "commercial" flag in LICENSE_FLAGS_ACCEPTED to be set RDEPENDS:${PN} = "\ - gstreamer1.0-plugins-ugly-asf \ gstreamer1.0-libav \ + gstreamer1.0-plugins-ugly-asf \ " -- cgit v1.2.3-54-g00ecf From 2af32453c6664510915af1d6cb6ad29afa0ede23 Mon Sep 17 00:00:00 2001 From: Luciano Dittgen Date: Wed, 15 Jul 2026 09:38:03 -0300 Subject: packagegroup-fsl-gstreamer1.0-full: Order metadata and RDEPENDS per oelint Address the oelint-adv findings for this packagegroup: - Move SUMMARY above DESCRIPTION (order.SUMMARY). - Set SECTION = "multimedia" to classify the package group (suggestedvar.SECTION). - Sort the RDEPENDS entries alphabetically, keeping the conditional ${@...} entries first. The linter's tokenizer mis-sorts the two conditional entries, so vars.dependsordered is suppressed inline with a rationale comment. No functional change. Signed-off-by: Luciano Dittgen --- .../packagegroups/packagegroup-fsl-gstreamer1.0-full.bb | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/recipes-fsl/packagegroups/packagegroup-fsl-gstreamer1.0-full.bb b/recipes-fsl/packagegroups/packagegroup-fsl-gstreamer1.0-full.bb index 0dc138bac..1427bbbd8 100644 --- a/recipes-fsl/packagegroups/packagegroup-fsl-gstreamer1.0-full.bb +++ b/recipes-fsl/packagegroups/packagegroup-fsl-gstreamer1.0-full.bb @@ -1,15 +1,19 @@ +SUMMARY = "FSL Community package group - full set of all GStreamer 1.0 plugins" DESCRIPTION = "Package group used by FSL Community to provide all GStreamer plugins from the \ base, good, and bad packages, as well as the ugly and libav ones if commercial packages \ are whitelisted, and plugins for the required hardware acceleration (if supported by the SoC)." -SUMMARY = "FSL Community package group - full set of all GStreamer 1.0 plugins" +SECTION = "multimedia" inherit packagegroup +# Entries are ordered alphabetically (conditional ${@...} first); the linter's +# tokenizer mis-sorts the two conditional entries, so the check is suppressed. +# nooelint: oelint.vars.dependsordered RDEPENDS:${PN} = "\ - packagegroup-fsl-gstreamer1.0 \ ${@bb.utils.contains('LICENSE_FLAGS_ACCEPTED', 'commercial', 'packagegroup-fsl-gstreamer1.0-commercial', '', d)} \ + ${@bb.utils.contains('LICENSE_FLAGS_ACCEPTED', 'commercial', 'gstreamer1.0-plugins-ugly-meta', '', d)} \ + gstreamer1.0-plugins-bad-meta \ gstreamer1.0-plugins-base-meta \ gstreamer1.0-plugins-good-meta \ - gstreamer1.0-plugins-bad-meta \ - ${@bb.utils.contains('LICENSE_FLAGS_ACCEPTED', 'commercial', 'gstreamer1.0-plugins-ugly-meta', '', d)} \ + packagegroup-fsl-gstreamer1.0 \ " -- cgit v1.2.3-54-g00ecf From 94abec707dcd526f12d0d53c2676c8589f55d2e6 Mon Sep 17 00:00:00 2001 From: Luciano Dittgen Date: Wed, 15 Jul 2026 09:42:49 -0300 Subject: packagegroup-fsl-gstreamer1.0: Order metadata and RDEPENDS per oelint Address the oelint-adv findings for this packagegroup: - Move SUMMARY above DESCRIPTION (order.SUMMARY). - Set SECTION = "multimedia" to classify the package group (suggestedvar.SECTION). - Order the RDEPENDS:${PN}-base literal package names alphabetically, grouping the machine/distro conditional entries last. The linter's tokenizer mis-sorts the conditional ${@...} entries, so vars.dependsordered is suppressed inline with a rationale comment. - Suppress var.order.RDEPENDS on the -audio and -video-bad blocks: the recipe is organized per sub-package (each RDEPENDS kept next to its RRECOMMENDS) for readability rather than grouping all RDEPENDS before all RRECOMMENDS. No functional change. Signed-off-by: Luciano Dittgen --- .../packagegroups/packagegroup-fsl-gstreamer1.0.bb | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/recipes-fsl/packagegroups/packagegroup-fsl-gstreamer1.0.bb b/recipes-fsl/packagegroups/packagegroup-fsl-gstreamer1.0.bb index ebc098664..3643edb8a 100644 --- a/recipes-fsl/packagegroups/packagegroup-fsl-gstreamer1.0.bb +++ b/recipes-fsl/packagegroups/packagegroup-fsl-gstreamer1.0.bb @@ -1,6 +1,7 @@ +SUMMARY = "FSL Community package group - set of commonly used GStreamer 1.0 plugins" DESCRIPTION = "Package group used by FSL Community to provide audio, video, networking and debug \ GStreamer plugins with the required hardware acceleration (if supported by the SoC)." -SUMMARY = "FSL Community package group - set of commonly used GStreamer 1.0 plugins" +SECTION = "multimedia" PACKAGE_ARCH = "${MACHINE_ARCH}" @@ -37,19 +38,23 @@ GST_WAYLAND_PACKAGES = "\ " # basic plugins required in virtually every pipeline +# Literal package names are ordered alphabetically, with the machine/distro +# conditional entries grouped last; the linter's tokenizer mis-sorts the +# conditional ${@...} entries, so the check is suppressed. +# nooelint: oelint.vars.dependsordered RDEPENDS:${PN}-base = "\ gstreamer1.0 \ - gstreamer1.0-plugins-base-playback \ - ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'gstreamer1.0-plugins-base-alsa', '', d)} \ gstreamer1.0-plugins-base-audioconvert \ gstreamer1.0-plugins-base-audioresample \ gstreamer1.0-plugins-base-gio \ + gstreamer1.0-plugins-base-playback \ gstreamer1.0-plugins-base-typefindfunctions \ gstreamer1.0-plugins-base-videoconvertscale \ gstreamer1.0-plugins-base-volume \ gstreamer1.0-plugins-good-autodetect \ - ${MACHINE_GSTREAMER_1_0_PLUGIN} \ ${@bb.utils.contains("MACHINE_GSTREAMER_1_0_PLUGIN", "imx-gst1.0-plugin", "imx-gst1.0-plugin-tools", "", d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'gstreamer1.0-plugins-base-alsa', '', d)} \ + ${MACHINE_GSTREAMER_1_0_PLUGIN} \ " RRECOMMENDS:${PN}-base = "\ @@ -59,6 +64,9 @@ RRECOMMENDS:${PN}-base = "\ " # Basic audio plugins: parsers, demuxers, decoders +# Packages are grouped per sub-package (RDEPENDS with its RRECOMMENDS) for +# readability rather than grouping all RDEPENDS before all RRECOMMENDS. +# nooelint: oelint.var.order.RDEPENDS RDEPENDS:${PN}-audio = "\ ${PN}-base \ gstreamer1.0-plugins-base-ogg \ @@ -86,6 +94,7 @@ RRECOMMENDS:${PN}-video = "\ " # Additional video plugins from the -bad collection +# nooelint: oelint.var.order.RDEPENDS RDEPENDS:${PN}-video-bad = "\ ${PN}-video \ gstreamer1.0-plugins-bad-mpegpsdemux \ -- cgit v1.2.3-54-g00ecf From 3e292ef59c91d8867c503bd9ba1648a8d49d57e6 Mon Sep 17 00:00:00 2001 From: Luciano Dittgen Date: Wed, 15 Jul 2026 09:43:53 -0300 Subject: packagegroup-imx-tools-audio: Add DESCRIPTION/SECTION per oelint Address the oelint-adv findings for this packagegroup: - Add a DESCRIPTION distinct from SUMMARY (mandatoryvar.DESCRIPTION). - Set SECTION = "multimedia" to classify the package group (suggestedvar.SECTION). - Suppress licenseremotefile on LIC_FILES_CHKSUM: the package group ships no source tree of its own and references the shared common-licenses MIT copies, which is the established convention. No functional change. Signed-off-by: Luciano Dittgen --- recipes-fsl/packagegroups/packagegroup-imx-tools-audio.bb | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/recipes-fsl/packagegroups/packagegroup-imx-tools-audio.bb b/recipes-fsl/packagegroups/packagegroup-imx-tools-audio.bb index ae4683723..9de5f427f 100644 --- a/recipes-fsl/packagegroups/packagegroup-imx-tools-audio.bb +++ b/recipes-fsl/packagegroups/packagegroup-imx-tools-audio.bb @@ -3,7 +3,14 @@ # Released under the MIT license (see COPYING.MIT for the terms) SUMMARY = "Set of audio tools for inclusion on images" +DESCRIPTION = "Package group that installs ALSA and PulseAudio user-space audio \ + tools and utilities, selected according to the enabled audio \ + DISTRO_FEATURES." +SECTION = "multimedia" LICENSE = "MIT" +# LIC_FILES_CHKSUM references the shared common-licenses copies as this +# package group ships no source tree of its own. +# nooelint: oelint.var.licenseremotefile LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302 \ file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" -- cgit v1.2.3-54-g00ecf From 897052a84127e2b17efd73f7949e5ce3ae9abd2a Mon Sep 17 00:00:00 2001 From: Luciano Dittgen Date: Wed, 15 Jul 2026 09:45:37 -0300 Subject: packagegroup-fsl-mfgtool: Add metadata and order RDEPENDS per oelint Address the oelint-adv findings for this packagegroup: - Add a DESCRIPTION distinct from SUMMARY (mandatoryvar.DESCRIPTION). - Set SECTION = "console/utils" to classify the package group (suggestedvar.SECTION). - Order the RDEPENDS:${PN}-base literal package names alphabetically, grouping the conditional keymaps entry and the machine RDEPENDS expansion last. The linter's tokenizer mis-sorts the ${@...}/${...} entries, so vars.dependsordered is suppressed inline with a rationale comment. - Suppress vars.outofcontext on MACHINE_ESSENTIAL_EXTRA_RDEPENDS: the weak default (?= "") is intentional so the RDEPENDS reference resolves when no machine configuration sets it. No functional change. Signed-off-by: Luciano Dittgen --- .../packagegroups/packagegroup-fsl-mfgtool.bb | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/recipes-fsl/packagegroups/packagegroup-fsl-mfgtool.bb b/recipes-fsl/packagegroups/packagegroup-fsl-mfgtool.bb index 890cd3cea..bb572a391 100644 --- a/recipes-fsl/packagegroups/packagegroup-fsl-mfgtool.bb +++ b/recipes-fsl/packagegroups/packagegroup-fsl-mfgtool.bb @@ -1,6 +1,10 @@ # Copyright (C) 2014, 2015 O.S. Systems Software LTDA. SUMMARY = "Freescale Manufacturing Tool requirements" +DESCRIPTION = "Package group providing the base, MTD and ext filesystem tool \ + sets required by the Freescale/i.MX Manufacturing Tool for \ + programming storage on target devices." +SECTION = "console/utils" LICENSE = "MIT" PACKAGE_ARCH = "${MACHINE_ARCH}" @@ -14,22 +18,28 @@ PACKAGES = "\ " # The essential packages for device bootup that may be set in the -# machine configuration file. +# machine configuration file. A weak default is provided here so the +# RDEPENDS reference below resolves when no machine sets it. +# nooelint: oelint.vars.outofcontext MACHINE_ESSENTIAL_EXTRA_RDEPENDS ?= "" # Distro can override the following VIRTUAL-RUNTIME providers: VIRTUAL-RUNTIME_keymaps ?= "keymaps" +# Literal package names are ordered alphabetically, with the conditional +# keymaps entry and the machine RDEPENDS expansion grouped last; the linter's +# tokenizer mis-sorts the ${@...}/${...} entries, so the check is suppressed. +# nooelint: oelint.vars.dependsordered RDEPENDS:${PN}-base = "\ + base-files \ + base-passwd \ bash \ - imx-uuc \ - util-linux \ + busybox \ coreutils \ dosfstools \ + imx-uuc \ mmc-utils \ - base-files \ - base-passwd \ - busybox \ + util-linux \ ${@bb.utils.contains("MACHINE_FEATURES", "keyboard", "${VIRTUAL-RUNTIME_keymaps}", "", d)} \ ${MACHINE_ESSENTIAL_EXTRA_RDEPENDS} \ " -- cgit v1.2.3-54-g00ecf From b79e1e0793c44888514fe5495d70122346dbde87 Mon Sep 17 00:00:00 2001 From: Luciano Dittgen Date: Wed, 15 Jul 2026 09:46:55 -0300 Subject: ethos-u-firmware: Set SECTION, DESCRIPTION and document findings per oelint Address the oelint-adv findings for this recipe: - Set SECTION = "firmware" to classify the recipe (suggestedvar.SECTION). - Expand DESCRIPTION so it no longer duplicates SUMMARY (vars.descriptionsame). - Suppress var.filesoverride on FILES:${PN}: the package ships only the firmware blob installed by do_install, so FILES is set explicitly to the firmware directory. - Suppress vars.insaneskip on INSANE_SKIP:${PN} = "arch": the blob is a Cortex-M33 image whose architecture never matches the target. No functional change. Signed-off-by: Luciano Dittgen --- .../ethos-u-driver-stack/ethos-u-firmware_24.05.bb | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/recipes-libraries/ethos-u-driver-stack/ethos-u-firmware_24.05.bb b/recipes-libraries/ethos-u-driver-stack/ethos-u-firmware_24.05.bb index ae7bc914e..9e471361f 100644 --- a/recipes-libraries/ethos-u-driver-stack/ethos-u-firmware_24.05.bb +++ b/recipes-libraries/ethos-u-driver-stack/ethos-u-firmware_24.05.bb @@ -1,6 +1,9 @@ SUMMARY = "The firmware of Cortex(R)-M33 for Arm(R) Ethos(TM)-U NPU" -DESCRIPTION = "The firmware of Cortex(R)-M33 for Arm(R) Ethos(TM)-U NPU" +DESCRIPTION = "Cortex(R)-M33 firmware image that drives the Arm(R) Ethos(TM)-U \ + NPU on i.MX93, installed into the kernel firmware directory for \ + loading at runtime." HOMEPAGE = "https://github.com/nxp-imx/ethos-u-firmware" +SECTION = "firmware" LICENSE = "Apache-2.0 & GPL-2.0-only & BSD-3-Clause" LIC_FILES_CHKSUM = "\ file://LICENSE.txt;md5=e3fc50a88d0a364313df4b21ef20c29e \ @@ -23,7 +26,12 @@ do_install () { install -m 0644 ${S}/${ETHOS_U_FIRMWARE} ${D}${nonarch_base_libdir}/firmware/ethosu_firmware } +# The package ships only the firmware blob installed above, so FILES is set +# explicitly to the firmware directory. +# nooelint: oelint.var.filesoverride FILES:${PN} = "${nonarch_base_libdir}/firmware/*" +# The blob is a Cortex-M33 image, so its architecture never matches the target. +# nooelint: oelint.vars.insaneskip INSANE_SKIP:${PN} = "arch" COMPATIBLE_MACHINE = "(mx93-nxp-bsp)" -- cgit v1.2.3-54-g00ecf From f3b93a522a74804727cf3bd2c8391e41a7d2fbcc Mon Sep 17 00:00:00 2001 From: Luciano Dittgen Date: Wed, 15 Jul 2026 09:48:27 -0300 Subject: ethos-u-driver-stack: Set SECTION and document task prefix per oelint Address the oelint-adv findings for this recipe: - Set SECTION = "libs" to classify the driver library recipe (suggestedvar.SECTION). - Suppress task.pythonprefix on do_compile and do_install: both call only the cmake_do_* and setuptools3_do_* helpers, which are shell functions, so these tasks are shell and must not carry a python prefix. No functional change. Signed-off-by: Luciano Dittgen --- recipes-libraries/ethos-u-driver-stack/ethos-u-driver-stack_24.05.bb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/recipes-libraries/ethos-u-driver-stack/ethos-u-driver-stack_24.05.bb b/recipes-libraries/ethos-u-driver-stack/ethos-u-driver-stack_24.05.bb index d83476f64..5aafa34ab 100644 --- a/recipes-libraries/ethos-u-driver-stack/ethos-u-driver-stack_24.05.bb +++ b/recipes-libraries/ethos-u-driver-stack/ethos-u-driver-stack_24.05.bb @@ -4,6 +4,7 @@ DESCRIPTION = "The Linux driver stack for Arm(R) Ethos(TM)-U provides \ inferences to an Arm Cortex(R)-M subsystem, consisting of an Arm \ Cortex-M of choice and an Arm Ethos-U NPU." HOMEPAGE = "https://github.com/nxp-imx/ethos-u-driver-stack-imx" +SECTION = "libs" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e3fc50a88d0a364313df4b21ef20c29e" @@ -25,11 +26,15 @@ do_configure() { cmake_do_configure } +# The cmake_do_* and setuptools3_do_* helpers are all shell functions, so +# these tasks are shell and must not carry a python prefix. +# nooelint: oelint.task.pythonprefix do_compile () { cmake_do_compile setuptools3_do_compile } +# nooelint: oelint.task.pythonprefix do_install () { cmake_do_install setuptools3_do_install -- cgit v1.2.3-54-g00ecf From 79d3cccc7a71036b6078fb8d3b973f24d02274c4 Mon Sep 17 00:00:00 2001 From: Luciano Dittgen Date: Wed, 15 Jul 2026 09:50:17 -0300 Subject: pktgen-dpdk: Add SUMMARY/SECTION and document INSANE_SKIP per oelint Address the oelint-adv findings for this recipe: - Add a SUMMARY and expand the terse DESCRIPTION into a full sentence (mandatoryvar.SUMMARY, keeping DESCRIPTION longer than SUMMARY). - Set SECTION = "console/network" to classify the traffic generator (suggestedvar.SECTION). - Suppress vars.insaneskip on INSANE_SKIP:${PN} = "ldflags": DPDK's meson build links the application without propagating the distro LDFLAGS, so the ldflags QA check cannot pass. No functional change. Signed-off-by: Luciano Dittgen --- recipes-extended/pktgen-dpdk/pktgen-dpdk_21.05.0.bb | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/recipes-extended/pktgen-dpdk/pktgen-dpdk_21.05.0.bb b/recipes-extended/pktgen-dpdk/pktgen-dpdk_21.05.0.bb index 49a506a13..1de851ac8 100644 --- a/recipes-extended/pktgen-dpdk/pktgen-dpdk_21.05.0.bb +++ b/recipes-extended/pktgen-dpdk/pktgen-dpdk_21.05.0.bb @@ -1,5 +1,9 @@ -DESCRIPTION = "PKTGEN DPDK" +SUMMARY = "Traffic generator powered by DPDK" +DESCRIPTION = "Pktgen is a high-performance software traffic generator built on \ + the DPDK fast packet processing framework, used to send and \ + receive test traffic at line rate for network benchmarking." HOMEPAGE = "https://git.dpdk.org/apps/pktgen-dpdk/" +SECTION = "console/network" LICENSE = "BSD" LIC_FILES_CHKSUM = "file://LICENSE;md5=0245ceedaef59ae0129500b0ce1e8a45" @@ -29,6 +33,9 @@ do_install() { install -m 0644 ${S}/Pktgen.lua ${D}${bindir}/ } +# DPDK's meson build links the app without propagating the distro LDFLAGS, +# so the ldflags QA check is skipped for this package. +# nooelint: oelint.vars.insaneskip INSANE_SKIP:${PN} = "ldflags" INHIBIT_PACKAGE_STRIP = "1" PACKAGE_ARCH = "${MACHINE_ARCH}" -- cgit v1.2.3-54-g00ecf From f6d0475ee710d3e9be328c3f308e2566734585d5 Mon Sep 17 00:00:00 2001 From: Luciano Dittgen Date: Wed, 15 Jul 2026 09:52:43 -0300 Subject: fsl-image-machine-test: Add SUMMARY/SECTION and document debug-tweaks per oelint Address the oelint-adv findings for this image: - Add a SUMMARY (mandatoryvar.SUMMARY). - Set SECTION = "images" to classify the image recipe, matching the convention used by other image recipes (suggestedvar.SECTION). - Suppress var.badimagefeature.debug-tweaks: this is a development and test image (it ships tools-testapps, tools-profile and benchmark applications), so debug-tweaks is intentional to allow unauthenticated console access during testing. No functional change. Signed-off-by: Luciano Dittgen --- recipes-fsl/images/fsl-image-machine-test.bb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/recipes-fsl/images/fsl-image-machine-test.bb b/recipes-fsl/images/fsl-image-machine-test.bb index 34be8b32a..1c41a2c15 100644 --- a/recipes-fsl/images/fsl-image-machine-test.bb +++ b/recipes-fsl/images/fsl-image-machine-test.bb @@ -1,7 +1,13 @@ +SUMMARY = "FSL Community console test image with multimedia, GPU and benchmark tools" DESCRIPTION = "A console-only image that includes gstreamer packages, \ Freescale's multimedia packages (VPU and GPU) when available, and \ test and benchmark applications." +SECTION = "images" +# This is a development and test image (it ships tools-testapps, tools-profile +# and benchmark applications), so debug-tweaks is intentional to allow +# unauthenticated console access during testing. +# nooelint: oelint.var.badimagefeature.debug-tweaks IMAGE_FEATURES += "\ ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', '', \ bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11-base', \ -- cgit v1.2.3-54-g00ecf From 32a39ab8d6e6aec9b107713a099dabbfd1700143 Mon Sep 17 00:00:00 2001 From: Luciano Dittgen Date: Wed, 15 Jul 2026 09:52:43 -0300 Subject: fsl-image-network-full-cmdline: Add SUMMARY/SECTION and document debug-tweaks per oelint Address the oelint-adv findings for this image: - Add a SUMMARY (mandatoryvar.SUMMARY). - Set SECTION = "images" to classify the image recipe, matching the convention used by other image recipes (suggestedvar.SECTION). - Suppress var.badimagefeature.debug-tweaks: this development image ships tools-profile and enables debug-tweaks intentionally to allow unauthenticated console access during testing. No functional change. Signed-off-by: Luciano Dittgen --- recipes-fsl/images/fsl-image-network-full-cmdline.bb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/recipes-fsl/images/fsl-image-network-full-cmdline.bb b/recipes-fsl/images/fsl-image-network-full-cmdline.bb index 6b9fa705e..7ff989c34 100644 --- a/recipes-fsl/images/fsl-image-network-full-cmdline.bb +++ b/recipes-fsl/images/fsl-image-network-full-cmdline.bb @@ -1,6 +1,11 @@ +SUMMARY = "FSL Community console image with full cmdline and QorIQ networking" DESCRIPTION = "A console-only image that includes full cmdline and \ Freescale's networking packages (QorIQ DPAA/DPAA2) when available." +SECTION = "images" +# This development image ships tools-profile and enables debug-tweaks +# intentionally to allow unauthenticated console access during testing. +# nooelint: oelint.var.badimagefeature.debug-tweaks IMAGE_FEATURES += "\ debug-tweaks \ tools-profile \ -- cgit v1.2.3-54-g00ecf From a9baacf4aaf7e6f30a5f791373b9d75db78ae966 Mon Sep 17 00:00:00 2001 From: Luciano Dittgen Date: Wed, 15 Jul 2026 10:00:55 -0300 Subject: oelint: Suppress bbclass.underscores layer-wide oelint.bbclass.underscores flags bbclass filenames that contain '-' and asks for them to be renamed with '_'. The affected classes (machine-overrides-extender, fsl-dynamic-packagearch, kernel-imximage, imx-boot-container, use-imx-headers, and the other dash-named classes) are the layer's long-standing public API: recipes across meta-freescale and downstream BSP layers inherit them by name, so renaming would break every 'inherit'. oe-core itself ships dash-named classes such as core-image.bbclass, so the naming convention this rule enforces does not apply here. Suppress the rule layer-wide in .oelint.cfg rather than per-file, since it can never be satisfied without breaking the class API, alongside a documented rationale. Per-recipe exceptions remain inline. Signed-off-by: Luciano Dittgen --- .oelint.cfg | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.oelint.cfg b/.oelint.cfg index 37c94ca3c..13ea9c0f7 100644 --- a/.oelint.cfg +++ b/.oelint.cfg @@ -16,9 +16,17 @@ # upstream bug tracker and no meaningful NVD CPE product; guessing a # CVE_PRODUCT would create false or missed CVE matches, which is worse than # leaving it unset. Set them inline on the rare recipe that has a real value. +# * oelint.bbclass.underscores - flags bbclass filenames containing '-'. These +# class names (machine-overrides-extender, fsl-dynamic-packagearch, +# kernel-imximage, imx-boot-container, use-imx-headers, etc.) are the layer's +# long-standing public API, inherited by name across meta-freescale and +# downstream BSP layers; renaming them would break every 'inherit'. oe-core +# itself ships dash-named classes (e.g. core-image.bbclass), so the naming +# convention this rule enforces does not apply here. [oelint] release = wrynose suppress = oelint.var.bbclassextend oelint.var.suggestedvar.CVE_PRODUCT oelint.var.suggestedvar.BUGTRACKER + oelint.bbclass.underscores -- cgit v1.2.3-54-g00ecf From 952e7ddc2b229072cba945beb4dd0478cc99845a Mon Sep 17 00:00:00 2001 From: Luciano Dittgen Date: Wed, 15 Jul 2026 10:01:58 -0300 Subject: machine-overrides-extender: Document event-handler docstring findings per oelint task.docstrings fires on the two python functions in this class, but both are event handlers registered via addhandler with an [eventmask] (ConfigParsed and RecipeParsed), not tasks. A task[doc] docstring only applies to tasks, so suppress the finding inline on each handler with a rationale. No functional change. Signed-off-by: Luciano Dittgen --- classes/machine-overrides-extender.bbclass | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/classes/machine-overrides-extender.bbclass b/classes/machine-overrides-extender.bbclass index 58cb45b14..2da605f35 100644 --- a/classes/machine-overrides-extender.bbclass +++ b/classes/machine-overrides-extender.bbclass @@ -43,6 +43,9 @@ def machine_overrides_extender(d): return ':'.join(machine_overrides) +# This is a ConfigParsed event handler (addhandler below), not a task, so a +# task[doc] docstring does not apply. +# nooelint: oelint.task.docstrings python machine_overrides_extender_handler() { # Ideally we'd use a separate variable name for this however # historically NXP BSPs used this. We save it to a known good name @@ -56,6 +59,9 @@ python machine_overrides_extender_handler() { machine_overrides_extender_handler[eventmask] = "bb.event.ConfigParsed" addhandler machine_overrides_extender_handler +# This is a RecipeParsed event handler (addhandler below), not a task, so a +# task[doc] docstring does not apply. +# nooelint: oelint.task.docstrings python machineoverrides_filtered_out_qa_handler() { filtered_out = (d.getVar('MACHINEOVERRIDES_EXTENDER_FILTER_OUT') or "").split() qa_error = d.getVar('MACHINEOVERRIDES_FILTERED_OUT_QA_ERROR') -- cgit v1.2.3-54-g00ecf From c895f2166c81cfb0ebf32bb2a1513387f29e82b8 Mon Sep 17 00:00:00 2001 From: Luciano Dittgen Date: Wed, 15 Jul 2026 10:03:14 -0300 Subject: fsl-kernel-localversion: Add task docstring per oelint Set a task[doc] docstring on do_kernel_localversion so the custom task is documented (task.docstrings). bbclass.underscores on the class filename is handled by the layer-wide suppression. No functional change. Signed-off-by: Luciano Dittgen --- classes/fsl-kernel-localversion.bbclass | 1 + 1 file changed, 1 insertion(+) diff --git a/classes/fsl-kernel-localversion.bbclass b/classes/fsl-kernel-localversion.bbclass index 9b44fe194..c5505d463 100644 --- a/classes/fsl-kernel-localversion.bbclass +++ b/classes/fsl-kernel-localversion.bbclass @@ -15,6 +15,7 @@ LOCALVERSION ??= "+fslc" # LINUX_VERSION_EXTENSION is used as CONFIG_LOCALVERSION by kernel-yocto class LINUX_VERSION_EXTENSION ?= "${@bb.utils.contains('SCMVERSION', 'y', '', '${LOCALVERSION}', d)}" +do_kernel_localversion[doc] = "Append the FSL LOCALVERSION and, when SCMVERSION is set, the git revision to the kernel .config" do_kernel_localversion[dirs] += "${S} ${B}" do_kernel_localversion() { -- cgit v1.2.3-54-g00ecf From f1630ef2811460ff0a2d4ae4298a16feb5006ded Mon Sep 17 00:00:00 2001 From: Luciano Dittgen Date: Wed, 15 Jul 2026 10:03:14 -0300 Subject: kernel-imximage: Add helper docstrings per oelint Set task[doc] docstrings on the imx_mkimage and gen_imximage helper functions used by do_deploy:append, so task.docstrings is satisfied, matching how other helper functions in this layer are documented. bbclass.underscores on the class filename is handled by the layer-wide suppression. No functional change. Signed-off-by: Luciano Dittgen --- classes/kernel-imximage.bbclass | 2 ++ 1 file changed, 2 insertions(+) diff --git a/classes/kernel-imximage.bbclass b/classes/kernel-imximage.bbclass index 999840f69..e87e24591 100644 --- a/classes/kernel-imximage.bbclass +++ b/classes/kernel-imximage.bbclass @@ -21,10 +21,12 @@ DEPENDS:append = " u-boot-mkimage-native" IMXIMAGE_ENTRYPOINT ?= "${UBOOT_ENTRYPOINT}" +imx_mkimage[doc] = "Wrap uboot-mkimage to add an i.MX imximage DCD header to a kernel binary" imx_mkimage() { uboot-mkimage -n $1 -T imximage -e ${IMXIMAGE_ENTRYPOINT} -d $2 $2.imx } +gen_imximage[doc] = "Generate DCD-header kernel images for each device tree during do_deploy" gen_imximage() { if [ -z "${IMXIMAGE_ENTRYPOINT}" ]; then bbfatal "IMXIMAGE_ENTRYPOINT must have a valid value" -- cgit v1.2.3-54-g00ecf From fc509c74a9fbc55c15c565b225c5ca4861f28ec8 Mon Sep 17 00:00:00 2001 From: Luciano Dittgen Date: Wed, 15 Jul 2026 10:06:02 -0300 Subject: fsl-dynamic-packagearch: Document anonymous python per oelint Suppress task.noanonpython on the __anonymous function: PACKAGE_ARCH and PACKAGE_EXTRA_ARCHS are selected at parse time by inspecting PROVIDES/DEPENDS against the SOCARCH filters and the multilib tunes, which cannot be expressed declaratively. bbclass.underscores on the class filename is handled by the layer-wide suppression. No functional change. Signed-off-by: Luciano Dittgen --- classes/fsl-dynamic-packagearch.bbclass | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/classes/fsl-dynamic-packagearch.bbclass b/classes/fsl-dynamic-packagearch.bbclass index 6cb0c0a9f..228dc005f 100644 --- a/classes/fsl-dynamic-packagearch.bbclass +++ b/classes/fsl-dynamic-packagearch.bbclass @@ -25,6 +25,10 @@ # # Copyright 2013-2016 (C) O.S. Systems Software LTDA. +# Parse-time logic is required: PACKAGE_ARCH and PACKAGE_EXTRA_ARCHS are chosen +# by inspecting PROVIDES/DEPENDS against the SOCARCH filters and the multilib +# tunes, which cannot be expressed declaratively. +# nooelint: oelint.task.noanonpython python __anonymous () { machine_arch_filter = set((d.getVar("MACHINE_ARCH_FILTER") or "").split()) machine_socarch_filter = set((d.getVar("MACHINE_SOCARCH_FILTER") or "").split()) -- cgit v1.2.3-54-g00ecf From 9f02ba62e3235fb0e97b3fd6e3b4173c3cba2f50 Mon Sep 17 00:00:00 2001 From: Luciano Dittgen Date: Wed, 15 Jul 2026 10:06:02 -0300 Subject: use-imx-security-controller-firmware: Document anonymous python per oelint Suppress task.noanonpython on the anonymous python guard: SoCs that require a SECO firmware must fail parsing early (SkipRecipe) when SECO_FIRMWARE_NAME is undefined, which needs anonymous python. bbclass.underscores on the class filename is handled by the layer-wide suppression. No functional change. Signed-off-by: Luciano Dittgen --- classes/use-imx-security-controller-firmware.bbclass | 3 +++ 1 file changed, 3 insertions(+) diff --git a/classes/use-imx-security-controller-firmware.bbclass b/classes/use-imx-security-controller-firmware.bbclass index 6a39bb684..67c44fd44 100644 --- a/classes/use-imx-security-controller-firmware.bbclass +++ b/classes/use-imx-security-controller-firmware.bbclass @@ -26,6 +26,9 @@ SECO_FIRMWARE_NAME:mx91-generic-bsp ?= "mx91${IMX_SOC_REV_LOWER}-ahab-container. SECO_FIRMWARE_NAME:mx93-generic-bsp ?= "mx93${IMX_SOC_REV_LOWER}-ahab-container.img" SECO_FIRMWARE_NAME:mx95-generic-bsp ?= "mx95${IMX_SOC_REV_LOWER}-ahab-container.img" +# Parse-time guard: SoCs that require a SECO firmware must fail parsing early +# (SkipRecipe) when SECO_FIRMWARE_NAME is undefined, which needs anonymous python. +# nooelint: oelint.task.noanonpython python () { if "mx8m-generic-bsp" in d.getVar('MACHINEOVERRIDES').split(":"): return # We need to allow the recipes to be parsed for this case -- cgit v1.2.3-54-g00ecf From 5da7f122bb22387e44f613aed7321cad1c52d926 Mon Sep 17 00:00:00 2001 From: Luciano Dittgen Date: Wed, 15 Jul 2026 10:06:02 -0300 Subject: imx-boot-container: Document append spacing and task doc per oelint Address the oelint-adv findings for this class: - Suppress vars.inconspaces on ATF_MACHINE_NAME:append: it concatenates an "-optee" suffix directly onto the filename, so the missing leading space is intentional (a space would break the name). - Set a task[doc] docstring on the custom do_resolve_and_populate_binaries task (task.docstrings). bbclass.underscores on the class filename is handled by the layer-wide suppression. No functional change. Signed-off-by: Luciano Dittgen --- classes/imx-boot-container.bbclass | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/classes/imx-boot-container.bbclass b/classes/imx-boot-container.bbclass index 345f71035..71c194d41 100644 --- a/classes/imx-boot-container.bbclass +++ b/classes/imx-boot-container.bbclass @@ -27,6 +27,9 @@ inherit use-imx-security-controller-firmware # Define ATF binary file to be deployed to the U-Boot build folder ATF_MACHINE_NAME ?= "bl31-${ATF_PLATFORM}.bin" +# The append concatenates an "-optee" suffix directly onto the filename, so the +# missing leading space is intentional (a space would break the name). +# nooelint: oelint.vars.inconspaces ATF_MACHINE_NAME:append = "${@bb.utils.contains('MACHINE_FEATURES', 'optee', '-optee', '', d)}" OEI_NAME ?= "oei-${OEI_CORE}-*.bin" @@ -61,6 +64,7 @@ do_resolve_and_populate_binaries[depends] += " \ # Define an additional task that collects binary output from dependent packages # and deploys them into the U-Boot build folder +do_resolve_and_populate_binaries[doc] = "Collect the ATF, DDR, SECO/OEI and optional OP-TEE firmware binaries into the U-Boot build folder for the boot container" do_resolve_and_populate_binaries() { if [ -n "${UBOOT_CONFIG}" ]; then for config in ${UBOOT_MACHINE}; do -- cgit v1.2.3-54-g00ecf From 6d97362cb1d8e88d7f8810cc2959b294ec8bdb8a Mon Sep 17 00:00:00 2001 From: Luciano Dittgen Date: Wed, 15 Jul 2026 10:08:36 -0300 Subject: fsl-eula-unpack: Fix do_fetch prepend prefix and document findings per oelint Address the oelint-adv findings for this class: - Add the missing 'python' prefix to do_fetch:prepend (task.pythonprefix). do_fetch is a python task and the prepend body is python (it calls d.getVar and bb.fatal), but the 'python' keyword was lost when the _prepend -> :prepend override-syntax conversion rewrote the header, so the LICENSE validation was an ill-formed shell fragment. Restoring the prefix makes it a proper python fragment again. Not build-tested here; the check passes for every Proprietary-licensed EULA recipe and only errors on misuse, so it is safe. - Suppress var.licenseremotefile on LIC_FILES_CHKSUM:append: the EULA text is shipped by the layer (FSL_EULA_FILE), not the recipe source tree, so the reference intentionally points outside the sources. - Set a task[doc] docstring on the fsl_bin_do_unpack helper (task.docstrings). bbclass.underscores on the class filename is handled by the layer-wide suppression. Signed-off-by: Luciano Dittgen --- classes/fsl-eula-unpack.bbclass | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/classes/fsl-eula-unpack.bbclass b/classes/fsl-eula-unpack.bbclass index ee938a74d..7ac54734f 100644 --- a/classes/fsl-eula-unpack.bbclass +++ b/classes/fsl-eula-unpack.bbclass @@ -133,11 +133,14 @@ FSL_EULA_FILE_MD5SUM ?= "${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V63} LIC_FILES_CHKSUM_LAYER ?= "file://${FSL_EULA_FILE};md5=${FSL_EULA_FILE_MD5SUM}" LIC_FILES_CHKSUM_LAYER[vardepsexclude] += "FSL_EULA_FILE" +# The EULA text is shipped by the layer (FSL_EULA_FILE), not the recipe source +# tree, so this reference intentionally points outside the sources. +# nooelint: oelint.var.licenseremotefile LIC_FILES_CHKSUM:append = " ${LIC_FILES_CHKSUM_LAYER}" LIC_FILES_CHKSUM[vardepsexclude] += "FSL_EULA_FILE" -do_fetch:prepend() { +python do_fetch:prepend() { if "Proprietary" not in d.getVar("LICENSE"): bb.fatal("The recipe LICENSE should include Proprietary but is " + d.getVar("LICENSE") + ".") } @@ -164,6 +167,7 @@ python do_unpack() { bb.build.exec_func('fsl_bin_do_unpack', d) } +fsl_bin_do_unpack[doc] = "Unpack the EULA-gated SRC_URI entries after the EULA has been accepted" python fsl_bin_do_unpack() { src_uri = (d.getVar('SRC_URI') or "").split() if len(src_uri) == 0: -- cgit v1.2.3-54-g00ecf