Skip to content

Sync eng/common/{cross,native} with changes made in diagnostics#17044

Merged
hoyosjs merged 3 commits into
release/10.0from
juhoyosa/sync-eng-common-cross-native-port-diagno
Jun 24, 2026
Merged

Sync eng/common/{cross,native} with changes made in diagnostics#17044
hoyosjs merged 3 commits into
release/10.0from
juhoyosa/sync-eng-common-cross-native-port-diagno

Conversation

@hoyosjs

@hoyosjs hoyosjs commented Jun 24, 2026

Copy link
Copy Markdown
Member

Ports the changes from dotnet/diagnostics#5892 to arcade's release/10.0 branch, bringing eng/common/{cross,native} up to date. Also includes the gpgv fix from #17024.

Changes

cross/build-rootfs.sh

  • Add OpenBSD cross-build support (openbsd codename, __OpenBSDArch/__OpenBSDMachineArch variables, OpenBSD package list)
  • Bump FreeBSD base to 13.5-RELEASE and pkg to 2.7.5
  • Remove armel and armv6 as general build architectures (moved to tizen-specific script)
  • Remove loongarch64 Debian ports repo special-case

cross/install-debs.py

cross/toolchain.cmake

  • Handle toolchain setup on BSD systems

native/init-distro-rid.sh

  • Minor distro RID update

native/install-dependencies.sh

  • Dependency script updates

native/LocateNativeCompiler.targets (new file)

  • Opt-in MSBuild target to detect compiler/linker from init-compiler.sh and set NativeAOT linker props

native/NativeAotSupported.props (new file)

  • Opt-in props to gate NativeAOT support by OS/architecture

Ports the changes from dotnet/diagnostics#5892 so eng/common/{cross,native} matches the diagnostics PR result: OpenBSD cross-build support, FreeBSD 13.5-RELEASE / pkg 2.7.5 bumps, install-debs.py signature verification (gpgv), toolchain BSD handling, and the new opt-in native/LocateNativeCompiler.targets and native/NativeAotSupported.props files.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings June 24, 2026 17:46
@hoyosjs hoyosjs changed the title Sync eng/common/{cross,native} with arcade Sync eng/common/{cross,native} with changes made in diagnostics Jun 24, 2026
@hoyosjs hoyosjs requested a review from mmitche June 24, 2026 17:48
@hoyosjs

hoyosjs commented Jun 24, 2026

Copy link
Copy Markdown
Member Author

cc: @am11

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Ports eng/common/{cross,native} updates into Arcade release/10.0, primarily to expand cross-build/rootfs support (notably OpenBSD), refresh BSD/Linux package/toolchain handling, and introduce opt-in MSBuild plumbing for NativeAOT compiler/linker discovery.

Changes:

  • Extend cross rootfs/toolchain logic (OpenBSD support, FreeBSD base/pkg updates, HTTPS mirror updates, and signature-check wiring changes).
  • Harden Debian rootfs generation in install-debs.py (checksums, safer subprocess.run, tar extraction filtering, signature verification flow).
  • Add opt-in NativeAOT props/targets for gating support and locating the native toolchain.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
eng/common/cross/build-rootfs.sh Adds OpenBSD rootfs creation path; updates FreeBSD/Ubuntu mirror and signature-check argument handling.
eng/common/cross/install-debs.py Adds SHA256 verification for packages/indexes and Release signature verification plumbing; hardens extraction and subprocess usage.
eng/common/cross/toolchain.cmake Adds OpenBSD detection/target triples; updates FreeBSD triples and improves Haiku toolchain setup logic.
eng/common/native/init-distro-rid.sh Adds OpenBSD non-portable RID computation.
eng/common/native/install-dependencies.sh Updates Linux/macOS dependency lists (e.g., ninja, file) and expands distro handling.
eng/common/native/LocateNativeCompiler.targets New opt-in MSBuild target to source init-compiler.sh and set NativeAOT-related linker properties.
eng/common/native/NativeAotSupported.props New opt-in props to gate NativeAOT support by OS/architecture.

Comment thread eng/common/cross/toolchain.cmake Outdated
Comment thread eng/common/cross/install-debs.py Outdated
Comment thread eng/common/cross/install-debs.py

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

There is one line difference in this file in main branch, please include that as well (it's for Tizen).

…-debs.py

Port of #17024. gpgv verifies a detached signature against a fixed keyring without involving gpg-agent or keyboxd, making it robust on GnuPG 2.4+ hosts (e.g. Azure Linux) where 'gpg --keyring' routes through keyboxd and can fail.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@am11

am11 commented Jun 24, 2026

Copy link
Copy Markdown
Member

Use gpgv instead of gpg for Release signature verification in install…

FYI, we don't need to diverge from main. This script is used by https://github.com/dotnet/dotnet-buildtools-prereqs-docker/blob/d18b106ff799a44957a9654a70fe73c62111a14b/src/azurelinux/3.0/net10.0/crossdeps-builder/amd64/Dockerfile#L120, where we don't clone from .NET 10 branch in .NET 10 images, and it will take some more changes there to make it work with .NET 10 branch. We certainly can do that if we must for compliance etc. Current state is that we don't.

The way to look at eng/common/native,cross is that these are just various disjoint files logically/indirectly tied together.

@hoyosjs

hoyosjs commented Jun 24, 2026

Copy link
Copy Markdown
Member Author

Main has https://github.com/dotnet/arcade/pull/17024/changes - I brought it over since it's a fair claim. We don't try to build our cross-root anymore, it was more a completeness thing.

…v var

- Remove 'message(STATUS ...)' for TIZEN_TOOLCHAIN_PATH (aligns with main, per am11 feedback)

- Quote \{CCC_CC} in the if() expression so it is always a valid operand when the variable is unset or contains spaces

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings June 24, 2026 18:23

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 7 out of 7 changed files in this pull request and generated 3 comments.

Comment thread eng/common/cross/build-rootfs.sh
Comment thread eng/common/native/init-distro-rid.sh
Comment thread eng/common/cross/toolchain.cmake
@hoyosjs hoyosjs marked this pull request as ready for review June 24, 2026 20:32
@hoyosjs hoyosjs enabled auto-merge (squash) June 24, 2026 22:22
@hoyosjs hoyosjs merged commit 1373629 into release/10.0 Jun 24, 2026
10 checks passed
@hoyosjs hoyosjs deleted the juhoyosa/sync-eng-common-cross-native-port-diagno branch June 24, 2026 22:52
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