aboutsummaryrefslogtreecommitdiffstats
path: root/.extras/test-build
AgeCommit message (Collapse)AuthorFilesLines
2026-07-14extract docker tooling to ../sbo-dockerbuildDanilo M.1-864/+0
The test-build tool and image-builder chain grew from a .extras/ helper into a standalone toolchain, now maintained in its own repo (../sbo-dockerbuild). Remove them here (scripts, examples, design docs) and repoint CLAUDE.md: test-building is now done with the installed `test-build` CLI, deps resolved from the SBo tree, both trees verified per bump. Package-maintenance files stay: nvchecker.toml, hooks/, assets/. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-14test-build: add --keep to save the built target packageDanilo M.1-0/+14
Binary-repack packages (metasploit-framework-bin) need a post-install step on the host: install the package, then regenerate artifacts that require a live install (msfvenom bash-completion, man pages). This repo is deliberately outside the buildsystem workflow, so producing that package meant a manual root build here. --keep instead copies the built target .txz out to <data>/kept/ (path printed) so it can be installed on the host directly from a normal test run. The build is otherwise throwaway; deps are unaffected. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-14test-build: variant-namespace the dep cache and prune stale digestsDanilo M.1-3/+19
The dep cache was keyed on image digest alone, so a nightly image rebuild orphaned the old digest's cache dir forever (disk creep). Namespace it as <variant>-<digest> and, on each run, prune superseded digests of the SAME variant. Scoping to the variant means a --current run does not wipe the 15.0 cache, so testing both trees back-to-back still reuses built deps (e.g. google-go-lang). Correctness was already fine (digest self-invalidates); this just stops the accumulation, matching sbo-batch-test's invalidate-on-base-update. Add three prune self-checks. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-14test-build: target the local SlackBuild (CWD/path), deps from the treeDanilo M.1-3/+39
The tool resolved the target package from the SBo tree, so it tested the already-published version, not the local edit under test. Useless for the maintenance workflow, where the point is to verify an edited SlackBuild while its deps come from the tree. resolve_target_dir now takes the target from where you are: - a path (absolute, ./x, or containing /): that dir - a bare name: ./<name>/ under CWD, else CWD itself if it IS <name>/ Repo-agnostic; deps still resolve from the configured SBo tree via find_slackbuild_dir. Add four target-resolution self-checks. Also source /etc/profile.d/*.sh in the build container before running the SlackBuild: the heredoc is a non-login shell, so a bare `go build` picked the system gccgo 1.18 instead of the installed google-go-lang; sourcing profile.d activates dep-provided env (GOROOT/PATH, cargo, ...) as a real login build would. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-14test-build: auto-pull the image from the LAN registry when missingDanilo M.1-10/+16
require_image now docker-pulls ACTIVE_IMAGE (a fully-qualified registry ref) if it is not already local, instead of erroring out and telling the user to pull by hand. Only errors if the pull itself fails. Pull-if-missing only: a stale local tag is not refreshed (noted for a future --pull flag). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-14test-build: fix container stdin and move lint in-containerDanilo M.1-23/+23
Two bugs surfaced by the first real end-to-end run: 1. docker run lacked -i, so bash -s got no stdin and the heredoc build script was silently discarded (0s BUILD-FAILED, empty log). Add -i. 2. sbopkglint ran host-side, where it shells out to sudo to installpkg the package for inspection; Slackware has no configured sudo, so lint errored (lxsudo not found / password required). Move the lint into the build container (target only, gated on IS_TARGET), where it runs as root with the baked-in tool and needs no sudo. The host now just reads the LINT-CLEAN / LINT-FINDINGS marker from the log for its summary. Drop the dead host-side lint_pkg function. Verified: feroxbuster builds and lints clean end-to-end against sbo-testbuild:current in 72s. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-14test-build: make drop: satisfy a dep at resolution timeDanilo M.1-0/+6
Previously drop: only filtered the resolved build order, so an external dep with no dir in the tree (a 15.0-only SBo package like rust-opt) was flagged UNMET before the order filter ran, and drop: could never rescue it. Move the OV_DROP check into _resolve_visit: a dropped token is now skipped entirely (no recurse, no UNMET, no order entry), satisfying 15.0-only deps that the -current base already provides. Still inert on 15.0. Add self-check coverage and clarify overrides.example. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-14test-build: implement installed_in_base from image package dbDanilo M.1-7/+27
Replace the stub with a lazy load of the active image's /var/log/packages: strip each entry's -<ver>-<arch>-<build> tail to the bare package name and match REQUIRES tokens against that set, so a dep the full-install image already provides resolves as met instead of UNMET. Loaded once per run via docker run --rm; TB_BASE_PKGS/TB_BASE_LOADED are test-seedable to bypass docker. Add logic-check coverage. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-13test-build: document installed_in_base deferralDanilo M.1-3/+7
2026-07-13test-build: fix empty-order corruption when all deps droppedDanilo M.1-1/+8
2026-07-13test-build: wire main, image-presence check, target lookupDanilo M.1-0/+37
2026-07-13test-build: run_target orchestration + summary + confirmDanilo M.1-0/+147
2026-07-13test-build: container build step (build_one via docker)Danilo M.1-0/+171
2026-07-13test-build: port BLOCKED-BY-DEP propagationDanilo M.1-0/+17
2026-07-13test-build: port dep cache, namespaced by image digestDanilo M.1-0/+86
2026-07-13test-build: current-vs-stable override engineDanilo M.1-0/+60
2026-07-13test-build: port SBo lookup + dependency resolverDanilo M.1-0/+96
2026-07-13test-build: config, arg parsing, version selectionDanilo M.1-1/+102
2026-07-13test-build: scaffold script + self-checkDanilo M.1-0/+40
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>