Replace the onig C-dependency in expr with the pure-Rust fancy-regex crate.
This removes the onig_sys C library dependency while preserving full POSIX BRE,
backreference, multibyte UTF-8, and C locale compatibility.
Fixes required to build uutils/coreutils on HarmonyOS (aarch64-unknown-linux-ohos):
- uucore/fsext: statfs.f_type is u64 on OHOS; route it through the musl branch.
- hostid: implement gethostid locally (read /etc/hostid, else hash hostname)
because the OHOS SDK libc dropped the symbol.
- date: pass through the system time zone ID from OH_TimeService_GetTimeZone
and resolve it with embedded IANA tzdata (jiff-tzdb) via TimeZone::tzif,
instead of relying on /etc/localtime or a POSIX-injected TZ. The OHOS-only
helper is cfg-gated; non-OHOS code paths are byte-identical to upstream.
utmpx is intentionally left untouched: upstream #14252 disables it on OHOS
(no utmp data source there), and this PR defers to that approach.
Also syncs fuzz/Cargo.lock after adding the jiff-tzdb dependency.
Verified on-device: date matches system time (+0800 CST; 1987-06-01 -> +0900 CDT),
hostid behaves, builds pass on the non-utmpx feature set.
The renderer and its ariadne dependency sit behind the new
feat_diagnostics cargo feature, on by default. Without it a no-op
stand-in with the same API takes uucore::diagnostics' place, so the
utilities need no cfg of their own: enabled() is always false and
every caller falls back to its plain one-line message.
Each utility keeps a crate-level `diagnostics` feature for standalone
builds, the caret snapshot tests compile out with the renderer, and CI
gains a Build/No-diagnostics job that runs the suite without the
feature and fails if ariadne sneaks back into the dependency tree.