aboutsummaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
2025-07-29release: 0.1.2v0.1.2Ophestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-29hst: configurable wait delayOphestra
This is useful for programs that take a long time to clean up. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-29container/init: configurable lingering process wait delayOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-29app: integrate interrupt forwardingOphestra
This significantly increases usability of command line tools running through hakurei. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-28app/shim: implement signal handler outcome in GoOphestra
This needs to be done from the Go side eventually anyway to integrate the signal forwarding behaviour now supported by the container package. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-28app/shim: separate signal handler implementationOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-28container: forward context cancellationOphestra
This allows container processes to exit gracefully. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-28container: check cancel signal deliveryOphestra
This change also makes some parts of the test more robust. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-27container: improve doc commentsOphestra
Putting them on the builder methods is more useful. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-26container: access test case by index in helperOphestra
This is more elegant and allows for much easier extension of the tests. Mountinfo is still serialised however due to libPaths nondeterminism. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-26nix: update flake lockOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-25container: remove custom cmd initialisationOphestra
This part of the interface is very unintuitive and only used for testing, even in testing it is inelegant and can be done better. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-18container: use more reliable nonexistenceOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-09release: 0.1.1v0.1.1Ophestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-09test/sandbox: add arm64 constantsOphestra
Most of these are differences in qemu. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-09test/sandbox: verify seccomp on all test casesOphestra
This change also makes seccomp hashes cross-platform. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-07test/sandbox: guard on testtool tagOphestra
This tool should not show up when building hakurei normally. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-07test/sandbox/seccomp: remove uselibOphestra
This syscall is not wired on all platforms. This test barely does anything anyway and seccomp is covered by the privileged test instrumentation. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-07container/seccomp: add arm64 constantsOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-07container/seccomp: move bpf hashesOphestra
Filter programs are different across platforms. This representation is also much more readable. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-07container/init: fix prctl callOphestra
This is a very silly typo. Luckily has no effect due to an upper layer doing PR_SET_NO_NEW_PRIVS already. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-07container: move capset implementationOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-07container: move syscall constantsOphestra
These aren't missing from all targets. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-07container/seccomp: move personality constantsOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-07container/seccomp: cross-platform sysnum cutoffOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-07nix: cross-platform syscall wrapperOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-06container/init: use /proc/self as intermediateOphestra
Setting up via /tmp is okay, /proc/self/fd makes a lot more sense though for reasons described in the comment. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-03add miscellaneous badgesOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-03app: remove split implementationOphestra
It is completely nonsensical and highly error-prone to have multiple implementations of this in the same build. This should be switched at compile time instead therefore the split packages are pointless. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-03release: 0.1.0v0.1.0Ophestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-03treewide: migrate to hakurei.appOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-03container: move out of toplevelOphestra
This allows slightly easier use of the vanity url. This also provides some disambiguation between low level containers and hakurei app containers. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-02system: move system access packagesOphestra
These packages loosely belong in the "system" package and "system" provides high level wrappers for all of them. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-02hakurei: move container helpers toplevelOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-02hakurei: move container toplevelOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-02cmd/hakurei: move command handlersOphestra
The hakurei command is a bit ugly since it's also used for validating the command package. This alleviates some of the ugliness. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-02sandbox/wl: track generated filesOphestra
This allows the package to be imported. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-02cmd/hakurei: move to cmdOphestra
Having it at the project root never made sense since the "ego" name was deprecated. This change finally addresses it. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-02sandbox: expose seccomp interfaceOphestra
There's no point in artificially limiting and abstracting away these options. The higher level hakurei package is responsible for providing a secure baseline and sane defaults. The sandbox package should present everything to the caller. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-02sandbox/seccomp: import dot for syscallOphestra
This significantly increases readability in some places. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-02sandbox/seccomp: append suffix to opsOphestra
This avoids clashes with stdlib names to allow for . imports. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-02sandbox/seccomp: prepare -> exportOphestra
Export makes a lot more sense, and also matches the libseccomp function. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-02sandbox/seccomp: native rule slice in helpersOphestra
These helper functions took FilterPreset as input for ease of integration. This moves them to []NativeRule. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-02sandbox/seccomp: native rule type aliasOphestra
This makes it easier to keep API stable. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-01sandbox/seccomp: resolve rules nativelyOphestra
This enables loading syscall filter policies from external cross-platform config files. This also removes a significant amount of C code. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-01sandbox/seccomp: extra constantsOphestra
These all resolve to pseudo syscall numbers in libseccomp, but are necessary anyway for other platforms. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-01sandbox/seccomp: implement syscall lookupOphestra
This uses the Go map and is verified against libseccomp. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-01sandbox/seccomp: wire extra syscallOphestra
These values are only useful for libseccomp. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-06-30sandbox/seccomp: emit syscall constantsOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-06-26treewide: switch to hakurei.appOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>