dpkg-deb prints a BARE VALUE when one control field is requested and "<Field>: <value>" when several are. Every reader was written for one shape and broke on the other, so no pool could be read and no pin could be matched against real files: - build-index.sh: kept the label, so "Package: curl" failed the name check and the pool came out empty -- the build refused with "no .deb files"; - add-packages.sh (read_deb): rejected every genuine .deb as an invalid name; (scan_existing): produced empty keys, so a version conflict went undetected and the same package was copied twice; - build-offline-repo.sh: compared a labelled value with a "package=version" pin, which can never match. A first attempt with `sed 's/^Field: //'` was wrong in the other direction: sed -v prints nothing when the pattern does not match, which emptied the single-field reads. The label is now dropped only when it is present (awk: if the first word ends with a colon), which leaves a bare value and a version like "1:2.3-4" untouched. Also fixed in build-index.sh: the foreign-file guard did not list repo-manifest.yaml, the record this script writes into the bundle itself, so every second build stopped on its own previous output. Accepting it is what makes a rebuild possible at all. Tests - The dpkg-deb stub now reproduces both shapes, the single- and the multi-field one. It emitted only one, which is exactly why this class stayed invisible while the suite was green. - The rebuild case mirrors the production layout (record inside the output directory) and is proven by mutation: removing repo-manifest.yaml from the guard's allow-list turns it red. |
||
|---|---|---|
| .. | ||
| autoinstall | ||
| enrollment | ||
| firstboot | ||
| iso | ||
| offline-repo | ||
| release | ||
| README.md | ||
Blueforce OS provisioning
Bu dizin işletim sistemi provisioning kapsamının sahibidir. Mevcut scripts/install/ uygulama bootstrap'ı olarak kalır ve burada taşınmaz.
Güvenlik sınırları:
- Bu iskelet cihaz kimliği, parola, private key, token veya bayiye özel veri içermez.
- Autoinstall V1 disk seçmez ve silmez;
interactive-sections: [storage]teknisyen seçimini zorunlu tutar. - Upstream ISO ve paketler örtük indirilmez. Her ISO işleminden önce açık SHA256 doğrulaması gerekir.
- Remaster araçları
xorrisoyoksa veya boot metadatası desteklenmiyorsa başarısız olur. - Firstboot sadece sekiz haneli bayi numarası biçimini denetler; kurucu veya enrollment çağrısı yapmaz.
Kontrol:
tests/check-provisioning-static.sh
LAB doğrulaması, hedef Ubuntu sürümü, boot menüsü entegrasyonu, gerçek identity storage ve enrollment taşıma güvenliği sonraki fazların açık işleridir.