mirror of
https://github.com/xcat2/xcat-dep.git
synced 2026-10-15 16:22:06 +00:00
f72d5335be
dnf install xCATsn on an EL service node does not resolve. Against the repositories a service node has -- BaseOS and AppStream from copycds, plus xcat-core and xcat-dep -- it reports "nothing provides" for perl-IO-Tty, perl(IO::Pty), perl-Crypt-CBC, perl-Crypt-Rijndael, perl(Expect) and perl(HTML::Form), and per release for perl-Crypt-SSLeay, perl-Net-Telnet and perl-Digest-SHA1. The service node then has no xcatd, and every hierarchical case fails. packages-manifest.conf assumed CRB and EPEL stand behind every EL target. That holds for a management node and not for a service node, so those packages were built only for rocky-10-riscv64-xcat, the one target with no EPEL. Each EL target section now lists the perl packages BaseOS and AppStream do not carry. mockbuild-perl-packages.pl had no table entry for perl-IO-Tty, so no target could build it. Its sources move to IO-Tty 1.20 with a spec. In 1.12 the Makefile.PL pty probe only takes the address of each candidate function, the current toolchain drops that reference, the build then defines HAVE__GETPTY on a glibc that has no _getpty, and IO/Tty/Tty.so fails to load. 1.20 calls the function in the probe. perl-Net-DNS stays out. An EL10 service node needs it, this tree holds 0.80, and 0.80 has no KEY resource record that xCAT's ddns.pm builds. Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
18 lines
1.1 KiB
Plaintext
18 lines
1.1 KiB
Plaintext
IO-Tty 1.12 and older do not build on EL8 or newer. Makefile.PL probes each pty
|
|
function by compiling a program that only takes its address; the current
|
|
toolchain drops that reference, so the probe reports _getpty as present, the
|
|
build defines HAVE__GETPTY, and IO/Tty/Tty.so then fails to load with
|
|
"undefined symbol: _getpty". IO-Tty 1.20 calls the function in the probe, so
|
|
the link fails and the probe answers correctly.
|
|
|
|
Source: https://cpan.metacpan.org/authors/id/T/TO/TODDR/IO-Tty-1.20.tar.gz
|
|
|
|
xcat-dep ships IO-Tty 1.20-1. EL8 PowerTools carries 1.12-11 and EL9 CRB carries
|
|
1.16-4, so the xcat-dep rpm outranks the distribution copy on a management node
|
|
that enables those repositories. Both distribution builds load correctly; they
|
|
are shadowed because a service node reads no CRB and one repository serves both
|
|
roles. 1.20 is the same upstream release the distributions package, with the same
|
|
license, the same vendor paths and the same perl(IO::Tty) provides, so the higher
|
|
version is an upgrade and not a fork. EL10 CRB carries 1.20-7, which outranks
|
|
1.20-1, so the distribution copy still wins there.
|