aboutsummaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
2025-02-18fmsg: export logBaseError functionOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-17acl: implement Update in COphestra
The original implementation was effectively just writing C in Go. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-17acl: rename UpdatePerms to UpdateOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-17system: make xcb internalOphestra
This package is hauntingly ugly. Move this to internal until it is removed or replaced. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-17system: move out of internalOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-17system: wrap console output functionsOphestra
This eliminates all fmsg imports from internal/system. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-17system/wayland: sync file at caller specified addressOphestra
Storing this in sys is incredibly ugly: sys should be stateless and Ops must keep track of their state. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-17system/tmpfiles: fail gracefully in API misuseOphestra
Panicking here leaves garbage behind. Not ideal if this package is going to be exported. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-17release: 0.2.15Ophestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-17system/tmpfiles: implement private tmpfilesOphestra
These are only available within the mount namespace and should significantly reduce attack surface. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-16nix: run integration tests with race detectorOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-16internal: beforeExit before reachable fatal callsOphestra
These are the only two calls to log.Fatal* reachable during suspended output. Call fmsg.BeforeExit here to catch that. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-16app/shim/manager: return error on bad fsu pathOphestra
This results in a graceful failure that does not leave garbage behind. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-16fmsg: implement suspend in writerOphestra
This removes the requirement to call fmsg.Exit on every exit path, and enables direct use of the "log" package. However, fmsg.BeforeExit is still encouraged when possible to catch exit on suspended output. Signed-off-by: Ophestra <cat@gensokyo.uk>
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>