2
0
mirror of https://github.com/xcat2/xcat-dep.git synced 2026-09-12 12:36:23 +00:00
Files
xcat-dep/packages-manifest.conf
T
Daniel Hilst c4c9492e57 fix(xcat-dep): merge master after the riscv64 and Ubuntu builds landed
Master gained the EL10 riscv64 forcearch target (PR #66) and the Perl Ubuntu
build (PR #63). Both touch the files this branch rewrites, so the merge is
resolved per file:

mockbuild-all.pl, mockbuild-perl-packages.pl keep the forcearch target profile,
the noarch chroot and --epel-gap from master, and this branch's manifest gate,
atomic per-cell deploy and per-package chroot scrub. assert_required_deps is
dropped: verify_target_repo replaced it. The post-join bootstrap scrub now reads
the uniqueext and the config recorded when the chroot was made, because the wave
loop of master no longer numbers packages in @packages order.

packages-manifest.conf gains a [rocky-10-riscv64-xcat] section. A target with no
section is fatal, so without it the riscv64 target cannot run.

goconserver/mockbuild.pl builds in the mock chroot for the host arch and cross-
compiles on the host for a foreign --target-arch. A forcearch chroot would run
the Go toolchain under qemu. Both paths overlay the pinned go.mod/go.sum and
ship server.conf as YAML.

The host-install smoke stays removed (it corrupts the build host rpm database).
The checks that do not install on the host are kept: the chroot install of a
cross-built ipmitool-xcat and XS perl module, and the binfmt run of the cross-
built goconserver binaries.

goconserver/gomod/ takes the pin of master, whose `go` directive is the lower of
the two, so both the EL10 chroot and the Ubuntu sbuild toolchain accept it.

t/genesis_openembedded_consumer.t: the skip count of the RPM block is 64, the
number of tests it runs. Both sides carried a stale number.

Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
2026-09-02 09:39:55 -03:00

192 lines
7.7 KiB
Plaintext

# Per-target required xcat-dep package manifest.
#
# One [section] per mockbuild-all target (matches --target). Each entry is
# <package>=<pin>
# where <package> is the builder/package name (the dep builder name, the perl
# package name, or xCAT-genesis-base) and <pin> is one of:
# - an exact Version (e.g. 1.8.18) -- the built %{VERSION} must equal it;
# - a shell-style glob (e.g. 2.*) -- the built %{VERSION} must match it (* and ?);
# - '*' -- any version is accepted;
# - an EVR constraint (e.g. >= 2:2.18.0, >= 0.04-5, = 1.8.18) -- an operator
# (>=, >, <=, <, =) followed by an [epoch:]version[-release]. The built rpm's
# full EPOCH:VERSION-RELEASE is compared with rpm's own version algorithm
# (rpm.vercmp; epoch numeric, then version, then release; release ignored when
# the constraint omits it). Use this to enforce a minimum that a %{VERSION}
# glob cannot -- e.g. a release floor (perl-IO-Stty >= 0.04-5) or an Epoch.
# A bare version pin matches %{VERSION} only (Release carries the per-EL dist tag
# elN and the snap<timestamp>, so it is not pinned there). Bump a pin here when the
# corresponding in-tree source is bumped.
#
# xCAT-genesis-base is pinned as '>= 2:2.18.0' (an EVR floor, not an exact version):
# its Version is NOT owned by xcat-dep -- it is whatever xcat-core the genesis build
# compiles against (XCAT_CORE_REF), so it walks with the paired core (2.18.x, 2.19.x,
# ...). The floor still walks (accepts any 2.18+ genesis) but, unlike the old '2.*'
# glob, REJECTS a pre-2.18 genesis -- xCAT-genesis-scripts Requires xCAT-genesis-base
# >= 2:2.18.0 (Epoch 2), which a 2.17.x genesis would violate. genesis-base carries
# Epoch 2, so the epoch in the constraint is enforced too.
#
# The pins that xCAT states as release-sensitive Requires are EVR floors taken VERBATIM from
# xcat-core's own specs, so the gate rejects a build whose Version is right but whose Release is
# older than xCAT accepts: goconserver (xCAT.spec), xnba-undi, syslinux-xcat, ipmitool-xcat
# (xCAT.spec / xCATsn.spec), perl-HTTP-Async, perl-Net-HTTPS-NB and perl-IO-Stty
# (xCAT-server.spec). Where two specs disagree the STRONGER floor is used.
#
# grub2-xcat is deliberately NOT converted. xCAT-server.spec asks for
# '>= 2.02-0.76.el7.1.snap201905160255', but the grub2-xcat this repository builds -- and that both
# published channels ship -- is 1.0-2, which cannot satisfy it (1 < 2). Encoding that Requires here
# would fail every build on a discrepancy that lives in xcat-core, not in this manifest, so the pin
# stays on the Version actually produced and the discrepancy is reported upstream instead.
#
# mockbuild-all.pl reads this file and, per target, builds ONLY the listed
# packages -- a package not listed for a target is not built for it. Any listed
# package that fails to build (or builds a mismatched version) fails the whole
# run (no tolerated failures).
#
#
# Per-EL perl set: a perl module is required from xcat-dep only on the releases
# where neither the base OS nor EPEL provides it; on the other releases EPEL/OS
# supplies it (so `dnf install xCAT` pulls the OS/EPEL copy, not xcat-dep's).
# perl-Sys-Virt omitted on el8 -- provided by EPEL on AlmaLinux 8.
# perl-HTML-Form only on el8 -- provided by the OS/EPEL on el9/el10.
# perl-Crypt-SSLeay only on el10 -- provided by the OS/EPEL on el8/el9.
# perl-Net-Telnet only on el10 -- provided by the OS/EPEL on el8/el9.
#
# conserver-xcat is NOT pulled by `dnf install xCAT` (goconserver superseded it),
# but it is built for every target anyway because some users still deploy it.
[alma+epel-8-x86_64]
conserver-xcat=8.2.1
elilo-xcat=3.14
goconserver=>= 0.3.3-snap202011021058
grub2-xcat=1.0
ipmitool-xcat=>= 1.8.18-4
syslinux-xcat=>= 6.03-1
xnba-undi=>= 1.21.1-1
perl-HTML-Form=6.07
perl-HTTP-Async=>= 0.30-3
perl-IO-Stty=>= 0.04-5
perl-Net-HTTPS-NB=>= 0.14-3
xCAT-genesis-base=>= 2:2.18.0
[alma+epel-8-ppc64le]
conserver-xcat=8.2.1
elilo-xcat=3.14
goconserver=>= 0.3.3-snap202011021058
grub2-xcat=1.0
ipmitool-xcat=>= 1.8.18-4
syslinux-xcat=>= 6.03-1
xnba-undi=>= 1.21.1-1
perl-HTML-Form=6.07
perl-HTTP-Async=>= 0.30-3
perl-IO-Stty=>= 0.04-5
perl-Net-HTTPS-NB=>= 0.14-3
xCAT-genesis-base=>= 2:2.18.0
[alma+epel-9-x86_64]
conserver-xcat=8.2.1
elilo-xcat=3.14
goconserver=>= 0.3.3-snap202011021058
grub2-xcat=1.0
ipmitool-xcat=>= 1.8.18-4
syslinux-xcat=>= 6.03-1
xnba-undi=>= 1.21.1-1
perl-HTTP-Async=>= 0.30-3
perl-IO-Stty=>= 0.04-5
perl-Net-HTTPS-NB=>= 0.14-3
perl-Sys-Virt=11.10.0
xCAT-genesis-base=>= 2:2.18.0
[alma+epel-9-ppc64le]
conserver-xcat=8.2.1
elilo-xcat=3.14
goconserver=>= 0.3.3-snap202011021058
grub2-xcat=1.0
ipmitool-xcat=>= 1.8.18-4
syslinux-xcat=>= 6.03-1
xnba-undi=>= 1.21.1-1
perl-HTTP-Async=>= 0.30-3
perl-IO-Stty=>= 0.04-5
perl-Net-HTTPS-NB=>= 0.14-3
perl-Sys-Virt=11.10.0
xCAT-genesis-base=>= 2:2.18.0
[alma+epel-10-x86_64]
conserver-xcat=8.2.1
elilo-xcat=3.14
goconserver=>= 0.3.3-snap202011021058
grub2-xcat=1.0
ipmitool-xcat=>= 1.8.18-4
syslinux-xcat=>= 6.03-1
xnba-undi=>= 1.21.1-1
perl-Crypt-SSLeay=0.72
perl-HTTP-Async=>= 0.30-3
perl-IO-Stty=>= 0.04-5
perl-Net-HTTPS-NB=>= 0.14-3
perl-Net-Telnet=3.04
perl-Sys-Virt=11.10.0
xCAT-genesis-base=>= 2:2.18.0
[alma+epel-10-ppc64le]
conserver-xcat=8.2.1
elilo-xcat=3.14
goconserver=>= 0.3.3-snap202011021058
grub2-xcat=1.0
ipmitool-xcat=>= 1.8.18-4
syslinux-xcat=>= 6.03-1
xnba-undi=>= 1.21.1-1
perl-Crypt-SSLeay=0.72
perl-HTTP-Async=>= 0.30-3
perl-IO-Stty=>= 0.04-5
perl-Net-HTTPS-NB=>= 0.14-3
perl-Net-Telnet=3.04
perl-Sys-Virt=11.10.0
xCAT-genesis-base=>= 2:2.18.0
# rocky-10-riscv64-xcat is the forcearch (cross-built) EL10 riscv64 target. It differs from the
# EPEL-fed EL10 sections above in two ways (see BUILD.md, "riscv64"):
# - the x86-only boot components (elilo-xcat, syslinux-xcat, xnba-undi) are not built for it;
# - riscv64 has no EPEL, so the perl deps EL10 otherwise takes from EPEL are built here too
# (perl-Crypt-Blowfish ... perl-Path-Class below). perl-Path-Class is a build dep of
# perl-Crypt-SSLeay only.
# The per-EL perl set is the EL10 one, so perl-HTML-Form is absent here as well.
# xCAT-genesis-base is deliberately not listed: the riscv64 repo is built with --skip-genesis.
[rocky-10-riscv64-xcat]
conserver-xcat=8.2.1
goconserver=>= 0.3.3-snap202011021058
grub2-xcat=1.0
ipmitool-xcat=>= 1.8.18-4
perl-Crypt-SSLeay=0.72
perl-HTTP-Async=>= 0.30-3
perl-IO-Stty=>= 0.04-5
perl-Net-HTTPS-NB=>= 0.14-3
perl-Net-Telnet=3.04
perl-Sys-Virt=11.10.0
perl-Crypt-Blowfish=2.14
perl-Crypt-CBC=2.33
perl-Crypt-Rijndael=1.13
perl-Digest-SHA1=2.13
perl-Expect=1.35
perl-Mail-Sender=0.903
perl-Net-DNS=0.80
perl-Net-IP=1.26
perl-Path-Class=0.37
# [common] is NOT a build target. It describes the SHARED repository the OpenEmbedded Genesis
# release is published into (<repo-dep>/common), which lives beside the per-EL cells and is
# therefore invisible to every [<target>] section above. Without it nothing asserted the published
# shared repo was COMPLETE: its packages were checked only as they were copied, against the release
# checksums, so a repository that lost one afterwards would publish quietly.
#
# The floor tracks the paired xcat-core, like xCAT-genesis-base: these are built FROM xcat-core, so
# the version walks with it (2.18.x, 2.19.x, ...). Epoch 0 -- unlike genesis-base, these packages
# carry no Epoch. Listing every architecture is the point: the release is only useful if a
# management node can serve an image for any of them.
[common]
xCAT-genesis-openembedded-x86=>= 2.18.0
xCAT-genesis-openembedded-x86_64=>= 2.18.0
xCAT-genesis-openembedded-ppc64=>= 2.18.0
xCAT-genesis-openembedded-ppc64le=>= 2.18.0
xCAT-genesis-openembedded-armv7hf=>= 2.18.0
xCAT-genesis-openembedded-aarch64=>= 2.18.0
xCAT-genesis-openembedded-riscv64=>= 2.18.0