aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/pkg
AgeCommit message (Collapse)Author
15 hourspkg: move from internalHEADstagingmasterdevelopOphestra
Closes #43. Signed-off-by: Ophestra <cat@gensokyo.uk>
15 hoursinternal/pkg: remove arch snapshot APIOphestra
This function has no current users and has no good use case, so remove it before the API is made stable. Signed-off-by: Ophestra <cat@gensokyo.uk>
3 daysinternal/pkg: treat bare carriage return as end-of-line markerOphestra
This avoids having progress indicators mess up logging. Signed-off-by: Ophestra <cat@gensokyo.uk>
5 dayscontainer: enter init path earlyOphestra
There is generally no use case where any setup is required before init, and requiring the explicit function call is error-prone and unnecessary. It also causes trouble with packages using a similar trick. This change moves argv0 check early and makes it an import side effect. The stub will be removed in v0.5. Signed-off-by: Ophestra <cat@gensokyo.uk>
10 daysinternal/pkg: eliminate gzip-derived identifiersOphestra
These test cases are fragile to changes in package compress/gzip. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-08-12internal/pkg: deduplicate unwrapped input errorsOphestra
This avoids repeating errors belonging to multiple instances of the same artifact in different locations in memory. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-08-12internal/pkg: in-flight error resolutionOphestra
The DCE is a slow and overcomplicated solution to a simple problem. This change replaces the DCE by resolving errors in-flight. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-31internal/pkg: cure entry/exit notificationOphestra
This enables cure status display without inspecting internal state. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-30internal/pkg: highlight miscellaneous verbose outputOphestra
These were missed when adding highlight for core cache verbose output. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-30internal/pkg: highlight cache verbose outputOphestra
This highlights sections of messages, increasing readability in some cases. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-30internal/pkg: optionally colour outputOphestra
This increases readability in some cases. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-25internal/pkg: skip character device nodesOphestra
This allows unpacking of tarballs containing these entries. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-25internal/pkg: decompress xz streamsOphestra
This uses a port of the public domain xz implementation. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-23internal/pkg: decompress zstd streamsOphestra
This uses internal/zstd until compress/zstd becomes available. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-23internal/pkg: optional executable filesOphestra
This enables a FileArtifact implementation to specify whether its resulting file should be executable. This change also implements shebang and ELF magic checks in the file artifact. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-23internal/pkg: implementation revisionsOphestra
This enables changing the behaviour of an artifact implementation without changing its IR structure. Unfortunately this changes the IR header structure resulting in many rebuilds. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-09internal/pkg: loadavg target in container environmentOphestra
This exposes preferred loadavg target to the container initial process. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-09internal/pkg: consolidate cache attributesOphestra
This makes the interface stable. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-08internal/pkg: optionally force implementation entryOphestra
For validation of build determinism. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-08internal/pkg: expose cure whenceOphestra
Useful for cure determinism validation of KindExec. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-07internal/pkg: optional shallow external cureOphestra
This saves time and is often more practical even for package maintainers. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-04internal/pkg: remove status acquisition from extern helperOphestra
Doing this together just makes it awkward to query status early, having to deal with cleaning up. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-04internal/pkg: move concurrent cure implementationOphestra
This is useful independent of cure and might replace the Collect hack. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-02internal/pkg: rename inputs methodOphestra
Inputs is more correct than dependencies in the current terminology. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-02internal/pkg: move outcome dereferencingOphestra
This prepares substitute computation for shallow extern replacements. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-02internal/pkg: cache extern responsesOphestra
This prepares substitute computation for shallow extern replacements. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-20internal/pkg: optionally exempt implementations from cures counterOphestra
This avoids holding up many slots with a long pipeline. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-10cmd/mbf: migrate shell to enterOphestra
This reduces duplicate code. This change also adds resolv.conf to the container. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-08all: apply modernisersOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-07internal/pkg: defer directory permissionsOphestra
This allows creation of directory structures with awkward permission bits. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-07internal/pkg: expose measured reader to extern statusOphestra
This is always required by the implementation. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-07internal/pkg: replace outcomes from external cacheOphestra
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-07internal/pkg: do not hold up cures during status linkOphestra
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-07internal/pkg: check for unclean shutdownOphestra
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-04internal/pkg: archive unpack artifactOphestra
This unpacks an internal/pkg archive stream used in the upcoming mirror service. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-04internal/pkg: prefix reporting namesOphestra
This reads better than suffixes. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-04internal/pkg: remove tar built-in decompressorOphestra
This is replaced by decompressArtifact and is no longer necessary. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-04internal/pkg: stream decompress artifactOphestra
The tarArtifact predates FileArtifact pipelining. This migrates decompression and buffering into a standalone artifact implementation. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-04internal/pkg: rename archive checksum helpersOphestra
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-03internal/pkg: streaming archive reader/writerOphestra
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-02internal/pkg: expose snapshot of binfmt entriesOphestra
This is otherwise not externally accessible. The resulting map can be safely mutated. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-02internal/pkg: destroy unreachable status entriesOphestra
These must be destroyed alongside their corresponding identifier or substitute entries to avoid inconsistent state. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-02internal/pkg: correctly scrub substitute statusOphestra
Scrubbing for status predates substitutes. This change fixes scrub handling of substitute status entries. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-02internal/pkg: garbage collectionOphestra
This destroys cache entries not referred to by user-specified artifacts and optionally their inputs. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-31internal/pkg: input iterator via IR cacheOphestra
Primarily useful for garbage collection. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-23internal/pkg: destroy new substitution status on faultOphestra
This avoids leaving behind the substitution status path of a faulted cure. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-23internal/pkg: report errors exiting cureOphestra
This makes ongoing errors more obvious when multiple failures occur. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-22internal/pkg: arch-specific expected offline substitutedOphestra
IR includes the target architecture name. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-13internal/pkg: check exec substitutionOphestra
This relies on the testtool having ident as relevant input to assert successful substitution. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-13internal/pkg: verify status kindOphestra
While it is still impossible to reliably determine the expected contents of these status files, this checks their nature for expected substitution behaviour. Signed-off-by: Ophestra <cat@gensokyo.uk>