-
v0.3.0
StableAll checks were successfulRelease / Create release (push) Successful in 39sTest / Sandbox (push) Successful in 39sTest / Hakurei (push) Successful in 3m20sTest / Create distribution (push) Successful in 24sTest / Sandbox (race detector) (push) Successful in 4m0sTest / Hpkg (push) Successful in 3m37sTest / Hakurei (race detector) (push) Successful in 4m53sTest / Flake checks (push) Successful in 1m37sreleased this
2025-11-06 01:37:15 +09:00 | 698 commits to master since this releaseMigration
The
cmd/hsuuid format has changed and is now stabilised in packagehst. Existing installations need to migrate by manually runningchownrecursively over existing application data directories. The uid format can be found in hst/grp_pwd.go.Additionally,
TMPDIRandXDG_RUNTIME_DIRsharing between containers under the same identity is now optional and defaults to off. This is not an implementation detail. Some applications useTMPDIRfor communication and state tracking. Chromium is a good example of this. Test your apps, if they malfunction, setshare_runtimeorshare_tmpdirto true depending on the cause.API Changes
- Remove raw seccomp flags from package
hst. - All boolean fields in
ContainerConfigare packed into a single integer. Does not breakjson. - Package
systemnow operates exclusively on absolute pathnames. ProxyDBusno longer returns function to dump buffer.Waylandno longer returns the security context close file.- Container related fields are moved from the top level
Configstruct toContainerConfig. - Pathnames, bits, seccomp types are relocated from package
container. - Cross-platform
jsonadaptor provided forseccomptypes. - Message and check types are relocated from package
container. - The
wait_delayfield now takes a negative value. Such a value is equivalent to zero and bypasses default. - Rename
hst.AbsTmptohst.AbsPrivateTmp. - Remove
PlacePmethod from packagecontainer. - Remove
system/tmpfilesas it is no longer used. - Hold
hst.ExtraPermConfigby value instead of address. - Instance state now embeds
hst.Config. - State store entries are prefixed with a versioned header encoding the enablements byte.
container/paramsnow exposes the write end of setup pipe.hakurei --json psserialises to an array instead of a map.- Rename
NewMsgtoNewin packagemessage.
Fixes
- Do not incorrectly offset shim timeout base value.
- Apply configured filesystems late, enabling system mount points to be covered.
- Check
nscdsocket for path hiding instead of only for pd. - Use correct well-known address for
dbusfallback. - Fix synchronisation order in
containerandhelpertests. - Do not leak state (outside of dispatcher) in
systembuilder methods. - Ignore nondeterministic mount point in vm test.
- Fix occasional incorrect reporting of
wstatusincontainer/init. - Use
EOFas failsafe ininternal/outcome/shim. - Fallback runtime dir is no longer rooted in the fallback rundir.
- State is now tracked in
TMPDIR, aligning better with use case detailed in the XDG basedir spec. - Make application identifier string
omitempty. - Handle nil
hst.Configaddress incmd/hakurei/print.
Enhancements
- Package
hstnow builds without cgo. - Significantly improve
hstdoc comments. - Stable enablements bits, instance state, exit codes, uid format in
hst. - Validate
hst.Configearly and export validation function. - Optionally share
TMPDIRandXDG_RUNTIME_DIRbetween containers under the same identity. - Dump
system/dbusbuffer internally. - Hang up
system/waylandsecurity context internally. - Only minimal pathnames required for
hst.Pathsare sent. - Outcome finalisation is fully modularised and tested.
- Container is now finalised on the shim side, significantly reducing transfer size.
- Outcome finalisation no longer clobbers supplied
hst.Config. - Use more plausible
overlaymount configuration inhst.Template. - Remove confusing or redundant/noisy entries in
hst.Template. - Eliminate the self pipe and copy
seccompprogram into managed memory. - Emulate
pam_systemdXDG_SESSION_TYPEbehaviour according to enablement bits. - Hakurei version is now exposed via
hst. - Print cleaner
jsonerror messages fromcmd/hakurei. - Improve
cmd/hakureicontainer flags string representation. - Export
prctlwrapper. - Improve signal handling in
container/init. - Do not suspend output in
container/initandinternal/outcome/shim. - Store priv-side pid in state store entries.
- Measure duration of finalise and each process state.
Internal
- Almost all tests are parallelised.
- Remove
internal/hlog. - Remove global
Msgimplementation fromcontainer. - Package
internal/appis renamed tointernal/outcomeand cleaned up, with some of its code relocated to independent packages. - Permissive defaults behaviour is eliminated and relocated to
cmd/hakureirun command. - Clean up legacy
internal/outcomeintegration tests. - Check against setgid bit in
cmd/hsu. - Use much less ambiguous names which are set by the linker.
- The
internal/storeinterface is significantly improved, with much better efficiency and lower lock contention. - The
lockedfilepackage is relocated from the tool chain, and can be used by project internals going forward.
Full Changelog: v0.2.2...v0.3.0
Downloads
- Remove raw seccomp flags from package