From efaafa6e04ad8071669233d7003892634e203518 Mon Sep 17 00:00:00 2001 From: pin Date: Mon, 23 Mar 2026 20:20:06 +0100 Subject: [PATCH 1/6] Allow `feat_os_unix` on NetBSD MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Now that #11428 was merged, this should be fine. However, CI will still fail. See discussion on https://github.com/uutils/coreutils/issues/5297#issuecomment-4109942321 for a potential fix. Compiling `cross` from git will cost 1m 31s on a 2014 Intel® Core™ i5-4210U CPU @ 1.70GHz (4) --- .github/workflows/CICD.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/CICD.yml b/.github/workflows/CICD.yml index 45f80915464..4f7fdcfd3df 100644 --- a/.github/workflows/CICD.yml +++ b/.github/workflows/CICD.yml @@ -378,7 +378,7 @@ jobs: - { os: ubuntu-latest , target: x86_64-unknown-linux-gnu , features: "feat_os_unix,test_risky_names", use-cross: use-cross, skip-publish: true } - { os: ubuntu-latest , target: x86_64-unknown-linux-gnu , features: "feat_os_unix,uudoc" , use-cross: no, workspace-tests: true } - { os: ubuntu-latest , target: x86_64-unknown-linux-musl , features: feat_os_unix_musl , use-cross: use-cross } - - { os: ubuntu-latest , target: x86_64-unknown-netbsd, features: "feat_Tier1,feat_require_unix_core,feat_require_unix_hostid,feat_require_unix_utmpx", use-cross: use-cross , skip-tests: true , check-only: true } + - { os: ubuntu-latest , target: x86_64-unknown-netbsd, features: "feat_os_unix", use-cross: use-cross , skip-tests: true , check-only: true } - { os: ubuntu-latest , target: x86_64-unknown-redox , features: feat_os_unix_redox , use-cross: redoxer , skip-tests: true , check-only: true } - { os: ubuntu-latest , target: wasm32-wasip1, default-features: false, features: feat_wasm, skip-tests: true } - { os: macos-latest , target: aarch64-apple-darwin , features: feat_os_macos, workspace-tests: true } # M1 CPU From e24d39326a135b81ae95a4750c615321c37263e6 Mon Sep 17 00:00:00 2001 From: pin Date: Tue, 24 Mar 2026 08:40:43 +0100 Subject: [PATCH 2/6] Use git-hash `cross` on NetBSD --- .github/workflows/CICD.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/CICD.yml b/.github/workflows/CICD.yml index 4f7fdcfd3df..fc6f116efc4 100644 --- a/.github/workflows/CICD.yml +++ b/.github/workflows/CICD.yml @@ -504,9 +504,12 @@ jobs: ;; esac - uses: taiki-e/install-action@v2 - if: steps.vars.outputs.CARGO_CMD == 'cross' + if: steps.vars.outputs.CARGO_CMD == 'cross' && matrix.job.target != 'x86_64-unknown-netbsd' with: tool: cross@0.2.5 + - name: Install cross from git (NetBSD) + if: steps.vars.outputs.CARGO_CMD == 'cross' && matrix.job.target == 'x86_64-unknown-netbsd' + run: cargo install cross --git https://github.com/cross-rs/cross --rev 588b3c99db52b5a9c5906fab96cfadcf1bde7863 - name: Create all needed build/work directories shell: bash run: | From eb569c56b10ec13bacfbbcbc3d36899d2edf96d4 Mon Sep 17 00:00:00 2001 From: pin Date: Tue, 24 Mar 2026 09:03:19 +0100 Subject: [PATCH 3/6] Bump MSRV for NetBSD build to 1.92 --- .github/workflows/CICD.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/CICD.yml b/.github/workflows/CICD.yml index fc6f116efc4..5ff709200ef 100644 --- a/.github/workflows/CICD.yml +++ b/.github/workflows/CICD.yml @@ -507,9 +507,13 @@ jobs: if: steps.vars.outputs.CARGO_CMD == 'cross' && matrix.job.target != 'x86_64-unknown-netbsd' with: tool: cross@0.2.5 + - uses: dtolnay/rust-toolchain@master + if: steps.vars.outputs.CARGO_CMD == 'cross' && matrix.job.target == 'x86_64-unknown-netbsd' + with: + toolchain: "1.92.0" - name: Install cross from git (NetBSD) if: steps.vars.outputs.CARGO_CMD == 'cross' && matrix.job.target == 'x86_64-unknown-netbsd' - run: cargo install cross --git https://github.com/cross-rs/cross --rev 588b3c99db52b5a9c5906fab96cfadcf1bde7863 + run: cargo +1.92.0 install cross --git https://github.com/cross-rs/cross --rev 588b3c99db52b5a9c5906fab96cfadcf1bde7863 - name: Create all needed build/work directories shell: bash run: | From a78b696efd063216559939f824722f4c1d5ab17f Mon Sep 17 00:00:00 2001 From: pin Date: Tue, 24 Mar 2026 12:52:04 +0100 Subject: [PATCH 4/6] Restrict `expr` constrain to Redox --- .github/workflows/CICD.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/CICD.yml b/.github/workflows/CICD.yml index 5ff709200ef..999a10ca1c6 100644 --- a/.github/workflows/CICD.yml +++ b/.github/workflows/CICD.yml @@ -610,7 +610,7 @@ jobs: if: matrix.job.skip-publish != true && matrix.job.check-only == true run: | # expr breaks redox - sed -i.b '/"expr",/d' Cargo.toml + if [[ "${{ matrix.job.target }}" == *"redox"* ]]; then sed -i.b '/"expr",/d' Cargo.toml; fi ${{ steps.vars.outputs.CARGO_CMD }} ${{ steps.vars.outputs.CARGO_CMD_OPTIONS }} check \ --target=${{ matrix.job.target }} ${{ matrix.job.cargo-options }} ${{ steps.vars.outputs.CARGO_FEATURES_OPTION }} ${{ steps.vars.outputs.CARGO_DEFAULT_FEATURES_OPTION }} - name: Test From 21b3881c6b55a3b4e8951e97308c5670490e2f56 Mon Sep 17 00:00:00 2001 From: pin Date: Tue, 24 Mar 2026 14:22:44 +0100 Subject: [PATCH 5/6] Add comment for future tracking --- .github/workflows/CICD.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/CICD.yml b/.github/workflows/CICD.yml index 999a10ca1c6..105abc5301a 100644 --- a/.github/workflows/CICD.yml +++ b/.github/workflows/CICD.yml @@ -504,6 +504,10 @@ jobs: ;; esac - uses: taiki-e/install-action@v2 + # `cross` v0.2.5 lacks `libexecinfo` on NetBSD. However, this has been added in main. + # See https://github.com/cross-rs/cross/blob/main/docker/netbsd.sh + # We are pulling cross from a specific commit hash rather than HEAD to avoid any potential breakage that may be introduced. + # Once `cross` v0.3 is out, these conditionals can be removed. if: steps.vars.outputs.CARGO_CMD == 'cross' && matrix.job.target != 'x86_64-unknown-netbsd' with: tool: cross@0.2.5 From f3eb014eee3e5379083bdc848365871f95f54b20 Mon Sep 17 00:00:00 2001 From: pin Date: Tue, 24 Mar 2026 14:26:31 +0100 Subject: [PATCH 6/6] Silence spell-checker again --- .github/workflows/CICD.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/CICD.yml b/.github/workflows/CICD.yml index 105abc5301a..1a205788002 100644 --- a/.github/workflows/CICD.yml +++ b/.github/workflows/CICD.yml @@ -5,7 +5,7 @@ name: CICD # spell-checker:ignore (jargon) SHAs deps dequote softprops subshell toolchain fuzzers dedupe devel profdata # spell-checker:ignore (people) Peltoche rivy dtolnay Anson dawidd # spell-checker:ignore (shell/tools) binutils choco clippy dmake esac fakeroot fdesc fdescfs gmake grcov halium lcov libclang libfuse libssl limactl nextest nocross pacman popd printf pushd redoxer rsync rustc rustfmt rustup shopt sccache utmpdump xargs zstd -# spell-checker:ignore (misc) aarch alnum armhf bindir busytest coreutils defconfig DESTDIR gecos getenforce gnueabihf issuecomment maint manpages msys multisize noconfirm nofeatures nullglob onexitbegin onexitend pell runtest Swatinem tempfile testsuite toybox uutils libsystemd codspeed wasip +# spell-checker:ignore (misc) aarch alnum armhf bindir busytest coreutils defconfig DESTDIR gecos getenforce gnueabihf issuecomment maint manpages msys multisize noconfirm nofeatures nullglob onexitbegin onexitend pell runtest Swatinem tempfile testsuite toybox uutils libsystemd codspeed wasip libexecinfo env: PROJECT_NAME: coreutils