Repository navigation
CI: cross-platform-actions 1.5.0, haiku r1beta6 - #10319
Merged
ThomasWaldmann merged 4 commits intoSep 3, 2026
Merged
Conversation
Backport of 74d9430 and 9004e3c from master. cross-platform-actions 1.5.0 adds support for Haiku R1/beta6, so use that instead of r1beta5 (2024), which was too painful to work with, see borgbackup#9463. The r1beta6 image already has git, pkgconfig, lz4 and openssl3, and it comes with a usable python3, so it does not need a python or cffi package installed anymore (1.4 does not use argon2-cffi). Also, from master: The VM corrupts data every now and then: rustc crashed on crate metadata it had written itself ("assertion failed: bytes[len] == STR_SENTINEL") and pip found sha256 mismatches reading big wheels back from its own cache. So build outside /boot/system/cache/tmp (haiku's /tmp), run one rustc at a time and retry a pip install with a purged cache, so a damaged file does not fail the whole job. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## 1.4-maint #10319 +/- ##
=============================================
+ Coverage 82.11% 82.13% +0.02%
=============================================
Files 38 38
Lines 11475 11478 +3
Branches 1807 1808 +1
=============================================
+ Hits 9423 9428 +5
+ Misses 1466 1465 -1
+ Partials 586 585 -1 ☔ View full report in Codecov by Harness. |
Backport of 2fa73c9 from master. kill_stale_lock() only expected FileNotFoundError from os.listdir(). Haiku throws EBUSY there while the lock directory is concurrently replaced via rename(), and sometimes "bad data" (B_BAD_DATA) instead, so the exception escaped ExclusiveLock.acquire() and the lock race test saw it as unclean concurrency handling. Do not enumerate error codes: not being able to read the lock directory means we can not call the lock stale, whatever the reason. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The overread check does not work on haiku: it builds its trap via
ctypes.util.find_library('c'), which haiku answers by walking
os.environ['LIBRARY_PATH'] - unset in a non-interactive shell, so the
check subprocess dies with a KeyError and the test reports an overread
that never happened.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
An archive made with "borg create ARCHIVE ." has an item whose path is ".", so extract_item computed <dest>/. and the "remove what is there before (re)creating the item" block called os.rmdir(<dest>/.) on it. posix requires rmdir() to fail with EINVAL for a path whose last component is ".", so everywhere else this was a silently ignored no-op. Haiku's dir_remove() strips a trailing "/." from the path instead and then removed the extraction directory, which is empty at that point - after which the extraction failed with B_ENTRY_NOT_FOUND for every item. There is nothing to remove for such a path anyway (the item is the directory we are extracting into), so skip the block. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Backports the haiku CI fixes from master (74d9430, 9004e3c) to 1.4-maint.
The haiku VM job is currently broken: it still runs r1beta5 (2024) with
cross-platform-actions 1.4.0.
cross-platform-actions/action1.4.0 -> 1.5.0 (1.5.0 is what added HaikuR1/beta6 support)
r1beta5->r1beta6python3, so the explicit
python3.10install is gone;cffi/libffi_develare gone too (1.4 does not use argon2-cffi).
zstd_devel/xxhash_develarekept - unlike master, 1.4 links libzstd and libxxhash.
wrote itself, pip seeing sha256 mismatches when reading big wheels back from
its own cache), so: build outside haiku's
/tmp, one rustc at a time, andretry a pip install with a purged pip cache instead of failing the job.
Not backported, to keep the diff small:
shell: cpa.sh {0}test step.1.5.0 deprecates the
run:input this branch still uses, so the VM jobs willemit a deprecation warning until that migration is backported as well. It
still works.
-n autoand a pip wheel cache; this keeps1.4's plain
pytest -v -rs ... -k "not remote and not socket".Only CI can really test this,
vm_testsiscontinue-on-erroranyway.🤖 Generated with Claude Code