mirror of
https://github.com/xcat2/xcat-dep.git
synced 2026-09-12 04:26:25 +00:00
c808e06da3
Review follow-up for the Ubuntu sbuild matrix:
- Add a fail-fast exclusive flock over the whole run (<output-root>/.sbuild-all.lock,
file-scoped handle) so two overlapping runs can't corrupt the shared staging/apt
tree -- this is the root of the observed 'remove_tree .../staging/<cn>/<arch>:
Directory not empty' (an NFS silly-rename from a concurrent run).
- wipe_tree(): remove_tree that captures {error} and dies loud, so an ENOTEMPTY no
longer carps-and-continues leaving stale debs; used for all staging/pool/dists wipes.
- Wire the tested, hash-based cross_copy_genesis_deb into build_genesis (was a naive
glob+copy, so the unit-tested stale-dropping copier was dead code); remove the
genuinely-unused deb_snap_version/rewrite_changelog_top helpers + their subtests
(compiled deps intentionally ship their tracked changelog version).
- Dedupe assemble_apt on binary Package+Architecture (keep highest via
dpkg --compare-versions) so a double-produced genesis can't land two versions in
the pool, independent of the --skip-genesis contract.
- Derive Release Architectures from the arches actually staged (non-empty
binary-<arch>/Packages), not a hard-coded 'amd64 ppc64el'.
- goconserver: guard 'go mod init' when a go.mod exists (+ TODO to commit go.sum for
the pinned SHA). Accept-and-ignore the unused per-package --log-dir/--build-number/
--skip-install flags (documented). Remove orphaned make_deb.sh dispatchers
(build-debs-all, build.sh, ipmitool/build.sh) + update the READMEs.
perl -c clean; prove t/sbuild-all.t: 71/71.
Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
To build elilo-xcat RPM: ------------------------ 1. Login to RHEL7.6 x86 node 2. yum install git 3. git clone https://github.com/xcat2/xcat-dep 4. cd xcat-dep/elilo 5. yum install gcc 6. yum install ./gnu-efi-3.0g-2.el6.x86_64.rpm 7. cp elilo-xcat.spec /root/rpmbuild/SPECS 8. cp elilo-3.14-source.tar.gz /root/rpmbuild/SOURCES 9. cp *.patch /root/rpmbuild/SOURCES 10. rpmbuild -ba /root/rpmbuild/SPECS/elilo-xcat.spec 11. Verify contents with rpm -qlp /root/rpmbuild/RPMS/noarch/elilo-xcat-3.14-6.noarch.rpm To build elilo-xcat DEB: ------------------------ The Ubuntu/Debian build is now driven by the top-level sbuild-all.pl orchestrator, which builds each package inside the matching <codename>-<arch>-sbuild chroot from its maintained debian/ packaging (build-deps such as quilt are installed inside the chroot automatically). The former ./make_deb.sh has been removed. 1. Login to an Ubuntu x86 build host 2. git clone https://github.com/xcat2/xcat-dep; cd xcat-dep 3. Build every package for a codename: ./sbuild-all.pl --arch amd64 --dists noble or this package alone: ./elilo/sbuild.pl --codename noble --arch amd64 --result-dir <dir> 4. Verify contents with dpkg -c <deb file>