This release adds 3 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
+5 more
Summary
AI summaryUpdates variants, unchanged, and chore across a mixed release.
Full changelog
Added
-
GPU-accelerated release variant. Releases now ship two
binaries side-by-side: the defaultfono-vX.Y.Z-x86_64(compact
~18 MB CPU-only build, NEEDED set of 4 universal glibc libs) and
fono-gpu-vX.Y.Z-x86_64(Vulkan-enabled ~60 MB build, additionally
linkslibvulkan.so.1). Both built from the same source; only
theaccel-vulkancargo feature differs. Distro packages
(.deb/.pkg.tar.zst/.txz/.lzm) are CPU-only at this
release; raw GPU binary +.sha256ship as release assets.
Perplans/2026-05-02-fono-cpu-gpu-variants-v1.mdslice 1.
CUDA / ROCm remain build-from-source-only; Vulkan covers ~80 % of
NVIDIA / ~90 % of AMD perf at zero vendor lock-in. -
Build variant identification.
fono doctorand the daemon
startup log now report which variant is running (cpu/
gpu). Newfono::variant::Variantenum +VARIANTconstant
incrates/fono/src/variant.rsfor runtime introspection (and
for the upcoming GPU upgrade UX). -
Runtime Vulkan probe.
fono doctorgains a "Compute backends"
section that reports the host's Vulkan loader + physical device
state (e.g. "Vulkan: detected (Intel(R) Iris(R) Xe Graphics,
llvmpipe (LLVM 22.1.3, 256 bits))"). On a CPU-variant binary
with a Vulkan-capable GPU detected, an upgrade hint points at
thefono-gpurelease asset. Implemented viaashruntime-loaded
bindings (Entry::load()→dlopen("libvulkan.so.1")) so the
CPU variant still has the strict 4-NEEDED-entry allowlist —
libvulkan never appears in NEEDED. Module lives at
crates/fono-core/src/vulkan_probe.rsbehind thevulkan-probe
feature; bothfonoandfono-updateopt in. Slice 2 of
plans/2026-05-02-fono-cpu-gpu-variants-v1.md. -
Auto-variant
fono update. Everyfono updateinvocation now
probes Vulkan on the host and fetches the matching release asset:
fono-vX.Y.Z-x86_64when no usable GPU is present, or
fono-gpu-vX.Y.Z-x86_64when libvulkan + a physical device are
available. CPU users on GPU-equipped hardware are switched to
the GPU build on their next update; if they later move to a
GPU-less machine, the next update switches them back. No CLI
flag, no wizard prompt, no config knob — one decision in one
place.fono_update::checknow takes the running binary's
current asset prefix and treats a prefix mismatch as "update
available" even at the same version. Slice 3 of
plans/2026-05-02-fono-cpu-gpu-variants-v1.md. -
Tray "Update for GPU acceleration" entry. On a CPU-variant
build with a usable Vulkan host, the tray menu surfaces an
explicit "Update for GPU acceleration" item that triggers the
same auto-variantapply_updatepath. Hidden on GPU builds and
on hosts without Vulkan. Newfono_tray::TrayAction::UpdateForGpuAccelerationGpuUpgradeProvidercallback type.
-
CI gate split. The
Binary size & deps auditjob now runs as
a matrix(cpu, gpu), asserting both variants stay within their
respective budgets and NEEDED allowlists. CPU: ≤ 20 MiB + 4-entry
allowlist (unchanged). GPU: ≤ 64 MiB + 4-entry allowlistlibvulkan.so.1.
-
fono install/fono uninstallself-installer. Run
sudo fono install(orsudo ./fono-vX.Y.Z-x86_64 installfrom a
fresh release-asset download) to install fono system-wide on a
desktop: places the binary at/usr/local/bin/fono, drops a menu
desktop entry, an/etc/xdg/autostart/fono.desktopentry so the
daemon launches automatically on next graphical login, the icon,
and shell completions. Add--serverfor a headless install
instead: writes a hardened systemd unit at
/lib/systemd/system/fono.servicerunning as a dedicatedfono
system user, and enables-and-starts it immediately.--dry-run
prints the planned actions without touching the filesystem on
either mode.sudo fono uninstallreads the install marker
written at install time and removes exactly the files it recorded;
per-user config and history are never touched.fono doctornow
reports the install state (self-installed desktop / server,
package-managed, or ad-hoc on PATH).
What's Changed
- feat(release): two-variant ship (CPU default + GPU optional), slice 1 by @bogdanr in https://github.com/bogdanr/fono/pull/3
- feat(variants): runtime Vulkan probe + doctor surfacing (slice 2) by @bogdanr in https://github.com/bogdanr/fono/pull/4
- feat(variants): auto-variant fono update + tray "Update for GPU acceleration" (slice 3) by @bogdanr in https://github.com/bogdanr/fono/pull/5
- chore: release v0.5.0 by @bogdanr in https://github.com/bogdanr/fono/pull/6
Full Changelog: https://github.com/bogdanr/fono/compare/v0.4.0...v0.5.0
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About Fono
All releases →Related context
Related tools
Beta — feedback welcome: [email protected]