From 2526433b98f61eb43e72101572dd2d459c82e343 Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Mon, 8 Jun 2026 17:17:05 -0300 Subject: [PATCH 01/36] beep: Build with current OpenEmbedded Use ${UNPACKDIR} for the unpacked source directory, drop the deprecated SRC_URI[md5sum], update LICENSE to the SPDX 'GPL-2.0-only' identifier, and add the required Upstream-Status (and a carried Signed-off-by) to linux-input.patch. Tested: bitbake beep (MACHINE=qemuarm, DISTRO=oel). Signed-off-by: Otavio Salvador --- recipes-staging/beep/beep_1.2.2.bb | 5 ++--- recipes-staging/beep/files/linux-input.patch | 6 ++++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/recipes-staging/beep/beep_1.2.2.bb b/recipes-staging/beep/beep_1.2.2.bb index 6bc3c3d..58db3cf 100644 --- a/recipes-staging/beep/beep_1.2.2.bb +++ b/recipes-staging/beep/beep_1.2.2.bb @@ -2,7 +2,7 @@ # than you get with the default terminal bell" DESCRIPTION = "A console utility to make a beep noise" SECTION = "console/utils" -LICENSE = "GPL-2.0" +LICENSE = "GPL-2.0-only" PR = "r3" LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3" @@ -10,7 +10,7 @@ SRC_URI = "http://johnath.com/beep/beep-${PV}.tar.gz \ file://linux-input.patch \ " -S = "${WORKDIR}/beep-${PV}" +S = "${UNPACKDIR}/beep-${PV}" EXTRA_OEMAKE += 'CC="${CC}"' EXTRA_OEMAKE += 'FLAGS="${CFLAGS} ${LDFLAGS}"' @@ -27,5 +27,4 @@ do_install() { install -c -m 644 beep.1.gz "${D}${mandir}/man1/beep.1.gz" } -SRC_URI[md5sum] = "d541419fd7e5642952d7b48cbb40c712" SRC_URI[sha256sum] = "5c0445dac43950b7c7c3f235c6fb21f620ab3fd2f3aafaf09896e5730fcf49a1" diff --git a/recipes-staging/beep/files/linux-input.patch b/recipes-staging/beep/files/linux-input.patch index 1b38ba7..2d2f75b 100644 --- a/recipes-staging/beep/files/linux-input.patch +++ b/recipes-staging/beep/files/linux-input.patch @@ -1,3 +1,9 @@ +Add the missing include so beep.c builds against current +kernel headers. + +Upstream-Status: Inappropriate [upstream (http://johnath.com/beep) is unmaintained] +Signed-off-by: Otavio Salvador + # the diff between Alessandro Zummo's copy of beep.c and the original # one... From b873b5ce7dc3440b42bc4edf64620c0a88f2e3ca Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Mon, 8 Jun 2026 17:17:05 -0300 Subject: [PATCH 02/36] linuxconsole: Build with current OpenEmbedded Read the unpacked source and the fetched udev rules / service files from ${UNPACKDIR}, and update LICENSE to the SPDX 'GPL-2.0-only' identifier. Upstream's Makefile installs js-set-enum-leds and 80-stelladaptor-joystick.rules to a hardcoded /lib/udev. With usrmerge ${base_libdir} is /usr/lib, so those files did not match FILES:joystick and triggered an 'installed but not shipped' QA failure; relocate the hardcoded /lib content under ${base_libdir} in do_install. Tested: bitbake linuxconsole (the joystick package ships the udev helper and rules under /usr/lib/udev). Signed-off-by: Otavio Salvador --- .../linuxconsole/linuxconsole_1.7.0.bb | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/recipes-staging/linuxconsole/linuxconsole_1.7.0.bb b/recipes-staging/linuxconsole/linuxconsole_1.7.0.bb index 6ea7392..f95db03 100644 --- a/recipes-staging/linuxconsole/linuxconsole_1.7.0.bb +++ b/recipes-staging/linuxconsole/linuxconsole_1.7.0.bb @@ -5,7 +5,7 @@ input subsystem (providing support for serial mice, touchscreens etc.), and test the input event layer." HOMEPAGE = "https://sourceforge.net/projects/linuxconsole" -LICENSE = "GPLv2" +LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" DEPENDS = "libsdl2" @@ -21,7 +21,7 @@ SRC_URI = "\ SRC_URI[sha256sum] = "95d112f06393806116341d593bda002c8bc44119c1538407623268fed90d8c34" -S = "${WORKDIR}/linuxconsoletools-${PV}" +S = "${UNPACKDIR}/linuxconsoletools-${PV}" inherit systemd pkgconfig @@ -39,11 +39,20 @@ do_compile() { do_install() { oe_runmake install - install -Dm 0644 ${WORKDIR}/51-these-are-not-joysticks-rm.rules ${D}${base_libdir}/udev/rules.d/51-these-are-not-joysticks-rm.rules - install -Dm 0644 ${WORKDIR}/60-joystick.rules ${D}${base_libdir}/udev/rules.d/60-joystick.rules + # Upstream's Makefile hardcodes the udev directory to /lib/udev; relocate + # its content under ${base_libdir} so it is packaged correctly when + # usrmerge maps ${base_libdir} to /usr/lib. + if [ "${D}/lib" != "${D}${base_libdir}" ] && [ -d ${D}/lib ]; then + install -d ${D}${base_libdir} + cp -a ${D}/lib/. ${D}${base_libdir}/ + rm -rf ${D}/lib + fi - install -Dm 0644 ${WORKDIR}/inputattach.service ${D}${systemd_system_unitdir}/inputattach.service - install -Dm 0755 ${WORKDIR}/inputattachctl ${D}${bindir}/inputattachctl + install -Dm 0644 ${UNPACKDIR}/51-these-are-not-joysticks-rm.rules ${D}${base_libdir}/udev/rules.d/51-these-are-not-joysticks-rm.rules + install -Dm 0644 ${UNPACKDIR}/60-joystick.rules ${D}${base_libdir}/udev/rules.d/60-joystick.rules + + install -Dm 0644 ${UNPACKDIR}/inputattach.service ${D}${systemd_system_unitdir}/inputattach.service + install -Dm 0755 ${UNPACKDIR}/inputattachctl ${D}${bindir}/inputattachctl } PACKAGES += "inputattach joystick" From cc48c9a087abccd5faab5c2d3a2576cbf1233d3e Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Mon, 8 Jun 2026 17:17:05 -0300 Subject: [PATCH 03/36] wifi-connect: Build with current OpenEmbedded Use ${UNPACKDIR} for the unpacked sources, the cargo paths and the installed service files, and append to DEPENDS instead of overwriting it after the require. Tested: parsed with bitbake -e; a full build needs meta-networking (networkmanager) which is not part of this build configuration. Signed-off-by: Otavio Salvador --- recipes-staging/wifi-connect/wifi-connect_4.11.3.bb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/recipes-staging/wifi-connect/wifi-connect_4.11.3.bb b/recipes-staging/wifi-connect/wifi-connect_4.11.3.bb index 541de7d..e014588 100644 --- a/recipes-staging/wifi-connect/wifi-connect_4.11.3.bb +++ b/recipes-staging/wifi-connect/wifi-connect_4.11.3.bb @@ -10,7 +10,7 @@ inherit cargo cargo-update-recipe-crates pkgconfig systemd require ${BPN}-crates.inc -DEPENDS = "dbus" +DEPENDS += "dbus" SRCREV_wifi-connect = "ac20e664d630712593f959a41cb29953686395a8" SRC_URI += " \ @@ -19,7 +19,7 @@ SRC_URI += " \ file://wifi-connect-start.sh \ " -S = "${WORKDIR}/wifi-connect" +S = "${UNPACKDIR}/wifi-connect" SRCREV_FORMAT .= "_wifi-connect" @@ -28,7 +28,7 @@ SRCREV_network-manager = "4da2e6a57de16b6ae911f74321f929d78af8b1ba" SRC_URI += "git://github.com/balena-io-modules/network-manager.git;branch=master;protocol=https;name=network-manager;destsuffix=network-manager" SRCREV_FORMAT .= "_network-manager" -EXTRA_OECARGO_PATHS += "${WORKDIR}/network-manager" +EXTRA_OECARGO_PATHS += "${UNPACKDIR}/network-manager" PV .= "+${SRCPV}" @@ -38,8 +38,8 @@ do_install:append() { install -d ${D}${datadir}/wifi-connect/ui cp -r ${S}/ui/build/* ${D}${datadir}/wifi-connect/ui - install -Dm 0644 ${WORKDIR}/wifi-connect.service ${D}${systemd_system_unitdir}/wifi-connect.service - install -Dm 0755 ${WORKDIR}/wifi-connect-start.sh ${D}${bindir}/wifi-connect-start.sh + install -Dm 0644 ${UNPACKDIR}/wifi-connect.service ${D}${systemd_system_unitdir}/wifi-connect.service + install -Dm 0755 ${UNPACKDIR}/wifi-connect-start.sh ${D}${bindir}/wifi-connect-start.sh } RDEPENDS:${PN} = "networkmanager" From 23e4556f8026af45c8043f9c7985878651a8f0de Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Mon, 8 Jun 2026 17:17:05 -0300 Subject: [PATCH 04/36] inputattach-config: Build with current OpenEmbedded Install the configuration file from ${UNPACKDIR} and update LICENSE and LIC_FILES_CHKSUM to the SPDX 'GPL-2.0-only' identifier. Tested: bitbake inputattach-config. Signed-off-by: Otavio Salvador --- recipes-staging/inputattach-config/inputattach-config.bb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes-staging/inputattach-config/inputattach-config.bb b/recipes-staging/inputattach-config/inputattach-config.bb index 68beec6..fb1aefa 100644 --- a/recipes-staging/inputattach-config/inputattach-config.bb +++ b/recipes-staging/inputattach-config/inputattach-config.bb @@ -1,6 +1,6 @@ SUMMARY = "inputattach configuration file" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6" SRC_URI = "file://inputattach.conf" @@ -8,5 +8,5 @@ do_configure[noexec] = "1" do_compile[noexec] = "1" do_install() { - install -Dm 0644 ${WORKDIR}/inputattach.conf ${D}${sysconfdir}/inputattach.conf + install -Dm 0644 ${UNPACKDIR}/inputattach.conf ${D}${sysconfdir}/inputattach.conf } From 8280405b060a7fd26eaa2a274286058f9f88a1cc Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Mon, 8 Jun 2026 17:17:21 -0300 Subject: [PATCH 05/36] net-persistent-mac: Use UNPACKDIR for fetched sources The fetched script, default and service files now unpack under ${UNPACKDIR} (= ${WORKDIR}/sources) on current OE, so install them from there instead of ${WORKDIR}. Tested: bitbake net-persistent-mac. Signed-off-by: Otavio Salvador --- recipes-core/net-persistent-mac/net-persistent-mac.bb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes-core/net-persistent-mac/net-persistent-mac.bb b/recipes-core/net-persistent-mac/net-persistent-mac.bb index 5c6a777..620a29c 100644 --- a/recipes-core/net-persistent-mac/net-persistent-mac.bb +++ b/recipes-core/net-persistent-mac/net-persistent-mac.bb @@ -20,9 +20,9 @@ do_configure[noexec] = "1" do_compile[noexec] = "1" do_install() { - install -Dm 0644 ${WORKDIR}/${PN}.service ${D}${systemd_system_unitdir}/${PN}.service - install -Dm 0644 ${WORKDIR}/${PN}.default ${D}${sysconfdir}/default/${PN} - install -Dm 0755 ${WORKDIR}/${PN} ${D}${bindir}/${PN} + install -Dm 0644 ${UNPACKDIR}/${PN}.service ${D}${systemd_system_unitdir}/${PN}.service + install -Dm 0644 ${UNPACKDIR}/${PN}.default ${D}${sysconfdir}/default/${PN} + install -Dm 0755 ${UNPACKDIR}/${PN} ${D}${bindir}/${PN} } PACKAGE_ARCH = "${MACHINE_ARCH}" From cf42ee2e4365f0a8c49d0a4ebfd1b934a367c51b Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Mon, 8 Jun 2026 17:17:21 -0300 Subject: [PATCH 06/36] weston-touch-calibrator-service: Use UNPACKDIR for fetched sources Install the fetched default, service, script and udev rule files from ${UNPACKDIR} instead of ${WORKDIR}. Tested: parsed with bitbake -e. Signed-off-by: Otavio Salvador --- .../weston-touch-calibrator-service.bb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes-graphics/weston-touch-calibrator-service/weston-touch-calibrator-service.bb b/recipes-graphics/weston-touch-calibrator-service/weston-touch-calibrator-service.bb index 9e15ec2..2431bc4 100644 --- a/recipes-graphics/weston-touch-calibrator-service/weston-touch-calibrator-service.bb +++ b/recipes-graphics/weston-touch-calibrator-service/weston-touch-calibrator-service.bb @@ -16,10 +16,10 @@ do_configure[noexec] = "1" do_compile[noexec] = "1" do_install() { - install -Dm 0644 ${WORKDIR}/weston-touch-calibrator.default ${D}${sysconfdir}/default/weston-touch-calibrator - install -Dm 0644 ${WORKDIR}/weston-touch-calibrator.service ${D}${systemd_system_unitdir}/weston-touch-calibrator.service - install -Dm 0755 ${WORKDIR}/save-touch-calibration ${D}${bindir}/save-touch-calibration - install -Dm 0644 ${WORKDIR}/touchscreen.rules ${D}${base_libdir}/udev/rules.d/98-touchscreen.rules + install -Dm 0644 ${UNPACKDIR}/weston-touch-calibrator.default ${D}${sysconfdir}/default/weston-touch-calibrator + install -Dm 0644 ${UNPACKDIR}/weston-touch-calibrator.service ${D}${systemd_system_unitdir}/weston-touch-calibrator.service + install -Dm 0755 ${UNPACKDIR}/save-touch-calibration ${D}${bindir}/save-touch-calibration + install -Dm 0644 ${UNPACKDIR}/touchscreen.rules ${D}${base_libdir}/udev/rules.d/98-touchscreen.rules } RDEPENDS:${PN} += " \ From f4ce981cc039cca5db79d6ab1d14136664227cc2 Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Mon, 8 Jun 2026 17:17:21 -0300 Subject: [PATCH 07/36] chromium-ozone-wayland-init: Use UNPACKDIR for fetched sources Install the fetched initd, service and default files from ${UNPACKDIR} instead of ${WORKDIR} in chromium-ozone-wayland-init. Tested: parsed with bitbake -e; a full build needs the chromium browser layer which is not part of this build configuration. Signed-off-by: Otavio Salvador --- .../recipes-browser/chromium/chromium-ozone-wayland-init.bb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-init.bb b/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-init.bb index f85a8bc..a53f3c5 100644 --- a/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-init.bb +++ b/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-init.bb @@ -34,13 +34,13 @@ do_compile[noexec] = "1" do_install() { if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then - install -Dm 0755 ${WORKDIR}/${BPN}.initd ${D}${sysconfdir}/init.d/chromium-ozone-wayland + install -Dm 0755 ${UNPACKDIR}/${BPN}.initd ${D}${sysconfdir}/init.d/chromium-ozone-wayland fi if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then - install -Dm 0644 ${WORKDIR}/${BPN}.service ${D}${systemd_system_unitdir}/chromium-ozone-wayland.service + install -Dm 0644 ${UNPACKDIR}/${BPN}.service ${D}${systemd_system_unitdir}/chromium-ozone-wayland.service fi - install -Dm 0644 ${WORKDIR}/${BPN}.default ${D}${sysconfdir}/default/chromium-ozone-wayland + install -Dm 0644 ${UNPACKDIR}/${BPN}.default ${D}${sysconfdir}/default/chromium-ozone-wayland echo ${CHROMIUM_ENV} >> ${D}${sysconfdir}/default/chromium-ozone-wayland From 6226ec34c3fedf30622a7973aef1ea6181394d12 Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Mon, 8 Jun 2026 17:17:21 -0300 Subject: [PATCH 08/36] qt-kiosk-browser-init: Use UNPACKDIR for fetched sources Install the fetched initd, service, default and conf files from ${UNPACKDIR} instead of ${WORKDIR} in qt-kiosk-browser-init. Tested: parsed with bitbake -e; a full build needs meta-qt5 which is not part of this build configuration. Signed-off-by: Otavio Salvador --- .../recipes-qt/qt-kiosk-browser/qt-kiosk-browser-init.bb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dynamic-layers/qt5-layer/recipes-qt/qt-kiosk-browser/qt-kiosk-browser-init.bb b/dynamic-layers/qt5-layer/recipes-qt/qt-kiosk-browser/qt-kiosk-browser-init.bb index fb79172..ba69f6f 100644 --- a/dynamic-layers/qt5-layer/recipes-qt/qt-kiosk-browser/qt-kiosk-browser-init.bb +++ b/dynamic-layers/qt5-layer/recipes-qt/qt-kiosk-browser/qt-kiosk-browser-init.bb @@ -34,15 +34,15 @@ INITSCRIPT_NAME = "qt-kiosk-browser" do_install() { if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then - install -Dm 0755 ${WORKDIR}/${PN}.initd ${D}${sysconfdir}/init.d/kiosk + install -Dm 0755 ${UNPACKDIR}/${PN}.initd ${D}${sysconfdir}/init.d/kiosk fi if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then - install -Dm 0644 ${WORKDIR}/${PN}.service ${D}${systemd_system_unitdir}/qt-kiosk-browser.service + install -Dm 0644 ${UNPACKDIR}/${PN}.service ${D}${systemd_system_unitdir}/qt-kiosk-browser.service fi - install -Dm 0644 ${WORKDIR}/${PN}.default ${D}${sysconfdir}/default/qt-kiosk-browser + install -Dm 0644 ${UNPACKDIR}/${PN}.default ${D}${sysconfdir}/default/qt-kiosk-browser - install -Dm 0644 ${WORKDIR}/${PN}.conf ${D}${sysconfdir}/qt-kiosk-browser.conf + install -Dm 0644 ${UNPACKDIR}/${PN}.conf ${D}${sysconfdir}/qt-kiosk-browser.conf sed -e 's,@QT_KIOSK_URL@,${QT_KIOSK_URL},g' \ -e 's,@QT_KIOSK_RESTART_TIME@,${QT_KIOSK_RESTART_TIME},g' \ From 1617353ab2300452a8d039d95c4cc59c70416abd Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Mon, 8 Jun 2026 17:17:21 -0300 Subject: [PATCH 09/36] ppp: Use UNPACKDIR for fetched sources Install the fetched options file from ${UNPACKDIR} instead of ${WORKDIR}. Tested: parsed with bitbake -e. Signed-off-by: Otavio Salvador --- recipes-connectivity/ppp/ppp_%.bbappend | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes-connectivity/ppp/ppp_%.bbappend b/recipes-connectivity/ppp/ppp_%.bbappend index ef1cb93..66038c3 100644 --- a/recipes-connectivity/ppp/ppp_%.bbappend +++ b/recipes-connectivity/ppp/ppp_%.bbappend @@ -3,5 +3,5 @@ FILESEXTRAPATHS:prepend := "${THISDIR}/files:" SRC_URI += "file://options" do_install:append() { - install -Dm 0755 ${WORKDIR}/options ${D}${sysconfdir}/${PN}/options + install -Dm 0755 ${UNPACKDIR}/options ${D}${sysconfdir}/${PN}/options } From 66684d8a3addeb96d7ea173afe34499de7566f32 Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Mon, 8 Jun 2026 17:17:21 -0300 Subject: [PATCH 10/36] telegraf: Use localstatedir instead of hardcoded /var Use ${localstatedir} in the tmpfiles.d entry rather than a hardcoded /var path. Tested: parsed with bitbake -e. Signed-off-by: Otavio Salvador --- recipes-devtools/telegraf/telegraf_1.14.5.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes-devtools/telegraf/telegraf_1.14.5.bb b/recipes-devtools/telegraf/telegraf_1.14.5.bb index a900e6f..884c583 100644 --- a/recipes-devtools/telegraf/telegraf_1.14.5.bb +++ b/recipes-devtools/telegraf/telegraf_1.14.5.bb @@ -30,7 +30,7 @@ do_install:append() { install -Dm 0644 ${S}/src/${GO_IMPORT}/scripts/${PN}.service ${D}${systemd_system_unitdir}/${PN}.service install -d ${D}${sysconfdir}/${PN}/${PN}.d install -d ${D}${sysconfdir}/tmpfiles.d - echo "d /var/log/${PN} 0755 root root -" > ${D}${sysconfdir}/tmpfiles.d/${PN}.conf + echo "d ${localstatedir}/log/${PN} 0755 root root -" > ${D}${sysconfdir}/tmpfiles.d/${PN}.conf } RDEPENDS:${PN}-dev += "bash" From 582cd7ea19f61595dea4b04a6d3fb965f501feca Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Mon, 8 Jun 2026 17:17:35 -0300 Subject: [PATCH 11/36] classes/ossystems-factory-defaults: Use install -d instead of mkdir Use 'install -d' rather than 'mkdir -p' to create directories in do_install, as recommended for recipe tasks. Tested: bitbake net-persistent-mac (inherits this class). Signed-off-by: Otavio Salvador --- classes/ossystems-factory-defaults.bbclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/ossystems-factory-defaults.bbclass b/classes/ossystems-factory-defaults.bbclass index afde1a6..bfc65e7 100644 --- a/classes/ossystems-factory-defaults.bbclass +++ b/classes/ossystems-factory-defaults.bbclass @@ -65,7 +65,7 @@ do_install:append() { local dir for file in $no_leading_slash; do dir="${D}/`dirname $file`" - mkdir -p $dir + install -d $dir cd $dir ln -sf ${OSSYSTEMS_FACTORY_DEFAULTS_RUNTIME_DIR}/$file `basename $file` done From 45aa2aa6db714662da166de85ecbc71010e63e61 Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Mon, 8 Jun 2026 17:17:35 -0300 Subject: [PATCH 12/36] classes/release-bundle-generation: Fix bundle generation and carry license metadata Inherit release-bundle so RELEASE_BUNDLE_TMP_DOWNLOAD_CACHE is defined for the generator. Without it the variable expanded empty, turning the download-cache copy into a destructive 'cp -L /*/*'. Guard that copy so it is a no-op when RELEASE_BUNDLE_RECIPES_WITH_SOURCE collected nothing, and read bundle-shar-extract.sh from ${UNPACKDIR}. Move LICENSE and LIC_FILES_CHKSUM into the class so generate-release-bundle.bb stays minimal (just SUMMARY and the inherit). Tested: bitbake generate-release-bundle produced the self-extracting bundle (.sh) with the expected shar header and embedded payload. Signed-off-by: Otavio Salvador --- classes/release-bundle-generation.bbclass | 12 ++++++++++-- recipes-core/release/generate-release-bundle.bb | 5 ++--- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/classes/release-bundle-generation.bbclass b/classes/release-bundle-generation.bbclass index 4a3964d..b3040c4 100644 --- a/classes/release-bundle-generation.bbclass +++ b/classes/release-bundle-generation.bbclass @@ -16,6 +16,10 @@ # # Released under the MIT license (see packages/COPYING) +# Provides RELEASE_BUNDLE_TMP_DOWNLOAD_CACHE and the do_collect_recipe_source +# task that this class consumes when assembling the bundle. +inherit release-bundle + do_configure[noexec] = "1" do_compile[noexec] = "1" do_install[noexec] = "1" @@ -25,6 +29,7 @@ do_package_qa[noexec] = "1" do_packagedata[noexec] = "1" LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" PACKAGES = "" INHIBIT_DEFAULT_DEPS = "1" @@ -87,12 +92,15 @@ addtask release_bundle_finalize after do_unpack do_collect_platform_source befor do_release_bundle_finalize[dirs] = "${RELEASE_BUNDLE_WORKDIR}/download" do_release_bundle_finalize[depends] += "pbzip2-native:do_populate_sysroot " do_release_bundle_finalize() { - cp --archive -L ${RELEASE_BUNDLE_TMP_DOWNLOAD_CACHE}/*/* ${RELEASE_BUNDLE_WORKDIR}/ + # Only present when RELEASE_BUNDLE_RECIPES_WITH_SOURCE collected something. + if [ -n "$(ls -A "${RELEASE_BUNDLE_TMP_DOWNLOAD_CACHE}" 2>/dev/null)" ]; then + cp --archive -L ${RELEASE_BUNDLE_TMP_DOWNLOAD_CACHE}/*/* ${RELEASE_BUNDLE_WORKDIR}/ + fi find ${RELEASE_BUNDLE_WORKDIR} -type d -empty -delete tar_release_bundle - cp "${WORKDIR}/bundle-shar-extract.sh" ${RELEASE_BUNDLE_DEPLOY}/${RELEASE_BUNDLE_OUTPUTNAME}.sh + cp "${UNPACKDIR}/bundle-shar-extract.sh" ${RELEASE_BUNDLE_DEPLOY}/${RELEASE_BUNDLE_OUTPUTNAME}.sh # substitute variables sed -e "s#@RELEASE_BUNDLE_PATH@#${RELEASE_BUNDLE_PATH}#g" \ diff --git a/recipes-core/release/generate-release-bundle.bb b/recipes-core/release/generate-release-bundle.bb index fa45482..726a29a 100644 --- a/recipes-core/release/generate-release-bundle.bb +++ b/recipes-core/release/generate-release-bundle.bb @@ -1,6 +1,5 @@ SUMMARY = "Generate release bundle" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" - +# LICENSE and LIC_FILES_CHKSUM are provided by the inherited +# release-bundle-generation class. inherit release-bundle-generation From f82a0b93d6f70406ae6f9d8f492ff33e085eaa69 Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Mon, 8 Jun 2026 17:17:35 -0300 Subject: [PATCH 13/36] contrib/oelint: Add oelint-adv configuration and runner Add ossystems-constants.json declaring the layer's custom variables and machine/distro overrides, and run-oelint.sh to run oelint-adv over the OSSystems layers with the project's suppressions, reducing false positives from running outside a full bitbake build. Signed-off-by: Otavio Salvador --- contrib/oelint/ossystems-constants.json | 37 +++++++++++++++++++++++++ contrib/oelint/run-oelint.sh | 33 ++++++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 contrib/oelint/ossystems-constants.json create mode 100755 contrib/oelint/run-oelint.sh diff --git a/contrib/oelint/ossystems-constants.json b/contrib/oelint/ossystems-constants.json new file mode 100644 index 0000000..1e41f86 --- /dev/null +++ b/contrib/oelint/ossystems-constants.json @@ -0,0 +1,37 @@ +{ + "comment": "oelint-adv constant DB additions for the OSSystems layers (meta-ossystems-base, meta-secure-boot). Merge with: oelint-adv --constantmods +contrib/oelint/ossystems-constants.json. These are real variables/overrides oelint cannot know about when run standalone (outside a full bitbake build).", + "variables": { + "known": [ + "BOOT_CONFIG_MACHINE", + "OPENGL_WINSYS", + "OS_RELEASE_FIELDS", + "OSSYSTEMS_FACTORY_DEFAULTS_DIR", + "OSSYSTEMS_FACTORY_DEFAULTS_FILES", + "OSSYSTEMS_FACTORY_DEFAULTS_HOOKS", + "OSSYSTEMS_FACTORY_DEFAULTS_HOOKS_DIR", + "OSSYSTEMS_FACTORY_DEFAULTS_POSTINST_FILES", + "OSSYSTEMS_FACTORY_DEFAULTS_RUNTIME_DIR", + "RELEASE_BUNDLE_LAYERNAME", + "SIGNED_TARGET", + "VERSION" + ] + }, + "replacements": { + "machines": [ + "mx6-generic-bsp", + "mx7-generic-bsp", + "mx8m-generic-bsp", + "mx8ulp-generic-bsp", + "mx8qm-generic-bsp", + "mx8qxp-generic-bsp", + "mx8dxl-generic-bsp", + "mx9-generic-bsp", + "mx93-generic-bsp", + "hab4", + "ahab" + ], + "distros": [ + "oel" + ] + } +} diff --git a/contrib/oelint/run-oelint.sh b/contrib/oelint/run-oelint.sh new file mode 100755 index 0000000..300f783 --- /dev/null +++ b/contrib/oelint/run-oelint.sh @@ -0,0 +1,33 @@ +#!/bin/sh +# Run oelint-adv over the OSSystems-maintained layers with the project's +# constant-DB additions and the agreed suppressions applied. +# +# Requirements: pip install oelint-adv (oelint-adv must be on PATH) +# Usage: contrib/oelint/run-oelint.sh [extra oelint-adv args...] +# +# Scope: meta-ossystems-base + meta-secure-boot. OpenEmbedded-Core and other +# upstream layers are intentionally excluded. +set -eu + +here=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd) +# layer roots: /meta-ossystems-base/contrib/oelint -> +sources=$(CDPATH= cd -- "$here/../../.." && pwd) + +layers="$sources/meta-ossystems-base $sources/meta-secure-boot" + +# Suppressed rules (env limitations / project policy): +# - oelint.file.requirenotfound: image recipes 'require' OE-core files that +# only resolve inside a full bitbake build (BBPATH), not in standalone lint. +suppress="oelint.file.requirenotfound" + +files=$(find $layers \ + \( -name '*.bb' -o -name '*.bbappend' -o -name '*.bbclass' -o -name '*.inc' \) \ + | sort) + +# shellcheck disable=SC2086 +exec oelint-adv \ + --release wrynose \ + --constantmods "+$here/ossystems-constants.json" \ + --suppress "$suppress" \ + "$@" \ + $files From b7a0bc78e96f4f5d900cfe7804afccc8c2b4d7f9 Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Mon, 8 Jun 2026 17:36:52 -0300 Subject: [PATCH 14/36] recipes-core: Complete recipe metadata Add the missing DESCRIPTION, HOMEPAGE, BUGTRACKER and SECTION (and SUMMARY/LICENSE for the psplash initramfs image) so these core recipes carry full metadata and satisfy the mandatory-variable QA checks. Internal recipes reference the meta-ossystems-base repository for HOMEPAGE/BUGTRACKER. Signed-off-by: Otavio Salvador --- recipes-core/images/initramfs-psplash-image.bb | 2 ++ recipes-core/images/ossystems-minimal-initramfs.bb | 2 ++ .../initrdscripts/initramfs-framework-psplash_1.0.bb | 5 +++++ recipes-core/net-persistent-mac/net-persistent-mac.bb | 2 ++ .../ossystems-factory-defaults/ossystems-factory-defaults.bb | 5 +++++ recipes-core/release/generate-release-bundle.bb | 5 +++++ 6 files changed, 21 insertions(+) diff --git a/recipes-core/images/initramfs-psplash-image.bb b/recipes-core/images/initramfs-psplash-image.bb index 4b55c9a..71c5885 100644 --- a/recipes-core/images/initramfs-psplash-image.bb +++ b/recipes-core/images/initramfs-psplash-image.bb @@ -1,5 +1,7 @@ +SUMMARY = "Initramfs image showing a psplash boot splash" DESCRIPTION = "Small image with psplash implementation to use as \ an alternative to the splash kernel." +LICENSE = "MIT" IMAGE_FSTYPES = "cpio.gz.u-boot" IMAGE_ROOTFS_SIZE = "0" diff --git a/recipes-core/images/ossystems-minimal-initramfs.bb b/recipes-core/images/ossystems-minimal-initramfs.bb index 7a942c5..9c3ffcb 100644 --- a/recipes-core/images/ossystems-minimal-initramfs.bb +++ b/recipes-core/images/ossystems-minimal-initramfs.bb @@ -4,6 +4,8 @@ # Released under the MIT license SUMMARY = "The very minimal initramfs image capable of booting a device" +DESCRIPTION = "Minimal initramfs image capable of mounting the root filesystem \ +and booting the device." PACKAGE_INSTALL = "initramfs-module-mdev ${VIRTUAL-RUNTIME_base-utils} ${ROOTFS_BOOTSTRAP_INSTALL}" diff --git a/recipes-core/initrdscripts/initramfs-framework-psplash_1.0.bb b/recipes-core/initrdscripts/initramfs-framework-psplash_1.0.bb index 9344c28..de3b1c0 100644 --- a/recipes-core/initrdscripts/initramfs-framework-psplash_1.0.bb +++ b/recipes-core/initrdscripts/initramfs-framework-psplash_1.0.bb @@ -1,4 +1,9 @@ SUMMARY = "Modular psplash to initramfs system" +DESCRIPTION = "initramfs-framework module that shows a psplash boot splash \ +during early boot." +HOMEPAGE = "https://github.com/OSSystemsEmbeddedLinux/meta-ossystems-base" +BUGTRACKER = "https://github.com/OSSystemsEmbeddedLinux/meta-ossystems-base/issues" +SECTION = "base" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" RDEPENDS:${PN} += "${VIRTUAL-RUNTIME_base-utils}" diff --git a/recipes-core/net-persistent-mac/net-persistent-mac.bb b/recipes-core/net-persistent-mac/net-persistent-mac.bb index 620a29c..582660a 100644 --- a/recipes-core/net-persistent-mac/net-persistent-mac.bb +++ b/recipes-core/net-persistent-mac/net-persistent-mac.bb @@ -1,5 +1,7 @@ SUMMARY = "Network device MAC persistency" DESCRIPTION = "Provides support to store/restore the MAC of a specific network device" +HOMEPAGE = "https://github.com/OSSystemsEmbeddedLinux/meta-ossystems-base" +BUGTRACKER = "https://github.com/OSSystemsEmbeddedLinux/meta-ossystems-base/issues" SECTION = "base" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" diff --git a/recipes-core/ossystems-factory-defaults/ossystems-factory-defaults.bb b/recipes-core/ossystems-factory-defaults/ossystems-factory-defaults.bb index 04b8e1b..48d8ec0 100644 --- a/recipes-core/ossystems-factory-defaults/ossystems-factory-defaults.bb +++ b/recipes-core/ossystems-factory-defaults/ossystems-factory-defaults.bb @@ -1,4 +1,9 @@ SUMMARY = "Tool to restore image state to factory defaults" +DESCRIPTION = "Restores selected files to their factory-default state on the \ +running image, with optional post-install hooks." +HOMEPAGE = "https://github.com/OSSystemsEmbeddedLinux/meta-ossystems-base" +BUGTRACKER = "https://github.com/OSSystemsEmbeddedLinux/meta-ossystems-base/issues" +SECTION = "base" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" diff --git a/recipes-core/release/generate-release-bundle.bb b/recipes-core/release/generate-release-bundle.bb index 726a29a..79621f5 100644 --- a/recipes-core/release/generate-release-bundle.bb +++ b/recipes-core/release/generate-release-bundle.bb @@ -1,4 +1,9 @@ SUMMARY = "Generate release bundle" +DESCRIPTION = "Generates a self-extracting release bundle containing the \ +platform sources and downloads." +HOMEPAGE = "https://github.com/OSSystemsEmbeddedLinux/meta-ossystems-base" +BUGTRACKER = "https://github.com/OSSystemsEmbeddedLinux/meta-ossystems-base/issues" +SECTION = "devel" # LICENSE and LIC_FILES_CHKSUM are provided by the inherited # release-bundle-generation class. From 1be131f0f7ee5619abacc5d1355cf3b5abf984d8 Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Mon, 8 Jun 2026 17:36:52 -0300 Subject: [PATCH 15/36] recipes-staging: Complete recipe metadata Add the missing SUMMARY, DESCRIPTION, HOMEPAGE, BUGTRACKER and SECTION so these recipes carry full metadata and satisfy the mandatory-variable QA checks. Signed-off-by: Otavio Salvador --- recipes-staging/beep/beep_1.2.2.bb | 2 ++ recipes-staging/inputattach-config/inputattach-config.bb | 4 ++++ recipes-staging/wifi-connect/wifi-connect_4.11.3.bb | 4 ++++ 3 files changed, 10 insertions(+) diff --git a/recipes-staging/beep/beep_1.2.2.bb b/recipes-staging/beep/beep_1.2.2.bb index 58db3cf..9ddb1a2 100644 --- a/recipes-staging/beep/beep_1.2.2.bb +++ b/recipes-staging/beep/beep_1.2.2.bb @@ -1,6 +1,8 @@ # beep: a console utility to "and allow a little more granularity # than you get with the default terminal bell" +SUMMARY = "Console utility to beep the PC speaker" DESCRIPTION = "A console utility to make a beep noise" +HOMEPAGE = "http://www.johnath.com/beep/" SECTION = "console/utils" LICENSE = "GPL-2.0-only" PR = "r3" diff --git a/recipes-staging/inputattach-config/inputattach-config.bb b/recipes-staging/inputattach-config/inputattach-config.bb index fb1aefa..fc6853a 100644 --- a/recipes-staging/inputattach-config/inputattach-config.bb +++ b/recipes-staging/inputattach-config/inputattach-config.bb @@ -1,4 +1,8 @@ SUMMARY = "inputattach configuration file" +DESCRIPTION = "Default configuration file consumed by the inputattach service." +HOMEPAGE = "https://github.com/OSSystemsEmbeddedLinux/meta-ossystems-base" +BUGTRACKER = "https://github.com/OSSystemsEmbeddedLinux/meta-ossystems-base/issues" +SECTION = "base" LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6" diff --git a/recipes-staging/wifi-connect/wifi-connect_4.11.3.bb b/recipes-staging/wifi-connect/wifi-connect_4.11.3.bb index e014588..03e889d 100644 --- a/recipes-staging/wifi-connect/wifi-connect_4.11.3.bb +++ b/recipes-staging/wifi-connect/wifi-connect_4.11.3.bb @@ -1,7 +1,11 @@ +SUMMARY = "Set up WiFi on a headless device through a captive portal" DESCRIPTION = " \ WiFi Connect is a utility for dynamically setting the WiFi configuration on a Linux device via a captive portal. \ WiFi credentials are specified by connecting with a mobile phone or laptop to the access point that WiFi Connect creates. \ " +HOMEPAGE = "https://github.com/balena-os/wifi-connect" +BUGTRACKER = "https://github.com/balena-os/wifi-connect/issues" +SECTION = "console/network" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=3bfd34238ccc26128aef96796a8bbf97" From 228991347eeb9f262e22fc6a7ae75d8a79d16c37 Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Mon, 8 Jun 2026 17:37:05 -0300 Subject: [PATCH 16/36] telegraf: Add SUMMARY, BUGTRACKER and SECTION metadata Complete the recipe metadata required by the mandatory- and suggested-variable QA checks. Signed-off-by: Otavio Salvador --- recipes-devtools/telegraf/telegraf_1.14.5.bb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/recipes-devtools/telegraf/telegraf_1.14.5.bb b/recipes-devtools/telegraf/telegraf_1.14.5.bb index 884c583..1499966 100644 --- a/recipes-devtools/telegraf/telegraf_1.14.5.bb +++ b/recipes-devtools/telegraf/telegraf_1.14.5.bb @@ -1,5 +1,8 @@ +SUMMARY = "Plugin-driven server agent for collecting and reporting metrics" DESCRIPTION = "The plugin-driven server agent for collecting & reporting metrics" HOMEPAGE = "https://github.com/influxdata/telegraf" +BUGTRACKER = "https://github.com/influxdata/telegraf/issues" +SECTION = "console/network" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${S}/src/${GO_IMPORT}/LICENSE;md5=4c87a94f9ef84eb3e8c5f0424fef3b9e" From 54e1b2131230758f7b558b9fed95082cdb489377 Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Mon, 8 Jun 2026 17:37:05 -0300 Subject: [PATCH 17/36] zram-init: Add DESCRIPTION, HOMEPAGE, BUGTRACKER and SECTION metadata Complete the recipe metadata, pointing HOMEPAGE/BUGTRACKER at the upstream project. Signed-off-by: Otavio Salvador --- recipes-extended/zram-init/zram-init_git.bb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/recipes-extended/zram-init/zram-init_git.bb b/recipes-extended/zram-init/zram-init_git.bb index b8f49b8..6c804bd 100644 --- a/recipes-extended/zram-init/zram-init_git.bb +++ b/recipes-extended/zram-init/zram-init_git.bb @@ -1,4 +1,9 @@ SUMMARY = "A wrapper script for the zram kernel module with interactive and init support" +DESCRIPTION = "Wrapper script and init integration for the zram kernel module, \ +providing compressed RAM-based swap and block devices." +HOMEPAGE = "https://github.com/vaeth/zram-init" +BUGTRACKER = "https://github.com/vaeth/zram-init/issues" +SECTION = "base" LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://${S}/README.md;beginline=5;endline=7;md5=1c6f4971407e5a5b1aa502b9badcdf98" From 84e50665c27a2f66260fc508ead7eb34296f160c Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Mon, 8 Jun 2026 17:37:05 -0300 Subject: [PATCH 18/36] cog-init: Complete recipe metadata Add DESCRIPTION, HOMEPAGE, BUGTRACKER and SECTION so the recipe carries full metadata. Signed-off-by: Otavio Salvador --- recipes-browser/cog/cog-init.bb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/recipes-browser/cog/cog-init.bb b/recipes-browser/cog/cog-init.bb index 4e76dd3..f5fec94 100644 --- a/recipes-browser/cog/cog-init.bb +++ b/recipes-browser/cog/cog-init.bb @@ -1,4 +1,9 @@ SUMMARY = "Startup script and service for the Cog Browser" +DESCRIPTION = "Init script and systemd service that launch the Cog web browser \ +at system startup." +HOMEPAGE = "https://github.com/OSSystemsEmbeddedLinux/meta-ossystems-base" +BUGTRACKER = "https://github.com/OSSystemsEmbeddedLinux/meta-ossystems-base/issues" +SECTION = "graphics" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" From 224e3e64d19eb3f6ad1ab3722b87066887b2659b Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Mon, 8 Jun 2026 17:37:05 -0300 Subject: [PATCH 19/36] chromium-ozone-wayland-init: Complete recipe metadata Add DESCRIPTION, HOMEPAGE, BUGTRACKER and SECTION so the recipe carries full metadata. Signed-off-by: Otavio Salvador --- .../recipes-browser/chromium/chromium-ozone-wayland-init.bb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-init.bb b/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-init.bb index a53f3c5..ecbb855 100644 --- a/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-init.bb +++ b/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-init.bb @@ -1,4 +1,9 @@ SUMMARY = "Startup script and service for the Chromium Browser using Ozone" +DESCRIPTION = "Init script and systemd service that launch the Chromium browser \ +(Ozone/Wayland) at system startup." +HOMEPAGE = "https://github.com/OSSystemsEmbeddedLinux/meta-ossystems-base" +BUGTRACKER = "https://github.com/OSSystemsEmbeddedLinux/meta-ossystems-base/issues" +SECTION = "graphics" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" From 6138731c8e24daf95285bd6d457a73eb4f45af89 Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Mon, 8 Jun 2026 17:37:05 -0300 Subject: [PATCH 20/36] qt-kiosk-browser-init: Complete recipe metadata Add DESCRIPTION, HOMEPAGE, BUGTRACKER and SECTION so the recipe carries full metadata. Signed-off-by: Otavio Salvador --- .../recipes-qt/qt-kiosk-browser/qt-kiosk-browser-init.bb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/dynamic-layers/qt5-layer/recipes-qt/qt-kiosk-browser/qt-kiosk-browser-init.bb b/dynamic-layers/qt5-layer/recipes-qt/qt-kiosk-browser/qt-kiosk-browser-init.bb index ba69f6f..a07d62d 100644 --- a/dynamic-layers/qt5-layer/recipes-qt/qt-kiosk-browser/qt-kiosk-browser-init.bb +++ b/dynamic-layers/qt5-layer/recipes-qt/qt-kiosk-browser/qt-kiosk-browser-init.bb @@ -1,4 +1,9 @@ SUMMARY = "Startup script and service for the Kiosk Browser" +DESCRIPTION = "Init script and systemd service that launch the Qt kiosk browser \ +at system startup." +HOMEPAGE = "https://github.com/OSSystemsEmbeddedLinux/meta-ossystems-base" +BUGTRACKER = "https://github.com/OSSystemsEmbeddedLinux/meta-ossystems-base/issues" +SECTION = "graphics" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" From cea0e4ce9faf011c0e5adbcde7853a9b4b215b29 Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Mon, 8 Jun 2026 17:37:05 -0300 Subject: [PATCH 21/36] html5-demo: Complete recipe metadata Add DESCRIPTION, HOMEPAGE, BUGTRACKER and SECTION, pointing at the upstream project. Signed-off-by: Otavio Salvador --- recipes-demos/html5-demo/html5-demo_git.bb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/recipes-demos/html5-demo/html5-demo_git.bb b/recipes-demos/html5-demo/html5-demo_git.bb index db9bfff..390af26 100644 --- a/recipes-demos/html5-demo/html5-demo_git.bb +++ b/recipes-demos/html5-demo/html5-demo_git.bb @@ -1,4 +1,8 @@ SUMMARY = "HTML5 demo useful for test browser performance" +DESCRIPTION = "Simple HTML5 page useful for evaluating web browser performance." +HOMEPAGE = "https://github.com/OSSystems/html5-demo" +BUGTRACKER = "https://github.com/OSSystems/html5-demo/issues" +SECTION = "graphics" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" From 19be3a5362be8a807965a4bd24acf8f5fbf8cfb4 Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Mon, 8 Jun 2026 17:37:05 -0300 Subject: [PATCH 22/36] weston-touch-calibrator-service: Complete recipe metadata Add DESCRIPTION, HOMEPAGE, BUGTRACKER and SECTION so the recipe carries full metadata. Signed-off-by: Otavio Salvador --- .../weston-touch-calibrator-service.bb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/recipes-graphics/weston-touch-calibrator-service/weston-touch-calibrator-service.bb b/recipes-graphics/weston-touch-calibrator-service/weston-touch-calibrator-service.bb index 2431bc4..e0bc2f6 100644 --- a/recipes-graphics/weston-touch-calibrator-service/weston-touch-calibrator-service.bb +++ b/recipes-graphics/weston-touch-calibrator-service/weston-touch-calibrator-service.bb @@ -1,4 +1,9 @@ SUMMARY = "Weston Touch Screen Calibrator Service" +DESCRIPTION = "Systemd service that runs the Weston touchscreen calibrator and \ +persists the resulting calibration." +HOMEPAGE = "https://github.com/OSSystemsEmbeddedLinux/meta-ossystems-base" +BUGTRACKER = "https://github.com/OSSystemsEmbeddedLinux/meta-ossystems-base/issues" +SECTION = "graphics" LICENSE = "CLOSED" SRC_URI = "\ From 8149286367652b5223a1763af96bc4adc5872e6f Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Mon, 8 Jun 2026 17:49:30 -0300 Subject: [PATCH 23/36] beep: Remove obsolete slugos special-case The recipe special-cased the long-defunct SlugOS distro to install beep into ${base_bindir} through a BINDIR_slugos override that also used the pre-3.x underscore override syntax. SlugOS has been dead for over a decade and is not built here, so the override never fires and the BINDIR indirection is dead code. Drop the BINDIR variable and install directly into ${bindir}. Signed-off-by: Otavio Salvador --- recipes-staging/beep/beep_1.2.2.bb | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/recipes-staging/beep/beep_1.2.2.bb b/recipes-staging/beep/beep_1.2.2.bb index 9ddb1a2..d8186a0 100644 --- a/recipes-staging/beep/beep_1.2.2.bb +++ b/recipes-staging/beep/beep_1.2.2.bb @@ -17,14 +17,10 @@ S = "${UNPACKDIR}/beep-${PV}" EXTRA_OEMAKE += 'CC="${CC}"' EXTRA_OEMAKE += 'FLAGS="${CFLAGS} ${LDFLAGS}"' -# slugos requires beep in boot -BINDIR = "${bindir}" -BINDIR_slugos = "${base_bindir}" - do_install() { # this is easier than patching the Makefile... - install -d "${D}${BINDIR}" - install -c -m 755 beep "${D}${BINDIR}/beep" + install -d "${D}${bindir}" + install -c -m 755 beep "${D}${bindir}/beep" install -d "${D}${mandir}/man1" install -c -m 644 beep.1.gz "${D}${mandir}/man1/beep.1.gz" } From 2baa3402d7698281f5259a472b81aae98f8da539 Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Mon, 8 Jun 2026 17:49:37 -0300 Subject: [PATCH 24/36] initramfs-psplash-image: Drop debug-tweaks from IMAGE_FEATURES debug-tweaks enables passwordless root login, which is a security risk. This image only shows a psplash boot splash before pivoting to the real rootfs and has no need for an interactive passwordless shell, so the feature is dropped. Signed-off-by: Otavio Salvador --- recipes-core/images/initramfs-psplash-image.bb | 1 - 1 file changed, 1 deletion(-) diff --git a/recipes-core/images/initramfs-psplash-image.bb b/recipes-core/images/initramfs-psplash-image.bb index 71c5885..f89f6e9 100644 --- a/recipes-core/images/initramfs-psplash-image.bb +++ b/recipes-core/images/initramfs-psplash-image.bb @@ -8,7 +8,6 @@ IMAGE_ROOTFS_SIZE = "0" IMAGE_FEATURES = " \ splash \ - debug-tweaks \ " # Avoid installation of syslog From d385bd0139d93cca7f1ef7b38ada207fe56a367f Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Mon, 8 Jun 2026 17:49:44 -0300 Subject: [PATCH 25/36] classes: Document custom tasks with task[doc] strings Add task[doc] documentation flags to the custom tasks, post-process command functions and event handlers in the OSSystems classes so they are described in 'bitbake -e' and listtasks output. No functional change. Signed-off-by: Otavio Salvador --- classes/cve-filter.bbclass | 2 ++ classes/deploy-license-manifest.bbclass | 2 ++ classes/layerdirs.bbclass | 1 + classes/ossystems-factory-defaults.bbclass | 1 + classes/release-bundle-generation.bbclass | 3 +++ classes/restore-dumped-headrevs.bbclass | 1 + 6 files changed, 10 insertions(+) diff --git a/classes/cve-filter.bbclass b/classes/cve-filter.bbclass index 75eb1e5..13a83d6 100644 --- a/classes/cve-filter.bbclass +++ b/classes/cve-filter.bbclass @@ -96,10 +96,12 @@ python do_cve_filter (){ bb.plain("DONE!!") } +do_cve_filter[doc] = "Compare the image CVE report against a previous version and emit a filtered Markdown summary of the new CVEs." addtask cve_filter after do_rootfs before do_image ROOTFS_POSTPROCESS_COMMAND:prepend = "link_cvefilter_markdownfile; " +link_cvefilter_markdownfile[doc] = "Create a stable-named symlink to the CVE filter Markdown report in the deploy directory." link_cvefilter_markdownfile () { ln -sf ${CVE_FILTER_MARKDOWN_FILE_NAME} ${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.md } diff --git a/classes/deploy-license-manifest.bbclass b/classes/deploy-license-manifest.bbclass index 2c4c914..a901626 100644 --- a/classes/deploy-license-manifest.bbclass +++ b/classes/deploy-license-manifest.bbclass @@ -1,6 +1,7 @@ ROOTFS_POSTPROCESS_COMMAND += "deploy_license_manifest;" IMAGE_POSTPROCESS_COMMAND += "link_license_manifest;" +deploy_license_manifest[doc] = "Copy the image license manifest into the deploy directory and generate a CSV variant." deploy_license_manifest () { if [ -e "${LICENSE_DIRECTORY}/${IMAGE_NAME}/license.manifest" ]; then cp ${LICENSE_DIRECTORY}/${IMAGE_NAME}/license.manifest ${IMGDEPLOYDIR}/${IMAGE_NAME}.license_manifest @@ -8,6 +9,7 @@ deploy_license_manifest () { fi } +link_license_manifest[doc] = "Create stable-named symlinks to the deployed license manifest and its CSV variant." link_license_manifest () { if [ -e "${IMGDEPLOYDIR}/${IMAGE_NAME}.license_manifest" ]; then ln -sf ${IMAGE_NAME}.license_manifest ${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.license_manifest diff --git a/classes/layerdirs.bbclass b/classes/layerdirs.bbclass index 0350cdd..02e45b0 100644 --- a/classes/layerdirs.bbclass +++ b/classes/layerdirs.bbclass @@ -10,6 +10,7 @@ def save_layerdirs(d): for layername in (l.getVar('BBFILE_COLLECTIONS', True) or '').split(): d.setVar('LAYERDIR_%s' % layername, layerpath) +cfg_save_layerdirs[doc] = "Record each layer's directory in LAYERDIR_ at config-parse time." python cfg_save_layerdirs () { save_layerdirs(d) } diff --git a/classes/ossystems-factory-defaults.bbclass b/classes/ossystems-factory-defaults.bbclass index bfc65e7..583e888 100644 --- a/classes/ossystems-factory-defaults.bbclass +++ b/classes/ossystems-factory-defaults.bbclass @@ -32,6 +32,7 @@ inherit ossystems-factory-defaults-base +member[doc] = "Shell helper: succeed when the first argument is present among the remaining arguments." member() { elt=$1 shift diff --git a/classes/release-bundle-generation.bbclass b/classes/release-bundle-generation.bbclass index b3040c4..e785415 100644 --- a/classes/release-bundle-generation.bbclass +++ b/classes/release-bundle-generation.bbclass @@ -58,6 +58,7 @@ python() { } addtask collect_platform_source before do_release_bundle_finalize +do_collect_platform_source[doc] = "Garbage-collect and copy the platform source tree (.repo, sources, setup-environment) into the release bundle workdir." do_collect_platform_source[cleandirs] = "${RELEASE_BUNDLE_WORKDIR}" do_collect_platform_source[nostamp] = "1" do_collect_platform_source() { @@ -82,6 +83,7 @@ RELEASE_BUNDLE_TAR_OPTS = "--owner=root --group=root" RELEASE_BUNDLE_OLDEST_KERNEL = "3.2.0" RELEASE_BUNDLE_PATH = "\$HOME/src/${RELEASE_BUNDLE_NAME}/${RELEASE_BUNDLE_VERSION}" +tar_release_bundle[doc] = "Create the bzip2-compressed tarball of the assembled release bundle." fakeroot tar_release_bundle() { mkdir -p ${RELEASE_BUNDLE_DEPLOY} cd ${RELEASE_BUNDLE_WORKDIR} @@ -89,6 +91,7 @@ fakeroot tar_release_bundle() { } addtask release_bundle_finalize after do_unpack do_collect_platform_source before do_build +do_release_bundle_finalize[doc] = "Assemble the final self-extracting release bundle from the collected sources and download cache." do_release_bundle_finalize[dirs] = "${RELEASE_BUNDLE_WORKDIR}/download" do_release_bundle_finalize[depends] += "pbzip2-native:do_populate_sysroot " do_release_bundle_finalize() { diff --git a/classes/restore-dumped-headrevs.bbclass b/classes/restore-dumped-headrevs.bbclass index 7b7ec18..fe6e81b 100644 --- a/classes/restore-dumped-headrevs.bbclass +++ b/classes/restore-dumped-headrevs.bbclass @@ -18,6 +18,7 @@ def restore_headrevs(d, dump_db_path): DUMP_HEADREVS_DB ?= '${COREBASE}/saved_persist_data.db' DUMP_HEADREVS_STAMP ?= '${STAMP}.restored_headrevs' +restore_dumped_headrevs[doc] = "Restore dumped BB_URI_HEADREVS persistent data once, at config-parse time, when a dump database is present." python restore_dumped_headrevs() { stamp_path = d.getVar('DUMP_HEADREVS_STAMP', True) dump_db_path = d.getVar('DUMP_HEADREVS_DB', True) From a171766592db2548f7cb3179fe0af10009b20796 Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Mon, 8 Jun 2026 18:01:56 -0300 Subject: [PATCH 26/36] classes: Fix trailing whitespace and consecutive blank lines Strip trailing spaces from two comment lines in cve-filter and remove the double blank lines in image-license-checker. No functional change. Signed-off-by: Otavio Salvador --- classes/cve-filter.bbclass | 4 ++-- classes/image-license-checker.bbclass | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/classes/cve-filter.bbclass b/classes/cve-filter.bbclass index 13a83d6..14ac5e8 100644 --- a/classes/cve-filter.bbclass +++ b/classes/cve-filter.bbclass @@ -18,7 +18,7 @@ # The cve-filter class provides several configurable variables: -# CVE_FILTER_PREVIOUS_FILE: Specifies the previous version of +# CVE_FILTER_PREVIOUS_FILE: Specifies the previous version of # the CVE JSON file. If no file is provided, only the current # file will be considered. # Default: empty @@ -29,7 +29,7 @@ # Example: "1.0.0" # Default: "0.0.0" -# CVE_FILTER_MARKDOWN_FILE_NAME: Specifies the name of the +# CVE_FILTER_MARKDOWN_FILE_NAME: Specifies the name of the # output Markdown file containing the list of detected CVEs. # Default: "${IMAGE_NAME}.md" diff --git a/classes/image-license-checker.bbclass b/classes/image-license-checker.bbclass index 8cadcc9..941fc29 100644 --- a/classes/image-license-checker.bbclass +++ b/classes/image-license-checker.bbclass @@ -43,7 +43,6 @@ IMAGE_LICENSE_CHECKER_ROOTFS_DENYLIST ?= "" IMAGE_LICENSE_CHECKER_NON_ROOTFS_DENYLIST ?= "" - def bad_license(d, license, denylist): """ Check if a license string is denylisted. The license string will be @@ -136,7 +135,6 @@ python check_rootfs_licenses() { } ROOTFS_POSTPROCESS_COMMAND:prepend = "check_rootfs_licenses; " - python check_deploy_licenses() { """ Check recipes that deploy files used in an image (e.g. U-Boot) for From 21aa73679028e1c2c1aa555b4c136abd92349f0d Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Mon, 8 Jun 2026 18:01:56 -0300 Subject: [PATCH 27/36] recipes-core: Tidy whitespace and variable ordering Normalise tab indentation to spaces in net-persistent-mac's do_install, drop the redundant leading space in list assignments (collapse the now single-entry IMAGE_FEATURES in initramfs-psplash-image, and the '+= " ...' / '= " ...' forms in ossystems-minimal-initramfs and initramfs-framework-psplash), and reorder SRC_URI/S/PACKAGES/FILES in initramfs-framework-psplash into the canonical order. No functional change. Signed-off-by: Otavio Salvador --- .../images/initramfs-psplash-image.bb | 6 ++---- .../images/ossystems-minimal-initramfs.bb | 2 +- .../initramfs-framework-psplash_1.0.bb | 20 +++++++++---------- .../net-persistent-mac/net-persistent-mac.bb | 4 ++-- 4 files changed, 15 insertions(+), 17 deletions(-) diff --git a/recipes-core/images/initramfs-psplash-image.bb b/recipes-core/images/initramfs-psplash-image.bb index f89f6e9..8caf113 100644 --- a/recipes-core/images/initramfs-psplash-image.bb +++ b/recipes-core/images/initramfs-psplash-image.bb @@ -6,9 +6,7 @@ LICENSE = "MIT" IMAGE_FSTYPES = "cpio.gz.u-boot" IMAGE_ROOTFS_SIZE = "0" -IMAGE_FEATURES = " \ - splash \ -" +IMAGE_FEATURES = "splash" # Avoid installation of syslog BAD_RECOMMENDATIONS += "busybox-syslog" @@ -18,7 +16,7 @@ USE_DEVFS = "1" inherit core-image -CORE_IMAGE_BASE_INSTALL = " \ +CORE_IMAGE_BASE_INSTALL = "\ initramfs-framework-base \ initramfs-module-psplash \ initramfs-module-rootfs \ diff --git a/recipes-core/images/ossystems-minimal-initramfs.bb b/recipes-core/images/ossystems-minimal-initramfs.bb index 9c3ffcb..26529e2 100644 --- a/recipes-core/images/ossystems-minimal-initramfs.bb +++ b/recipes-core/images/ossystems-minimal-initramfs.bb @@ -24,7 +24,7 @@ inherit core-image IMAGE_ROOTFS_SIZE = "8192" IMAGE_ROOTFS_EXTRA_SPACE = "0" -BAD_RECOMMENDATIONS += " \ +BAD_RECOMMENDATIONS += "\ busybox-udhcpc \ busybox-syslog \ initramfs-module-rootfs \ diff --git a/recipes-core/initrdscripts/initramfs-framework-psplash_1.0.bb b/recipes-core/initrdscripts/initramfs-framework-psplash_1.0.bb index de3b1c0..94cee5b 100644 --- a/recipes-core/initrdscripts/initramfs-framework-psplash_1.0.bb +++ b/recipes-core/initrdscripts/initramfs-framework-psplash_1.0.bb @@ -6,28 +6,28 @@ BUGTRACKER = "https://github.com/OSSystemsEmbeddedLinux/meta-ossystems-base/issu SECTION = "base" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" -RDEPENDS:${PN} += "${VIRTUAL-RUNTIME_base-utils}" -RRECOMMENDS:${PN} = "${VIRTUAL-RUNTIME_base-utils-syslog}" -PR = "r4" - -inherit allarch - -SRC_URI = " \ +SRC_URI = "\ file://psplash \ file://psplash-finish \ " S = "${UNPACKDIR}" +RDEPENDS:${PN} += "${VIRTUAL-RUNTIME_base-utils}" +RRECOMMENDS:${PN} = "${VIRTUAL-RUNTIME_base-utils-syslog}" + +PR = "r4" + +inherit allarch + do_install() { # psplash install -Dm 0755 ${S}/psplash ${D}/init.d/11-psplash install -Dm 0755 ${S}/psplash-finish ${D}/init.d/98-psplash_finish } -PACKAGES = "initramfs-module-psplash" - SUMMARY:initramfs-module-psplash = "initramfs psplash support" -RDEPENDS:initramfs-module-psplash = "initramfs-framework-base psplash" +PACKAGES = "initramfs-module-psplash" FILES:initramfs-module-psplash = "/init.d" +RDEPENDS:initramfs-module-psplash = "initramfs-framework-base psplash" diff --git a/recipes-core/net-persistent-mac/net-persistent-mac.bb b/recipes-core/net-persistent-mac/net-persistent-mac.bb index 582660a..e1bfbb1 100644 --- a/recipes-core/net-persistent-mac/net-persistent-mac.bb +++ b/recipes-core/net-persistent-mac/net-persistent-mac.bb @@ -22,9 +22,9 @@ do_configure[noexec] = "1" do_compile[noexec] = "1" do_install() { - install -Dm 0644 ${UNPACKDIR}/${PN}.service ${D}${systemd_system_unitdir}/${PN}.service + install -Dm 0644 ${UNPACKDIR}/${PN}.service ${D}${systemd_system_unitdir}/${PN}.service install -Dm 0644 ${UNPACKDIR}/${PN}.default ${D}${sysconfdir}/default/${PN} - install -Dm 0755 ${UNPACKDIR}/${PN} ${D}${bindir}/${PN} + install -Dm 0755 ${UNPACKDIR}/${PN} ${D}${bindir}/${PN} } PACKAGE_ARCH = "${MACHINE_ARCH}" From 9b265baffb81cdfc0a2eab10cf3987f213735b15 Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Mon, 8 Jun 2026 18:02:05 -0300 Subject: [PATCH 28/36] recipes-staging: Tidy whitespace and assignment spacing Use a single space around the SRC_URI assignment and normalise tab indentation to spaces in beep's do_install, and drop the redundant leading space in the SRC_URI append of wifi-connect and its generated crates include. No functional change. Signed-off-by: Otavio Salvador --- recipes-staging/beep/beep_1.2.2.bb | 16 ++++++++-------- .../wifi-connect/wifi-connect-crates.inc | 2 +- .../wifi-connect/wifi-connect_4.11.3.bb | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/recipes-staging/beep/beep_1.2.2.bb b/recipes-staging/beep/beep_1.2.2.bb index d8186a0..9c4ede7 100644 --- a/recipes-staging/beep/beep_1.2.2.bb +++ b/recipes-staging/beep/beep_1.2.2.bb @@ -8,9 +8,9 @@ LICENSE = "GPL-2.0-only" PR = "r3" LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3" -SRC_URI = "http://johnath.com/beep/beep-${PV}.tar.gz \ - file://linux-input.patch \ - " +SRC_URI = "http://johnath.com/beep/beep-${PV}.tar.gz \ + file://linux-input.patch \ + " S = "${UNPACKDIR}/beep-${PV}" @@ -18,11 +18,11 @@ EXTRA_OEMAKE += 'CC="${CC}"' EXTRA_OEMAKE += 'FLAGS="${CFLAGS} ${LDFLAGS}"' do_install() { - # this is easier than patching the Makefile... - install -d "${D}${bindir}" - install -c -m 755 beep "${D}${bindir}/beep" - install -d "${D}${mandir}/man1" - install -c -m 644 beep.1.gz "${D}${mandir}/man1/beep.1.gz" + # this is easier than patching the Makefile... + install -d "${D}${bindir}" + install -c -m 755 beep "${D}${bindir}/beep" + install -d "${D}${mandir}/man1" + install -c -m 644 beep.1.gz "${D}${mandir}/man1/beep.1.gz" } SRC_URI[sha256sum] = "5c0445dac43950b7c7c3f235c6fb21f620ab3fd2f3aafaf09896e5730fcf49a1" diff --git a/recipes-staging/wifi-connect/wifi-connect-crates.inc b/recipes-staging/wifi-connect/wifi-connect-crates.inc index c296bf6..21c2ff8 100644 --- a/recipes-staging/wifi-connect/wifi-connect-crates.inc +++ b/recipes-staging/wifi-connect/wifi-connect-crates.inc @@ -1,7 +1,7 @@ # Autogenerated with 'bitbake -c update_crates wifi-connect' # from Cargo.lock -SRC_URI += " \ +SRC_URI += "\ crate://crates.io/aho-corasick/0.6.10 \ crate://crates.io/ansi_term/0.12.1 \ crate://crates.io/ascii/1.1.0 \ diff --git a/recipes-staging/wifi-connect/wifi-connect_4.11.3.bb b/recipes-staging/wifi-connect/wifi-connect_4.11.3.bb index 03e889d..ec12d77 100644 --- a/recipes-staging/wifi-connect/wifi-connect_4.11.3.bb +++ b/recipes-staging/wifi-connect/wifi-connect_4.11.3.bb @@ -17,7 +17,7 @@ require ${BPN}-crates.inc DEPENDS += "dbus" SRCREV_wifi-connect = "ac20e664d630712593f959a41cb29953686395a8" -SRC_URI += " \ +SRC_URI += "\ git://github.com/balena-os/wifi-connect;branch=master;protocol=https;name=${BPN};name=${BPN};destsuffix=${BPN} \ file://wifi-connect.service \ file://wifi-connect-start.sh \ From c0a23ff63bc67ce12ddc21ea72e244153d309474 Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Mon, 8 Jun 2026 18:02:05 -0300 Subject: [PATCH 29/36] dynamic-layers: Tidy whitespace and variable ordering Collapse the aligned ?= padding to a single space, drop the redundant leading space in qt-kiosk-browser-init's SRC_URI, remove a double blank line, and move PACKAGE_ARCH before RDEPENDS in both the chromium and qt-kiosk browser init recipes. No functional change. Signed-off-by: Otavio Salvador --- .../chromium/chromium-ozone-wayland-init.bb | 6 +++--- .../recipes-qt/qt-kiosk-browser/qt-kiosk-browser-init.bb | 7 +++---- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-init.bb b/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-init.bb index ecbb855..9f55cd1 100644 --- a/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-init.bb +++ b/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-init.bb @@ -18,7 +18,7 @@ inherit systemd update-rc.d ## Configuration variables # URL to load when start. -CHROMIUM_URL ?= "https://ossystems.com.br" +CHROMIUM_URL ?= "https://ossystems.com.br" # Extra arguments to pass to 'chromium' application. CHROMIUM_EXTRA_ARGS ?= "" @@ -54,6 +54,6 @@ do_install() { -i ${D}${sysconfdir}/default/chromium-ozone-wayland } -RDEPENDS:${PN} += "chromium-ozone-wayland" - PACKAGE_ARCH = "${MACHINE_ARCH}" + +RDEPENDS:${PN} += "chromium-ozone-wayland" diff --git a/dynamic-layers/qt5-layer/recipes-qt/qt-kiosk-browser/qt-kiosk-browser-init.bb b/dynamic-layers/qt5-layer/recipes-qt/qt-kiosk-browser/qt-kiosk-browser-init.bb index a07d62d..6e45bf2 100644 --- a/dynamic-layers/qt5-layer/recipes-qt/qt-kiosk-browser/qt-kiosk-browser-init.bb +++ b/dynamic-layers/qt5-layer/recipes-qt/qt-kiosk-browser/qt-kiosk-browser-init.bb @@ -7,7 +7,7 @@ SECTION = "graphics" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" -SRC_URI = " \ +SRC_URI = "\ file://${BPN}.default \ file://${BPN}.initd \ file://${BPN}.service \ @@ -26,7 +26,6 @@ QT_KIOSK_SCREENSAVER_TIME ?= "0" # Defines the time to restart the browser after entering in screen saving mode (0 to disable). QT_KIOSK_RESTART_TIME ?= "0" - SYSTEMD_SERVICE:${PN} = "qt-kiosk-browser.service" # Start after weston-init @@ -55,6 +54,6 @@ do_install() { -i ${D}${sysconfdir}/qt-kiosk-browser.conf } -RDEPENDS:${PN} += "qt-kiosk-browser" - PACKAGE_ARCH = "${MACHINE_ARCH}" + +RDEPENDS:${PN} += "qt-kiosk-browser" From 42075fdc5b3e7881d13b9e0d0b4ba84e501e72fc Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Mon, 8 Jun 2026 18:02:15 -0300 Subject: [PATCH 30/36] cog-init: Tidy assignment spacing and variable order Collapse the aligned COG_URL ?= padding to a single space and move PACKAGE_ARCH before RDEPENDS. No functional change. Signed-off-by: Otavio Salvador --- recipes-browser/cog/cog-init.bb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes-browser/cog/cog-init.bb b/recipes-browser/cog/cog-init.bb index f5fec94..c0808d1 100644 --- a/recipes-browser/cog/cog-init.bb +++ b/recipes-browser/cog/cog-init.bb @@ -25,7 +25,7 @@ COG_PLATFORM ?= "wl" COG_PLATFORM_WL_VIEW_FULLSCREEN ?= "1" # URL to load when start. -COG_URL ?= "https://ossystems.com.br" +COG_URL ?= "https://ossystems.com.br" # Extra arguments to pass to 'cog' application. COG_EXTRA_ARGS ?= "" @@ -63,6 +63,6 @@ do_install() { -i ${D}${sysconfdir}/default/cog } -RDEPENDS:${PN} += "cog" - PACKAGE_ARCH = "${MACHINE_ARCH}" + +RDEPENDS:${PN} += "cog" From 7297c0c0a84f1407c677c14b5597cc26fe52e423 Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Mon, 8 Jun 2026 18:02:15 -0300 Subject: [PATCH 31/36] zram-init: Drop unneeded ${S} prefix in LIC_FILES_CHKSUM LIC_FILES_CHKSUM paths are already resolved relative to ${S}, so the explicit prefix is redundant. Signed-off-by: Otavio Salvador --- recipes-extended/zram-init/zram-init_git.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes-extended/zram-init/zram-init_git.bb b/recipes-extended/zram-init/zram-init_git.bb index 6c804bd..ccb87bb 100644 --- a/recipes-extended/zram-init/zram-init_git.bb +++ b/recipes-extended/zram-init/zram-init_git.bb @@ -5,7 +5,7 @@ HOMEPAGE = "https://github.com/vaeth/zram-init" BUGTRACKER = "https://github.com/vaeth/zram-init/issues" SECTION = "base" LICENSE = "GPL-2.0-only" -LIC_FILES_CHKSUM = "file://${S}/README.md;beginline=5;endline=7;md5=1c6f4971407e5a5b1aa502b9badcdf98" +LIC_FILES_CHKSUM = "file://README.md;beginline=5;endline=7;md5=1c6f4971407e5a5b1aa502b9badcdf98" inherit update-rc.d systemd From 2ac0e51dabb15ced65b796ce6f43ee16698465cb Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Mon, 8 Jun 2026 18:02:15 -0300 Subject: [PATCH 32/36] weston-touch-calibrator-service: Tidy RDEPENDS spacing and order Drop the redundant leading space in the RDEPENDS append and place the FILES assignment before RDEPENDS, matching the canonical order. No functional change. Signed-off-by: Otavio Salvador --- .../weston-touch-calibrator-service.bb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/recipes-graphics/weston-touch-calibrator-service/weston-touch-calibrator-service.bb b/recipes-graphics/weston-touch-calibrator-service/weston-touch-calibrator-service.bb index e0bc2f6..2c682f2 100644 --- a/recipes-graphics/weston-touch-calibrator-service/weston-touch-calibrator-service.bb +++ b/recipes-graphics/weston-touch-calibrator-service/weston-touch-calibrator-service.bb @@ -27,14 +27,14 @@ do_install() { install -Dm 0644 ${UNPACKDIR}/touchscreen.rules ${D}${base_libdir}/udev/rules.d/98-touchscreen.rules } -RDEPENDS:${PN} += " \ - weston-init \ - weston-touch-calibrator \ -" - FILES:${PN} = "\ ${sysconfdir}/default \ ${systemd_system_unitdir} \ ${bindir} \ ${base_libdir}/udev/rules.d \ " + +RDEPENDS:${PN} += "\ + weston-init \ + weston-touch-calibrator \ +" From e4f6d8732954f255f5757292485bc5df0f35b32a Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Mon, 8 Jun 2026 20:25:49 -0300 Subject: [PATCH 33/36] contrib/oelint: Scope the runner to meta-ossystems-base only The lint helper previously scanned meta-ossystems-base and meta-secure-boot together, but meta-secure-boot carries uncommitted local work and was never in play. Narrow the runner to this layer for consistency and drop the constants that were only needed for meta-secure-boot (the mx*-generic-bsp, hab4 and ahab machine overrides, BOOT_CONFIG_MACHINE and SIGNED_TARGET); none of them are referenced under meta-ossystems-base. Signed-off-by: Otavio Salvador --- contrib/oelint/ossystems-constants.json | 17 +---------------- contrib/oelint/run-oelint.sh | 14 ++++++-------- 2 files changed, 7 insertions(+), 24 deletions(-) diff --git a/contrib/oelint/ossystems-constants.json b/contrib/oelint/ossystems-constants.json index 1e41f86..3230c61 100644 --- a/contrib/oelint/ossystems-constants.json +++ b/contrib/oelint/ossystems-constants.json @@ -1,8 +1,7 @@ { - "comment": "oelint-adv constant DB additions for the OSSystems layers (meta-ossystems-base, meta-secure-boot). Merge with: oelint-adv --constantmods +contrib/oelint/ossystems-constants.json. These are real variables/overrides oelint cannot know about when run standalone (outside a full bitbake build).", + "comment": "oelint-adv constant DB additions for the meta-ossystems-base layer. Merge with: oelint-adv --constantmods +contrib/oelint/ossystems-constants.json. These are real variables/overrides oelint cannot know about when run standalone (outside a full bitbake build).", "variables": { "known": [ - "BOOT_CONFIG_MACHINE", "OPENGL_WINSYS", "OS_RELEASE_FIELDS", "OSSYSTEMS_FACTORY_DEFAULTS_DIR", @@ -12,24 +11,10 @@ "OSSYSTEMS_FACTORY_DEFAULTS_POSTINST_FILES", "OSSYSTEMS_FACTORY_DEFAULTS_RUNTIME_DIR", "RELEASE_BUNDLE_LAYERNAME", - "SIGNED_TARGET", "VERSION" ] }, "replacements": { - "machines": [ - "mx6-generic-bsp", - "mx7-generic-bsp", - "mx8m-generic-bsp", - "mx8ulp-generic-bsp", - "mx8qm-generic-bsp", - "mx8qxp-generic-bsp", - "mx8dxl-generic-bsp", - "mx9-generic-bsp", - "mx93-generic-bsp", - "hab4", - "ahab" - ], "distros": [ "oel" ] diff --git a/contrib/oelint/run-oelint.sh b/contrib/oelint/run-oelint.sh index 300f783..341b0c0 100755 --- a/contrib/oelint/run-oelint.sh +++ b/contrib/oelint/run-oelint.sh @@ -1,26 +1,24 @@ #!/bin/sh -# Run oelint-adv over the OSSystems-maintained layers with the project's +# Run oelint-adv over the meta-ossystems-base layer with the project's # constant-DB additions and the agreed suppressions applied. # # Requirements: pip install oelint-adv (oelint-adv must be on PATH) # Usage: contrib/oelint/run-oelint.sh [extra oelint-adv args...] # -# Scope: meta-ossystems-base + meta-secure-boot. OpenEmbedded-Core and other -# upstream layers are intentionally excluded. +# Scope: meta-ossystems-base. OpenEmbedded-Core and other upstream layers +# are intentionally excluded. set -eu here=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd) -# layer roots: /meta-ossystems-base/contrib/oelint -> -sources=$(CDPATH= cd -- "$here/../../.." && pwd) - -layers="$sources/meta-ossystems-base $sources/meta-secure-boot" +# layer root: /contrib/oelint -> +layer=$(CDPATH= cd -- "$here/../.." && pwd) # Suppressed rules (env limitations / project policy): # - oelint.file.requirenotfound: image recipes 'require' OE-core files that # only resolve inside a full bitbake build (BBPATH), not in standalone lint. suppress="oelint.file.requirenotfound" -files=$(find $layers \ +files=$(find "$layer" \ \( -name '*.bb' -o -name '*.bbappend' -o -name '*.bbclass' -o -name '*.inc' \) \ | sort) From fab0bcd7e9f25d3a0b87ba00f1c02a831e585005 Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Tue, 9 Jun 2026 08:34:58 -0300 Subject: [PATCH 34/36] linuxconsole: Install udev files under ${nonarch_base_libdir} The upstream Makefile hardcodes the udev directory to /lib/udev, which under usrmerge is the wrong location and previously required relocating ${D}/lib into ${base_libdir} after install. Follow the OE-core convention instead (as nfs-utils does): sed the Makefile to honour ${nonarch_base_libdir}, and install the local udev rules directly to ${nonarch_base_libdir}/udev/rules.d. This drops the post-install relocation block and is multilib-correct. Built for qemuarm/oel with usrmerge: the joystick package ships js-set-enum-leds and all rules under /usr/lib/udev with no installed-but-not-shipped QA. Signed-off-by: Otavio Salvador --- .../linuxconsole/linuxconsole_1.7.0.bb | 26 ++++++++----------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/recipes-staging/linuxconsole/linuxconsole_1.7.0.bb b/recipes-staging/linuxconsole/linuxconsole_1.7.0.bb index f95db03..b21ab79 100644 --- a/recipes-staging/linuxconsole/linuxconsole_1.7.0.bb +++ b/recipes-staging/linuxconsole/linuxconsole_1.7.0.bb @@ -32,6 +32,11 @@ SYSTEMD_PACKAGES += "inputattach" SYSTEMD_SERVICE:inputattach = "inputattach.service" SYSTEMD_AUTO_ENABLE:inputattach = "enable" +do_configure:append() { + # Upstream hardcodes the udev dir to /lib/udev; honour ${nonarch_base_libdir}. + sed -i 's,$(DESTDIR)/lib/udev,$(DESTDIR)${nonarch_base_libdir}/udev,g' ${S}/utils/Makefile +} + do_compile() { oe_runmake } @@ -39,17 +44,8 @@ do_compile() { do_install() { oe_runmake install - # Upstream's Makefile hardcodes the udev directory to /lib/udev; relocate - # its content under ${base_libdir} so it is packaged correctly when - # usrmerge maps ${base_libdir} to /usr/lib. - if [ "${D}/lib" != "${D}${base_libdir}" ] && [ -d ${D}/lib ]; then - install -d ${D}${base_libdir} - cp -a ${D}/lib/. ${D}${base_libdir}/ - rm -rf ${D}/lib - fi - - install -Dm 0644 ${UNPACKDIR}/51-these-are-not-joysticks-rm.rules ${D}${base_libdir}/udev/rules.d/51-these-are-not-joysticks-rm.rules - install -Dm 0644 ${UNPACKDIR}/60-joystick.rules ${D}${base_libdir}/udev/rules.d/60-joystick.rules + install -Dm 0644 ${UNPACKDIR}/51-these-are-not-joysticks-rm.rules ${D}${nonarch_base_libdir}/udev/rules.d/51-these-are-not-joysticks-rm.rules + install -Dm 0644 ${UNPACKDIR}/60-joystick.rules ${D}${nonarch_base_libdir}/udev/rules.d/60-joystick.rules install -Dm 0644 ${UNPACKDIR}/inputattach.service ${D}${systemd_system_unitdir}/inputattach.service install -Dm 0755 ${UNPACKDIR}/inputattachctl ${D}${bindir}/inputattachctl @@ -78,10 +74,10 @@ FILES:joystick += "\ ${bindir}/jscal-store \ ${bindir}/jstest \ ${datadir}/joystick \ - ${base_libdir}/udev/rules.d/51-these-are-not-joysticks-rm.rules \ - ${base_libdir}/udev/js-set-enum-leds \ - ${base_libdir}/udev/rules.d/60-joystick.rules \ - ${base_libdir}/udev/rules.d/80-stelladaptor-joystick.rules \ + ${nonarch_base_libdir}/udev/rules.d/51-these-are-not-joysticks-rm.rules \ + ${nonarch_base_libdir}/udev/js-set-enum-leds \ + ${nonarch_base_libdir}/udev/rules.d/60-joystick.rules \ + ${nonarch_base_libdir}/udev/rules.d/80-stelladaptor-joystick.rules \ " RDEPENDS:inputattach += "inputattach-config" From 9fd2beb0733fb7997a9f6300e0b4f679a170d5bb Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Tue, 9 Jun 2026 08:34:58 -0300 Subject: [PATCH 35/36] contrib/oelint: Trim run-oelint.sh header to essentials Drop the verbose usage/requirements/scope preamble; keep a one-line purpose and the rule-suppression rationale. Signed-off-by: Otavio Salvador --- contrib/oelint/run-oelint.sh | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/contrib/oelint/run-oelint.sh b/contrib/oelint/run-oelint.sh index 341b0c0..31fcd5c 100755 --- a/contrib/oelint/run-oelint.sh +++ b/contrib/oelint/run-oelint.sh @@ -1,16 +1,9 @@ #!/bin/sh -# Run oelint-adv over the meta-ossystems-base layer with the project's -# constant-DB additions and the agreed suppressions applied. -# -# Requirements: pip install oelint-adv (oelint-adv must be on PATH) -# Usage: contrib/oelint/run-oelint.sh [extra oelint-adv args...] -# -# Scope: meta-ossystems-base. OpenEmbedded-Core and other upstream layers -# are intentionally excluded. +# Run oelint-adv over meta-ossystems-base with the project's constant-DB +# additions and the agreed suppressions. Requires oelint-adv on PATH. set -eu here=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd) -# layer root: /contrib/oelint -> layer=$(CDPATH= cd -- "$here/../.." && pwd) # Suppressed rules (env limitations / project policy): From eedff308e69db4abdc12bf1fa9d27858d9e46d13 Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Tue, 9 Jun 2026 08:34:58 -0300 Subject: [PATCH 36/36] classes/release-bundle-generation: Drop redundant inherit comment The inherit line is self-explanatory; remove the comment restating what the inherited class provides. Signed-off-by: Otavio Salvador --- classes/release-bundle-generation.bbclass | 2 -- 1 file changed, 2 deletions(-) diff --git a/classes/release-bundle-generation.bbclass b/classes/release-bundle-generation.bbclass index e785415..722f7c6 100644 --- a/classes/release-bundle-generation.bbclass +++ b/classes/release-bundle-generation.bbclass @@ -16,8 +16,6 @@ # # Released under the MIT license (see packages/COPYING) -# Provides RELEASE_BUNDLE_TMP_DOWNLOAD_CACHE and the do_collect_recipe_source -# task that this class consumes when assembling the bundle. inherit release-bundle do_configure[noexec] = "1"