Commit Graph
100 Commits
Author SHA1 Message Date
cat cd493fd95f cmd/app: centralise workdir
This makes the directory structure significantly more manageable.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-21 00:48:18 +09:00
cat 9db70c83e3 cmd/app: configure username and hostname
These no longer need to be hardcoded since this is not subject to the limitations of home-manager.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-20 22:15:49 +09:00
cat 4e09241e5f cmd/app: optional interactive shell
Enabling this unconditionally causes the new configuration prompt to be shown when started from a terminal, and is generally less robust than not reading zshrc unless explicitly required.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-20 19:08:47 +09:00
cat bd4b300ea6 internal/rosa/package/cmake: 4.3.3 to 4.3.4
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-20 17:56:09 +09:00
cat 6dc8214a1a internal/rosa/package/kernel: 6.12.93 to 6.12.94
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-20 17:55:49 +09:00
cat cada5a46ad internal/rosa/package/mesa: 26.1.2 to 26.1.3
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-20 17:55:08 +09:00
cat e747942829 internal/rosa/package/python: pytest 9.1.0 to 9.1.1
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-20 17:54:38 +09:00
cat 33b855123e internal/rosa/package/spirv: spirv-headers 1.4.350.0 to 1.4.350.1
This unfortunately does not unblock SPIRV-LLVM-Translator.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-20 04:43:04 +09:00
cat 58ce134718 internal/outcome: attempt nscd path-hiding if present
This avoids creating the mount point on musl setups which accomplishes nothing and can run into permission problems.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-20 02:42:35 +09:00
cat 2066093343 cmd/app: remove sysfs bind mounts
This should be in common instead.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-20 01:57:55 +09:00
cat 07509b3ba2 cmd/app: additional bind types
This adds optional and device mount points.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-20 01:51:57 +09:00
cat a7485d587a cmd/app: pass user-specified arguments
An extra argument is added to pad out argv0.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-20 01:44:47 +09:00
cat 4892beefc1 cmd/app: optionally override configured command
Useful for multiple applications sharing state.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-20 01:31:07 +09:00
cat 7ab54b8c94 internal/rosa: read overridden version string from source
This is more correct than the hardcoded string and is generally more robust against relative paths.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-20 01:18:12 +09:00
cat a4fab67811 internal/pkg: optionally exempt implementations from cures counter
This avoids holding up many slots with a long pipeline.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-20 01:03:28 +09:00
cat ed5cdd38a4 cmd/dist: build hsu separately
This program must be built with cgo disabled, and was missed when migrating build script.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-20 00:59:47 +09:00
cat f6318304ee hst: fix ephemeral overlay order
This is quite counterintuitive otherwise.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-20 00:20:31 +09:00
cat cb618093d5 hst: optionally disable file placement
This works around stubborn package managers.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-20 00:16:35 +09:00
cat b0b2471c0c cmd/app: include template name in container metadata
This helps disambiguate active mutable containers.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-19 23:36:31 +09:00
cat 344d2b8207 cmd/app: use ROSA_ prefix
This avoids awkward case-insensitive zsh completion.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-19 23:29:51 +09:00
cat 3938e8bce5 cmd/app: multiple template uppers
Having multiple environments is useful, and this was trivial to implement.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-18 03:51:49 +09:00
cat aee15b4f2a cmd/app: common configuration file
Generally useful for shared storage and environment.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-18 02:35:56 +09:00
cat 18b1103fdc internal/rosa/llvm: 22.1.7 to 22.1.8
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-17 21:49:38 +09:00
cat c5a02da0f0 internal/rosa/package/python: 3.14.5 to 3.14.6
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-17 21:49:07 +09:00
cat c0c2f3233a internal/rosa/package/util-linux: 2.42.1 to 2.42.2
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-17 21:44:47 +09:00
cat bda00ac90e internal/rosa/package/hakurei: 0.4.3 to 0.4.4
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-17 21:40:04 +09:00
cat 79342e3053 release: 0.4.4
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-17 21:07:22 +09:00
cat 825bf24731 nix: read version from cmd/dist
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-17 21:06:03 +09:00
cat 08112f0b90 hst: optionally cover /run/ early
This works around awkward root permissions.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-17 02:59:48 +09:00
cat e1a1e1e399 cmd/app: use ephemeral overlay root
This replaces autoroot.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-17 02:32:46 +09:00
cat 92b61889a6 hst: support ephemeral overlay mounts
This is useful for reusing a readonly template without autoroot.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-17 02:16:57 +09:00
cat 28e133c298 cmd/app: start application from configuration
This is currently not very usable due to hakurei immutable overlay mount limitations.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-17 01:54:29 +09:00
cat 323dcb2820 cmd/app: high-level app configuration syntax
This replaces the nixos module.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-17 01:50:53 +09:00
cat f46a0370a7 cmd/app: initial container template command
This program is an experimental frontend for cmd/hakurei. This serves as a short-term replacement of the nixos module and a testing environment to implement API useful to planterette.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-16 23:27:50 +09:00
cat 5ee66a86ee internal/rosa/python: respect toolchain opts
This was missed when migrating the pip helper.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-16 22:06:34 +09:00
cat d75b8b6e32 internal/rosa/package/tamago: 1.26.3 to 1.26.4
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-16 21:49:04 +09:00
cat 7c9481d38d internal/rosa/package/strace: 6.19 to 7.1
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-16 21:48:45 +09:00
cat 983ab4378f internal/rosa/package/nss: 3.124 to 3.125
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-16 21:48:26 +09:00
cat 5b5c096d31 internal/rosa/package/iproute2: 7.0.0 to 7.1.0
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-16 21:48:04 +09:00
cat 5f49127120 internal/rosa/package/python: pytest 9.0.3 to 9.1.0
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-16 21:47:40 +09:00
cat 164f8c873d internal/rosa/package/gcc: binutils 2.46.0 to 2.46.1
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-16 21:47:16 +09:00
cat 9274b642ec internal/rosa/package/kernel: 6.12.92 to 6.12.93
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-16 21:37:42 +09:00
cat 5992be3dd3 internal/rosa/package/python: add kernel-headers
Missing kernel headers implicitly disables many useful things. This change also enables PGO and installs symlink, since a rebuild is unavoidable.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-10 16:30:52 +09:00
cat c661a3b63a cmd/mbf: migrate shell to enter
This reduces duplicate code. This change also adds resolv.conf to the container.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-10 13:34:44 +09:00
cat df0bb877db internal/rosa: export etc native artifact
This is useful for external container tooling.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-10 13:26:38 +09:00
cat f333b8fbd6 cmd/mbf: register binfmt entry for shell
This fixes --arch for shell.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-10 12:51:09 +09:00
cat 928a9f61e9 cmd/hsu: remove parent check
This check serves no real purpose and only makes it more difficult to start containers.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-09 18:08:17 +09:00
cat ce06539eca internal/rosa: expose supported architectures
This information is useful to external tooling and makes a lot more sense in this package than cmd/mbf. This change also fixes non-native artifact resolution during clean.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-09 16:05:04 +09:00
cat 69908e5a41 internal/rosa: remove external toolchain reference
This should have used toolchain passed as the argument and was mistakenly never changed when migrating to late evaluation.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-09 15:58:02 +09:00
cat b5445573a8 internal/rosa/package/ninja: work around test suite bug
The test suite hard codes /bin/echo.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-08 18:43:42 +09:00
cat f869ff95a1 all: apply modernisers
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-08 14:58:24 +09:00
cat 725f2e0ef3 internal/rosa/package/wayland: wayland-protocols 1.48 to 1.49
This finally eliminates the backport patch.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-08 13:45:36 +09:00
cat 4ffa20cd3f cmd/mbf: custom azalea path
This enables out-of-tree packaging.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-08 13:42:06 +09:00
cat 38450db74a internal/rosa: access backing storage through fs
This is more versatile than hardcoding the os.Root implementation.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-07 22:08:57 +09:00
cat 9344f694c7 internal/pkg: defer directory permissions
This allows creation of directory structures with awkward permission bits.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-07 20:26:55 +09:00
cat e8bb5a622d internal/rosa: mirror service via external cache
This provides an authenticated implementation of the external cache.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-07 19:25:11 +09:00
cat 22e508fe17 internal/pkg: expose measured reader to extern status
This is always required by the implementation.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-07 16:14:54 +09:00
cat b18ecf5832 nix: work around systemd nondeterminism
NixOS switched to systemd initramfs by default.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-07 14:10:06 +09:00
cat ec29e755fb internal/pkg: replace outcomes from external cache
This is primarily useful for implementing a mirror service. This change also works around the zero-dependency FloodArtifact edge case.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-07 13:52:26 +09:00
cat 9aaf160ff4 internal/pkg: do not hold up cures during status link
This is a bunch of string operation and a single syscall. Do not hold up queue here.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-07 02:28:45 +09:00
cat e192fca762 internal/pkg: check for unclean shutdown
This avoids running into nasty surprises opening a cache that suffered unclean shutdown due to power loss. All other parts of the cache are not prone to inconsistent state.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-07 01:21:00 +09:00
cat 7eafc7b1e4 nix: update flake lock
Was unfortunately not able to implement vm test suite before this release. Hopefully the last nixos update we have to follow.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-06 13:14:09 +09:00
cat 282462c2f0 internal/rosa/package/mesa: 26.1.1 to 26.1.2
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-05 09:23:40 +09:00
cat d9f522d648 internal/rosa/package/libinput: 1.31.2 to 1.31.3
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-05 09:23:11 +09:00
cat a0b0c7ecc9 internal/rosa/package/libdrm: 2.4.133 to 2.4.134
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-05 09:22:50 +09:00
cat 2b8809da7a internal/rosa/package/hwdata: 0.407 to 0.408
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-05 09:22:28 +09:00
cat 84cda19d63 internal/rosa/package/harfbuzz: 14.2.0 to 14.2.1
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-05 09:22:08 +09:00
cat 154ab953c1 internal/rosa/package/fontconfig: 2.18.0 to 2.18.1
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-05 09:21:43 +09:00
cat 34e11dd312 internal/rosa/package/python: hatchling 1.16.5 to 1.17.0
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-05 09:21:10 +09:00
cat 140cb3cc47 internal/rosa/package/python: trove-classifiers 2026.5.22.10 to 2026.6.1.19
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-05 09:20:42 +09:00
cat 82c974d656 internal/rosa/package/xkbcommon: 1.13.1 to 1.13.2
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-05 09:20:12 +09:00
cat 8c17f201e5 internal/rosa/package/x: xwayland 24.1.11 to 24.1.12
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-05 09:19:46 +09:00
cat 63e0457538 internal/rosa/package/x: xserver 21.1.22 to 21.1.23
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-05 09:19:22 +09:00
cat ca93264c1f internal/rosa/package/dtc: 1.8.0 to 1.8.1
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-05 09:18:53 +09:00
cat 94173eafff internal/rosa/llvm: 22.1.6 to 22.1.7
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-04 20:13:26 +09:00
cat e28c4aa3c0 internal/rosa/package/kernel: 6.12.91 to 6.12.92
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-04 20:10:27 +09:00
cat 8e8410ce38 internal/pkg: archive unpack artifact
This unpacks an internal/pkg archive stream used in the upcoming mirror service.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-04 19:46:36 +09:00
cat 8fb6fdaa80 internal/pkg: prefix reporting names
This reads better than suffixes.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-04 19:05:36 +09:00
cat db69dcf0be internal/pkg: remove tar built-in decompressor
This is replaced by decompressArtifact and is no longer necessary.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-04 18:54:43 +09:00
cat 76c1fb84c8 internal/pkg: stream decompress artifact
The tarArtifact predates FileArtifact pipelining. This migrates decompression and buffering into a standalone artifact implementation.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-04 18:33:04 +09:00
cat 729be19af3 internal/pkg: rename archive checksum helpers
These names are more consistent with other helper names, so rename them while the API is still internal.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-04 14:13:20 +09:00
cat 4d04f86f4a internal/rosa/go: 1.26.3 to 1.26.4
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-03 16:18:04 +09:00
cat 42cea1e7c6 internal/pkg: streaming archive reader/writer
This is much more robust and efficient than the simple buffering implementation for larger files. Allocations happen almost exclusively in WalkDir.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-03 16:00:36 +09:00
cat 83498b5a8a cmd/mbf: keep non-native entries alive
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-02 16:06:04 +09:00
cat 9e824452bd internal/pkg: expose snapshot of binfmt entries
This is otherwise not externally accessible. The resulting map can be safely mutated.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-02 16:05:09 +09:00
cat 56937ac396 internal/rosa: populate opts of cloned S
This was missed when migrating opts into S.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-02 16:00:51 +09:00
cat 6c2f7089b6 internal/pkg: destroy unreachable status entries
These must be destroyed alongside their corresponding identifier or substitute entries to avoid inconsistent state.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-02 15:50:30 +09:00
cat 74c18390b4 internal/pkg: correctly scrub substitute status
Scrubbing for status predates substitutes. This change fixes scrub handling of substitute status entries.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-02 15:37:55 +09:00
cat 1490b32387 cmd/mbf: garbage collection commands
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-02 13:37:46 +09:00
cat fbd2329d50 internal/pkg: garbage collection
This destroys cache entries not referred to by user-specified artifacts and optionally their inputs.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-02 13:28:24 +09:00
cat f398f71fa9 internal/pkg: input iterator via IR cache
Primarily useful for garbage collection.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-31 14:19:27 +09:00
cat 4d017b1309 internal/rosa/package/rsync: annotate blocked update
Despite rsync being practically feature complete, with minimal changes in many years, it recently had a large number of poor quality AI-generated changes, with the first release including them apparently being 3.4.2. Release 3.4.3 then introduced a dependency on kernel-headers, creating a dependency loop that prevented directly upgrading to it. This change annotates the blockage since it is not worth working around the dependency loop for AI-generated garbage.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-30 23:15:04 +09:00
cat cd1d447664 internal/rosa/package/rsync: 3.4.2 to 3.4.1
This appears to be the last release not to contain AI slop.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-30 19:10:40 +09:00
cat 8b87e0eb76 internal/rosa: annotate blocked updates
These situations, while unfortunate, are inevitable at a larger scale. This change enables annotation and optional hiding of blocked updates.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-30 18:56:55 +09:00
cat f4215ddda5 internal/rosa/package/qemu: 11.0.0 to 11.0.1
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-28 12:16:55 +09:00
cat 652b4c2ba0 internal/rosa/package/gnu: parallel 20260422 to 20260522
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-28 12:16:05 +09:00
cat 75715f4590 cmd/earlyinit: mount /dev/shm
Required by many programs.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-27 23:59:48 +09:00
cat 87c3b3663d cmd/earlyinit: improve change message formatting
This is significantly more readable.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-27 23:51:46 +09:00
cat 6d792023b2 internal/rosa/package: seatd
Required by wlroots sessions.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-27 23:17:33 +09:00
cat 3e62cf379f internal/rosa/package: libliftoff
Wanted by wlroots.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-27 23:07:53 +09:00