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
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
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
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
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
f5e9a0c04e
internal/pkg: destroy new substitution status on fault
...
This avoids leaving behind the substitution status path of a faulted cure.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-23 01:31:13 +09:00
cat
3bd4ef616c
internal/pkg: report errors exiting cure
...
This makes ongoing errors more obvious when multiple failures occur.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-23 01:25:42 +09:00
cat
70f977627d
internal/pkg: arch-specific expected offline substituted
...
IR includes the target architecture name.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-22 01:51:15 +09:00
cat
a759cf3666
internal/pkg: check exec substitution
...
This relies on the testtool having ident as relevant input to assert successful substitution.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-13 19:43:53 +09:00
cat
8c2dd3e984
internal/pkg: verify status kind
...
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 >
2026-05-13 19:27:58 +09:00
cat
67038d5af4
internal/pkg: log fault in tests when available
...
This would otherwise only be available in verbose output, interleaved with everything else.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-13 18:58:18 +09:00
cat
f2f1726190
internal/pkg: record cure faults
...
These are useful for troubleshooting. This change records them in a separate directory.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-13 17:58:18 +09:00
cat
f63203cb0a
internal/pkg: populate substitute status
...
These are not created when taking the fast path, but should be inherited from the alternative.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-13 16:16:37 +09:00
cat
4bede7ecdd
internal/pkg: discontinue DCE resolution on signal
...
This serves as a stopgap measure to skip long-running DCE resolutions.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-13 00:29:01 +09:00
cat
487a03b5a3
internal/pkg: deduplicate DCE by ident
...
This eliminates edge cases where target artifacts do not compare equal.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-13 00:18:27 +09:00
cat
8f3c22896a
internal/pkg: DCE benchmark unwrap only
...
This eliminates noise at lower depths.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-12 19:56:59 +09:00
cat
a167c1aba5
internal/pkg: hold artifact in DCE
...
This is significantly slower but enables much better error reporting.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-12 19:45:25 +09:00
cat
a6008ef68b
internal/pkg: benchmark early DCE
...
This error has never had decent performance, now is a good time to improve that.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-12 18:59:25 +09:00
cat
688d43417b
internal/pkg: rename measured exec type
...
This type is no longer exclusive to KindExecNet.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-12 15:23:33 +09:00
cat
6643cfbeee
internal/pkg: optionally measure exec artifact
...
Useful for verifying deterministic output without enabling network access.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-12 15:11:17 +09:00
cat
6e113b8836
internal/pkg: content-based dependency substitution
...
This change introduces a new fast path for FloodArtifact. It is taken when a curing artifact has identical-by-content controlled relevant inputs and are otherwise identical to an already-cured artifact.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-12 00:19:42 +09:00
cat
8f727273ef
internal/pkg: add riscv64 sums
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-10 17:12:30 +09:00
cat
d0a63b942e
internal/pkg: add arm64 sums
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-10 16:42:42 +09:00
cat
8d72b9e5bd
internal/pkg: optionally register binfmt
...
This transparently supports curing foreign exec artifacts.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-07 19:43:06 +09:00
cat
8a3c3d145a
internal/pkg: correctly generate cure expects
...
This needs to dereference the identifier symlink.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-07 15:57:45 +09:00
cat
917be2de93
internal/pkg/exec: close early failure before wait
...
This avoids a deadlock on an early container failure.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-06 18:38:16 +09:00
cat
b0d06b67dc
internal/pkg: centralise exec testdata checksums
...
This significantly reduces maintenance burden.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-06 06:37:58 +09:00
cat
dfd26abf6c
internal/pkg: improve output measuring
...
This significantly improves readability and maintainability.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-06 05:44:04 +09:00
cat
5a26895a22
internal/pkg: optionally suppress init verbosity
...
This flag applies to every exec artifact cured by the cache. It has no effect on cure outcome.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-05 20:03:06 +09:00
cat
da11b26ec1
container/initoverlay: configure via fsconfig
...
This works around the page size limit at the cost of negligible performance regressions.
Closes #34 .
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-04 02:29:56 +09:00
cat
ceb4d26087
internal/pkg: record cache variant on-disk
...
This makes custom artifacts much less error-prone to use.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-04-23 00:53:21 +09:00
cat
9e752b588a
internal/pkg: drop cached error on cancel
...
This avoids disabling the artifact when using the individual cancel method. Unfortunately this makes the method blocking.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-04-18 03:24:48 +09:00
cat
27b1aaae38
internal/pkg: pending error alongside done channel
...
This significantly simplifies synchronisation of access to identErr.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-04-18 03:10:37 +09:00
cat
9e18de1dc2
internal/pkg: flush cached errors on abort
...
This avoids disabling the artifact until cache is reopened. The same has to be implemented for Cancel in a future change.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-04-18 02:59:44 +09:00
cat
30a9dfa4b8
internal/pkg: abort all pending cures
...
This cancels all current pending cures without closing the cache.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-04-17 22:40:35 +09:00
cat
3942272c30
internal/pkg: fine-grained cancellation
...
This enables a specific artifact to be targeted for cancellation.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-04-17 19:33:21 +09:00
cat
0ff7ab915b
internal/pkg: move IR primitives out of cache
...
These are memory management and caching primitives. Having them as part of Cache is cumbersome and requires a temporary directory that is never used. This change isolates them from Cache to enable independent use.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-04-17 01:02:13 +09:00
cat
3352bb975b
internal/pkg: job count in container environment
...
This exposes preferred job count to the container initial process.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-04-15 15:49:21 +09:00
cat
f7f48d57e9
internal/pkg: pass impure job count
...
This is cleaner than checking cpu count during cure, it is impossible to avoid impurity in both situations but this is configurable.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-04-15 15:36:44 +09:00
cat
b587caf2e8
internal/rosa: assume file source is xz-compressed
...
XZ happens to be the only widely-used format that is awful to deal with, everything else is natively supported.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-04-13 15:07:30 +09:00
cat
b390640376
internal/landlock: relocate from package container
...
This is not possible to use directly, so remove it from the public API.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-04-10 23:56:45 +09:00
cat
e4355279a1
all: optionally forbid degrading in tests
...
This enables transparently degradable tests to be forced on in environments known to support them.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-04-07 15:22:52 +09:00
cat
d7d42c69a1
internal/pkg: transparently degrade landlock in tests
...
This does not test package container, so should transparently cope with Landlock LSM being unavailable.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-04-07 14:44:34 +09:00
cat
10f8b1c221
internal/pkg: optional landlock LSM
...
The alpine linux riscv64 kernel does not enable Landlock LSM, and kernel compilation is not yet feasible.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-04-07 12:44:07 +09:00