mirror of
https://github.com/xcat2/xcat-dep.git
synced 2026-09-12 04:26:25 +00:00
2a4eb248b4
PR #65 changed where the OpenEmbedded Genesis packages live. On the RPM side they are published once under xcat-dep/common; on the APT side, once under pool/main/xcat-genesis-openembedded, with every suite's Packages index pointing at that one copy instead of each suite carrying its own. It made that change in build-apt-repo.sh -- the script this branch deletes, having absorbed apt assembly and signing into sbuild-all.pl -- so the layout is ported here rather than lost. sbuild-all.pl: - --genesis-release now rebuilds a single shared pool inside the side tree and indexes it into every suite, so a release is stored once rather than once per codename. The debs are Architecture:all and identical everywhere; the previous per-suite copy multiplied hundreds of megabytes by the number of suites. - Because every suite's index points into that pool, publishing a release must cover every suite: a run whose --dists omits one is refused, instead of leaving that suite indexing files the new release retired. - OpenEmbedded Genesis debs are dropped from suite pools unconditionally now, not only when a release is being published -- they belong to the shared pool. - Published files get an explicit mode 0644: they are served by a web server running as another user, and inheriting the builder's umask is how that breaks. master's transaction machinery (per-file backups, --force-unlock recovery of an interrupted publisher) is deliberately NOT ported: it exists because the shell publisher writes into the live repository. sbuild-all.pl assembles a complete side tree, gates it, and renames it into place under one global publish lock, so a failed or killed run leaves the published repository untouched and there is no half-written state to recover. The tests assert that guarantee directly. The APT consumer tests now drive sbuild-all.pl's publish path with master's new expectations: the shared pool holds one complete release, suite pools hold none of it, every suite/arch index carries the shared Filename, a later single-suite rebuild keeps using the pool, a partial-suite release is refused, and a publication that cannot be signed leaves the packages, indexes and key exactly as they were. Full suite green: 416 tests on xcat-master (rome01, EL10) and 414 on xcat-master-ub, where the APT cases actually run. Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>