mirror of
https://github.com/xcat2/xcat-core.git
synced 2026-09-21 08:33:20 +00:00
11da82dbba
A riscv64 build of xcat-core dies at xCAT-genesis-scripts with "Cannot find/open
srpm: ...xCAT-genesis-scripts-riscv64-2.19.0-<release>.src.rpm", because the srpm
rpm produced is named xCAT-genesis-scripts-%{tarch}-2.19.0-<release>.src.rpm.
xCAT-genesis-scripts.spec and xCAT-genesis-base.spec take their package name from
%{tarch}, which an %ifarch ladder sets for x86, x86_64, ppc64 and aarch64. riscv64
is absent, so rpm leaves the macro unexpanded and builds a package whose NAME
contains it. buildrpms.pl then looks for the name it asked for and cannot find it.
Add the riscv64 branch to both specs. An arch that is still missing from the
ladder now stops the build with %{error:} instead of naming a package after a
macro.
xCAT-test/unit/genesis_spec_target_arch.t covers this: it fails on riscv64
without this change.
Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
(cherry picked from commit c9de89ccceaaa618f9e91568d74812b349c513ac)
123 lines
4.7 KiB
RPMSpec
123 lines
4.7 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
|
|
%ifarch riscv64
|
|
%define tarch riscv64
|
|
%endif
|
|
# An arch missing from the ladder above leaves %{tarch} unexpanded, and rpm then builds a package
|
|
# with a macro in its NAME instead of failing. Stop the build here instead.
|
|
%if ! %{defined tarch}
|
|
%{error:no genesis tarch for %{_target_cpu} -- add an %%ifarch branch above}
|
|
%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 a fixed genesis-base floor, NOT the exact snap and NOT %{version}. 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, and pinning >= 2:%{version} did the same on every marketing-version
|
|
# bump (a 2.18.1 core then demanded a 2.18.1 genesis-base). genesis-base changes rarely,
|
|
# so floor it at the 2.18.0 baseline: any 2.18.0-or-newer genesis-base snap satisfies it,
|
|
# and core version bumps no longer force a genesis-base re-publish. (RPM ignores release
|
|
# when the dependency omits it.)
|
|
Requires: xCAT-genesis-base-%{tarch} >= 2:2.18.0
|
|
|
|
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/99-tsm.rules
|
|
%{rpminstallroot}/etc/udev/rules.d/98-mlx.rules
|
|
%{rpminstallroot}/usr/sbin/setupimmnic
|
|
%{rpminstallroot}/usr/sbin/setuptsmnic
|
|
%{rpminstallroot}/usr/sbin/loadmlxeth
|
|
%exclude %{rpminstallroot}/debian/*
|