Skip to content

Merge in master#265

Closed
ajlennon wants to merge 39 commits intowalnascarfrom
master
Closed

Merge in master#265
ajlennon wants to merge 39 commits intowalnascarfrom
master

Conversation

@ajlennon
Copy link
Copy Markdown
Member

@ajlennon ajlennon commented Apr 28, 2025

Note

Medium Risk
Touches build/packaging for the .NET toolchain and CI execution (new SDK source URL, host/fxr layout, wrapper scripts), which can break downstream recipes and CI determinism. No runtime security/auth logic changes, but the matrix and artifact outputs change substantially.

Overview
Updates CI to focus on styhead builds and Yocto compliance checks: expands the matrix to .NET 6.0.428/8.0.406/10.0.100, adds SPDX + CVE checking (with uploaded CVE summaries), serializes jobs, increases timeout, and adds a temporary cleansstate step; ARM32 CI is explicitly excluded.

Refreshes .NET recipes to support newer SDKs and more reliable builds in CI: switches the SDK download URL, installs all host/fxr versions plus packs, adds a native dotnet wrapper to force a writable HOME, and patches dotnet-helloworld/python3-clr-loader to set HOME/NuGet cache paths and fix target interpreter via patchelf. Also adds a Mono patch for libusb-1.0 dllmap, bumps python3-pythonnet to 3.0.4, removes older dotnet_6.0.424/dotnet_8.0.303 recipes, and drops legacy msbuild_15.4/msbuild_16.6 recipes while removing python3-pythonnet from the test image.

Written by Cursor Bugbot for commit 7353187. This will update automatically on new commits. Configure here.

ajlennon and others added 30 commits October 21, 2024 11:59
Signed-off-by: Alex J Lennon <ajlennon@dynamicdevices.co.uk>
Signed-off-by: Alex J Lennon <ajlennon@dynamicdevices.co.uk>
Signed-off-by: Alex J Lennon <ajlennon@dynamicdevices.co.uk>
Signed-off-by: Alex J Lennon <ajlennon@dynamicdevices.co.uk>
Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
python3-pythonnet: Update to v3.0.4
dotnet: Update dotnet to v8.0.403, v6.0.427
mono: Add patch to add libusb-1.0 mapping in /etc/mono/config
Signed-off-by: Alex J Lennon <ajlennon@dynamicdevices.co.uk>
Signed-off-by: Alex J Lennon <ajlennon@dynamicdevices.co.uk>
Signed-off-by: Alex J Lennon <ajlennon@dynamicdevices.co.uk>
Signed-off-by: Alex J Lennon <ajlennon@dynamicdevices.co.uk>
Signed-off-by: Alex J Lennon <ajlennon@dynamicdevices.co.uk>
Tidy ups (remove clean step, generate SPDX, run CVE checks)
Signed-off-by: Alex J Lennon <ajlennon@dynamicdevices.co.uk>
Signed-off-by: Alex J Lennon <ajlennon@dynamicdevices.co.uk>
Livius90 and others added 7 commits February 24, 2025 20:36
dotnet: Update dotnet to v8.0.406, v6.0.428
Signed-off-by: Alex J Lennon <ajlennon@dynamicdevices.co.uk>
Signed-off-by: Alex J Lennon <ajlennon@dynamicdevices.co.uk>
This switches from the Visual Studio URLs to the .NET URLs, as per
upstream [1].

[1] dotnet/core#9869
Three related fixes for dotnet recipe builds in CI environments:

1. dotnet.inc: install ALL host/fxr versions from the SDK tarball
   instead of only DOTNET_RUNTIME_VERSION.  Microsoft ships updated
   muxer binaries in serviced SDK releases (e.g. SDK 6.0.428 bundles
   a 10.0.0 muxer) so only copying one version breaks the muxer's
   fxr lookup.  The libhostfxr.so symlink now falls back to any
   available version if DOTNET_RUNTIME_VERSION is not present.

2. dotnet.inc: for native builds, replace the dotnet symlink with a
   wrapper script that ensures HOME is always writable.  .NET SDK 6
   NuGet MigrationRunner.Run() unconditionally writes to
   $HOME/.local/share/NuGet/Migrations before checking
   DOTNET_SKIP_FIRST_TIME_EXPERIENCE.  The wrapper redirects HOME
   to a temp directory, fixing all consumer recipes automatically.

3. python3-clr-loader.bb, dotnet-helloworld_1.0.bb: add per-recipe
   HOME/DOTNET_CLI_HOME/NuGet exports as defence-in-depth alongside
   the wrapper.

Co-authored-by: Cursor <cursoragent@cursor.com>
- Exclude styhead + arm matrix entry (ARM32 GCC build broken,
  see README and discussions/234)
- Add yocto-check-layer compliance check step (runs on
  feature/yocto-layer-compliance branch)
- Add temporary cleansstate step to flush stale dotnet sstate
  and recipe-sysroot-native from prior broken builds; remove
  once all matrix jobs have rebuilt successfully
- Add feature/yocto-layer-compliance to push/PR branch triggers

Co-authored-by: Cursor <cursoragent@cursor.com>
Alex J Lennon and others added 2 commits February 8, 2026 21:07
Resolve conflict in CI_github.yml by keeping the cleansstate approach
from master and removing debug ls/mkdir commands from the PR branch.

Co-authored-by: Cursor <cursoragent@cursor.com>
Copy link
Copy Markdown

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

export DOTNET_CLI_TELEMETRY_OPTOUT=1
export DOTNET_NOLOGO=1
SELF_DIR="$(cd "$(dirname "$0")" && pwd)"
exec "${SELF_DIR}/../share/dotnet/dotnet" "$@"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wrapper uses bitbake-style ${SELF_DIR} for shell variable

High Severity

The native dotnet wrapper script written via heredoc uses ${SELF_DIR} (with braces) on the exec line. BitBake expands all ${VAR} patterns in shell function bodies before passing them to the shell. Since SELF_DIR is a shell variable (not a bitbake variable), bitbake will expand ${SELF_DIR} to an empty string. This causes the exec line to resolve to "/../share/dotnet/dotnet" instead of the correct path, breaking the wrapper for all dotnet-native consumers. Using $SELF_DIR (without braces) avoids bitbake interception and allows the shell to expand it at runtime.

Fix in Cursor Fix in Web

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.

4 participants