2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2026-09-10 19:46:24 +00:00
Commit Graph

28049 Commits

Author SHA1 Message Date
Vinícius Ferrão 7d161b822b feat(xCAT-server): add the riscv64 Ubuntu package lists
24.04 and 26.04 had no riscv64 package list, so a diskless image or an install
for the architecture fell back to the generic list and reached debootstrap
without a kernel or the tools the boot scripts call.

The lists hold the same packages as their x86_64 counterparts. Every one of
them is published for riscv64 in noble and resolute, main or universe.

Signed-off-by: Vinícius Ferrão <2031761+viniciusferrao@users.noreply.github.com>
2026-09-08 17:02:03 -03:00
Vinícius Ferrão 7a2499fbfb test(xCAT-test): cover the resolver libraries the netboot image takes
Build a root filesystem for each architecture and run genimage's selection over
it, so the riscv64 libraries are taken from their own directory and the other
architectures keep the files they take today.

Signed-off-by: Vinícius Ferrão <2031761+viniciusferrao@users.noreply.github.com>
2026-09-08 17:02:03 -03:00
Vinícius Ferrão 75fa389d33 feat(genimage): add the riscv64 resolver libraries to the netboot image
The image carries the name service libraries of its architecture, and riscv64
matched neither the x86_64 nor the ppc64el branch. It fell through to the
generic path, which looks for lib/libnss_dns.so.2, so a riscv64 image shipped
without a resolver and the node could not resolve any name.

Ubuntu keeps them in lib/riscv64-linux-gnu, confirmed in the 24.04.4 riscv64
server filesystem.

Signed-off-by: Vinícius Ferrão <2031761+viniciusferrao@users.noreply.github.com>
2026-09-08 17:02:03 -03:00
Vinícius Ferrão d09452c0b9 test(xCAT-test): cover riscv64 Ubuntu media
Pin the kernel and initrd the riscv64 live image carries, that the kernel name
the other live images use is not accepted for it, and that the architecture the
media reports maps to riscv64 in both directions.

Signed-off-by: Vinícius Ferrão <2031761+viniciusferrao@users.noreply.github.com>
2026-09-08 17:02:02 -03:00
Vinícius Ferrão 4e36e1a9f2 feat(debian): recognize riscv64 Ubuntu media
The riscv64 live-server image keeps its kernel at casper/vmlinux, where every
other live image keeps casper/vmlinuz, so the probe found no kernel and mkinstall
reported that the install image was missing.

Add the riscv64 candidate pair and let copycd name the architecture the media
reports. Verified against Ubuntu-Server 24.04.4 riscv64, which carries
casper/vmlinux, casper/initrd and casper/install-sources.yaml.

Signed-off-by: Vinícius Ferrão <2031761+viniciusferrao@users.noreply.github.com>
2026-09-08 17:02:02 -03:00
Daniel Hilst cd4d903879 Merge pull request #7820 from VersatusHPC/fix/ubuntu-install-pkglists
Make ospkgs and detect_dhcpd work on current Ubuntu releases
2026-09-08 14:13:17 -03:00
Daniel Hilst 796103c300 Merge pull request #7822 from VersatusHPC/fix/go-xcat-el10-repos
fix(go-xcat): check the EPEL and CRB repositories on EL10 as well
2026-09-08 12:02:19 -03:00
Vinícius Ferrão 107f7b14ec test(xCAT-test): drive detect_dhcpd with tcpdump on PATH
Both scripts run for real with PATH holding one directory that carries a
tcpdump stand-in, which records the path and arguments it was started with.
The plain run stops at the interface step, before any socket or capture. The
capture runs inside a private network and mount namespace, where the loopback
interface is the only one, its default route keeps the DHCP discover on the
host, a tmpfs over /tmp holds the dump file, and /usr/sbin/tcpdump is hidden
so the previous guard fails there on every host. Hosts that cannot create the
namespace skip that part.
2026-09-08 11:43:00 -03:00
Vinícius Ferrão 20eef6d224 fix(detect_dhcpd): find tcpdump through PATH
Both copies refused to run unless /usr/sbin/tcpdump existed. Debian and Ubuntu
install it as /usr/bin/tcpdump, so the rogue DHCP detector never ran there and
the probe reported its tcpdump check as failed.

Resolve tcpdump through PATH and the standard system directories with
CommandUtils::find_executable, run the resolved path, and match that path when
the capture process is killed at the end.
2026-09-08 11:43:00 -03:00
Vinícius Ferrão 8e4fc335fc test(xCAT-test): pin the shared Ubuntu package lists
The lists are resolved through get_pkglist_file_name, the resolver that picks
one for an osimage, and read through get_pkglist_tex, the parser that
produces OSPKGS. 59 of 94 assertions fail against the previous lists: the dead
names, the missing 26.04 lists, unixodbc, qemu-utils and libvirt packages,
and every kvm osimage resolving to the shared list with the old emulator.
2026-09-08 11:43:00 -03:00
Vinícius Ferrão 84598e7c8c fix(ubuntu): drop package names current releases no longer carry
The shared Ubuntu lists serve every release and architecture without a list
of its own, and ospkgs hands the whole list to one apt-get install, so one
unknown name loses every package on it. ntp and ntpdate are gone from 26.04.
libodbc1 is the unixODBC runtime name up to 22.04. libvirt-bin is gone from
20.04 on and qemu-kvm from 22.04 on.

The shared lists keep ntp and ntpdate, so releases up to 24.04 keep the
daemon they had. 26.04 gets release lists that carry chrony. unixodbc
replaces libodbc1 on every release, and the odbcsetup postscript keeps its
runtime. The service lists add libdbd-pg-perl beside libdbd-mysql-perl, as a
service node may run the xCAT database on PostgreSQL. libvirt-daemon-system
with libvirt-clients replaces libvirt-bin from 18.04 on; 12.04, 14.04 and
16.04 keep kvm lists with the old names.

qemu-kvm was a transitional name for the emulator of the host architecture,
and no current release has one name for that. Per-architecture kvm lists
name the native one: qemu-system-x86 on x86_64, qemu-system-ppc on ppc64el,
qemu-system-misc on 24.04 riscv64, with ppc64le linked to ppc64el as the
other lists do. The shared kvm lists fall back to
qemu-system, which carries every emulator, so an architecture without a list
of its own still gets one. On 26.04 riscv64 libvirt-daemon-system depends on
qemu-kvm or qemu-system and nothing provides qemu-kvm, so apt installs that
fallback there whatever the list names. Every kvm list names qemu-utils:
ospkgs installs without recommends, and libvirt needs qemu-img for the qcow2
volumes kvm.pm creates.
2026-09-08 11:42:31 -03:00
Daniel Hilst 8a77a645af Merge pull request #7816 from VersatusHPC/fix/sudoer-postscript-password
fix(sudoer): take the password from the passwd table
2026-09-08 10:29:50 -03:00
Vinícius Ferrão 394be3d5b2 test(xCAT-test): cover the EPEL and CRB check on EL9 and EL10
The check functions and the installer functions that call them are taken
from the shipped script and run against a dnf stand-in that records its
probes. 27 of 40 assertions fail against the previous
script: EL10 and CentOS Stream were not checked, the probe went through dnf
list, a failed query read as a missing repository, and the CRB message
carried a repository file with signature checks disabled.
2026-09-07 13:40:22 -03:00
Vinícius Ferrão 01d8de2bc2 fix(go-xcat): check the EPEL and CRB repositories on EL10 as well
The check ran on EL9 only, and only when the version carried a minor number,
so CentOS Stream was never checked. On EL10 a management node without EPEL
or CRB failed inside dnf install with a dependency error instead of the
message that names the missing repository. The CRB message proposed a CentOS
Stream repository file with signature checks disabled, on every
distribution. The probe used dnf list, which an installed copy of the probe
package satisfies with the repository disabled, and which reports a failed
query as a missing repository.

Check EL9 and EL10, with or without a minor version. Probe the enabled
repositories with repoquery for the host architecture and noarch, so a
source repository does not stand in for the binary one, and stop with the
package manager's own error when the query fails. Name the EPEL release
package of the running major version. For CRB, name crb enable from a
current epel-release, which handles Red Hat Enterprise Linux under both
subscription management and RHUI, Rocky Linux, AlmaLinux and CentOS Stream,
and the dnf config-manager command for Oracle Linux.
2026-09-07 13:40:19 -03:00
Daniel Hilst 83c3234284 Merge pull request #7819 from VersatusHPC/feat/genesis-s390x
feat(genesis): add s390x OpenEmbedded support
2026-09-06 15:19:56 -03:00
Vinícius Ferrão 0302670320 test(genesis): update integration test count 2026-09-06 11:09:27 -03:00
Vinícius Ferrão 76e8d7069d fix(genesis): retain s390x glibc library path
Signed-off-by: Vinícius Ferrão <2031761+viniciusferrao@users.noreply.github.com>
2026-09-06 04:08:59 -03:00
Vinícius Ferrão 1d6c373a86 docs(genesis): clarify virtual s390x discovery 2026-09-06 04:03:35 -03:00
Vinícius Ferrão 3ad1ef888a test(genesis): cover absent s390x guest UUID 2026-09-06 04:02:40 -03:00
Vinícius Ferrão ddba7567fc fix(genesis): remove unused s390x tune value 2026-09-06 04:02:24 -03:00
Vinícius Ferrão 560de199a9 fix(genesis): align shellcheck trap annotation 2026-09-06 03:46:17 -03:00
Vinícius Ferrão 17ca2c9c79 docs(genesis): clarify s390x discovery 2026-09-06 03:36:22 -03:00
Vinícius Ferrão d2e20fb08c test(genesis): distinguish s390x guest identity 2026-09-06 03:35:19 -03:00
Vinícius Ferrão 6c3293afc5 fix(genesis): isolate s390x guest identity 2026-09-06 03:34:19 -03:00
Vinícius Ferrão 18b36f02ba test(genesis): cover repository KAS paths 2026-09-06 03:33:24 -03:00
Vinícius Ferrão 2404f71785 fix(genesis): restore repository KAS paths 2026-09-06 03:32:20 -03:00
Vinícius Ferrão 947ac1c565 test(genesis): cover local KAS paths 2026-09-06 02:11:20 -03:00
Vinícius Ferrão 86988d5edc fix(genesis): resolve KAS paths locally 2026-09-06 02:11:20 -03:00
Vinícius Ferrão 5edadd2247 docs(genesis): document architecture query 2026-09-06 02:03:17 -03:00
Vinícius Ferrão 20234cdacf docs(genesis): clarify physical qeth limits 2026-09-06 02:03:16 -03:00
Vinícius Ferrão 9a69060448 test(genesis): cover empty s390x guest UUID 2026-09-06 02:03:11 -03:00
Vinícius Ferrão 959b0d2d3c fix(genesis): preserve s390x LPAR identity 2026-09-06 02:03:08 -03:00
Vinícius Ferrão 974d1250c4 test(genesis): cover qeth safeguards 2026-09-06 02:03:03 -03:00
Vinícius Ferrão e53d351d17 fix(genesis): harden qeth activation 2026-09-06 02:02:58 -03:00
Vinícius Ferrão 9f9f535c6a test(genesis): load boot policy from source 2026-09-06 01:35:28 -03:00
Vinícius Ferrão 173b66f1e1 fix(genesis): initialize qeth state arrays 2026-09-06 00:54:58 -03:00
Vinícius Ferrão 3b69095b73 fix(genesis): use correct s390-tools paths 2026-09-06 00:35:37 -03:00
Vinícius Ferrão d62cf52290 docs(genesis): describe s390x qeth setup 2026-09-06 00:26:57 -03:00
Vinícius Ferrão e1b6797249 test(genesis): cover s390x qeth activation 2026-09-06 00:26:17 -03:00
Vinícius Ferrão 0823c36864 feat(genesis): activate s390x qeth devices 2026-09-06 00:25:56 -03:00
Vinícius Ferrão 1ad58570e8 feat(genesis): add s390x network tooling 2026-09-06 00:21:01 -03:00
Vinícius Ferrão 17d2965f18 chore(genesis): align patch author identity 2026-09-04 18:22:16 -03:00
Vinícius Ferrão c31d270e30 docs(genesis): fix DHCP option wording 2026-09-04 18:22:16 -03:00
Vinícius Ferrão 34abff1ae9 docs(genesis): state s390x validation limits 2026-09-04 18:03:05 -03:00
Vinícius Ferrão 4ad9db20a4 refactor(genesis): follow mknb perl style 2026-09-04 18:03:05 -03:00
Vinícius Ferrão 0ad83ce257 test(genesis): cover s390x config failures 2026-09-04 17:41:08 -03:00
Vinícius Ferrão 288ca8b78a fix(genesis): install s390x configs safely 2026-09-04 17:41:08 -03:00
Vinícius Ferrão ecbafb4a2e docs(genesis): explain s390x config lookup 2026-09-04 17:15:24 -03:00
Vinícius Ferrão 9e65f9c45d test(genesis): cover s390x integration boundaries 2026-09-04 17:15:24 -03:00
Vinícius Ferrão bfd4442cc2 refactor(genesis): use the extension arch default 2026-09-04 17:15:23 -03:00