diff --git a/.gitignore b/.gitignore index f10d1ff..16f7982 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,10 @@ # Local agent/plan state — never committed .hermes/ +# Scratch scripts and build experiments (package collection, pin extraction). +# Nothing here ships; the reviewed tooling lives in provisioning/offline-repo/. +/tmp/ + # --------------------------------------------------------------------------- # Field OS build artifacts. # These are large, generated, and reproducible from a verified upstream ISO. diff --git a/provisioning/offline-repo/build-index.sh b/provisioning/offline-repo/build-index.sh index 297207d..e7098da 100755 --- a/provisioning/offline-repo/build-index.sh +++ b/provisioning/offline-repo/build-index.sh @@ -34,7 +34,15 @@ OUTPUT="$SCRIPT_DIR/built" # BF_MANIFEST_DIR points a test run at a fixture directory; a real build always # reads the reviewed manifests next to this script. MANIFEST_DIR="${BF_MANIFEST_DIR:-$SCRIPT_DIR/manifests}" -MANIFEST_OUT="$SCRIPT_DIR/repo-manifest.yaml" +# The repository record belongs to the build it describes, so it is written +# inside the output directory by default, resolved once OUTPUT is final (see the +# guard below). It deliberately does NOT default to the shipped +# repo-manifest.yaml next to this script: that file is the reviewed contract +# template (state: UNBUILT, packages: []) which documents the schema and which +# the static suite asserts on, and a default-path write silently replaced it with +# BUILT rows twice. Keeping the two paths distinct is what makes it safe; +# --manifest-out still overrides the destination explicitly. +MANIFEST_OUT='' TARGET_ARCH='amd64' ALLOWED_ARCH_RE='^(amd64|all)$' PACKAGE_NAME_RE='^[a-z0-9][a-z0-9+.-]*$' @@ -56,7 +64,8 @@ Seçenekler: --packages DIZIN Kaynak paket dizini (varsayılan: