aboutsummaryrefslogtreecommitdiffhomepage
path: root/container
AgeCommit message (Collapse)Author
2025-08-03container/ops: merge mqueue and dev OpsOphestra
There is no reason to mount mqueue anywhere else, and these Ops usually follow each other. This change merges them. This helps decrease IPC overhead and also enables mounting dev readonly. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-08-03container/mount: move tmpfs sysroot prefixing to callerOphestra
The mountTmpfs helper is a relatively low level function that is not exposed as part of the API. Prefixing sysroot here not only introduces overhead but is also quite error-prone. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-08-03container/op: unexport bind resolved source fieldOphestra
This is used for symlink resolution and is only used internally. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-08-03container/mount: mount data escape helper functionOphestra
For formatting user-supplied path strings into overlayfs mount data. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-08-02container: improve clone flags readabilityOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-08-02container/mount: export mount string constantsOphestra
This improves code readability and should also be useful for callers choosing to preserve CAP_SYS_ADMIN. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-08-01container/ops: expose remount as OpOphestra
This is useful for building a filesystem hierarchy then remounting it readonly. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-08-01container/mount: separate remount from bindOphestra
Remount turns out to be useful in other places. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-08-01container/mount: pass tmpfs flagsOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-08-01container: implement autoroot as setup opOphestra
This code is useful beyond just pd behaviour, and implementing it this way also reduces IPC overhead. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-08-01container/ops: use correct flags value in bind stringOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-07-31container/ops: autoetc implementation to separate fileOphestra
This is not a general purpose setup Op. Separate it so it is easier to find. 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-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-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-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-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-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-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>