mirror of
https://github.com/xcat2/xcat-core.git
synced 2026-07-31 18:19:40 +00:00
529c821177
The single flat xcat-core repo serves el8/el9/el10 from one build, but two spec
decisions were resolved at BUILD time and so were wrong for the other ELs that
share the same repo.
1. DHCP backend. xCAT.spec and xCATsn.spec selected the dhcp provider with a
build-time %if (rhel >= 10 -> kea, else dhcpd), so an el10 build wrongly
required kea on el8/el9 (and an el8/el9 build wrongly required dhcpd on
el10). Replace it with an install-time RPM rich dependency:
Requires: (kea if (system-release >= 10) else /usr/sbin/dhcpd)
Requires: (kea-hooks if (system-release >= 10))
dnf now resolves it per client: kea on el10+ (which dropped ISC dhcp from the
distro), dhcpd on el8/el9. SLES has no "system-release" provide, so the
condition is false there and it falls back to /usr/sbin/dhcpd, preserving
prior behavior. system-release is versioned per release package
(el10=10.x, el9=9.x, el8=8.x).
2. openssl. Make the xCAT-server openssl Requires uniform across EL (non-SUSE)
instead of el10-only, so the produced package set does not depend on which EL
the build host happened to be.
Also drop xCAT-genesis-base from the default @PACKAGES set in buildrpms.pl: its
initramfs bundles the build-chroot kernel/glibc and is therefore OS- and
arch-dependent, so it cannot ship in the single flat core. It is now built per
target by the xcat-dep pipeline (mockbuild-all.pl, via
`buildrpms.pl --package xCAT-genesis-base`) and ships in xcat-dep/rh<N>. The
explicit `--package xCAT-genesis-base` build path is retained.
Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
583 lines
23 KiB
RPMSpec
583 lines
23 KiB
RPMSpec
Summary: Server and configuration utilities of the xCAT management project
|
|
Name: xCAT-server
|
|
Version: %{?version:%{version}}%{!?version:%(cat Version)}
|
|
Release: %{?release:%{release}}%{!?release:%(cat Release)}
|
|
Epoch: 4
|
|
License: EPL
|
|
Group: Applications/System
|
|
Source: xCAT-server-%{version}.tar.gz
|
|
Packager: IBM Corp.
|
|
Vendor: IBM Corp.
|
|
Distribution: %{?_distribution:%{_distribution}}%{!?_distribution:%{_vendor}}
|
|
Prefix: /opt/xcat
|
|
BuildRoot: /var/tmp/%{name}-%{version}-%{release}-root
|
|
|
|
%ifnos linux
|
|
AutoReqProv: no
|
|
%endif
|
|
%define debug_package %{nil}
|
|
|
|
%define fsm %(if [ "$fsm" = "1" ];then echo 1; else echo 0; fi)
|
|
|
|
# Define local variable from environment variable
|
|
%define pcm %(if [ "$pcm" = "1" ];then echo 1; else echo 0; fi)
|
|
%define notpcm %(if [ "$pcm" = "1" ];then echo 0; else echo 1; fi)
|
|
%define s390x %(if [ "$s390x" = "1" ];then echo 1; else echo 0; fi)
|
|
%define nots390x %(if [ "$s390x" = "1" ];then echo 0; else echo 1; fi)
|
|
|
|
# Define a different location for various httpd configs in s390x mode
|
|
%define httpconfigdir %(if [ "$s390x" = "1" ];then echo "xcathttpdsave"; else echo "xcat"; fi)
|
|
|
|
# Disable shebang mangling of python scripts
|
|
%undefine __brp_mangle_shebangs
|
|
|
|
# AIX will build with an arch of "ppc"
|
|
# also need to fix Requires for AIX
|
|
%ifos linux
|
|
BuildArch: noarch
|
|
# Note: ifarch/ifnarch does not work for noarch package, use environment variable instead
|
|
|
|
%if %s390x
|
|
Requires: perl-IO-Socket-SSL perl-XML-Simple perl-XML-Parser
|
|
%else
|
|
%if 0%{?rhel} >= 8
|
|
BuildRequires: perl-generators
|
|
%endif
|
|
%if 0%{?fedora}
|
|
BuildRequires: perl-generators
|
|
%endif
|
|
Requires: perl-IO-Socket-SSL perl-XML-Simple perl-XML-Parser perl-Digest-SHA1 perl(LWP::Protocol::https) perl-XML-LibXML
|
|
%endif
|
|
Obsoletes: atftp-xcat
|
|
%endif
|
|
|
|
# The aix rpm cmd forces us to do this outside of ifos type stmts
|
|
%if %notpcm
|
|
%ifos linux
|
|
#
|
|
# PCM does not use or ship grub2-xcat
|
|
%if %nots390x
|
|
Requires: grub2-xcat >= 2.02-0.76.el7.1.snap201905160255
|
|
Requires: perl-Net-HTTPS-NB >= 0.14-3
|
|
Requires: perl-HTTP-Async >= 0.30-3
|
|
%endif
|
|
%endif
|
|
%endif
|
|
|
|
%if 0%{?rhel} && 0%{?rhel} < 7
|
|
Requires: initscripts
|
|
Requires: chkconfig
|
|
%endif
|
|
# openssl is present on all EL; require it uniformly (not just el10) so a single
|
|
# flat xcat-core build is correct everywhere. Excluded on SLES, where the package
|
|
# name differs and it was never required before.
|
|
%if !0%{?suse_version}
|
|
Requires: openssl
|
|
%endif
|
|
|
|
%if %fsm
|
|
# nothing needed here
|
|
%else
|
|
%ifos linux
|
|
# do this for non-fsm linux
|
|
Requires: perl-IO-Tty perl-Crypt-SSLeay make httpd
|
|
%endif
|
|
%endif
|
|
|
|
Requires: perl-xCAT = 4:%{version}-%{release}
|
|
Requires: xCAT-client = 4:%{version}-%{release}
|
|
|
|
%description
|
|
xCAT-server provides the core server and configuration management components of xCAT. This package should be installed on your management server
|
|
|
|
%define zvm %(if [ "$zvm" = "1" ];then echo 1; else echo 0; fi)
|
|
|
|
%prep
|
|
# %if %NOVERBOSE
|
|
# echo NOVERBOSE is on
|
|
# set +x
|
|
# %elseif
|
|
# set -x
|
|
# %endif
|
|
|
|
%setup -q -n xCAT-server
|
|
%build
|
|
# build the tools readme files from the --help output of all of the tools
|
|
./build-readme
|
|
|
|
%install
|
|
rm -rf $RPM_BUILD_ROOT
|
|
#cp foo bar
|
|
mkdir -p $RPM_BUILD_ROOT/%{prefix}/sbin
|
|
mkdir -p $RPM_BUILD_ROOT/%{prefix}/bin
|
|
#mkdir -p $RPM_BUILD_ROOT/%{prefix}/rc.d
|
|
mkdir -p $RPM_BUILD_ROOT/%{prefix}/share/xcat/install
|
|
mkdir -p $RPM_BUILD_ROOT/%{prefix}/share/xcat/netboot
|
|
mkdir -p $RPM_BUILD_ROOT/%{prefix}/share/xcat/ca
|
|
mkdir -p $RPM_BUILD_ROOT/%{prefix}/share/xcat/mypostscript
|
|
mkdir -p $RPM_BUILD_ROOT/%{prefix}/share/xcat/scripts
|
|
mkdir -p $RPM_BUILD_ROOT/%{prefix}/share/xcat/samples
|
|
mkdir -p $RPM_BUILD_ROOT/%{prefix}/share/xcat/tools
|
|
mkdir -p $RPM_BUILD_ROOT/%{prefix}/share/xcat/cons
|
|
mkdir -p $RPM_BUILD_ROOT/%{prefix}/share/xcat/conf
|
|
mkdir -p $RPM_BUILD_ROOT/%{prefix}/share/xcat/rollupdate
|
|
mkdir -p $RPM_BUILD_ROOT/%{prefix}/share/xcat/installp_bundles
|
|
mkdir -p $RPM_BUILD_ROOT/%{prefix}/share/xcat/image_data
|
|
mkdir -p $RPM_BUILD_ROOT/%{prefix}/share/xcat/ib/scripts
|
|
mkdir -p $RPM_BUILD_ROOT/%{prefix}/share/xcat/ib/netboot/sles
|
|
mkdir -p $RPM_BUILD_ROOT/%{prefix}/share/xcat/ib/netboot/rh
|
|
mkdir -p $RPM_BUILD_ROOT/%{prefix}/share/xcat/ib/scripts/Mellanox
|
|
mkdir -p $RPM_BUILD_ROOT/%{prefix}/share/xcat/devicetype
|
|
mkdir -p $RPM_BUILD_ROOT/%{prefix}/share/xcat/hamn
|
|
mkdir -p $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin
|
|
mkdir -p $RPM_BUILD_ROOT/%{prefix}/xdsh/Context
|
|
mkdir -p $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_monitoring/samples
|
|
mkdir -p $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_monitoring/pcp
|
|
mkdir -p $RPM_BUILD_ROOT/%{prefix}/lib/perl/Confluent
|
|
mkdir -p $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_schema/samples
|
|
mkdir -p $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT
|
|
|
|
%ifos linux
|
|
cp -a share/xcat/install/* $RPM_BUILD_ROOT/%{prefix}/share/xcat/install/
|
|
cp -a share/xcat/netboot/* $RPM_BUILD_ROOT/%{prefix}/share/xcat/netboot/
|
|
|
|
# Preserve netboot dracut aliases as symlinks so rpm upgrades do not fail when
|
|
# replacing older xCAT-server packages that already own these paths as symlinks.
|
|
for _required_symlink in \
|
|
SL/dracut_033 \
|
|
alma/dracut alma/dracut_033 alma/dracut_047 \
|
|
centos/dracut centos/dracut_033 centos/dracut_047 \
|
|
fedora/dracut_047 \
|
|
ol/dracut ol/dracut_033 ol/dracut_047 \
|
|
rocky/dracut rocky/dracut_033 rocky/dracut_047 rocky/dracut_105
|
|
do
|
|
_target="$RPM_BUILD_ROOT/%{prefix}/share/xcat/netboot/${_required_symlink}"
|
|
if [ ! -L "$_target" ]; then
|
|
echo "ERROR: expected symlink missing or dereferenced: $_target" >&2
|
|
exit 1
|
|
fi
|
|
done
|
|
%else
|
|
cp -hpR share/xcat/install/* $RPM_BUILD_ROOT/%{prefix}/share/xcat/install/
|
|
cp -hpR share/xcat/netboot/* $RPM_BUILD_ROOT/%{prefix}/share/xcat/netboot/
|
|
%endif
|
|
|
|
%ifos linux
|
|
# pwd
|
|
cp -d sbin/* $RPM_BUILD_ROOT/%{prefix}/sbin
|
|
chmod 755 $RPM_BUILD_ROOT/%{prefix}/sbin/*
|
|
cp -d bin/* $RPM_BUILD_ROOT/%{prefix}/bin
|
|
chmod 755 $RPM_BUILD_ROOT/%{prefix}/bin/*
|
|
%else
|
|
cp -h sbin/* $RPM_BUILD_ROOT/%{prefix}/sbin
|
|
chmod -h 755 $RPM_BUILD_ROOT/%{prefix}/sbin/*
|
|
cp -h bin/* $RPM_BUILD_ROOT/%{prefix}/bin
|
|
chmod -h 755 $RPM_BUILD_ROOT/%{prefix}/bin/*
|
|
%endif
|
|
#cp rc.d/* $RPM_BUILD_ROOT/%{prefix}/rc.d
|
|
#chmod 755 $RPM_BUILD_ROOT/%{prefix}/rc.d/*
|
|
|
|
cp share/xcat/ca/* $RPM_BUILD_ROOT/%{prefix}/share/xcat/ca
|
|
chmod 644 $RPM_BUILD_ROOT/%{prefix}/share/xcat/ca/*
|
|
|
|
cp share/xcat/mypostscript/* $RPM_BUILD_ROOT/%{prefix}/share/xcat/mypostscript
|
|
cp share/xcat/scripts/* $RPM_BUILD_ROOT/%{prefix}/share/xcat/scripts
|
|
cp share/xcat/conf/* $RPM_BUILD_ROOT/%{prefix}/share/xcat/conf
|
|
cp -r share/xcat/samples/* $RPM_BUILD_ROOT/%{prefix}/share/xcat/samples
|
|
cp -r share/xcat/tools/* $RPM_BUILD_ROOT/%{prefix}/share/xcat/tools
|
|
cp -r share/xcat/hamn/* $RPM_BUILD_ROOT/%{prefix}/share/xcat/hamn
|
|
cp share/xcat/rollupdate/* $RPM_BUILD_ROOT/%{prefix}/share/xcat/rollupdate
|
|
cp share/xcat/installp_bundles/* $RPM_BUILD_ROOT/%{prefix}/share/xcat/installp_bundles
|
|
cp share/xcat/image_data/* $RPM_BUILD_ROOT/%{prefix}/share/xcat/image_data
|
|
cp share/xcat/cons/* $RPM_BUILD_ROOT/%{prefix}/share/xcat/cons
|
|
ln -sf kvm $RPM_BUILD_ROOT/%{prefix}/share/xcat/cons/mic
|
|
cp -r share/xcat/ib/scripts/* $RPM_BUILD_ROOT/%{prefix}/share/xcat/ib/scripts
|
|
cp share/xcat/ib/netboot/sles/* $RPM_BUILD_ROOT/%{prefix}/share/xcat/ib/netboot/sles
|
|
cp share/xcat/ib/netboot/rh/* $RPM_BUILD_ROOT/%{prefix}/share/xcat/ib/netboot/rh
|
|
cp -r share/xcat/devicetype/* $RPM_BUILD_ROOT/%{prefix}/share/xcat/devicetype
|
|
ln -sf Jun $RPM_BUILD_ROOT/%{prefix}/share/xcat/devicetype/EthSwitch/Juniper
|
|
|
|
chmod 755 $RPM_BUILD_ROOT/%{prefix}/share/xcat/cons/*
|
|
chmod 755 $RPM_BUILD_ROOT/%{prefix}/share/xcat/ib/scripts/*
|
|
chmod 755 $RPM_BUILD_ROOT/%{prefix}/share/xcat/ib/netboot/sles/*
|
|
chmod 755 $RPM_BUILD_ROOT/%{prefix}/share/xcat/ib/netboot/rh/*
|
|
|
|
cp lib/xcat/plugins/* $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin
|
|
chmod 644 $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/*
|
|
|
|
cp lib/perl/xCAT/* $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT
|
|
chmod 644 $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT/*
|
|
|
|
chmod 755 $RPM_BUILD_ROOT/%{prefix}/share/xcat/netboot/sles/*.postinstall
|
|
chmod 755 $RPM_BUILD_ROOT/%{prefix}/share/xcat/netboot/rh/*.postinstall
|
|
|
|
# For now, don't ship these plugins on AIX to avoid AIX dependency.
|
|
%ifnos linux
|
|
rm $RPM_BUILD_ROOT/%{prefix}/sbin/stopstartxcatd
|
|
#rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/blade.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/hpblade.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/hpilo.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/ipmi.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/nodediscover.pm
|
|
#rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/switch.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/xen.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/kvm.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/vbox.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/activedirectory.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/kit.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/confluent.pm
|
|
%endif
|
|
|
|
cp lib/xcat/dsh/Context/* $RPM_BUILD_ROOT/%{prefix}/xdsh/Context
|
|
chmod 644 $RPM_BUILD_ROOT/%{prefix}/xdsh/Context/*
|
|
|
|
cp -r lib/xcat/monitoring/* $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_monitoring
|
|
chmod 644 $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_monitoring/*
|
|
|
|
chmod 755 $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_monitoring/samples
|
|
chmod 644 $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_monitoring/samples/*
|
|
chmod 755 $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_monitoring/pcp
|
|
chmod 644 $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_monitoring/pcp/*
|
|
|
|
cp -r lib/xcat/Confluent/* $RPM_BUILD_ROOT/%{prefix}/lib/perl/Confluent
|
|
chmod 644 $RPM_BUILD_ROOT/%{prefix}/lib/perl/Confluent/*
|
|
|
|
cp -r lib/xcat/schema/* $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_schema
|
|
chmod 644 $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_schema/*
|
|
|
|
chmod 755 $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_schema/samples
|
|
chmod 644 $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_schema/samples/*
|
|
|
|
# Don't ship these on zVM, to reduce dependencies
|
|
%if %zvm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/sbin/stopstartxcatd
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/activedirectory.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/blade.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/hpblade.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/hpilo.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/ipmi.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/nodediscover.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/switch.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/xen.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/kvm.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/vbox.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/aixinstall.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/slpdiscover.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/remoteimmsetup.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT/IMMUtils.pm
|
|
#rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT/RShellAPI.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/bmcconfig.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/bpa.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/esx.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/FIP.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/fsp.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/hmc.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/ivm.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/lsslp.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/pxe.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/toolscenter.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/windows.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/xcat2nim.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/rhevm.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/xnba.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT/IPMI.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT/SSHInteract.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT/MellanoxIB.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT/PPC.pm
|
|
# Can not remove this, because it is needed by Templates.pm
|
|
#rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT/ADUtils.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/share/xcat/cons/hmc
|
|
rm $RPM_BUILD_ROOT/%{prefix}/share/xcat/cons/ivm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/share/xcat/cons/multiple
|
|
rm $RPM_BUILD_ROOT/%{prefix}/share/xcat/cons/fsp
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_monitoring/snmpmon.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/sbin/xcat_traphandler
|
|
%endif
|
|
|
|
# Don't ship these on FSM, to reduce dependencies
|
|
%if %fsm
|
|
rm -rf $RPM_BUILD_ROOT/%{prefix}/share/xcat/installp_bundles
|
|
rm -rf $RPM_BUILD_ROOT/%{prefix}/share/xcat/cons
|
|
rm -rf $RPM_BUILD_ROOT/%{prefix}/share/xcat/install
|
|
rm -rf $RPM_BUILD_ROOT/%{prefix}/share/xcat/netboot/add-on
|
|
rm -rf $RPM_BUILD_ROOT/%{prefix}/share/xcat/netboot/aix
|
|
rm -rf $RPM_BUILD_ROOT/%{prefix}/share/xcat/netboot/centos
|
|
rm -rf $RPM_BUILD_ROOT/%{prefix}/share/xcat/netboot/debian
|
|
rm -rf $RPM_BUILD_ROOT/%{prefix}/share/xcat/netboot/esxi/48.esxifixup
|
|
rm -rf $RPM_BUILD_ROOT/%{prefix}/share/xcat/netboot/esxi/xcatsplash
|
|
rm -rf $RPM_BUILD_ROOT/%{prefix}/share/xcat/netboot/fedora*
|
|
rm -rf $RPM_BUILD_ROOT/%{prefix}/share/xcat/netboot/imgutils
|
|
rm -rf $RPM_BUILD_ROOT/%{prefix}/share/xcat/netboot/mic
|
|
rm -rf $RPM_BUILD_ROOT/%{prefix}/share/xcat/netboot/rh
|
|
rm -rf $RPM_BUILD_ROOT/%{prefix}/share/xcat/netboot/ol
|
|
rm -rf $RPM_BUILD_ROOT/%{prefix}/share/xcat/devicetype
|
|
rm -rf $RPM_BUILD_ROOT/%{prefix}/share/xcat/netboot/SL
|
|
rm -rf $RPM_BUILD_ROOT/%{prefix}/share/xcat/netboot/sles
|
|
rm -rf $RPM_BUILD_ROOT/%{prefix}/share/xcat/netboot/suse
|
|
rm -rf $RPM_BUILD_ROOT/%{prefix}/share/xcat/netboot/syslinux
|
|
rm -rf $RPM_BUILD_ROOT/%{prefix}/share/xcat/netboot/ubuntu
|
|
|
|
rm $RPM_BUILD_ROOT/%{prefix}/sbin/stopstartxcatd
|
|
rm $RPM_BUILD_ROOT/%{prefix}/sbin/rshell_api
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/hpblade.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/share/xcat/tools/detect_dhcpd
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/AAsn.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/hpilo.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/ipmi.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/blade.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/nodediscover.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/switch.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/xen.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/kvm.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/vbox.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/aixinstall.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/bmcconfig.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/bpa.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/ddns.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/dhcp.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/FIP.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/fsp.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/hmc.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/ivm.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/lsslp.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/slpdiscover.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/remoteimmsetup.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT/IMMUtils.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT/RShellAPI.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/pxe.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/toolscenter.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/xcat2nim.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_plugin/xnba.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT/IPMI.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT/SSHInteract.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT/MellanoxIB.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT/PPC.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT_monitoring/snmpmon.pm
|
|
rm $RPM_BUILD_ROOT/%{prefix}/sbin/xcat_traphandler
|
|
%endif
|
|
|
|
|
|
cp lib/xcat/shfunctions $RPM_BUILD_ROOT/%{prefix}/lib
|
|
chmod 644 $RPM_BUILD_ROOT/%{prefix}/lib/shfunctions
|
|
%if %fsm
|
|
%else
|
|
mkdir -p $RPM_BUILD_ROOT/etc/init.d
|
|
cp etc/init.d/xcatd $RPM_BUILD_ROOT/etc/init.d
|
|
mkdir -p $RPM_BUILD_ROOT/usr/lib/systemd/system
|
|
cp etc/init.d/xcatd.service $RPM_BUILD_ROOT/usr/lib/systemd/system
|
|
%endif
|
|
#TODO: the next has to me moved to postscript, to detect /etc/xcat vs /etc/opt/xcat
|
|
mkdir -p $RPM_BUILD_ROOT/etc/%httpconfigdir
|
|
|
|
mkdir -p $RPM_BUILD_ROOT/%{prefix}/share/doc/packages/xCAT-server
|
|
cp LICENSE.html $RPM_BUILD_ROOT/%{prefix}/share/doc/packages/xCAT-server
|
|
chmod 644 $RPM_BUILD_ROOT/%{prefix}/share/doc/packages/xCAT-server/*
|
|
#echo $RPM_BUILD_ROOT %{prefix}
|
|
|
|
# genereate the configuration files for web service (REST API)
|
|
mkdir -p $RPM_BUILD_ROOT/%{prefix}/ws
|
|
mkdir -p $RPM_BUILD_ROOT/etc/apache2/conf.d
|
|
mkdir -p $RPM_BUILD_ROOT/etc/httpd/conf.d
|
|
mkdir -p $RPM_BUILD_ROOT/etc/%httpconfigdir/conf.orig
|
|
|
|
cp xCAT-wsapi/* $RPM_BUILD_ROOT/%{prefix}/ws
|
|
|
|
# PCM does not need xcatws.cgi
|
|
# xcatws.cgi causes xCAT-server requires perl-JSON, which is not shipped with PCM
|
|
%if %pcm
|
|
rm -f $RPM_BUILD_ROOT/%{prefix}/ws/xcatws.cgi
|
|
%endif
|
|
|
|
%if %nots390x
|
|
rm -f $RPM_BUILD_ROOT/%{prefix}/ws/zvmxcatws.cgi
|
|
%endif
|
|
|
|
%if %fsm
|
|
%else
|
|
echo "ScriptAlias /xcatrhevh %{prefix}/ws/xcatrhevh.cgi" > $RPM_BUILD_ROOT/etc/%httpconfigdir/conf.orig/xcat-ws.conf.apache22
|
|
echo "ScriptAlias /xcatrhevh %{prefix}/ws/xcatrhevh.cgi" > $RPM_BUILD_ROOT/etc/%httpconfigdir/conf.orig/xcat-ws.conf.apache24
|
|
%if %notpcm
|
|
%if %nots390x
|
|
echo "ScriptAlias /xcatws %{prefix}/ws/xcatws.cgi" >> $RPM_BUILD_ROOT/etc/%httpconfigdir/conf.orig/xcat-ws.conf.apache22
|
|
echo "ScriptAlias /xcatws %{prefix}/ws/xcatws.cgi" >> $RPM_BUILD_ROOT/etc/%httpconfigdir/conf.orig/xcat-ws.conf.apache24
|
|
%else
|
|
# Add in old version 1 REST-API and version 2 REST-API to z/VM, default to version 1
|
|
echo "ScriptAlias /xcatwsv2 %{prefix}/ws/xcatws.cgi" >> $RPM_BUILD_ROOT/etc/%httpconfigdir/conf.orig/xcat-ws.conf.apache22
|
|
echo "ScriptAlias /xcatwsv2 %{prefix}/ws/xcatws.cgi" >> $RPM_BUILD_ROOT/etc/%httpconfigdir/conf.orig/xcat-ws.conf.apache24
|
|
echo "ScriptAlias /xcatws %{prefix}/ws/zvmxcatws.cgi" >> $RPM_BUILD_ROOT/etc/%httpconfigdir/conf.orig/xcat-ws.conf.apache22
|
|
echo "ScriptAlias /xcatws %{prefix}/ws/zvmxcatws.cgi" >> $RPM_BUILD_ROOT/etc/%httpconfigdir/conf.orig/xcat-ws.conf.apache24
|
|
%endif
|
|
%endif
|
|
|
|
cat $RPM_BUILD_ROOT/%{prefix}/ws/xcat-ws.conf.apache22 >> $RPM_BUILD_ROOT/etc/%httpconfigdir/conf.orig/xcat-ws.conf.apache22
|
|
cat $RPM_BUILD_ROOT/%{prefix}/ws/xcat-ws.conf.apache24 >> $RPM_BUILD_ROOT/etc/%httpconfigdir/conf.orig/xcat-ws.conf.apache24
|
|
#install lower version(<2.4) apache/httpd conf files by default
|
|
cp $RPM_BUILD_ROOT/etc/%httpconfigdir/conf.orig/xcat-ws.conf.apache22 $RPM_BUILD_ROOT/etc/apache2/conf.d/xcat-ws.conf
|
|
cp $RPM_BUILD_ROOT/etc/%httpconfigdir/conf.orig/xcat-ws.conf.apache22 $RPM_BUILD_ROOT/etc/httpd/conf.d/xcat-ws.conf
|
|
%endif
|
|
|
|
|
|
|
|
rm -f $RPM_BUILD_ROOT/%{prefix}/ws/xcat-ws.conf.apache22
|
|
rm -f $RPM_BUILD_ROOT/%{prefix}/ws/xcat-ws.conf.apache24
|
|
|
|
%clean
|
|
rm -rf $RPM_BUILD_ROOT
|
|
|
|
%files
|
|
%defattr(-,root,root)
|
|
#%doc LICENSE.html
|
|
%{prefix}
|
|
/etc/%httpconfigdir
|
|
%if %fsm
|
|
%else
|
|
/etc/init.d/xcatd
|
|
/usr/lib/systemd/system/xcatd.service
|
|
/etc/apache2/conf.d/xcat-ws.conf
|
|
/etc/httpd/conf.d/xcat-ws.conf
|
|
%endif
|
|
|
|
%changelog
|
|
* Fri Jul 6 2018 - Bin Xu <bxuxa@cn.ibm.com>
|
|
- Added systemd unit file
|
|
|
|
* Tue Nov 20 2007 - Jarrod Johnson <jbjohnso@us.ibm.com>
|
|
- Changes for relocatible rpm.
|
|
|
|
* Wed May 2 2007 - Norm Nott <nott@us.ibm.com>
|
|
- Made changes to make this work on AIX
|
|
|
|
* Tue Feb 27 2007 Jarrod Johnson <jbjohnso@us.ibm.com>
|
|
- Spawn server rpm for the server half of things, fix requires
|
|
|
|
* Tue Feb 20 2007 Jarrod Johnson <jbjohnso@us.ibm.com>
|
|
- Start core rpm for 1.3 work
|
|
|
|
%pre
|
|
# only need to check on AIX
|
|
%ifnos linux
|
|
if [ -x /usr/sbin/emgr ]; then # Check for emgr cmd
|
|
/usr/sbin/emgr -l 2>&1 | grep -i xCAT # Test for any xcat ifixes - msg and exit if found
|
|
if [ $? = 0 ]; then
|
|
echo "Error: One or more xCAT emgr ifixes are installed. You must use the /usr/sbin/emgr command to uninstall each xCAT emgr ifix prior to RPM installation."
|
|
exit 2
|
|
fi
|
|
fi
|
|
%endif
|
|
|
|
# The Juniper directory is switched to Jun and a sylink is created
|
|
if [ -d $RPM_INSTALL_PREFIX0/share/xcat/devicetype/EthSwitch/Juniper ]; then
|
|
# need to remove the old directory otherwise the symlink won't get creatd correctly
|
|
rm -rf $RPM_INSTALL_PREFIX0/share/xcat/devicetype/EthSwitch/Juniper
|
|
fi
|
|
|
|
# Newer xCAT-server payloads replace legacy dracut symlinks with real
|
|
# directories/files in several distro trees. Remove the old symlinks up front
|
|
# so RPM can upgrade the package cleanly.
|
|
for distro in SL alma centos fedora ol rocky; do
|
|
if [ -d "$RPM_INSTALL_PREFIX0/share/xcat/netboot/$distro" ]; then
|
|
find "$RPM_INSTALL_PREFIX0/share/xcat/netboot/$distro" \
|
|
-maxdepth 2 -type l -name 'dracut*' -exec rm -f {} +
|
|
fi
|
|
done
|
|
|
|
%post
|
|
%ifos linux
|
|
ln -sf $RPM_INSTALL_PREFIX0/sbin/xcatd /usr/sbin/xcatd
|
|
ln -sf $RPM_INSTALL_PREFIX0/share/xcat/install/sles $RPM_INSTALL_PREFIX0/share/xcat/install/sle
|
|
ln -sf $RPM_INSTALL_PREFIX0/share/xcat/netboot/sles $RPM_INSTALL_PREFIX0/share/xcat/netboot/sle
|
|
|
|
ln -sf $RPM_INSTALL_PREFIX0/share/xcat/install/centos $RPM_INSTALL_PREFIX0/share/xcat/install/centos-stream
|
|
ln -sf $RPM_INSTALL_PREFIX0/share/xcat/netboot/centos $RPM_INSTALL_PREFIX0/share/xcat/netboot/centos-stream
|
|
xcat_can_use_systemctl()
|
|
{
|
|
[ -d /run/systemd/system ] && command -v systemctl >/dev/null 2>&1
|
|
}
|
|
|
|
if [ "$1" = "1" ]; then #Only if installing for the first time..
|
|
if xcat_can_use_systemctl; then
|
|
systemctl daemon-reload
|
|
systemctl enable xcatd.service
|
|
elif [ -x /sbin/chkconfig ]; then
|
|
/sbin/chkconfig --add xcatd
|
|
elif [ -x /usr/lib/lsb/install_initd ]; then
|
|
/usr/lib/lsb/install_initd /etc/init.d/xcatd
|
|
else
|
|
echo "Unable to register init scripts on this system"
|
|
fi
|
|
fi
|
|
|
|
if [ "$1" -gt "1" ]; then #only on upgrade...
|
|
if xcat_can_use_systemctl; then
|
|
if [ -f /run/systemd/generator.late/xcatd.service ]; then
|
|
# To cover the case upgrade from no xcatd systemd unit file (cannot enable by default for HA case)
|
|
if ls /etc/rc.d/rc?.d/S??xcatd >/dev/null 2>&1; then
|
|
[ -x /sbin/chkconfig ] && /sbin/chkconfig --del xcatd
|
|
systemctl daemon-reload
|
|
systemctl enable xcatd.service
|
|
fi
|
|
else
|
|
systemctl daemon-reload
|
|
fi
|
|
fi
|
|
#migration issue for monitoring
|
|
XCATROOT=$RPM_INSTALL_PREFIX0 $RPM_INSTALL_PREFIX0/sbin/chtab filename=monitorctrl.pm notification -d
|
|
fi
|
|
|
|
%else
|
|
if [ "$1" -gt "1" ]; then #only on upgrade for AIX...
|
|
#migration issue for monitoring
|
|
XCATROOT=$RPM_INSTALL_PREFIX0 $RPM_INSTALL_PREFIX0/sbin/chtab filename=monitorctrl.pm notification -d
|
|
|
|
fi
|
|
%endif
|
|
|
|
#Apply the correct httpd/apache configuration file according to the httpd/apache version
|
|
if [ -n "$(httpd -v 2>&1 |grep -e '^Server version\s*:.*/2\.4')" ]
|
|
then
|
|
rm -rf /etc/httpd/conf.d/xcat-ws.conf
|
|
cp /etc/%httpconfigdir/conf.orig/xcat-ws.conf.apache24 /etc/httpd/conf.d/xcat-ws.conf
|
|
fi
|
|
|
|
if [ -n "$(apachectl -v 2>&1 |grep -e '^Server version\s*:.*/2\.4')" ]
|
|
then
|
|
rm -rf /etc/apache2/conf.d/xcat-ws.conf
|
|
cp /etc/%httpconfigdir/conf.orig/xcat-ws.conf.apache24 /etc/apache2/conf.d/xcat-ws.conf
|
|
fi
|
|
|
|
if [ -n "$(apache2ctl -v 2>&1 |grep -e '^Server version\s*:.*/2\.4')" ]
|
|
then
|
|
rm -rf /etc/apache2/conf.d/xcat-ws.conf
|
|
cp /etc/%httpconfigdir/conf.orig/xcat-ws.conf.apache24 /etc/apache2/conf.d/xcat-ws.conf
|
|
fi
|
|
|
|
exit 0
|
|
|
|
%preun
|
|
%ifos linux
|
|
xcat_can_use_systemctl()
|
|
{
|
|
[ -d /run/systemd/system ] && command -v systemctl >/dev/null 2>&1
|
|
}
|
|
|
|
if [ $1 == 0 ]; then #This means only on -e
|
|
if [ -f "/proc/cmdline" ]; then # prevent running it during install into chroot image
|
|
if xcat_can_use_systemctl; then
|
|
systemctl stop xcatd.service
|
|
elif [ -x /etc/init.d/xcatd ]; then
|
|
/etc/init.d/xcatd stop
|
|
fi
|
|
fi
|
|
|
|
if xcat_can_use_systemctl; then
|
|
systemctl disable xcatd.service
|
|
elif [ -x /sbin/chkconfig ]; then
|
|
/sbin/chkconfig --del xcatd
|
|
elif [ -x /usr/lib/lsb/remove_initd ]; then
|
|
/usr/lib/lsb/remove_initd /etc/init.d/xcatd
|
|
fi
|
|
rm -f /usr/sbin/xcatd #remove the symbolic
|
|
|
|
fi
|
|
%endif
|