Skip to content

ci: add NetBSD Clang cross job#35412

Merged
fanquake merged 2 commits into
bitcoin:masterfrom
fanquake:netbsd_clang_cross
Jul 10, 2026
Merged

ci: add NetBSD Clang cross job#35412
fanquake merged 2 commits into
bitcoin:masterfrom
fanquake:netbsd_clang_cross

Conversation

@fanquake

@fanquake fanquake commented May 29, 2026

Copy link
Copy Markdown
Member

This adds a Linux cross job for NetBSD; similar to #34491 (FreeBSD).

This uses the upcoming NetBSD 11.0 release (rc5).

@DrahtBot DrahtBot added the Tests label May 29, 2026
@DrahtBot

DrahtBot commented May 29, 2026

Copy link
Copy Markdown
Contributor

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Code Coverage & Benchmarks

For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/35412.

Reviews

See the guideline and AI policy for information on the review process.

Type Reviewers
ACK willcl-ark
Concept ACK hebasto

If your review is incorrectly listed, please copy-paste <!--meta-tag:bot-skip--> into the comment that the bot should ignore.

Conflicts

Reviewers, this pull request conflicts with the following ones:

  • #35683 ([nomerge] test warp 4x windows runner by willcl-ark)

If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.

@DrahtBot

Copy link
Copy Markdown
Contributor

🚧 At least one of the CI tasks failed.
Task lint: https://github.com/bitcoin/bitcoin/actions/runs/26640734145/job/78512803098
LLM reason (✨ experimental): CI failed linting because ci/test/00_setup_env_netbsd_cross.sh has a shebang but incorrect permissions (644 instead of executable 755).

Hints

Try to run the tests locally, according to the documentation. However, a CI failure may still
happen due to a number of reasons, for example:

  • Possibly due to a silent merge conflict (the changes in this pull request being
    incompatible with the current code in the target branch). If so, make sure to rebase on the latest
    commit of the target branch.

  • A sanitizer issue, which can only be found by compiling with the sanitizer and running the
    affected test.

  • An intermittent issue.

Leave a comment here, if you need help tracking down a confusing failure.

@fanquake fanquake marked this pull request as ready for review May 29, 2026 14:02
@fanquake fanquake force-pushed the netbsd_clang_cross branch from b2006c6 to 776081d Compare June 4, 2026 09:04
@fanquake fanquake marked this pull request as draft June 4, 2026 09:04
@fanquake fanquake force-pushed the netbsd_clang_cross branch 2 times, most recently from 4446160 to f68b0b2 Compare June 15, 2026 21:30
@fanquake fanquake force-pushed the netbsd_clang_cross branch from f68b0b2 to 476e2b1 Compare June 25, 2026 11:16
@fanquake

fanquake commented Jun 25, 2026

Copy link
Copy Markdown
Member Author

Simplified this to just pretty much drop all the /depends changes, and updated to use 11.0rc5.

@fanquake fanquake marked this pull request as ready for review June 25, 2026 11:53
@willcl-ark

willcl-ark commented Jun 25, 2026

Copy link
Copy Markdown
Member

Looks nice to me. Run is already pleasantly fast (12m) with no caching.

Can we use ccache in here already being used

@fanquake fanquake force-pushed the netbsd_clang_cross branch from 476e2b1 to fc39370 Compare June 25, 2026 12:10
@fanquake

Copy link
Copy Markdown
Member Author

Deduplicated sysroot in the CI config.

@hebasto hebasto left a comment

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.

Concept ACK.

@fanquake fanquake force-pushed the netbsd_clang_cross branch 2 times, most recently from 5d4be5e to 5d2c71d Compare July 3, 2026 11:40
fanquake added a commit to fanquake/bitcoin that referenced this pull request Jul 3, 2026
As pointed out by Hebasto, the approach used in bitcoin#35397 and bitcoin#35412 is
better, rather than hardcoding flags and putting the SDK handling into
depends.
fanquake added a commit to fanquake/bitcoin that referenced this pull request Jul 3, 2026
As pointed out by Hebasto, the approach used in bitcoin#35397 and bitcoin#35412 is
better, rather than hardcoding flags and putting the SDK handling into
depends.
@fanquake fanquake force-pushed the netbsd_clang_cross branch from 5d2c71d to 0bcf508 Compare July 3, 2026 14:01
fanquake added a commit to fanquake/bitcoin that referenced this pull request Jul 3, 2026
As pointed out by Hebasto, the approach used in bitcoin#35397 and bitcoin#35412 is
better, rather than hardcoding flags and putting the SDK handling into
depends.
@fanquake fanquake force-pushed the netbsd_clang_cross branch from 0bcf508 to b1367e5 Compare July 6, 2026 09:43
fanquake added a commit to fanquake/bitcoin that referenced this pull request Jul 6, 2026
As pointed out by Hebasto, the approach used in bitcoin#35397 and bitcoin#35412 is
better, rather than hardcoding flags and putting the SDK handling into
depends.

@willcl-ark willcl-ark left a comment

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.

All looks OK to me.

Just one NetBSD question; I notice there are a few branches of 11 here:

NetBSD-11.0_RC4
NetBSD-11.0_RC5
NetBSD-release-11

...should we not use -release-11 to avoid having to bump regularly? I'm not familar enough with the NetBSD release process to know.

Also, I think using an 8x instance is OK here (and matches the other BSD jobs), but I think after this PR is resolved I'll test these on 4x runners too (matching the macOS cross jobs).

@fanquake

fanquake commented Jul 7, 2026

Copy link
Copy Markdown
Member Author

...should we not use -release-11 to avoid having to bump regularly?

NetBSD releases are not so frequent; looks like point releases every 6 months or so? I haven't looked at -release-11 , but if it's rolling, I'm not sure we want that, because it would make the CI inherently unstable/non-reproducible.

@willcl-ark

Copy link
Copy Markdown
Member

if it's rolling, I'm not sure we want that, because it would make the CI inherently unstable/non-reproducible.

I'm not going to die on this hill, or block this PR on it, but how is this be different from other jobs where we use un-hash-pinned tags like mirror.gcr.io/debian:trixie or mirror.gcr.io/ubuntu:26.04 or mirror.gcr.io/alpine:3.24, which are all rolling versions (just whatever the docker tag resolves to on that particular day)?

Like I said, I actually don';t know how NetBSD does its releases, so -release-11 might not even be suitable at all...

@fanquake fanquake force-pushed the netbsd_clang_cross branch from b1367e5 to e32403e Compare July 8, 2026 08:31
@fanquake

fanquake commented Jul 8, 2026

Copy link
Copy Markdown
Member Author

but how is this be different from other jobs where we use un-hash-pinned tags like

I guess that will depend on what actually changes in -release-11. If there aren't major changes, like updating (major) compiler versions, then it may be more equivalent to what we are doing with the Ubuntu/Debian images. However looking in https://cdn.netbsd.org/pub/NetBSD/NetBSD-release-11/, I don't see any of the binary sets we actually want to use.

Updated the PR to use 11.0_RC6.

@willcl-ark willcl-ark left a comment

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.

ACK e32403e

Using the RC (and bumping to final later) seems fine to me.

@DrahtBot DrahtBot requested a review from hebasto July 8, 2026 09:25
@fanquake fanquake force-pushed the netbsd_clang_cross branch from e32403e to cec8cd8 Compare July 8, 2026 13:51
@fanquake

fanquake commented Jul 8, 2026

Copy link
Copy Markdown
Member Author

Rebased after #35649.

fanquake added 2 commits July 9, 2026 09:14
Use 11.0rc6, as the 10.x sysroot ships with a GCC that is too old to
have bitset, source_location etc.
@fanquake fanquake force-pushed the netbsd_clang_cross branch from cec8cd8 to c43b7a1 Compare July 9, 2026 08:21

@willcl-ark willcl-ark left a comment

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.

ACK c43b7a1

Good to have a cross job for all the major *BSDs.

@fanquake fanquake merged commit 297fd14 into bitcoin:master Jul 10, 2026
29 checks passed
@fanquake fanquake deleted the netbsd_clang_cross branch July 10, 2026 09:14
Kino1994 pushed a commit to Kino1994/bitcoin-full-history that referenced this pull request Jul 10, 2026
1da9867 ci: add netBSD cross CI job (fanquake)
a5a20e7 depends: add netbsd_LDFLAGS (fanquake)

Pull request description:

  This adds a Linux cross job for NetBSD; similar to bitcoin/bitcoin#34491 (FreeBSD).

  This uses the upcoming NetBSD 11.0 release (rc5).

ACKs for top commit:
  willcl-ark:
    ACK 1da9867

Tree-SHA512: 717b5c68e9cf4dd2b6f9101320ebe94df5047745445c2698005d0dfa034776c2fa836b599155c7cb7e93024b15ba7b91cef07275185cd1c07f58fea678e2354d
alexanderwiederin added a commit to alexanderwiederin/rust-bitcoinkernel that referenced this pull request Jul 14, 2026
…4e48e968a

114e48e968a kernel: Add script tracer
54e1a95a12e Merge bitcoin/bitcoin#35719: ci: disable Qt build in OpenBSD cross job
b0e09511586 ci: disable Qt build in OpenBSD cross job
734c34bafda Merge bitcoin/bitcoin#35427: depends: Build `qt` and `qrencode` packages on OpenBSD
ee61b11a9e7 Merge bitcoin/bitcoin#35200: node: smooth oversized `dbcache` warnings
e3554bf361f Merge bitcoin/bitcoin#35579: wallet: reserve walletrescan before checking wallet is at the tip
11ae4265522 Merge bitcoin/bitcoin#35715: cmake: Fix WITH_EXTERNAL_LIBMULTIPROCESS + BUILD_FUZZ_BINARY
e544413c0de Merge bitcoin/bitcoin#32763: wallet: Replace CWalletTx::mapValue and vOrderForm with explicit class members
fe1cb6e40d7 Merge bitcoin/bitcoin#35690: wallet: Introduce WalletError with machine-readable error code
441f3114f57 Merge bitcoin/bitcoin#35659: Clarify supported *BSD releases and drop outdated workarounds
0399df827c6 Merge bitcoin/bitcoin#35708: depends: capnp 1.5.0
1ab1fdd4696 Merge bitcoin/bitcoin#35705: bench: replace CreateMockableWalletDatabase with MakeInMemoryWalletDatabase
db35b9238fc ipc # build: Fix fuzz target CMakeLists.txt for external libmultiprocess
d18fec892e2 Merge bitcoin/bitcoin#35698: doc: Update enum class constant naming style guide
a2e4cd7ad2a depends: capnp 1.5.0
7508ac319d9 bench: replace CreateMockableWalletDatabase with MakeInMemoryWalletDatabase
907e284e303 Merge bitcoin/bitcoin#35701: test: Remove `mock_process.cpp`
c8459b6bdcd Merge bitcoin/bitcoin#35568: txospenderindex: disable bloom filters to optimize disk usage
63c5f9d22c0 test: Remove `mock_process.cpp`
ef101b04a8d Merge bitcoin/bitcoin#35655: wallet: Use in-memory SQLite for temporary wallet in exportwatchonlywallet
b6becf3534c Merge bitcoin/bitcoin#35684: Update libmultiprocess subtree to add `max_connections` option
930f25050f7 Merge bitcoin/bitcoin#35700: doc: archive release notes for v29.4
9b2b3f4ec6f doc: archive release notes for v29.4
297fd1489bb Merge bitcoin/bitcoin#35412: ci: add NetBSD Clang cross job
e314869066b Merge bitcoin/bitcoin#35695: Remove myself as security contact
e3d67a5eae5 Merge bitcoin/bitcoin#35691: chainparams: delete my DNS seed
a8223bb4e62 wallet: Introduce WalletError with machine-readable error code
fad5809cb92 doc: Update enum class constant naming style guide
7d8137c1417 Merge bitcoin/bitcoin#34897: indexes: Don't commit ahead of the flushed chainstate
629df81e4c6 Remove myself as security contact
d164a043426 node: smooth oversized `-dbcache` warnings
d9080639804 chainparams: delete my DNS seed
e9ed898a0da validation: Don't use m_chain.Tip() in FlushStateToDisk
3679f1ecf5e index: Don't commit ahead of the flushed chainstate
65735728a5a index: Remove return value from Commit()
09c06960c6a validation: track last flushed block
13c02b5466d test: add test for index commits ahead of the last flushed block
c43b7a1115f ci: add netBSD cross CI job
699c21aea47 depends: add netbsd_LDFLAGS
777d23f25c7 test: add regression test for in-memory SQLiteDatabase reopen
d1e7f8c986f wallet: use in-memory SQLite for temporary wallet in exportwatchonlywallet
ee43743f126 wallet: store m_additional_flags in SQLiteDatabase to fix reopen path
a9d1b652f32 Merge commit '707d0ded84563386f770ec17970834c65f8fa938' into pr/subtree-12
707d0ded845 Squashed 'src/ipc/libmultiprocess/' changes from 16bf05dea02..28e056576a3
2bab6bc73f2 refactor: Drop support for FreeBSD < 14
91b5c8a07c6 refactor: Remove FreeBSD-specific workaround
56701ff6d5c doc: Clarify supported *BSD releases
6d0ea4cf5bd doc: add release notes
a2b1c86903a txospenderindex: disable bloom filters to optimize disk usage
fed3cf6f0ed wallet: Replace CWalletTx's vOrderForm with specific fields
4f8823e8e11 wallet: Drop vOrderForm from CommitTransaction
9e62e4b1f34 test: slow down rescaning process
a2b0bfcd854 wallet: Drop mapValue from CWalletTx
cb99864c91c wallet: Throw if unknown entry is found in mapValue
98d5cdae663 wallet: Make CWalletTx "replaces_txid" and "replaced_by_txid" member variables
7ef8a6efc2a wallet: Make CWalletTx "comment" and "to" member variables
2155e913d3e wallet: Make CWalletTx "from" and "message" member variables
c6ba98dcc8a wallet: Drop mapValue from CommitTransaction
00abb174a80 wallet: Pass comment and comment_to to CommitTransaction
1a219a37a21 wallet: Pass replaces_txid to CommitTransaction outside of mapValue
336f5a738b3 wallet: reserve walletrescan before checking wallet is at the tip
a54ec373a69 depends: Build `qt` and `qrencode` packages for OpenBSD hosts

git-subtree-dir: libbitcoinkernel-sys/bitcoin
git-subtree-split: 114e48e968a087f74c1ab611ac2a31a9266812e1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants