mirror of
https://github.com/xcat2/xcat-dep.git
synced 2026-09-09 14:36:43 +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>
55 lines
2.7 KiB
Plaintext
Executable File
55 lines
2.7 KiB
Plaintext
Executable File
Build Notes
|
|
ipmitool-xcat is architecture specific and needs to be built separately on x86_64 and ppc64le
|
|
|
|
RPM Option #1 Run the script bldipmi.pl
|
|
1) yum install openssl-devel rpm-build autoconf automake libtool ncurses-devel readline-devel
|
|
2) Update "release" variable in "bldipmi.pl" if generating a new version of the RPM
|
|
3) Run "./bldipmi.pl" which creates:
|
|
/tmp/build/<os>/<arch>/ipmitool-xcat-<version>.<arch>.rpm
|
|
|
|
RPM Option #2 Use the manual steps listed below:
|
|
|
|
1) Download ipmitool-1.8.11.tar.gz from https://xcat.svn.sourceforge.net/svnroot/xcat/xcat-dep/trunk/ipmitool/ipmitool-1.8.11.tar.gz to /tmp/ipmitool directory.
|
|
2) cd /tmp/ipmitool
|
|
3) gunzip ipmitool-1.8.11.tar.gz
|
|
4) tar xvf ipmitool-1.8.11.tar
|
|
5) Copy ipmitool.spec to /opt/freeware/src/packages/SPECS/
|
|
6) tar cvf ipmitool-1.8.11.tar ipmitool-1.8.11
|
|
7) gzip ipmitool-1.8.11.tar
|
|
8) Copy ipmitool-1.8.11.tar.gz to /opt/freeware/src/packages/SOURCES
|
|
9) Copy ipmitool-config.h.in.patch, ipmitool-imbapi.patch , and ipmitool-ipmievd.patch to /usr/src/packages/SOURCES
|
|
10) cd /usr/src/packages/SPECS
|
|
11) Run "rpm -bb ipmitool.spec", which creates:
|
|
/opt/freeware/src/packages/RPMS/ppc/ipmitool-1.8.11-1.aix5.3.ppc.rpm
|
|
|
|
DEB Option #1
|
|
|
|
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 (build-deps installed in the
|
|
chroot automatically). The former ./make_deb.sh has been removed.
|
|
|
|
1) git clone https://github.com/xcat2/xcat-dep.git; cd xcat-dep
|
|
2) Build every package for a codename: ./sbuild-all.pl --arch amd64 --dists noble
|
|
or this package alone: ./ipmitool/sbuild.pl --codename noble --arch amd64 --result-dir <dir>
|
|
3) Generates ipmitool-xcat_<version>_<arch>.deb into --result-dir
|
|
4) Use debian/changelog file to update release version
|
|
|
|
NOTE #1
|
|
HOW TO CREATE THESE PATCHES
|
|
1) cd /tmp/ipmitool-1.8.11
|
|
2) mkdir a (this directory contains the original file)
|
|
3) Copy original file to "a" subdirectory
|
|
4) Repeat above for directory "b" (this directory contains the changed file)
|
|
5) Copy changed file to "b" subdirectory
|
|
6) cd /tmp/ipmitool-1.8.11
|
|
7) diff -uNr a b > ipmitool.patch
|
|
|
|
NOTE #2
|
|
ENABLE THE SSL
|
|
Before running the build operation, the openssl-devel should be installed on the build env to make sure the ssl can be enabled for the generated ipmitool package.
|
|
You can run the 'ldd ipmitool' to see whether the 'libcrypto.so.x' has been added as a dependency to check whether the ssl has been enabled.
|
|
|
|
|
|
Note #3
|
|
On RHEL 7.1 ppc64le, probably because of the beta version of toolchain, needs to add "--build=powerpc64le-redhat-linux-gnu" with the ./configure in ipmitool.spec
|