From 3254455ff2f6044f6abda354ef61c10fa3e6eaf0 Mon Sep 17 00:00:00 2001 From: Daniel Hilst <392820+dhilst@users.noreply.github.com> Date: Tue, 6 Oct 2026 11:47:09 -0300 Subject: [PATCH] fix(xcat-dep): openEuler ppc64le has no ipxe-xcat and xCAT cannot install dnf install xCAT on an openEuler 24.03 ppc64le management node stops with "nothing provides ipxe-xcat >= 2.0.0-1 needed by xCAT-2.20.0". xCAT and xCATsn require ipxe-xcat by name on ppc64le, both EL ppc64le sections of packages-manifest.conf list it, and the openEuler section does not, so mockbuild-all.pl never builds it and the dep repository never carries it. Declare the package in four places, because each one refuses it separately: the manifest section, the openEuler target profile that selects which dep builders run, the native input catalog that resolves an owner for every manifest name, and the catalog owner allow-list. ipxe-xcat.spec is BuildArch noarch with no BuildRequires and no compile step, so the owner builds as uid 1000 like grub2-xcat. elilo-xcat and conserver-xcat stay out. No core rpm requires either one: xCAT uses goconserver for consoles, and elilo is an EFI loader for architectures this cell does not serve. t/openeuler.t covers both halves and fails without this change. Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com> --- lib/XCAT/NativeInputs.pm | 2 +- mockbuild-all.pl | 4 ++-- openeuler/24.03-ppc64le.inputs.json | 11 +++++++++++ packages-manifest.conf | 1 + 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/lib/XCAT/NativeInputs.pm b/lib/XCAT/NativeInputs.pm index e3eff5c..1c3d8cf 100644 --- a/lib/XCAT/NativeInputs.pm +++ b/lib/XCAT/NativeInputs.pm @@ -79,7 +79,7 @@ sub load_inputs { die "Invalid native input type '$type'\n" unless $type =~ /\A(?:srpm|publisher|owner)\z/; if ($type eq 'owner') { die "Unsupported native build owner '$name'\n" unless grep { $_ eq $name } - qw(goconserver grub2-xcat ipmitool-xcat syslinux-xcat xnba-undi xCAT-genesis-base + qw(goconserver grub2-xcat ipmitool-xcat ipxe-xcat syslinux-xcat xnba-undi xCAT-genesis-base perl-Crypt-Rijndael perl-Crypt-SSLeay perl-HTTP-Async perl-IO-Stty perl-Net-HTTPS-NB perl-Net-Telnet); } if ($type ne 'publisher') { diff --git a/mockbuild-all.pl b/mockbuild-all.pl index 8ae2150..b2a0420 100755 --- a/mockbuild-all.pl +++ b/mockbuild-all.pl @@ -1167,8 +1167,8 @@ sub target_profile { noarch_cfg => $target, forcearch => 0, epel => 0, - dep_builders => [qw(grub2-xcat ipmitool-xcat syslinux-xcat goconserver conserver-xcat xnba-undi python3-scp)], - required => [qw(ipmitool-xcat syslinux-xcat grub2-xcat xnba-undi + dep_builders => [qw(grub2-xcat ipmitool-xcat syslinux-xcat goconserver conserver-xcat xnba-undi ipxe-xcat python3-scp)], + required => [qw(ipmitool-xcat syslinux-xcat grub2-xcat xnba-undi ipxe-xcat perl-IO-Stty perl-HTTP-Async perl-Net-HTTPS-NB)], }; } diff --git a/openeuler/24.03-ppc64le.inputs.json b/openeuler/24.03-ppc64le.inputs.json index 8c0af3c..cfcc92b 100644 --- a/openeuler/24.03-ppc64le.inputs.json +++ b/openeuler/24.03-ppc64le.inputs.json @@ -1075,6 +1075,17 @@ ], "build_uid": 1000 }, + { + "name": "ipxe-xcat", + "type": "owner", + "outputs": [ + "ipxe-xcat" + ], + "needs": [ + "procenv" + ], + "build_uid": 1000 + }, { "name": "xnba-undi", "type": "owner", diff --git a/packages-manifest.conf b/packages-manifest.conf index ccff757..284df2c 100644 --- a/packages-manifest.conf +++ b/packages-manifest.conf @@ -327,6 +327,7 @@ xCAT-genesis-base=>= 2:2.18.0 goconserver=>= 0.3.3-snap202011021058 grub2-xcat=1.0 ipmitool-xcat=>= 1.8.18-4 +ipxe-xcat=2.0.0 syslinux-xcat=>= 6.03-1 xnba-undi=>= 1.21.1-1 perl-Crypt-Rijndael=1.13