aboutsummaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
2025-02-16internal: move shim and init into appOphestra
This structure makes more sense, as both processes are part of an app's lifecycle. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-16helper/bwrap: expose address of DataConfigOphestra
This allows the caller to defer fulfilling its payload. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-16system: separate link Op implementationOphestra
This Op would still be useful after replacing the Tmpfiles interface, so isolate it here. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-15release: 0.2.14Ophestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-15workflows: use native nix runnerOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-15app: improve WAYLAND_DISPLAY correctnessOphestra
This now has identical behaviour as wayland C library. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-15fortify: prevent exit status 0 on app failureOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-15app: remove wayland socket hard linkOphestra
This Op was not doing anything useful. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-15nix: test direct_wayland behaviourOphestra
This should never be used outside tests unless you absolutely know what you're doing or are using GNOME. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-15nix: remove unused configurationOphestra
User setup no longer depends on userdb. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-15system: remove write mode tmpfilesOphestra
This interface is ugly and bug-prone. This change removes its write mode which has been obsoleted by CopyBind. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-15app: port passwd and group files to copyOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-15helper/bwrap: implement file copy flagsOphestra
These are significantly more efficient and less error-prone than mounting an external tmpfile. This should also reduce attack surface as the resulting files are private to its specific sandbox. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-15priv/shim: move /sbin/init setup to appOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-15fmsg: resume on exitOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-15nix: sway increase resolutionOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-15helper/bwrap: PositionalArg implement fmt.StringerOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-14helper/bwrap: merge Args and FDArgsOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-14dbus: remove BwrapStatic methodOphestra
This method does not do anything and is not called from anywhere. It also does not make any sense as a public interface since the argument builder is no longer stateless. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-14helper/bwrap: remove fmsg importOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-14cmd/fsu: check parse behaviourOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-14cmd/fsu: revert offset in error messageOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-14fortify: check print behaviourOphestra
These output are supposed to be deterministic, so checking them is a good way to catch regressions. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-14state/join: use Join method when availableOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-14app: check username length against LOGIN_NAME_MAXOphestra
This limit is arbitrary, but it's good to enforce it anyway. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-14fortify: print line after ps outputOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-13release: 0.2.13Ophestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-13helper: use generic extra files interfaceOphestra
This replaces the pipes object and integrates context into helper process lifecycle. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-13helper/proc: cancel ec on parent ctxOphestra
This allows errors written during a timeout to be received and handled. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-13helper/seccomp: use sync.Once for closeWriteOphestra
This makes the code much cleaner, and eliminates the intermittent ErrInvalid errors. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-13helper/seccomp: benchmark exporterOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-13nix: test syscall filterOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-13proc/pipe: implement args and stat fileOphestra
This is a generic implementation of helper/pipe. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-13helper/proc: count dispatched errsOphestra
This helps debug implementation errors of [proc.File]. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-13helper/proc: store file addresses in linked listOphestra
Storing extra files as a slice requires the caller to allocate a large enough slice before initialising any file and never grow the slice. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-13helper/seccomp: eliminate data race on pfdOphestra
Turns out the doc comment on os.File was lying about its methods being safe for concurrent use. The race detector picked up a data race from concurrent use of Fd and Close. This change eliminates that by calling Fd in the prepare routine. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-11helper/proc: declare generic extra files interfaceOphestra
Helpers use extra files for various purposes. This provides a generic interface for implementing the fulfillment of these extra files without having to specifically handle them in the process creation code. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-08helper/proc: move package out of internalOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-07nix: vm test remove unnecessary setupOphestra
This step is no longer required as the NixOS module is responsible for home directory creation. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-07dbus: lock for read in public args interfaceOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-07system/dbus: dump messages on early faultOphestra
In the current app implementation this gets dumped in the wait method after resuming output. Wait is never called in an early fault condition, so any error messages get lost. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-07system/dbus: dump method prints msgbufOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-07helper/seccomp: panic on invalid closeWrite useOphestra
Returning an error here puts exporter in an invalid state. The caller should guard against this condition instead. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-03helper/seccomp: implement reader interface via pipeOphestra
This also does not require the libc tmpfile call. BPF programs emitted by libseccomp seems to be deterministic. The tests would catch regressions as it verifies the program against known good output backed by manual testing. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-01workflows: fix nix store cacheOphestra
Prefix does not seem to match correctly, this appears to be a Gitea implementation bug. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-01-25nix: vm test set sway backgroundOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-01-25nix: update flake lockOphestra
2025-01-25nix: mount nvidia devicesOphestra
These non-standard paths are required in the sandbox for nvidia drivers to work. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-01-25release: 0.2.12Ophestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-01-25nix: verify silent output when not running with -vOphestra
This checks behaviour of fmsg and seccomp. Signed-off-by: Ophestra <cat@gensokyo.uk>