2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2026-08-03 16:06:59 +00:00
Files
xcat-core/xCAT-genesis-scripts/xCAT-genesis-scripts.spec
T
Daniel Hilst 0330cdad67 fix(genesis-scripts): require genesis-base by version, not exact snap
genesis-base now ships in the per-EL xcat-dep repo while genesis-scripts ships
in the flat xcat-core. The exact "= 2:%{version}-%{release}" dependency forced
core and dep to be republished in lockstep on every core rebuild (a new snap in
core could not be installed until the exact-matching genesis-base snap was also
published to the client's dep channel -- which broke a production client).

Relax to ">= 2:%{version}": epoch 2, version >= 2.18.0, any release/snap. RPM
ignores the release when the dependency omits it, so any same-version (or newer)
genesis-base satisfies it. Routine core snaps no longer require a genesis-base
re-publish; lockstep now only matters on version bumps and the initial publish.

Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
(cherry picked from commit 23a5877480)
2026-07-19 12:19:48 -03:00

111 lines
4.1 KiB
RPMSpec

%ifarch i386 i586 i686 x86
%define tarch x86
%endif
%ifarch x86_64
%define tarch x86_64
%endif
%ifarch ppc ppc64 ppc64le
%define tarch ppc64
%endif
%ifarch aarch64
%define tarch aarch64
%endif
%define rpminstallroot /opt/xcat/share/xcat/netboot/genesis/%{tarch}/fs
BuildArch: noarch
%define name xCAT-genesis-scripts-%{tarch}
%define __spec_install_post :
%define debug_package %{nil}
%define __prelink_undo_cmd %{nil}
Version: %{?version:%{version}}%{!?version:%(cat Version)}
Release: %{?release:%{release}}%{!?release:%(cat Release)}
Epoch: 1
AutoReq: false
Prefix: /opt/xcat
AutoProv: false
Obsoletes: xCAT-genesis-%{tarch}
Provides: xCAT-genesis-%{tarch}
Name: %{name}
Group: System/Utilities
License: EPL
Vendor: IBM Corp.
Summary: xCAT Genesis netboot image - Core content
URL: https://xcat.org/
Source1: xCAT-genesis-scripts.tar.bz2
# Require any same-version (or newer) genesis-base, NOT the exact snap. genesis-base
# lives in the per-EL xcat-dep repo while this package ships in the flat xcat-core;
# pinning the exact -%{release} forced the two repos to be republished in lockstep on
# every core rebuild. >= 2:%{version} (epoch 2, version, no release) lets any 2.18.0
# genesis-base snap satisfy it, so routine core snaps no longer require a genesis-base
# re-publish. (RPM ignores release when the dependency omits it.)
Requires: xCAT-genesis-base-%{tarch} >= 2:%{version}
Buildroot: %{_localstatedir}/tmp/xCAT-genesis
Packager: IBM Corp.
%Description
xCAT genesis (Genesis Enhanced Netboot Environment for System Information and Servicing) is a small, embedded-like environment for xCAT's use in discovery and management actions when interaction with an OS is infeasible.
This package reperesents the EPL content that is more tightly bound to specific xcat-core versions
%Prep
%Build
%Install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT
cd $RPM_BUILD_ROOT
tar jxf %{SOURCE1}
mkdir -p opt/xcat/share/xcat/netboot/genesis/%{tarch}/
mv xCAT-genesis-scripts opt/xcat/share/xcat/netboot/genesis/%{tarch}/fs
rm opt/xcat/share/xcat/netboot/genesis/%{tarch}/fs/*.spec
rm opt/xcat/share/xcat/netboot/genesis/%{tarch}/fs/LICENSE.html
cd -
# Since this rpm is being installed/updated, we need to run mknb to combine it with
# xCAT-genesis-base-x86_64, but mknb will not work during an initial install of xcat
# until the xCAT meta pkg has run xcatconfig or xCATsn has started xcatd. Use of a trigger
# allows us to tell those pkgs to run the code below after they run their %post scriptlets.
# (If xCAT or xCATsn is installed already, this trigger will run when xCAT-genesis-scripts
# is installed/updated.)
%post
# Touch this file to tell the xCAT and xCATsn rpms that when they install/update they
# should run mknb. Tried to use rpm triggers, but in several cases the trigger would
# get run multiple times.
#echo "touching /etc/xcat/genesis-scripts-updated"
echo "If you are installing/updating xCAT-genesis-base separately, not as part of installing/updating all of xCAT, run 'mknb <arch>' manually"
mkdir -p /etc/xcat
touch /etc/xcat/genesis-scripts-updated
%Files
%defattr(-,root,root)
%{rpminstallroot}/usr/bin/allowcred.awk
%{rpminstallroot}/usr/bin/bmcsetup
%{rpminstallroot}/usr/bin/raidcmd
%{rpminstallroot}/usr/bin/raidutils
%{rpminstallroot}/usr/bin/diskdiscover
%{rpminstallroot}/usr/bin/configraid
%{rpminstallroot}/usr/bin/dodiscovery
%{rpminstallroot}/usr/bin/dosysclone
%{rpminstallroot}/usr/bin/doxcat
%{rpminstallroot}/usr/bin/getadapter
%{rpminstallroot}/usr/bin/getcert
%{rpminstallroot}/usr/bin/getdestiny
%{rpminstallroot}/usr/bin/getipmi
%{rpminstallroot}/usr/bin/ifup
%{rpminstallroot}/usr/bin/minixcatd.awk
%{rpminstallroot}/usr/bin/nextdestiny
%{rpminstallroot}/usr/bin/remoteimmsetup
%{rpminstallroot}/usr/bin/udpcat.awk
%{rpminstallroot}/usr/bin/updateflag.awk
%{rpminstallroot}/usr/bin/pseries_platform
%{rpminstallroot}/usr/bin/update_flash
%{rpminstallroot}/usr/bin/update_flash_nv
%{rpminstallroot}/usr/bin/restart
%{rpminstallroot}/etc/init.d/functions
%{rpminstallroot}/etc/udev/rules.d/99-imm.rules
%{rpminstallroot}/etc/udev/rules.d/98-mlx.rules
%{rpminstallroot}/usr/sbin/setupimmnic
%{rpminstallroot}/usr/sbin/loadmlxeth
%exclude %{rpminstallroot}/debian/*