From 198499d28f69abd20584a2eb88d9e1dd29e9dbec Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Wed, 24 Jun 2026 15:21:51 +0200 Subject: Externalize config; mirror mountpoint+auto-mount, MIRROR_TREE, --terse Config now lives outside the script in $SBO_BATCH_CONFIG (default ~/.config/sbo-batch-tester/config), sourced at load. Script ships empty defaults plus config.example as the template; require_config (in validate_env and init_base) hard-fails a real run when the config is missing or has not set SLACKWARE_BASE / LOCAL_MIRROR_15 / SBO_TREE_ROOTS. LOCAL_MIRROR_15 is now the NFS mountpoint, not the tree root. The Slackware tree is derived as MIRROR_TREE=$LOCAL_MIRROR_15/slackware64-$VERSION (holds ChangeLog.txt, slackware64/, patches/); all mirror content reads use it. The mountpoint is checked with mountpoint -q and auto-mounted (mount $LOCAL_MIRROR_15) when the noauto fstab entry is not mounted, left mounted after the run. installpkg/upgradepkg run with --terse for cleaner output. Docs updated. Co-Authored-By: Claude Opus 4.8 --- README.md | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'README.md') diff --git a/README.md b/README.md index b29542c..6a15ff0 100644 --- a/README.md +++ b/README.md @@ -26,15 +26,22 @@ current-vs-15.0 drift bites. ## Prerequisites -You need three things in place, all configured in the CONFIG block at the top -of `sbo-batch-test`: +Configuration lives in an external file, not in the script. Copy `config.example` +to `~/.config/sbo-batch-tester/config` and edit it (the tool runs as root, so +that is `/root/.config/sbo-batch-tester/config`). Override the path with the +`SBO_BATCH_CONFIG` environment variable. You need three things set in it: 1. **`SLACKWARE_BASE`** - a LOCAL (non-NFS) full Slackware 15.0 install tree. This is the overlay lowerdir. It MUST be local (ext4/xfs). overlayfs over an NFS lowerdir is fragile and a known source of intermittent failures. -2. **`LOCAL_MIRROR_15`** - the NFS-mounted Slackware 15.0 mirror. Used only as a - package SOURCE to populate and patch `SLACKWARE_BASE`. Read-only is fine. +2. **`LOCAL_MIRROR_15`** - the NFS mountpoint for the Slackware 15.0 mirror. + Point it at the mount root itself; the actual tree (ChangeLog.txt, + slackware64/, patches/) is found one level down at + `$LOCAL_MIRROR_15/slackware64-$VERSION`. Used only as a package SOURCE to + populate and patch `SLACKWARE_BASE`. Read-only is fine. If the fstab entry is + `noauto`, the script auto-mounts it (`mount $LOCAL_MIRROR_15`) when absent and + leaves it mounted after the run. 3. **`SBO_TREE_ROOTS`** - one or more LOCAL SBo tree roots, resolved in order (first match wins). Standard SBo layout @@ -49,8 +56,8 @@ Populate from the NFS mirror with the FULL package set, not a minimal install. A minimal base causes false "missing dependency" results that would not happen on a normal user's full Slackware install. -Set `SLACKWARE_BASE` and `LOCAL_MIRROR_15` in the script's CONFIG block, then -run once as root: +Set `SLACKWARE_BASE` and `LOCAL_MIRROR_15` in your config file, then run once +as root: ```sh sbo-batch-test --init-base -- cgit v1.2.3