2
0
mirror of https://github.com/xcat2/xcat-dep.git synced 2026-09-12 04:26:25 +00:00
Files
xcat-dep/elilo
Daniel Hilst c808e06da3 fix(xcat-dep): address code review — run lock, loud tree wipes, wire tested genesis copier, dedupe pool, honest Release arches
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>
2026-08-12 11:49:54 -03:00
..
2011-08-19 18:25:10 +00:00
2011-09-29 19:42:03 +00:00
2026-06-20 17:28:16 -03:00

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>