Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
301da27
conf/layer.conf: Update compatible Yocto Project release to blacksail
lucianogdittgen Nov 5, 2026
3ea357b
.oelint.cfg: Lint against blacksail
lucianogdittgen Nov 10, 2026
77ca6db
distro/oel: Space-separate ROOTFS_POSTPROCESS_COMMAND
lucianogdittgen Nov 9, 2026
f891756
cve-filter: Space-separate ROOTFS_POSTPROCESS_COMMAND
lucianogdittgen Nov 9, 2026
79b56c0
deploy-license-manifest: Space-separate the postprocess commands
lucianogdittgen Nov 9, 2026
dea84e9
image-license-checker: Space-separate the postprocess commands
lucianogdittgen Nov 9, 2026
e5ef286
easysplash: Drop the empty ${SRCPV} from PV
lucianogdittgen Nov 9, 2026
d6b7b1e
ossystems-onsite-only-recipe-handler: Stop using SRCPV as a marker
lucianogdittgen Nov 9, 2026
938f6ec
distro/oel-tiny: Select mdev-busybox as INIT_MANAGER
lucianogdittgen Nov 6, 2026
3bb55de
distro/oel-tiny: Stop recommending nss-myhostname
lucianogdittgen Nov 6, 2026
d54a474
distro/oel-tiny: Default the optional DISTRO_FEATURES groups to empty
lucianogdittgen Nov 6, 2026
8d892e3
distro/oel: Select systemd as INIT_MANAGER explicitly
lucianogdittgen Nov 6, 2026
9015afa
distro/oel: Drop the dead arm_tune_handler
lucianogdittgen Nov 6, 2026
28de162
os-release: Drop the trailing space from VERSION
lucianogdittgen Nov 10, 2026
0c28ecc
cog-init: Move recipe where the webkit dynamic pattern reaches it
lucianogdittgen Nov 6, 2026
c3c9021
distro/oel-tiny: Add whitespace around the USE_NLS assignment
lucianogdittgen Nov 9, 2026
30ee2d9
distro/oel: Use 26.11-snapshot as development version
lucianogdittgen Nov 9, 2026
9c39849
chromium-ozone-wayland-init: Register the init script under its real …
lucianogdittgen Nov 9, 2026
121dc37
chromium-ozone-wayland-init: Start /usr/bin/chromium from the init sc…
lucianogdittgen Nov 9, 2026
ac4abb8
qt-kiosk-browser-init: Install the init script as qt-kiosk-browser
lucianogdittgen Nov 9, 2026
40cdb61
qt-kiosk-browser-init: Point the init script at the real binary and c…
lucianogdittgen Nov 9, 2026
3c4f20b
networkmanager: Drop the bbappend that pins the pppd plugin dir to 2.4.9
lucianogdittgen Nov 9, 2026
08bc57b
easysplash: Check upstream versions against the branch head
lucianogdittgen Nov 10, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .oelint.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@
# the finding, so new recipes are always fully linted and each exception is
# documented in place.
[oelint]
release = wrynose
release = blacksail
suppress = oelint.var.bbclassextend
3 changes: 2 additions & 1 deletion classes/cve-filter.bbclass
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,8 @@ python do_cve_filter (){
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; "
# nooelint: oelint.var.rootfspostcmd the trailing space keeps this prepend apart from the next function
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 () {
Expand Down
4 changes: 2 additions & 2 deletions classes/deploy-license-manifest.bbclass
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# nooelint: oelint.bbclass.underscores oelint.file.inlinesuppress_na no EXPORT_FUNCTIONS here, so the dash is harmless
ROOTFS_POSTPROCESS_COMMAND += "deploy_license_manifest;"
IMAGE_POSTPROCESS_COMMAND += "link_license_manifest;"
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 () {
Expand Down
5 changes: 3 additions & 2 deletions classes/image-license-checker.bbclass
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,8 @@ python check_rootfs_licenses() {
bb.fatal("Packages have denylisted licenses: {}".format(", ".join(bad_packages)))
}
check_rootfs_licenses[doc] = "Fail the build if any package installed on the rootfs has a denylisted license."
ROOTFS_POSTPROCESS_COMMAND:prepend = "check_rootfs_licenses; "
# nooelint: oelint.var.rootfspostcmd the trailing space keeps this prepend apart from the next function
ROOTFS_POSTPROCESS_COMMAND:prepend = "check_rootfs_licenses "

python check_deploy_licenses() {
"""
Expand All @@ -154,4 +155,4 @@ python check_deploy_licenses() {
bb.fatal("Deployed image dependencies have denylisted licenses: {}".format(", ".join(bad_recipes)))
}
check_deploy_licenses[doc] = "Fail the build if any recipe deploying files into the image has a denylisted license."
IMAGE_POSTPROCESS_COMMAND:prepend = "check_deploy_licenses; "
IMAGE_POSTPROCESS_COMMAND:prepend = "check_deploy_licenses "
11 changes: 4 additions & 7 deletions classes/ossystems-onsite-only-recipe-handler.bbclass
Original file line number Diff line number Diff line change
Expand Up @@ -28,20 +28,17 @@ def ossystems_onsite_only_recipe_handler(d):

bb.note("O.S. Systems OnSite-Only Recipes handler: Disabled")

for recipe in onsite_only_recipes.split():
d.setVar("SRCPV:pn-%s" % recipe, "OSSystemsOnSiteOnlyRecipeTag")
bb.debug(1, "O.S. Systems OnSite-Only Recipes handler: Overriding %s" % recipe)

def ossystems_onsite_only_recipe_check(d):
recipes = d.getVar('OSSYSTEMS_ONSITE_ONLY_RECIPES', True)
if not recipes:
return

if d.getVar('OSSYSTEMS_USE_ONSITE_ONLY_RECIPES', True) == "1":
return

pn = d.getVar('PN', True)
if pn in recipes.split():
srcpv = d.getVar('SRCPV', True)
if srcpv == "OSSystemsOnSiteOnlyRecipeTag":
raise bb.parse.SkipPackage("O.S. Systems OnSite-Only Recipes handler: recipe skipped.")
raise bb.parse.SkipPackage("O.S. Systems OnSite-Only Recipes handler: recipe skipped.")

addhandler ossystems_onsite_only_recipe_eventhandler
ossystems_onsite_only_recipe_eventhandler[doc] = "Disable on-site-only recipes at ConfigParsed when building off-site."
Expand Down
32 changes: 5 additions & 27 deletions conf/distro/include/oel.inc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
DISTRO_VERSION = "26.05-snapshot-${DATE}"
DISTRO_VERSION = "26.11-snapshot-${DATE}"

SDK_VENDOR = "-oelsdk"
SDK_VERSION := "${@'${DISTRO_VERSION}'.replace('snapshot-${DATE}','snapshot')}"
Expand Down Expand Up @@ -37,7 +37,7 @@ INHERIT += "layerdirs"
INHERIT += "typecheck"

# Also check for host user contamination in the rootfs
ROOTFS_POSTPROCESS_COMMAND:append = " rootfs_check_host_user_contaminated;"
ROOTFS_POSTPROCESS_COMMAND:append = " rootfs_check_host_user_contaminated"

SANITY_TESTED_DISTROS ?= " \
almalinux-8 \
Expand Down Expand Up @@ -71,6 +71,9 @@ OEL_DEFAULT_EXTRA_RDEPENDS = "packagegroup-core-boot"
DISTRO_FEATURES ?= "${OEL_DEFAULT_DISTRO_FEATURES} \
${OEL_EXTRA_DISTRO_FEATURES}"

# OE-Core requires distros to pick an init manager; oel uses systemd.
INIT_MANAGER ?= "systemd"

DISTRO_EXTRA_RDEPENDS += "${OEL_DEFAULT_EXTRA_RDEPENDS}"

DISTRO_FEATURES_OPTED_OUT ?= " \
Expand Down Expand Up @@ -118,9 +121,6 @@ VOLATILE_BINDS:append = "\
# don't have pam available, as the user service won't be started
systemd_userunitdir:pn-pulseaudio = "${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${systemd_unitdir}/user', '${systemd_unitdir}/system', d)}"

# We prefer busybox rather than tinylogin
VIRTUAL-RUNTIME_login_manager ??= "busybox"

# Use systemd as syslog in distros that has systemd in DISTRO_FEATURES
VIRTUAL-RUNTIME_base-utils-syslog = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', 'busybox-syslog', d)}"

Expand Down Expand Up @@ -162,28 +162,6 @@ SSTATE_MIRROR_SITES:prepend = "${LAYER_SSTATE_MIRRORS} "
# Ensure that we implement shared state reuse handling for non-target recipes
require conf/distro/include/sstate.inc

# This function changes the default tune for machines which are based on armv7a
# to use common tune value.
def arm_tune_handler(d):
features = d.getVar('TUNE_FEATURES', True).split()
if 'armv7a' in features or 'armv7ve' in features:
tune = 'armv7ahf'
if 'bigendian' in features:
tune += 'b'
if 'vfpv3' in features:
tune += '-vfpv3'
if 'vfpv3d16' in features:
tune += '-vfpv3d16'
if 'neon' in features:
tune += '-neon'
if 'vfpv4' in features:
tune += '-vfpv4'
else:
tune = d.getVar('DEFAULTTUNE', True)
return tune

DEFAULTTUNE_oel := "${@arm_tune_handler(d)}"

DISTRO_ARM_INSTRUCTION ?= "arm"
DISTRO_ARM_INSTRUCTION:armv4 ?= "arm"
DISTRO_ARM_INSTRUCTION:armv5te ?= "arm"
Expand Down
11 changes: 9 additions & 2 deletions conf/distro/oel-tiny.conf
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,19 @@ DISTRO = "oel-tiny"
DISTRO_NAME = "O.S. Systems Embedded Linux Tiny"

TCLIBC = "musl"

# OE-Core defaults to systemd; tiny uses busybox and its own init.
INIT_MANAGER = "mdev-busybox"

DISTROOVERRIDES = "oel:oel-tiny"

# Distro config is evaluated after the machine config, so we have to explicitly
# set the kernel provider to override a machine config.
PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto-tiny"
PREFERRED_VERSION_linux-yocto-tiny ?= "6.18%"

OEL_DEFAULT_EXTRA_RRECOMMENDS = ""
# nss-myhostname needs glibc NSS; it is not buildable with musl.
DISTRO_EXTRA_RRECOMMENDS:remove = "nss-myhostname"

# Disable wide char support for ncurses as we don't include it in
# in the LIBC features below.
Expand All @@ -43,13 +48,15 @@ ENABLE_WIDEC:class-native = "true"

# Drop native language support to avoid pulling gettext and wide-char libc
# features into the tiny image.
USE_NLS="no"
USE_NLS = "no"

# DISTRO_FEATURES options:
# alsa bluetooth ext2 irda pcmcia usbgadget usbhost wifi nfs zeroconf pci
DISTRO_FEATURES_TINY = "pci"
DISTRO_FEATURES_NET = "ipv4 ipv6"
DISTRO_FEATURES_USB = "usbhost"
DISTRO_FEATURES_USBGADGET ?= ""
DISTRO_FEATURES_WIFI ?= ""
#DISTRO_FEATURES_USBGADGET = "usbgadget"
#DISTRO_FEATURES_WIFI = "wifi"

Expand Down
2 changes: 1 addition & 1 deletion conf/layer.conf
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ LAYERDEPENDS_ossystems-base = "core"

addpylib ${LAYERDIR}/lib ossystems

LAYERSERIES_COMPAT_ossystems-base = "wrynose"
LAYERSERIES_COMPAT_ossystems-base = "blacksail"

LICENSE_PATH += "${LAYERDIR}/conf/licenses"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ PATH=/sbin:/usr/sbin:/bin:/usr/bin

DESC="chromium-browser"
NAME="chromium-ozone-wayland"
DAEMON=/usr/bin/$NAME
DAEMON=/usr/bin/chromium
CHROMIUM_ARGS=""
PIDFILE=/var/run/$NAME.pid

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ CHROMIUM_EXTRA_ARGS ?= ""
SYSTEMD_SERVICE:${PN} = "chromium-ozone-wayland.service"

# Start after weston-init
INITSCRIPT_NAME = "${BPM}"
INITSCRIPT_NAME = "chromium-ozone-wayland"
INITSCRIPT_PARAMS = "start 10 5 2 . stop 19 0 1 6 ."

do_configure[noexec] = "1"
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/bin/sh

### BEGIN INIT INFO
# Provides: $NAME
# Provides: qt-kiosk-browser
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
Expand All @@ -11,13 +11,20 @@
set -e

DESC="Qt kiosk browser init"
NAME="qt-kiosk-browser-init"
NAME="qt-kiosk-browser"
DAEMON=/usr/bin/$NAME
DAEMON_ARGS="--platform wayland /etc/$NAME.conf --no-sandbox"
PIDFILE=/var/run/$NAME.pid

test -x ${DAEMON} || exit 0

# Same environment as the systemd unit's EnvironmentFile
if [ -r /etc/default/$NAME ]; then
set -a
. /etc/default/$NAME
set +a
fi

umask 022

. /etc/init.d/functions
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ INITSCRIPT_NAME = "qt-kiosk-browser"

do_install() {
if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then
install -Dm 0755 ${UNPACKDIR}/${PN}.initd ${D}${sysconfdir}/init.d/kiosk
install -Dm 0755 ${UNPACKDIR}/${PN}.initd ${D}${sysconfdir}/init.d/qt-kiosk-browser
fi
if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
install -Dm 0644 ${UNPACKDIR}/${PN}.service ${D}${systemd_system_unitdir}/qt-kiosk-browser.service
Expand Down
3 changes: 3 additions & 0 deletions recipes-core/easysplash/easysplash-common-2.0.inc
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ PV = "2.0.0"
SRC_URI = "git://github.com/OSSystems/EasySplash.git;branch=master;protocol=https"
SRCREV = "81a44392efe15fd12ea673f1c828a52e95103eea"

# Upstream has no tag for 2.0.0, so the version check follows the branch head.
UPSTREAM_CHECK_COMMITS = "1"

EXTRA_OEMAKE += "\
prefix=${prefix} \
sysconfdir=${sysconfdir} \
Expand Down
2 changes: 1 addition & 1 deletion recipes-core/easysplash/easysplash_2.0.0.bb
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ inherit cargo pkgconfig systemd update-rc.d cargo-update-recipe-crates
# DEFAULT_PREFERENCE = "-1"

CARGO_SRC_DIR = ""
PV .= "+git${SRCPV}"
PV .= "+git"

INITSCRIPT_NAME = "${PN}-start"
INITSCRIPT_PARAMS:${PN} = "start 5 S ."
Expand Down
3 changes: 2 additions & 1 deletion recipes-core/os-release/os-release.bbappend
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
OS_RELEASE_FIELDS:append:oel = " BUILD_NUMBER"

# Append build number for development builds
VERSION:append:oel = " ${@'(build %s)' % BUILD_NUMBER if 'BUILD_NUMBER' in d and DISTRO_VERSION.endswith('+devel') else ''}"
# nooelint: oelint.vars.inconspaces the separating space is only wanted with a build number
VERSION:append:oel = "${@' (build %s)' % BUILD_NUMBER if 'BUILD_NUMBER' in d and DISTRO_VERSION.endswith('+devel') else ''}"
Loading