aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal
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-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-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-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>
2026-01-11container/check: return error backed by string typeOphestra
The struct turned out not necessary during initial implementation but was not unwrapped into its single string field. This change replaces it with the underlying string and removes the indirection. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-11internal/pkg: compare interfaces for host netOphestra
An upcoming improvement in the container init makes the current host net check return the same result for both cases. This change Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-01-09internal/pkg: pass context to file cureOphestra
This removes the left over embedded contexts. Signed-off-by: Ophestra <cat@gensokyo.uk>