Skip to content

wrynose: recipe fixes + CI HTTPS clone (fix #282)#283

Draft
ajlennon wants to merge 27 commits into
masterfrom
cursor/wrynose-ci-https-d7c2
Draft

wrynose: recipe fixes + CI HTTPS clone (fix #282)#283
ajlennon wants to merge 27 commits into
masterfrom
cursor/wrynose-ci-https-d7c2

Conversation

@ajlennon

@ajlennon ajlennon commented Jul 16, 2026

Copy link
Copy Markdown
Member

Supersedes CI failures on #282.

Fixes landed so far

  1. HTTPS clones — Cloudflare breaks git:// to git.yoctoproject.org
  2. Wrynose TEMPLATECONFmeta-poky dropped templates; use oe-core defaults + poky layers
  3. sbom-cve-check — replaces removed cve-check
  4. Disk cleanup + SSTATE_MIRRORS — runner was filling during clang/llvm/rust
  5. dotnet native wrapperSELF_DIR = "..." was invalid shell (spaces); broke dotnet-helloworld do_compile
  6. export whitespace — bitbake wrynose warnings for export FOO="bar"

Based on Marian Cingel's wrynose recipe work from #282.

Open in Web Open in Cursor 

Alex J Lennon and others added 11 commits February 9, 2026 00:11
- README: remove walnascar (5.2, EOL Nov 2025) and styhead (5.1, EOL),
  add whinlatter (5.3, supported until May 2026), fix kirkstone LTS
  date to Apr. 2026, update status date to Feb 2026
- layer.conf: update LAYERSERIES_COMPAT_mono from styhead to whinlatter
- CI: test against whinlatter poky instead of styhead, remove
  feature/yocto-layer-compliance branch triggers (merged)

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Signed-off-by: Marian Cingel <cingel.marian@gmail.com>
…git"

Signed-off-by: Marian Cingel <cingel.marian@gmail.com>
- suppress github archive QA issue
- fix Upstream-Status in patches

Signed-off-by: Marian Cingel <cingel.marian@gmail.com>
PR #282 failed at Update repo poky because git://git.yoctoproject.org
times out: the hostname is behind Cloudflare, which does not carry the
native git protocol. Switch clones to HTTPS, detect LAYERSERIES_COMPAT
from conf/layer.conf, and set up oe-core/bitbake/meta-yocto for
whinlatter and wrynose instead of hardcoding a styhead/whinlatter poky
matrix branch.

Co-authored-by: Alex Lennon <ajlennon@dynamicdevices.co.uk>
Wrynose meta-poky no longer ships conf/templates/default, so oe-init
failed with a missing TEMPLATECONF path. Use oe-core defaults for
wrynose and add meta-poky, meta-yocto-bsp, and DISTRO=poky explicitly.

Co-authored-by: Alex Lennon <ajlennon@dynamicdevices.co.uk>
Wrynose removed cve-check.bbclass, so INHERIT += cve-check fails parse.
Enable the core/yocto/sbom-cve-check fragment instead and collect the
image-level sbom-cve-check JSON reports after the test image build.

Co-authored-by: Alex Lennon <ajlennon@dynamicdevices.co.uk>
@ajlennon ajlennon mentioned this pull request Jul 16, 2026
cursoragent and others added 16 commits July 16, 2026 17:05
The wrynose image build halted with BB_DISKMON HALT at ~0.1GB free while
compiling clang/llvm/rust. Clear leftover per-release trees from older
CI layouts and enable core/yocto/sstate-mirror-cdn so those natives can
come from the project sstate cache instead of filling the disk.

Co-authored-by: Alex Lennon <ajlennon@dynamicdevices.co.uk>
sstate-mirror-cdn sets BB_HASHSERVE_UPSTREAM=wss://..., which needs the
Python websockets module on the build host. Install it before bitbake.
Also remove the temporary cleansstate step — it is unnecessary for a
fresh wrynose build and only added parse overhead.

Co-authored-by: Alex Lennon <ajlennon@dynamicdevices.co.uk>
$HOME/.local is not writable in the yocto-ci-build container, so pip
--user failed. Install into $GITHUB_WORKSPACE/.pip-packages and export
PYTHONPATH for later bitbake steps.

Co-authored-by: Alex Lennon <ajlennon@dynamicdevices.co.uk>
The sstate-mirror-cdn fragment enables wss hashserv, which needs the
websockets module inside bitbake's Python. pip installs were not visible
to bitbake in this container. Keep the HTTP sstate mirror alone so
prebuilts can still be fetched without hashserv.

Co-authored-by: Alex Lennon <ajlennon@dynamicdevices.co.uk>
Drop core/yocto/sstate-mirror-cdn (needs websockets for wss hashserv)
and configure the HTTP sstate mirror directly instead.

Co-authored-by: Alex Lennon <ajlennon@dynamicdevices.co.uk>
The class-native dotnet wrapper used `SELF_DIR = "..."` which is invalid
shell (spaces around =), so sh treated SELF_DIR as a command and
dotnet-helloworld do_compile failed with exit 127. Use shell assignment
instead. Also add bitbake-required whitespace around recipe-level
export assignments for wrynose.

Co-authored-by: Alex Lennon <ajlennon@dynamicdevices.co.uk>
BitBake warns on export FOO="bar"; use export FOO = "bar".

Co-authored-by: Alex Lennon <ajlennon@dynamicdevices.co.uk>
do_create_image_sbom_spdx excludes DATETIME from its task hash while the
deployed SPDX file is named with IMAGE_NAME (which includes DATETIME).
Setscene can restore a stale filename and do_sbom_cve_check fails looking
for the current IMAGE_NAME.spdx.json.

Co-authored-by: Alex Lennon <ajlennon@dynamicdevices.co.uk>
local.conf rejects flag:remove syntax, so the previous DATETIME
vardepsexclude workaround failed to parse. Instead add a per-run
META_MONO_CI_BUILD_ID to do_create_image_sbom_spdx[vardeps] so setscene
cannot restore an SPDX file named with a prior IMAGE_NAME timestamp.

Co-authored-by: Alex Lennon <ajlennon@dynamicdevices.co.uk>
wrynose testimage requires allow-empty-password, empty-root-password,
and allow-root-login. Set them on the test image and enable the matching
OE fragment in CI so bitbake -c testimage can log in over qemu.

Co-authored-by: Alex Lennon <ajlennon@dynamicdevices.co.uk>
Add a concurrency group so a hung self-hosted matrix cell cannot pin
the runner until timeout. Disable fail-fast so one arch does not hide
others, reclaim deploy/tmp more aggressively between matrix cells, and
fail early when free disk is below 20GiB.

Co-authored-by: Alex Lennon <ajlennon@dynamicdevices.co.uk>
Lower job timeout to 480m, run x86-64 matrix cells first, cap arm64
thread counts, share BB_HASHSERVE_DB_DIR with SSTATE_DIR, and abort the
build if cooker logs go idle for an hour so a wedged do_package cannot
pin the self-hosted runner until the job timeout.

Co-authored-by: Alex Lennon <ajlennon@dynamicdevices.co.uk>
qemuarm64 cross builds on the sole X64 self-hosted runner wedged for
10h+ with no bitbake output, blocking the queue. Keep hang watchdog and
timeouts, but limit the matrix to x86-64 so wrynose can clear CI.

Co-authored-by: Alex Lennon <ajlennon@dynamicdevices.co.uk>
A local hash equivalence server prevents matching the Yocto sstate
mirror. Set BB_HASHSERVE=\"\" when using SSTATE_MIRRORS. Also remove the
idle-log watchdog that used a wrong path after oe-init-build-env and
aborted a healthy build during long compiles.

Co-authored-by: Alex Lennon <ajlennon@dynamicdevices.co.uk>
Keep x86-64 first in the include list, but do not drop qemuarm64 from
the build matrix.

Co-authored-by: Alex Lennon <ajlennon@dynamicdevices.co.uk>
Empty BB_HASHSERVE fails immediately with \"OEEquivHash requires
BB_HASHSERVE to be set\". Keep a local hashserve with the DB on the
shared SSTATE_DIR, and make the build heartbeat non-blocking so bitbake
failures exit without waiting out the sleep interval.

Co-authored-by: Alex Lennon <ajlennon@dynamicdevices.co.uk>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants