From 82833637697c48665374de262f18b2caa75058b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Ferr=C3=A3o?= <2031761+viniciusferrao@users.noreply.github.com> Date: Thu, 20 Aug 2026 22:54:52 -0300 Subject: [PATCH] feat(genesis): package the BMC setup action --- .../recipes-core/images/xcat-genesis-image.bb | 2 +- .../files/genesis-bmcsetup | 9 +++++ .../files/genesis-credential-wait | 7 ++++ .../xcat-genesis-bmcsetup_1.0.bb | 40 +++++++++++++++++++ 4 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 xCAT-genesis-builder/oe/meta-xcat-genesis/recipes-xcat/xcat-genesis-bmcsetup/files/genesis-bmcsetup create mode 100644 xCAT-genesis-builder/oe/meta-xcat-genesis/recipes-xcat/xcat-genesis-bmcsetup/files/genesis-credential-wait create mode 100644 xCAT-genesis-builder/oe/meta-xcat-genesis/recipes-xcat/xcat-genesis-bmcsetup/xcat-genesis-bmcsetup_1.0.bb diff --git a/xCAT-genesis-builder/oe/meta-xcat-genesis/recipes-core/images/xcat-genesis-image.bb b/xCAT-genesis-builder/oe/meta-xcat-genesis/recipes-core/images/xcat-genesis-image.bb index 0ec598b97..b622d85e3 100644 --- a/xCAT-genesis-builder/oe/meta-xcat-genesis/recipes-core/images/xcat-genesis-image.bb +++ b/xCAT-genesis-builder/oe/meta-xcat-genesis/recipes-core/images/xcat-genesis-image.bb @@ -2,7 +2,7 @@ SUMMARY = "xCAT Genesis netboot image" LICENSE = "EPL-1.0" LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/EPL-1.0;md5=57f8d5e2b3e98ac6e088986c12bf94e6" -IMAGE_INSTALL = "packagegroup-core-boot packagegroup-xcat-genesis-hardware os-release systemd-conf udev-hwdb xcat-genesis-console xcat-genesis-discovery xcat-genesis-extensions xcat-genesis-init xcat-genesis-network xcat-genesis-protocol" +IMAGE_INSTALL = "packagegroup-core-boot packagegroup-xcat-genesis-hardware os-release systemd-conf udev-hwdb xcat-genesis-bmcsetup xcat-genesis-console xcat-genesis-discovery xcat-genesis-extensions xcat-genesis-init xcat-genesis-network xcat-genesis-protocol" IMAGE_LINGUAS = " " IMAGE_FEATURES = "" diff --git a/xCAT-genesis-builder/oe/meta-xcat-genesis/recipes-xcat/xcat-genesis-bmcsetup/files/genesis-bmcsetup b/xCAT-genesis-builder/oe/meta-xcat-genesis/recipes-xcat/xcat-genesis-bmcsetup/files/genesis-bmcsetup new file mode 100644 index 000000000..46116c43c --- /dev/null +++ b/xCAT-genesis-builder/oe/meta-xcat-genesis/recipes-xcat/xcat-genesis-bmcsetup/files/genesis-bmcsetup @@ -0,0 +1,9 @@ +#!/bin/bash +set -euo pipefail + +support_dir=${XCAT_BMC_SUPPORT_DIR:-/usr/libexec/xcat/genesis/bmc-support} +implementation=${XCAT_BMC_SETUP_IMPLEMENTATION:-/usr/libexec/xcat/genesis/bmcsetup} + +[[ -d $support_dir && -r $implementation ]] || exit 1 +export PATH="$support_dir:$PATH" +exec /bin/bash "$implementation" "$@" diff --git a/xCAT-genesis-builder/oe/meta-xcat-genesis/recipes-xcat/xcat-genesis-bmcsetup/files/genesis-credential-wait b/xCAT-genesis-builder/oe/meta-xcat-genesis/recipes-xcat/xcat-genesis-bmcsetup/files/genesis-credential-wait new file mode 100644 index 000000000..16cf02d6b --- /dev/null +++ b/xCAT-genesis-builder/oe/meta-xcat-genesis/recipes-xcat/xcat-genesis-bmcsetup/files/genesis-credential-wait @@ -0,0 +1,7 @@ +#!/bin/bash +set -eu + +# The systemd credential socket answers xCAT's callback. Legacy BMC helpers +# still start allowcred.awk and later terminate its PID, so retain that process +# contract without opening a second listener on port 300. +exec sleep 2147483647 diff --git a/xCAT-genesis-builder/oe/meta-xcat-genesis/recipes-xcat/xcat-genesis-bmcsetup/xcat-genesis-bmcsetup_1.0.bb b/xCAT-genesis-builder/oe/meta-xcat-genesis/recipes-xcat/xcat-genesis-bmcsetup/xcat-genesis-bmcsetup_1.0.bb new file mode 100644 index 000000000..ba02eb26c --- /dev/null +++ b/xCAT-genesis-builder/oe/meta-xcat-genesis/recipes-xcat/xcat-genesis-bmcsetup/xcat-genesis-bmcsetup_1.0.bb @@ -0,0 +1,40 @@ +SUMMARY = "xCAT Genesis BMC setup action" +LICENSE = "EPL-1.0" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/EPL-1.0;md5=57f8d5e2b3e98ac6e088986c12bf94e6" + +FILESEXTRAPATHS:prepend := "${THISDIR}/../../../../../xCAT-genesis-scripts/usr/bin:" + +SRC_URI = "file://bmcsetup \ + file://getipmi \ + file://remoteimmsetup \ + file://updateflag.awk \ + file://genesis-bmcsetup \ + file://genesis-credential-wait \ +" +S = "${UNPACKDIR}" + +RDEPENDS:${PN} = "bash coreutils gawk ipmitool kmod openssl-bin xcat-genesis-discovery" + +do_install() { + install -d ${D}${libexecdir}/xcat/genesis/actions + install -m 0755 ${UNPACKDIR}/genesis-bmcsetup \ + ${D}${libexecdir}/xcat/genesis/actions/bmcsetup + + install -d ${D}${libexecdir}/xcat/genesis/bmc-support + install -m 0755 ${UNPACKDIR}/getipmi \ + ${D}${libexecdir}/xcat/genesis/bmc-support/getipmi + install -m 0755 ${UNPACKDIR}/remoteimmsetup \ + ${D}${libexecdir}/xcat/genesis/bmc-support/remoteimmsetup + install -m 0755 ${UNPACKDIR}/updateflag.awk \ + ${D}${libexecdir}/xcat/genesis/bmc-support/updateflag.awk + install -m 0755 ${UNPACKDIR}/genesis-credential-wait \ + ${D}${libexecdir}/xcat/genesis/bmc-support/allowcred.awk + + install -m 0644 ${UNPACKDIR}/bmcsetup \ + ${D}${libexecdir}/xcat/genesis/bmcsetup +} + +FILES:${PN} = "${libexecdir}/xcat/genesis/actions/bmcsetup \ + ${libexecdir}/xcat/genesis/bmc-support \ + ${libexecdir}/xcat/genesis/bmcsetup \ +"