2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2026-09-30 14:55:16 +00:00
Commit Graph

225 Commits

Author SHA1 Message Date
Daniel Hilst 4bbed9e184 fix(xcat-core): the Genesis build root is missing nine commands the image needs
The first native build stopped on the payload lint. The Ubuntu dracut module
installs ping, nc, nslookup, sfdisk, mkfs.btrfs, usb.ids, poweroff, reboot and
shutdown unconditionally, and no package in the build root supplies any of them.
dracut reported each one with a FAILED: line and exited 0, which is how the image
that shipped without dhclient was packaged. Add iputils-ping, netcat-openbsd,
fdisk, btrfs-progs, hwdata and systemd-sysv.

Two names change between releases. util-linux-extra appeared in 23.04, so the
jammy build stopped with "E: Unable to locate package util-linux-extra" where
hwclock is still in util-linux; bind9-dnsutils replaced dnsutils in 22.04.
add_first_available installs the first name apt knows and stops the build when a
release carries none of them.

dch reads debian/control from the working directory, not from the file it writes,
so the build directory has to be the working directory before it runs.

Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
2026-09-12 08:56:31 -03:00
Daniel Hilst b5bd2e4657 fix(xcat-core): the Ubuntu Genesis image is built from the build host kernel
dracut copies the kernel, the kernel modules and every command out of the root
it runs in. The Ubuntu Genesis deb was built once, on the build host, so every
Ubuntu release got the build host's kernel. Nothing called the builder at all:
the pipelines converted the EL rpm with alien instead.

builddebs.pl gains --genesis, --genesis-only and --genesis-dist. The Genesis
deb is now built once per codename inside that codename's <codename>-<arch>-sbuild
chroot, the chroots xcat-dep's sbuild-all.pl already creates on the Ubuntu build
host. builddeb-genesis-base takes --expect-codename and stops when the root it
woke up in is a different release, so a build on the build host cannot produce a
codename's image.

builddebs.pl reads the build log through XCAT::BuildUtils::genesis_log_errors and
fails the build on FAILED:, a package apt cannot find and four more lines that a
zero exit status hides. The extracted payload goes through verify-genesis-payload
with the command list read back from the dracut module, plus the DHCP client, the
97xcat hooks and a /lib/modules that holds this chroot's kernel and no other.

The build root gains isc-dhcp-client, ifenslave and util-linux-extra, which
supply dhclient, ifenslave and hwclock.

genesis_deb_per_codename.t, genesis_payload_verification.t and
genesis_ubuntu_build_root.t fail without this change.

Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
2026-09-12 08:27:42 -03:00
Daniel Hilst 3e302e7f19 test(xcat-core): Introduce BATS & convert shell scripting tests to it
The go-xcat shell behavior tests were written as Perl harnesses, which made the shell assertions harder to read and kept shell-specific setup outside a native shell test framework.

Add BATS to the GitHub Actions dependency set, run BATS tests from the same preserved source tree as the Perl unit suite, and move the go-xcat repository checks into xCAT-test/autotest/bats.

Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
2026-09-08 12:57:16 -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 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 6c3293afc5 fix(genesis): isolate s390x guest identity 2026-09-06 03:34:19 -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 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 959b0d2d3c fix(genesis): preserve s390x LPAR identity 2026-09-06 02:03:08 -03:00
Vinícius Ferrão e53d351d17 fix(genesis): harden qeth activation 2026-09-06 02:02:58 -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 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 bfd4442cc2 refactor(genesis): use the extension arch default 2026-09-04 17:15:23 -03:00
Vinícius Ferrão 22646de0a8 fix(genesis): match architectures literally 2026-09-04 17:15:23 -03:00
Vinícius Ferrão 0cbeb3bb56 feat(genesis): report build architectures 2026-09-04 16:54:13 -03:00
Vinícius Ferrão a1e9948997 fix(genesis): limit s390x boot to validated path 2026-09-04 15:31:33 -03:00
Vinícius Ferrão f7e3bd4a96 fix(genesis): keep s390x metadata composable 2026-09-04 14:43:18 -03:00
Vinícius Ferrão dec2227c8e fix(genesis): scope s390x identity handling 2026-09-04 14:42:51 -03:00
Vinícius Ferrão 1fe530431c docs(genesis): document s390x target 2026-09-04 12:48:32 -03:00
Vinícius Ferrão cb09b5033d feat(genesis): report IBM Z identity 2026-09-04 12:48:31 -03:00
Vinícius Ferrão b63e695601 feat(genesis): add s390x OpenEmbedded target 2026-09-04 12:48:31 -03:00
Vinícius Ferrão 7a58b59d72 fix(genesis): boot the riscv64 image on firmware that describes hardware through ACPI
The riscv64 kernel was built without ACPI. Firmware that publishes ACPI
tables and no device tree - server-class RISC-V boards, and edk2 with
acpi=on - therefore left the kernel with no hardware description: it died
before console initialisation, so a node handed the image by grub2 went
silent at ExitBootServices and never reached the discovery action.

Enable ACPI, its error interfaces and the EFI stub the image is already
booted through. Rebuilt with these options, the same image on the same
firmware parses the RSDP, XSDT, FACP, DSDT, APIC, RHCT and SPCR tables,
reaches multi-user and starts discovering, and the kernel now also sees
the SMBIOS entry point the firmware exports.
2026-08-24 15:45:52 -03:00
Vinícius Ferrão 5424af302c style(genesis): trim source comments 2026-08-21 03:26:13 -03:00
Vinícius Ferrão 395e85ed1c fix(genesis): gate the action service 2026-08-21 02:13:19 -03:00
Vinícius Ferrão 07bc26f15d fix(genesis): tolerate incomplete inventory 2026-08-21 02:12:56 -03:00
Vinícius Ferrão c20ce284eb fix(genesis): keep logging non-fatal 2026-08-21 02:12:22 -03:00
Vinícius Ferrão d28e72a92c fix(genesis): read the full kernel command line 2026-08-21 02:10:22 -03:00
Vinícius Ferrão f87b6be787 docs(genesis): document signed extension bundles 2026-08-21 00:00:14 -03:00
Vinícius Ferrão 6196983a55 fix(genesis): export built system extensions 2026-08-20 23:23:02 -03:00
Vinícius Ferrão b5a2356254 fix(genesis): export generated release metadata 2026-08-20 23:21:28 -03:00
Vinícius Ferrão 88f1779aec fix(genesis): validate generated network state 2026-08-20 23:06:55 -03:00
Vinícius Ferrão 50c3b00bac feat(genesis): wire signed extension bundles 2026-08-20 23:03:49 -03:00
Vinícius Ferrão 48569f3192 fix(genesis): produce release compliance metadata 2026-08-20 22:59:24 -03:00
Vinícius Ferrão f23150c241 fix(genesis): resolve KAS paths from the repository 2026-08-20 22:58:05 -03:00
Vinícius Ferrão dc87128f0d fix(genesis): run argument-free actions safely 2026-08-20 22:55:59 -03:00
Vinícius Ferrão 8283363769 feat(genesis): package the BMC setup action 2026-08-20 22:54:52 -03:00
Vinícius Ferrão 76057702ad fix(genesis): stop retrying fatal actions 2026-08-20 22:52:16 -03:00
Vinícius Ferrão 5cea31df7a fix(genesis): restore failed network refreshes 2026-08-20 22:47:32 -03:00
Vinícius Ferrão 741afd274d fix(genesis): select the default BMC LAN 2026-08-20 22:43:05 -03:00
Vinícius Ferrão 55767b3c23 fix(genesis): tolerate missing BMC SOL 2026-08-20 22:42:16 -03:00
Vinícius Ferrão b719eb8328 fix(genesis): clamp narrow console headers 2026-08-20 22:41:25 -03:00
Vinícius Ferrão 25ad0a2928 fix(genesis): mark exported images 2026-08-20 22:29:57 -03:00
Vinícius Ferrão e4de6a06fc docs(genesis): document OpenEmbedded image 2026-08-20 22:29:57 -03:00
Vinícius Ferrão f1b0a11fb5 build(genesis): assemble release image 2026-08-20 22:29:57 -03:00
Vinícius Ferrão 593444b70d feat(genesis): add hardware providers 2026-08-20 22:29:56 -03:00