mirror of
https://github.com/xcat2/xcat-dep.git
synced 2026-09-11 20:16:26 +00:00
b4627bc227
The Ubuntu/Debian dependency build shipped as three bash scripts (build-dep-debs.sh, build-apt-repo.sh, mk-dep-chroots.sh) whose review (PR #63) surfaced correctness problems: partial/stale output could be published, the rpm->deb genesis conversion dropped the maintained package semantics (Depends/Breaks/Replaces + maintainer scripts), the arch matrix was invalid (x86-only syslinux/elilo/xnba treated as ppc64el packages, and Architecture:all packages with no single producer), several required failures exited zero, and the build/repo scripts disagreed on their staging path and codename set (focal missing from the assembler). Rewrite it as proper, unit-tested Perl mirroring the EL side (mockbuild-all.pl / MockBuildUtils.pm / <dep>/mockbuild.pl / t/*.t / packages-manifest.conf), sharing one CLI vocabulary: - BuildUtils.pm: shared, testable helpers + the canonical CLI spec, plus the Debian-specific helpers (out-of-tree changelog stamping, genesis control preservation, deb inspection, cross-arch genesis provisioning). - sbuild-all.pl: the orchestrator, absorbing all three shell scripts. Builds + validates into a fresh per-arch staging tree and only (re)assembles the published apt repo from validated staging -- so partial/failed output never ships and stale debs never accumulate. Auto-initializes the per-codename sbuild chroots on first run. Fails the whole run non-zero on any missing chroot/package/artifact or version-pin mismatch. - <dep>/sbuild.pl x7: per-package builders that drive each package's MAINTAINED debian/ in the matching chroot (never re-implemented), so the converted/built packages keep their control metadata and maintainer scripts. - debs-manifest.conf: per-[<codename>-<arch>] required set + version pins, encoding the per-arch package sets (x86 boot components built once on amd64 as the single producer; ppc64el builds only the arch-specific compiled deps). - t/sbuild-all.t: fixture tests for every pure helper. - goconserver/make_deb.sh: pin the upstream SHA instead of cloning a moving branch, so every matrix cell builds the same source (reproducible). Codename set unified across build, assembly, chroots and docs (focal IS supported). BUILD.md documents the new flow. Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
To make the conserver-xcat rpm, run: ./bldconserver.pl The original patches like initscript.patch and initscript1.patch have been replaced with initscript_8.2.1.patch, please follow the steps below to create patch for init script. 1. Copy conserver-8.2.1.tar.gz to a directory, say /root/conserverstart mkdir /root/conservertar cp conserver-8.2.1.tar.gz /root/conserverstart 2. Copy the initscript_8.2.1.patch to the same directory cp initscript_8.2.1.patch /root/conserverstart 3. Uncompress the conserver-8.2.1.tar.gz into two copies: tar zxvf conserver-8.2.1.tar.gz mv conserver-8.2.1 conserver-8.2.1-diffinit tar zxvf conserver-8.2.1.tar.gz 4. Patch the conserver.init with the original patch copied from Git repository cd /root/conservertar cat initscript_8.2.1.patch | /usr/bin/patch -s -p1 --fuzz=0 select conserver-8.2.1-diffinit/contrib/redhat-rpm/conserver.init as the file to patch 5. Update the conserver-8.2.1-diffinit/contrib/redhat-rpm/conserver.init with whatever changes that are needed 6. Generate the new patch: cd /root/conserverstart diff -ruN conserver-8.2.1/contrib/redhat-rpm/conserver.init conserver-8.2.1-diffinit/contrib/redhat-rpm/conserver.init > initscript_8.2.1.patch 7. Copy the new patch to the xcat-dep Git repository and checkin cp initscript_8.2.1.patch ~/xcat/xcat-dep/conserver/ cd ~/xcat/xcat-dep/conserver/ git commit -m "blah blah blah"