aboutsummaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
10 hoursrelease: 0.4.9HEADv0.4.9masterOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
12 hoursext: add additional constantsOphestra
This removes the syscall cutoff thresholds, instead declaring all syscall number constants in package ext. This also removes two constants from package container which were inadvertently exported for 386 and amd64. Signed-off-by: Ophestra <cat@gensokyo.uk>
13 hourscontainer/sysctl: remove calls to loggerOphestra
This behaviour is counterintuitive, the responses are cached, and only the msg object of the first call is used. This change also improves error message formatting of these functions. Signed-off-by: Ophestra <cat@gensokyo.uk>
25 hoursinternal/rosa: update packagesOphestra
Kernel headers changed due to a documentation change in random.h, causing rebuilds. Kernel source is now fetched from cdn.kernel.org. A newly broken libarchive test has been disabled. A flaky git test has been discovered while rebuilding for curl and has been disabled. Signed-off-by: Ophestra <cat@gensokyo.uk>
32 hoursinternal/system: file-based big lockOphestra
Simultaneous commits or reverts can race if they have overlapping targets. This big lock synchronises entry into the Commit and Revert critical sections across all cmd/hakurei processes. Signed-off-by: Ophestra <cat@gensokyo.uk>
32 hourscmd/hakurei/testsuite: handle dynamic linker raceOphestra
This retries when seeing files opened by the dynamic linker. This will eventually be replaced by a statically linked anchor program that never opens any files on its own. Signed-off-by: Ophestra <cat@gensokyo.uk>
32 hoursinternal/testsuite: lock tracer threadOphestra
This avoids getting the goroutine preempted and scheduled onto a thread other than the tracer. Signed-off-by: Ophestra <cat@gensokyo.uk>
32 hourscmd/hakurei/testsuite: improve sandbox reportingOphestra
This avoids swallowing error messages from failed container startups. Signed-off-by: Ophestra <cat@gensokyo.uk>
33 hourscmd/hakurei/testsuite: compare command outputOphestra
This is much more precise than just simply checking the exit code. Signed-off-by: Ophestra <cat@gensokyo.uk>
34 hoursinternal/outcome: world-executable runtime/tmpdirOphestra
This does not reduce security, and saves the trouble of the additional ACL setup/teardowns. Signed-off-by: Ophestra <cat@gensokyo.uk>
34 hourscmd/hakurei/testsuite: synchronise after terminationOphestra
This ensures that cmd/hakurei has finished cleanup and terminated before validating the outcome of that cleanup. Signed-off-by: Ophestra <cat@gensokyo.uk>
34 hoursinternal/testsuite: drop ESRCH on detachOphestra
Getting ESRCH here is harmless, and has the same effect of detaching successfully, so drop it to avoid spurious test failures. Signed-off-by: Ophestra <cat@gensokyo.uk>
35 hoursinternal/acl: make tests parallelOphestra
This increases testing performance. Signed-off-by: Ophestra <cat@gensokyo.uk>
2 dayscmd/hakurei/testsuite: move rts test out of loopOphestra
This was inadvertently placed inside the setscheduler loop due to miscounting indentations. Signed-off-by: Ophestra <cat@gensokyo.uk>
2 dayscmd/hakurei/testsuite: set credentials for store accessOphestra
This avoids breaking ownership of lock files. Signed-off-by: Ophestra <cat@gensokyo.uk>
2 dayscmd/hakurei/testsuite: optional retriesOphestra
This implements retries of individual test cases and enables it for pipewire and X tests. PipeWire and X server are quite flaky, and that cannot be fixed by anything cmd/hakurei does. Signed-off-by: Ophestra <cat@gensokyo.uk>
2 dayscmd/hakurei/testsuite: additional cleanup checksOphestra
These were pretty difficult to do properly in the nixos-based test suite. Signed-off-by: Ophestra <cat@gensokyo.uk>
2 dayscmd/hakurei/testsuite: migrate testsOphestra
This runs much faster than the NixOS test suite, and is much more precise. This also uncovered a recent severe pipewire regression. This change removes all remaining deprecated nix code. Closes #22. Signed-off-by: Ophestra <cat@gensokyo.uk>
2 daysinternal/testsuite: additional polling helpersOphestra
These are mostly for process lifecycle checks. This change also adds polling for the Xwayland server in the sway helper. Signed-off-by: Ophestra <cat@gensokyo.uk>
3 daysinternal/workflows: build sway 1.12Ophestra
This has better support for security-context metadata which can be measured by the test suite. Signed-off-by: Ophestra <cat@gensokyo.uk>
3 daysinternal/testsuite: get pipewire versionOphestra
This formats into some test data. Signed-off-by: Ophestra <cat@gensokyo.uk>
3 daysinternal/testsuite: optional insecure argumentOphestra
This allows testing insecure configurations. This change also improves error reporting and fixes non-startup-notification behaviour. Signed-off-by: Ophestra <cat@gensokyo.uk>
3 daysinternal/workflows: build wireplumber 0.5.14Ophestra
PipeWire/WirePlumber had become slopware while I was not looking. WirePlumber 0.5.15 broke SecurityContext, and it has still not been fixed. I have filed a ticket upstream, but considering the fact that my previous security-related ticket, filed over 10 months ago, is still being ignored, I do not have high hopes that they will fix it. It is no longer safe to use PipeWire. Users are advised to downgrade to 0.5.14 for now. A drop-in replacement of PipeWire might be needed for Rosa OS. This change also adds additional packages required by the native cmd/hakurei integration test suite. Signed-off-by: Ophestra <cat@gensokyo.uk>
5 daysinternal/testsuite: optional verbose outputOphestra
Used by some tests to inspect cmd/hakurei internals. Signed-off-by: Ophestra <cat@gensokyo.uk>
5 daysinternal/testsuite: optional startup notificationOphestra
This is only really used by the sandbox test suite for seccomp validation. Make it optional here to simplify other use cases. Signed-off-by: Ophestra <cat@gensokyo.uk>
5 daysinternal/testsuite: disconnect script from stdinOphestra
The util-linux script program really messes up any terminal attached to stdin. Since the test programs do not take any input, and stdin is a shared resource that cannot be used anyway, this change disconnects it from stdin. Signed-off-by: Ophestra <cat@gensokyo.uk>
5 daysinternal/testsuite: silence session servicesOphestra
These are too noisy and are not useful outside of debugging the test suite itself, so silence them by default. Signed-off-by: Ophestra <cat@gensokyo.uk>
5 daysinternal/testsuite: move helpers from cmd/hakureiOphestra
These helpers are useful across multiple test suites. Signed-off-by: Ophestra <cat@gensokyo.uk>
5 dayshst: pass through adopt wait delay with boundsOphestra
This is a useful value to customise, primarily useful for test suites but can also generally improve exit latency for stubborn applications. Signed-off-by: Ophestra <cat@gensokyo.uk>
6 dayscmd/dist: allow forcing dynamic linkingOphestra
This remains unsupported, but is useful during testing, or when packaging for some particularly stubborn distros. Signed-off-by: Ophestra <cat@gensokyo.uk>
6 daysinternal/rosa/package/glib: fix loopvar -Wsign-conversionOphestra
This affects arm64. Signed-off-by: Ophestra <cat@gensokyo.uk>
6 daysinternal/rosa/package/python: disable broken testOphestra
This is very platform-specific and seems to be broken on anything other than amd64. So far only tickets for riscv64 and i586 exist, and it is only fixed for riscv64. Nobody seems to be running the test suite on arm64 for some reason. Signed-off-by: Ophestra <cat@gensokyo.uk>
6 daysall: use Linux kernel coding styleOphestra
The Gitea web interface is no longer publicly accessible, so it no longer matters that this code style does not render well on Gitea. Signed-off-by: Ophestra <cat@gensokyo.uk>
6 daysinternal/system: skip superfluous chmodOphestra
A successful chmod clobbers acl mask, breaking the fast path. This change also fixes the ACL race. Signed-off-by: Ophestra <cat@gensokyo.uk>
6 daysinternal/acl: use O_PATH descriptorOphestra
This avoids TOCTOU during hakurei_update_acl. Signed-off-by: Ophestra <cat@gensokyo.uk>
6 daysinternal/lockedfile: optionally force write lockOphestra
For acquiring a write lock on a directory. Signed-off-by: Ophestra <cat@gensokyo.uk>
6 daysinternal/acl: skip superfluous acl_set_fileOphestra
This slightly reduces startup latency. Signed-off-by: Ophestra <cat@gensokyo.uk>
7 dayscmd/hakurei/testsuite: extra exercise parametersOphestra
This also removes the interval and fixes the mustStart search criteria. Signed-off-by: Ophestra <cat@gensokyo.uk>
9 daysinternal/rosa: update packagesOphestra
Kernel compilation is no longer failing on the amd dc dml frame size warning, and the corresponding patch has been removed. Kernel headers have been bumped due to amdgpu, landlock and intel avs changes. Glslang had its stack size increased to 1 MiB to avoid crashing against latest spirv-tools. Muon has been updated to 0.7.0, however the newly added clang-cl support has been completely removed due to it insisting on using clang-cl for everything. It is also now patched to respect CLICOLOR_FORCE. The util-linux package has been updated, and the backport patch has been removed. The long-awaited openssl 4 update, blocked by python for months, is finally added. Python 3.15 broke the test suite of package python-wheel, it has been patched to forcefully disable output colours. LLVM has been updated. A newly-broken test is disabled. Signed-off-by: Ophestra <cat@gensokyo.uk>
12 daysinternal/workflows: remove dedicated dist jobsOphestra
It is much easier to obtain these dist tarballs via cmd/mbf, and gitea has been acting up again, taking minutes of retrying before finally accepting the artifacts. This change removes them altogether and reverts to contacting the cmd/mbf CI service. Signed-off-by: Ophestra <cat@gensokyo.uk>
12 daysinternal/workflows: use custom runner imageOphestra
This avoids having to reinstall packages on every run. Signed-off-by: Ophestra <cat@gensokyo.uk>
6 dayscmd/hakurei/testsuite: exercise setup/teardownOphestra
This exposes a race during simultaneous startup between chmod and acl_set_file, where the ACL mask is clobbered by chmod. This remained undiscovered until now due to the previous integration test suite's complete inability to handle concurrency (the nixos vm test machinery could not even support python multithreading). Signed-off-by: Ophestra <cat@gensokyo.uk>
13 daysinternal/workflows: unshare net for sandbox suiteOphestra
This avoids having multiple runs getting in the way of each other with their Xwayland abstract socket. Signed-off-by: Ophestra <cat@gensokyo.uk>
13 daysinternal/workflows: document network setupOphestra
This gets the cache action working without having to keep the init net namespace. Signed-off-by: Ophestra <cat@gensokyo.uk>
13 daysinternal/workflows: fetch distribution artifactOphestra
This is cleaner than contacting the cmd/mbf CI service on every run, although also slightly slower in some cases. Signed-off-by: Ophestra <cat@gensokyo.uk>
13 daysinternal/testsuite: add additional environmentOphestra
This improves compatibility. This change also improves error messages. Signed-off-by: Ophestra <cat@gensokyo.uk>
13 daysinternal/testsuite: move from testOphestra
This structure is a lot less clumsy than the old nix-centric layout. Signed-off-by: Ophestra <cat@gensokyo.uk>
13 daystest: remove obsolete codeOphestra
Nix stuff is being removed, most of the flake.nix stuff is no longer used by anything, so remove them here. This change also replaces a hardcoded gcc command. Signed-off-by: Ophestra <cat@gensokyo.uk>
13 daystest/internal/testsuite: directly set credentialsOphestra
There is no reason to keep using sudo here, now that processes are spawned natively. This change removes all use of sudo. Signed-off-by: Ophestra <cat@gensokyo.uk>
13 daystest/sandbox: migrate testsOphestra
This significantly improves performance, removing overhead of nix, python, and virtualisation. Running this in an unprivileged container required patching the kernel, but since special runner setup was already needed, that was an acceptable tradeoff. Signed-off-by: Ophestra <cat@gensokyo.uk>