aboutsummaryrefslogtreecommitdiffhomepage
path: root/cmd
AgeCommit message (Collapse)Author
2026-02-10internal/rosa: use self-hosted stage0Ophestra
This removes the bootstrap dependency on Gentoo stage3 tarball. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-02-10internal/rosa: self-host stage0 tarballOphestra
This replaces gentoo stage3 tarballs. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-02-07cmd/mbf: dump IR of artifact presetsOphestra
This exposes IR outside test cases, useful for verifying correctness of alternative IR emitters. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-02-02cmd/mbf: print extra stage3 informationOphestra
This includes ident of all three stages and the matching checksum if check is passing. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-29internal/rosa: remove unused receiverOphestra
This returns the preset itself, it is up to the caller to load the underlying artifact. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-28internal/rosa: resolve preset by nameOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-28internal/rosa: gawk artifactOphestra
Replaces broken awk in busybox. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-27internal/rosa: nss artifactsOphestra
Not used by anything for now, but will be part of Rosa OS. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-27internal/rosa/hakurei: dist tarballOphestra
The patch will be removed in the next release. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-27internal/rosa: fuse artifactOphestra
Required by hakurei for sharefs. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-27internal/rosa: pytest artifactOphestra
Required by libfuse. This pulls in many dependencies. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-27internal/rosa: hakurei artifactOphestra
This does not yet have fuse from staging. Everything else works perfectly, though. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-27internal/rosa: various X artifactsOphestra
Required by xcb which is required by hakurei. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-26internal/rosa: acl artifactOphestra
Required by hakurei. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-26internal/rosa: libseccomp artifactOphestra
Required by hakurei. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-26internal/rosa: gperf artifactOphestra
Required by libseccomp. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-26internal/rosa: wayland-protocols artifactOphestra
Required by hakurei. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-26internal/rosa: wayland artifactOphestra
Required by hakurei. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-26internal/rosa: libgd artifactOphestra
Required by graphviz which is required by wayland. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-26internal/rosa: libxml2 artifactOphestra
Required by wayland. Release tarball is xz only, unfortunately. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-26internal/rosa: libexpat artifactOphestra
Required by wayland. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-26internal/rosa: meson artifactOphestra
Required by wayland and pipewire. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-26internal/rosa: setuptools artifactOphestra
Apparently the only way to install python stuff offline. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-26cmd/mbf: verbose by defaultOphestra
It usually does not make sense to use this without verbose. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-26internal/rosa: pkg-config artifactOphestra
Used by hakurei and many other programs. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-26cmd/mbf: disable threshold by defaultOphestra
This is not very useful. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-25internal/rosa: lazy initialise all artifactsOphestra
This improves performance, though not as drastically as lazy initialising llvm. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-21internal/rosa: git artifactOphestra
This is required by the clang unit and regression tests. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-21cmd/mbf: expose some artifacts for curingOphestra
This will remain until dist is successfully bootstrapped. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-19internal/pkg: make checksum available to cureOphestra
This enables deduplication by value as implemented in execArtifact. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-19cmd/mbf: toolchain 3-stage non-determinism checkOphestra
This unfortunately fails right now. Requires further investigation. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-18cmd/mbf: command handlingOphestra
This tool is a frontend for bootstrapping hakurei via internal/pkg. Named mbf for now for "maiden's best friend" as a tribute to the DOOM source port. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-12-27cmd/sharefs: prepare directory earlyOphestra
This change also checks against filesystem daemon running as root early. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-12-27nix: configure sharefs via fileSystemsOphestra
Turns out this did not work because in the vm test harness, virtualisation.fileSystems completely and silently overrides fileSystems, causing its contents to not even be evaluated anymore. This is not documented as far as I can tell, and is not obvious by any stretch of the imagination. The current hack is cargo culted from nix-community/impermanence and hopefully lasts until this project fully replaces nix. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-12-27cmd/sharefs: create directory as rootOphestra
This optional behaviour is required on NixOS as it is otherwise impossible to set this up: systemd.mounts breaks startup order somehow even though my unit looks identical to generated ones, fileSystems does not support any kind of initialisation or ordering other than against other mount points. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-12-27cmd/sharefs: handle mount -t fuse.sharefsOphestra
This should have been handled in a custom option parsing function, but that much extra complexity is unnecessary for this edge case. Honestly I do not know why libfuse does not handle this itself. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-12-27cmd/sharefs: check option parsing behaviourOphestra
This change makes it possible to check parseOpts behaviour as part of Go tests. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-12-27cmd/sharefs: containerise filesystem daemonOphestra
This replaces the forking daemonise libfuse function which prevents Go callbacks from calling into the runtime. This also enforces least privilege on the daemon process. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-12-27cmd/sharefs: opaque setup stateOphestra
This allows unrestricted use of the type system and prepares setup code for cross-process initialisation. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-12-27cmd/sharefs: expand fuse_mainOphestra
This change should not change behaviour other than making output more consistent. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-12-27cmd/sharefs: improve help messageOphestra
This improves consistency with the fuse_main help message. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-12-26cmd/sharefs: allocate sharefs_private earlyOphestra
This also removes global state used by sharefs_init. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-12-26cmd/sharefs/test: check option handlingOphestra
This verifies behaviour related to setuid/setgid when starting as root. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-12-26cmd/sharefs: rename fuse-helper to fuse-operationsOphestra
This is not really just library wrapper functions, but instead implements the callbacks, so fuse-operations makes more sense. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-12-26cmd/sharefs: move translate_pathname body to macro wrapperOphestra
This is never called directly anywhere and it is simple enough to be included in the macro. This avoids passing the pointer around and dereferencing errno location, resulting in over 5% increase in throughput on the clang build. No change in the gcc build though. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-12-25cmd/sharefs: remove readlinkOphestra
This filesystem does not support symbolic links, so readlink is not useful, and unreachable in this case because of the check in getattr. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-12-25cmd/sharefs: implement shared filesystemOphestra
This is for passing files between applications, similar to android /sdcard. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-12-15internal/outcome: expose pipewire via pipewire-pulseOphestra
This no longer exposes the pipewire socket to the container, and instead mediates access via pipewire-pulse. This makes insecure parts of the protocol inaccessible as explained in the doc comment in hst. Closes #29. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-12-12nix: update flake lockOphestra
NixOS 25.11 introduces a crash in cage and an intermittent crash in foot. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-12-08cmd/hakurei: exec instead of fork/exec from shellOphestra
There is no reason to keep the shell process around. Signed-off-by: Ophestra <cat@gensokyo.uk>