OXYGENHUB

flow builds and runs on FreeBSD with the WASM tier: the noatime check is Linux's only (refs #99) 010b9a79de79

Author
Andy McCall @andymccall <[email protected]>
via
agent agent:claude@andymccall <[email protected]> · keyless, under your grant for changes,refs,seal · key 104cea89d3bf
When
· 2026-10-29 01:01 UTC
Signature
◈ sealed by agent:claude@andymccall
Hash
010b9a79de79eb4178959198807865f560013c1e21d93b0ae32485d8dd945c4c
Depends on
077a65242359 412808f9f769 788f57e4d266 c3db750ed96e
Depended on by
e3fb0e9b5e6b 0aac9efcbeea f3b5b86e23ef 1a50d4dae89c
In bookmarks
main
In tags
v0.5.3
Edits
4 atoms, 0 tree operations, 2 files

Browse the tree at this change

modified CHANGELOG.md +4 −0
…
1 unchanged lines
2 2
3 3
0.2.0 is OxygenFlow's first tagged release; until then the runners ran `main`. This file starts on 2026-10-01; earlier history is in `oxy log`.
4 4
5 +
## Unreleased
6 +
7 +
- **`flow` builds and runs on FreeBSD (#99):** FreeBSD 15.1 with pkg's Rust 1.98 builds `flow` with the WASM tier (wasmtime runs there); the `noatime` check is Linux's only, as on Haiku. A FreeBSD machine can be a WASM runner (`flow tiers`: wasm available; the microvm and syscall tiers say they are Linux's).
8 +
5 9
## 0.5.2 (2026-10-29)
6 10
7 11
- **Runner builds through the swarm (#84):** a runner in a swarm fetches an offered build as the image its BLAKE3 names, from its site's peers and the hub together, as it fetches images, and checks its size and BLAKE3 before installing it; over HTTP as before when it is in no swarm, the hub has not shared the build yet, or the swarm cannot get it. The hub shares a build the first time it offers it (OxygenHub 0.9.15), so a site's runners fetch it from each other and the hub serves it about once per site. The build stays in the runner's images for its peers.
…
126 unchanged lines
modified crates/flow-init/src/prune.rs +4 −4
…
95 unchanged lines
96 96
    if unsafe { libc::statvfs(c.as_ptr(), &mut st) } != 0 {
97 97
        return false;
98 98
    }
99 -
    // A system whose statvfs has no `noatime` flag (Haiku) cannot say:
100 -
    // its reads are taken as recorded, and the access-time check decides.
101 -
    #[cfg(not(target_os = "haiku"))]
99 +
    // Only Linux's statvfs has a `noatime` flag: elsewhere (Haiku, FreeBSD)
100 +
    // reads are taken as recorded, and the access-time check decides.
101 +
    #[cfg(any(target_os = "linux", target_os = "android"))]
102 102
    return st.f_flag & libc::ST_NOATIME == 0;
103 -
    #[cfg(target_os = "haiku")]
103 +
    #[cfg(not(any(target_os = "linux", target_os = "android")))]
104 104
    true
105 105
}
106 106
…
299 unchanged lines