aboutsummaryrefslogtreecommitdiffhomepage
path: root/cmd
AgeCommit message (Collapse)Author
14 hoursrelease: 0.4.9HEADv0.4.9masterOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
36 hoursinternal/system: file-based big lockOphestra
Simultaneous commits or reverts can race if they have overlapping targets. This big lock synchronises entry into the Commit and Revert critical sections across all cmd/hakurei processes. Signed-off-by: Ophestra <cat@gensokyo.uk>
36 hourscmd/hakurei/testsuite: handle dynamic linker raceOphestra
This retries when seeing files opened by the dynamic linker. This will eventually be replaced by a statically linked anchor program that never opens any files on its own. Signed-off-by: Ophestra <cat@gensokyo.uk>
37 hourscmd/hakurei/testsuite: improve sandbox reportingOphestra
This avoids swallowing error messages from failed container startups. Signed-off-by: Ophestra <cat@gensokyo.uk>
37 hourscmd/hakurei/testsuite: compare command outputOphestra
This is much more precise than just simply checking the exit code. Signed-off-by: Ophestra <cat@gensokyo.uk>
38 hourscmd/hakurei/testsuite: synchronise after terminationOphestra
This ensures that cmd/hakurei has finished cleanup and terminated before validating the outcome of that cleanup. Signed-off-by: Ophestra <cat@gensokyo.uk>
2 dayscmd/hakurei/testsuite: move rts test out of loopOphestra
This was inadvertently placed inside the setscheduler loop due to miscounting indentations. Signed-off-by: Ophestra <cat@gensokyo.uk>
2 dayscmd/hakurei/testsuite: set credentials for store accessOphestra
This avoids breaking ownership of lock files. Signed-off-by: Ophestra <cat@gensokyo.uk>
2 dayscmd/hakurei/testsuite: optional retriesOphestra
This implements retries of individual test cases and enables it for pipewire and X tests. PipeWire and X server are quite flaky, and that cannot be fixed by anything cmd/hakurei does. Signed-off-by: Ophestra <cat@gensokyo.uk>
3 dayscmd/hakurei/testsuite: additional cleanup checksOphestra
These were pretty difficult to do properly in the nixos-based test suite. Signed-off-by: Ophestra <cat@gensokyo.uk>
3 dayscmd/hakurei/testsuite: migrate testsOphestra
This runs much faster than the NixOS test suite, and is much more precise. This also uncovered a recent severe pipewire regression. This change removes all remaining deprecated nix code. Closes #22. Signed-off-by: Ophestra <cat@gensokyo.uk>
3 daysinternal/testsuite: optional insecure argumentOphestra
This allows testing insecure configurations. This change also improves error reporting and fixes non-startup-notification behaviour. Signed-off-by: Ophestra <cat@gensokyo.uk>
5 daysinternal/testsuite: optional verbose outputOphestra
Used by some tests to inspect cmd/hakurei internals. Signed-off-by: Ophestra <cat@gensokyo.uk>
5 daysinternal/testsuite: optional startup notificationOphestra
This is only really used by the sandbox test suite for seccomp validation. Make it optional here to simplify other use cases. Signed-off-by: Ophestra <cat@gensokyo.uk>
5 daysinternal/testsuite: silence session servicesOphestra
These are too noisy and are not useful outside of debugging the test suite itself, so silence them by default. Signed-off-by: Ophestra <cat@gensokyo.uk>
5 daysinternal/testsuite: move helpers from cmd/hakureiOphestra
These helpers are useful across multiple test suites. Signed-off-by: Ophestra <cat@gensokyo.uk>
6 dayshst: pass through adopt wait delay with boundsOphestra
This is a useful value to customise, primarily useful for test suites but can also generally improve exit latency for stubborn applications. Signed-off-by: Ophestra <cat@gensokyo.uk>
6 dayscmd/dist: allow forcing dynamic linkingOphestra
This remains unsupported, but is useful during testing, or when packaging for some particularly stubborn distros. Signed-off-by: Ophestra <cat@gensokyo.uk>
6 daysall: use Linux kernel coding styleOphestra
The Gitea web interface is no longer publicly accessible, so it no longer matters that this code style does not render well on Gitea. Signed-off-by: Ophestra <cat@gensokyo.uk>
8 dayscmd/hakurei/testsuite: extra exercise parametersOphestra
This also removes the interval and fixes the mustStart search criteria. Signed-off-by: Ophestra <cat@gensokyo.uk>
6 dayscmd/hakurei/testsuite: exercise setup/teardownOphestra
This exposes a race during simultaneous startup between chmod and acl_set_file, where the ACL mask is clobbered by chmod. This remained undiscovered until now due to the previous integration test suite's complete inability to handle concurrency (the nixos vm test machinery could not even support python multithreading). Signed-off-by: Ophestra <cat@gensokyo.uk>
13 daysinternal/testsuite: add additional environmentOphestra
This improves compatibility. This change also improves error messages. Signed-off-by: Ophestra <cat@gensokyo.uk>
13 daysinternal/testsuite: move from testOphestra
This structure is a lot less clumsy than the old nix-centric layout. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-10-01cmd/dist: optionally build with race instrumentOphestra
This is mostly useful for the integration test suites. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-10-01cmd/mbf/internal/ci: zero archive timesOphestra
This keeps archives deterministic across multiple jobs. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-10-01cmd/mbf/internal/ci: document dist endpointOphestra
There will eventually be more endpoints for other CI workloads. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-10-01cmd/mbf: poison open via environmentOphestra
This enables use of non-cache cmd/mbf utils as root. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-09-30cmd/mbf/internal/ci: reset buffer before retryingOphestra
This obtains a fresh file descriptor on each attempt. Without resetting it would end up endlessly appending to the buffer. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-09-30cmd/mbf: proof-of-concept CI serviceOphestra
This accepts CI work over a shared read-only cache directory. This replaces the nix CI service and prepares the removal of nix from the test infrastructure. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-09-17cmd/app: don't use tabs for alignmentRachael R.
2026-09-17cmd/app: alternative merged template layoutOphestra
This implements an optional, alternative template layout to accommodate ZFS and equivalent setups where each template occupies a different filesystem. In such a setup, the default, separate workdir is unusable as overlayfs requires the workdir to reside on the same filesystem as the writable upperdir. The "merge" build tag enables this alternative behaviour. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-09-15cmd/mbf: rename pkgsiteOphestra
This name is less ambiguous than pkgserver. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-09-13cmd/app: document setup and usageOphestra
This adds instructions and documentation for cmd/app itself and some example configuration for the typical desktop use case. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-09-12cmd/app: find next unused identityOphestra
This is a lot easier than grepping around. Verbose output is equivalent to assertion in the deprecated nix code. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-09-12cmd/app: show user/group id of the specified appidOphestra
This is useful for setting up new templates and apps. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-09-05internal/rosa: separate native tools from librariesOphestra
This removes most redundant runtime arguments and is useful for cross-compilation. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-08-30release: 0.4.8v0.4.8Ophestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-08-30internal/store: destroy stale instancesOphestra
This recovers from inconsistent state on power loss and /tmp/ is not wiped on startup, or if hakurei somehow crashes. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-08-29pkg: move from internalOphestra
Closes #43. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-08-25container: enter init path earlyOphestra
There is generally no use case where any setup is required before init, and requiring the explicit function call is error-prone and unnecessary. It also causes trouble with packages using a similar trick. This change moves argv0 check early and makes it an import side effect. The stub will be removed in v0.5. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-08-25internal/rosa: read-only access to built-insOphestra
This removes potential footguns caused by mutable builtins without requiring unnecessary clones. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-08-21release: 0.4.7v0.4.7Ophestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-08-20go: 1.27Ophestra
This fixes test cases affected by jsonv2 changes. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-08-12cmd/hakurei: terminate specified instanceOphestra
This is theoretically susceptible to the PID race, but such an event is statistically impossible, and not exploitable in the intended use case, regardless. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-08-12internal/pkg: in-flight error resolutionOphestra
The DCE is a slow and overcomplicated solution to a simple problem. This change replaces the DCE by resolving errors in-flight. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-08-09release: 0.4.6v0.4.6Ophestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-08-09cmd/dist: replace readme with licenseOphestra
The readme document is pretty useless for anything other than the website, so replace it with something more relevant. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-08-08cmd/mbf: improve title formatOphestra
This is cleaner for long-running daemon processes, and the additional information is more intuitive. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-08-07command: hard wrap help message flagsOphestra
This greatly improves readability when lots of flags are registered. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-31cmd/mbf: set window titleOphestra
This displays ongoing and complete cures via the notify channel. Signed-off-by: Ophestra <cat@gensokyo.uk>