cat
d050b3de25
app: define errors in a separate file
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-26 17:12:02 +09:00
cat
5de28800ad
test: verify fsu ppid check
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-26 16:51:57 +09:00
cat
8e50293ab7
test: remove sway process check
...
This eliminates the race where systemd restarts sway too quick.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-26 13:52:44 +09:00
cat
12c6d66bfd
cmd/fpkg/test: nixos test fpkg install/start
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-26 13:12:16 +09:00
cat
d7d2bd33ed
cmd/fpkg/build: expose nixos configuration
...
This should be used sparingly as the NixOS closure is in the bootstrap store which compresses rather poorly.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-26 12:31:18 +09:00
cat
c21a4cff14
nix: wrap fpkg
...
This is usable on nixos now due to the static build.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-26 12:24:04 +09:00
cat
4fa38d6063
cmd/fpkg: use fortify path from internal
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-26 12:16:35 +09:00
cat
6d4ac3d9fd
internal: store fortify path in internal
...
This now makes more sense due to the changes in build system.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-26 12:03:25 +09:00
cat
a5d2f040fb
cmd/fpkg/build: run final build step in nix
...
This used to be a script that had to be run outside of nix because the sandbox disallows access to nix store state. Turns out closureInfo is the proper way to do that.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-25 23:53:18 +09:00
cat
c62689e17f
nix: interrupt via tty
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-25 18:20:47 +09:00
cat
39dc8e7bd8
dbus: set process group id
...
This stops signals sent by the TTY driver from propagating to the xdg-dbus-proxy process.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-25 18:12:41 +09:00
cat
5a732d153e
nix: include fsu sources in dist build
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-25 01:32:47 +09:00
cat
b4549c72be
nix: verify silent signal exit
...
This catches errors in the cleanup process initiated by a signal.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-25 01:22:16 +09:00
cat
1818dc3a4c
system/acl: do not fail gone revert target
...
A removed file effectively already has its ACLs stripped, so failing this makes no sense. Still print a message to warn about it.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-25 01:11:05 +09:00
cat
65094b63cd
system/dbus: filter context cancellation error
...
This message would otherwise show up when alternative exit path is taken due to a signal.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-25 00:57:35 +09:00
cat
f0a082ec84
fortify: improve handling of RevertErr
...
All this error wrapping is getting a bit ridiculous and I might want to do something about that somewhere down the line.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-25 00:45:00 +09:00
cat
751aa350ee
nix: exclude files ending in ".py"
...
This reduces rebuilds when debugging nixos tests.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-24 17:41:56 +09:00
cat
e6cd2bb2a8
cmd/fpkg: integrate command handler
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-23 23:25:12 +09:00
cat
0fb72e5d99
cmd/fpkg/build: prepend extra nix flags
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-23 20:21:09 +09:00
cat
71135f339a
release: 0.2.18
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-23 18:52:33 +09:00
cat
b6af8caffe
nix: clean up directory structure
...
Tests for fpkg is going to be in ./cmd/fpkg, so this central tests directory is no longer necessary.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-23 18:48:01 +09:00
cat
e1a3549ea0
workflows: separate nixos tests from flake check
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-23 18:34:42 +09:00
cat
8bf162820b
nix: separate fsu from package
...
This appears to be the only way to build them with different configuration. This enables static linking in the main package.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-23 18:13:37 +09:00
cat
dccb366608
ldd: handle behaviour on static executable
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-23 18:02:33 +09:00
cat
83c8f0488b
ldd: pass absolute path to bwrap
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-23 17:46:22 +09:00
cat
478b27922c
fortify: handle errors via MustParse
...
The errSuccess behaviour is kept for beforeExit.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-23 12:57:59 +09:00
cat
ba1498cd18
command: filter parse errors
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-23 12:55:10 +09:00
cat
eda4d612c2
fortify: keep external files alive
...
This should eliminate sporadic failures, like the known double close in "seccomp".
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-23 03:24:37 +09:00
cat
2e7e160683
release: 0.2.17
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-23 02:59:31 +09:00
cat
79957f8ea7
fortify: test help message
...
This helps catch regressions in "command".
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-23 02:51:35 +09:00
cat
7e52463445
fortify: integrate command handler
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-23 02:35:02 +09:00
cat
89970f5197
command/flag: implement repeatable flag
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-23 02:25:31 +09:00
cat
35037705a9
command/flag: implement integer flag
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-23 02:02:01 +09:00
cat
647c6ea21b
command: hide internal commands
...
This marks commands as internal via a magic usage string.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-23 01:36:48 +09:00
cat
416d93e880
command: expose print help
...
This is useful for custom help commands.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-23 01:17:57 +09:00
cat
312753924b
command: root early handler func special case
...
This allows for early initialisation with access to flags on the root node. This can be useful for configuring global state used by subcommands.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-23 00:55:18 +09:00
cat
54308f79d2
command: expose command with direct handling
...
This exposes flag set on commands with direct handling.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-23 00:24:03 +09:00
cat
dfa3217037
command: implement builder and parser
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-22 23:11:17 +09:00
cat
8000a2febb
command: implement help builder
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-22 22:43:37 +09:00
cat
7bd48d3489
command: implement node structure
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-22 20:30:49 +09:00
cat
b5eaeac11a
command: declare command interface
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-22 20:29:47 +09:00
cat
a9986aab6a
system: document I methods
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-21 19:51:12 +09:00
cat
ff30a5ab5d
fst: remove empty file
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-21 19:27:08 +09:00
cat
eb0c16dd8c
cmd/fpkg: rename buildPackage file
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-21 18:13:34 +09:00
cat
4fa1e97026
cmd/fpkg: rename shell to shellPath
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-21 17:50:20 +09:00
cat
64b6dc41ba
nix: split integration test
...
For adding tests for fpkg.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-21 17:05:17 +09:00
cat
c64b8163e7
app: separate instance from process state
...
This works better for the implementation.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-21 16:06:24 +09:00
cat
9d9a165379
release: 0.2.16
...
Mostly refactor and cleanup, but also contains major fix to process lifecycle management.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-19 23:39:16 +09:00
cat
d0dff1cac9
wl: check against null character
...
Wayland library takes null terminated strings.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-19 23:35:49 +09:00
cat
3c80fd2b0f
app: defer system.I revert
...
Just returning an error after a successful call of commit will leave garbage behind with no way for the caller to clean them. This change ensures revert is always called after successful commit with at least per-process state enabled.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-19 21:12:11 +09:00
cat
ef81828e0c
app: remove share method
...
This is yet another implementation detail from before system.I, getting rid of this vastly cuts down on redundant seal state.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-19 16:20:25 +09:00
cat
2978a6f046
app: separate appSeal finalise method
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-19 12:33:51 +09:00
cat
dfd9467523
app: merge seal with sys
...
The existence of the appSealSys struct was an implementation detail obsolete since system.I was integrated in 084cd84f36 .
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-19 01:36:29 +09:00
cat
53571f030e
app: embed appSeal in app struct
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-19 01:10:37 +09:00
cat
aa164081e1
app/seal: improve documentation
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-19 01:04:14 +09:00
cat
9a10eeab90
app/seal: embed enablements
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-19 00:41:51 +09:00
cat
d1f83f40d6
helper/bwrap: rename Write to WriteFile
...
In case this might want to be an io.Writer.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-19 00:34:19 +09:00
cat
a748d40745
app: store values with string representation
...
Improves code readability without changing memory layout.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-19 00:25:00 +09:00
cat
648e1d641a
app: separate interface from implementation
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-18 23:07:28 +09:00
cat
3c327084d3
fst: declare wrappers for sandbox config
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-18 23:04:13 +09:00
cat
ffaa12b9d8
sys: wrap log methods
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-18 22:52:09 +09:00
cat
bf95127332
fst: move App interface declaration
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-18 22:36:45 +09:00
cat
e0f321b2c4
sys: rename from linux
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-18 18:47:48 +09:00
cat
2c9c7fee5b
linux: wrap fsu lookup error
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-18 17:39:53 +09:00
cat
d0400f3c81
fmsg: PrintBaseError skip empty message
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-18 17:01:26 +09:00
cat
e9b0f9faef
fmsg: export logBaseError function
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-18 13:02:51 +09:00
cat
e85be67fd9
acl: implement Update in C
...
The original implementation was effectively just writing C in Go.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-17 21:39:14 +09:00
cat
7e69893264
acl: rename UpdatePerms to Update
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-17 20:33:18 +09:00
cat
38a3e6af03
system: make xcb internal
...
This package is hauntingly ugly. Move this to internal until it is removed or replaced.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-17 19:07:53 +09:00
cat
90cb01b274
system: move out of internal
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-17 19:00:43 +09:00
cat
b1e1d5627e
system: wrap console output functions
...
This eliminates all fmsg imports from internal/system.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-17 18:17:55 +09:00
cat
3ae2ab652e
system/wayland: sync file at caller specified address
...
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-17 13:24:17 +09:00
cat
db71fbe22b
system/tmpfiles: fail gracefully in API misuse
...
Panicking here leaves garbage behind. Not ideal if this package is going to be exported.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-17 12:17:01 +09:00
cat
83e72c2b59
release: 0.2.15
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-17 00:13:04 +09:00
cat
82a072f641
system/tmpfiles: implement private tmpfiles
...
These are only available within the mount namespace and should significantly reduce attack surface.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-17 00:07:52 +09:00
cat
60c10c3f4a
nix: run integration tests with race detector
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-16 20:58:08 +09:00
cat
468696f611
internal: beforeExit before reachable fatal calls
...
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-16 19:03:34 +09:00
cat
29c38caac8
app/shim/manager: return error on bad fsu path
...
This results in a graceful failure that does not leave garbage behind.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-16 18:59:45 +09:00
cat
e599b5583d
fmsg: implement suspend in writer
...
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-16 18:51:53 +09:00
cat
33a4ab11c2
internal: move shim and init into app
...
This structure makes more sense, as both processes are part of an app's lifecycle.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-16 16:28:46 +09:00
cat
1fa5e992e4
helper/bwrap: expose address of DataConfig
...
This allows the caller to defer fulfilling its payload.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-16 12:33:59 +09:00
cat
c667b13a00
system: separate link Op implementation
...
This Op would still be useful after replacing the Tmpfiles interface, so isolate it here.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-16 12:15:26 +09:00
cat
90b86a5531
release: 0.2.14
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-15 23:05:02 +09:00
cat
f545e154f0
workflows: use native nix runner
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-15 22:58:04 +09:00
cat
268a90f1a5
app: improve WAYLAND_DISPLAY correctness
...
This now has identical behaviour as wayland C library.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-15 14:45:09 +09:00
cat
3054527ca5
fortify: prevent exit status 0 on app failure
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-15 14:40:19 +09:00
cat
ddb2f9c11b
app: remove wayland socket hard link
...
This Op was not doing anything useful.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-15 10:54:00 +09:00
cat
6ae02e72fa
nix: test direct_wayland behaviour
...
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-15 10:45:27 +09:00
cat
989fb5395f
nix: remove unused configuration
...
User setup no longer depends on userdb.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-15 10:10:42 +09:00
cat
f955b15b84
system: remove write mode tmpfiles
...
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-15 03:22:20 +09:00
cat
0340c67995
app: port passwd and group files to copy
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-15 03:19:06 +09:00
cat
72b0160aad
helper/bwrap: implement file copy flags
...
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-15 03:13:15 +09:00
cat
ea8d1c07df
priv/shim: move /sbin/init setup to app
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-15 03:06:10 +09:00
cat
a0062d8275
fmsg: resume on exit
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-15 02:22:09 +09:00
cat
43d2e4f5d7
nix: sway increase resolution
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-15 02:21:24 +09:00
cat
be7d944b39
helper/bwrap: PositionalArg implement fmt.Stringer
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-15 00:11:48 +09:00
cat
ace97952cc
helper/bwrap: merge Args and FDArgs
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-14 18:13:06 +09:00
cat
73146ea7fa
dbus: remove BwrapStatic method
...
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-14 18:09:59 +09:00
cat
88040504b2
helper/bwrap: remove fmsg import
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-14 18:05:00 +09:00
cat
1fd571d561
cmd/fsu: check parse behaviour
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-02-14 16:43:55 +09:00