aboutsummaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
2026-01-21internal/rosa/gnu: run checksOphestra
Checks are not run for gettext for now since it contains broken tests. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-21internal/rosa: gettext artifactOphestra
Compile time dependency of git. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-21internal/rosa: autoconf artifactOphestra
Required by git to reconfigure some options. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-21internal/rosa: m4 artifactOphestra
Autotools dependency. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-21internal/rosa: perl artifactOphestra
This runs without tests for now, will be enabled after some toolchain patches. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-21internal/rosa/llvm: run unit and regression testsOphestra
Two tests are marked expected to fail for Rosa OS. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-21internal/rosa/llvm: patch source treeOphestra
A few patches are required for disabling broken tests and changing default search paths. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-21internal/rosa/cmake: chmod entire source treeOphestra
This works around builds that traverse out of the appended pathname. 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-21internal/pkg: report dependency graph sizeOphestra
This is an interesting value to know when profiling. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-21internal/rosa: include iana-etcOphestra
This is used by some programs and will likely end up in the Rosa OS system image anyway. 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-21internal/pkg: allow user namespace creationOphestra
No good reason to filter this in the execArtifact container, and the extended filter breaks certain programs. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-20internal/rosa: bootstrap go toolchainOphestra
This runs without tests for now. Will be fixed in a later commit. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-19internal/rosa/cmake: use hardcoded build directoryOphestra
This eliminates some nondeterminism. Still getting 3-stage non-determinism in runtimes and clang, though. 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-19internal/rosa: parallel cmake bootstrapOphestra
This takes a very long time otherwise. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-19internal/rosa: standard toolchain via 2-stage bootstrapOphestra
This implements the 2-stage bootstrap build without clumping the stages together in the cmake target. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-19internal/rosa: llvm bootstrap artifactsOphestra
This bootstraps the LLVM toolchain across multiple artifacts. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-19internal/rosa: llvm artifact abstractionOphestra
The llvm bootstrap is multi-stage by nature, and cannot be completed in a single artifact. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-19internal/rosa: cmake abstractionOphestra
This is a helper for generating cure script for a cmake-based project. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-19internal/rosa: ninja artifactOphestra
Generated by cmake, recommended format for llvm toolchain. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-19internal/rosa: cpython artifactOphestra
Dependency of llvm build scripts, also an optional cure dependency of ninja. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-19internal/rosa: zlib artifactOphestra
Dependency of llvm build scripts. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-19internal/rosa: cmake artifactOphestra
This is required for compiling the toolchain and many other programs. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-19internal/rosa: musl libc artifactOphestra
This will likely be included in Rosa OS. The installation is modified to be entirely contained in prefix. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-19internal/rosa: busybox from sourceOphestra
This will be part of the standard toolchain. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-19internal/rosa: kernel headersOphestra
This is required by the toolchain and many other programs. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-19internal/rosa: minimal rsync artifactOphestra
For installing kernel headers. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-19internal/rosa: bootstrap on gentoo stage3Ophestra
This contains a fully working musl+llvm toolchain and many build systems in a pretty small package. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-19internal/rosa: GNU make artifactOphestra
This compiles GNU make from source. This is unfortunately required by many programs, but is a cure dependency only. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-19internal/rosa: toolchain abstractionOphestra
This provides a clean and easy to use API over toolchains. A toolchain is an opaque set of artifacts and environment fixups. Exported toolchains should be functionally indistinguishable from each other. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-19internal/rosa: busybox binary artifactOphestra
This installs a statically linked busybox binary distribution for decompressing the gentoo stage3 tarball, since there is no native xz implementation. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-18internal/rosa: static etc artifactOphestra
This places configuration files with hardcoded content in /etc to silence test suites expecting them to be present. 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>
2026-01-17internal/pkg: deduplicate dependency errorsOphestra
This significantly simplifies error reporting for caller. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-16internal/pkg: lock on-filesystem cacheOphestra
Any fine-grained file-based locking here significantly hurts performance and is not part of the use case of the package. This change guarantees exclusive access to prevent inconsistent state on the filesystem. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-16internal/pkg: parallelise scrubOphestra
This significantly improves scrubbing performance. Since the cache directory structure is friendly to simultaneous access, this is possible without synchronisation. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-15internal/pkg: cache computed identifiersOphestra
This eliminates duplicate identifier computations. The new implementation also significantly reduces allocations while computing identifier for a large dependency tree. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-14internal/pkg: optional dependency graph size limitOphestra
This provides a quick check against cyclic dependencies without hurting cure performance. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-13internal/pkg: zero atime and mtimeOphestra
This is significantly more practical than keeping track of them in directory flattening format and setting this in every non-artifact implementation. Only tarArtifact can have meaningful deterministic checksums that are not zero and zeroing them still keeps autotools happy. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-13internal/pkg: remove typeflag promotion loopOphestra
Expanding this enables sharing of code common between types. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-12internal/pkg: exec prefix verbose outputOphestra
This proxies program output through msg with a name and fd prefix. This also avoids introducing additional information to the container via process stdout/stderr. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-12internal/pkg: cure completion verbose messagesOphestra
This reports cure completions to the user. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-12internal/pkg: optionally named static fileOphestra
These are generally for generating configuration files or build scripts, naming them is quite useful. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-12internal/pkg: caller-supplied reporting name for execOphestra
This does not have a reasonable way of inferring the underlying name. For zero value it falls back to base of executable pathname. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-12internal/pkg: append user-facing name in messagesOphestra
This makes verbose messages much more useful. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-11internal/pkg: exec with specific timeoutOphestra
This change also updates the documentation of NewExec. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-11internal/pkg: do not discard the result of compactOphestra
This result was mistakenly unused resulting in incorrect identifiers for artifacts with duplicate dependencies. Signed-off-by: Ophestra <cat@gensokyo.uk>