File pdsh.spec of Package pdsh.18011
#
# spec file for package pdsh
#
# Copyright (c) 2021 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
#
%define slurm_version @BUILD_FLAVOR@%{nil}
%if "%slurm_version" != ""
%define _slurm_version _%{slurm_version}
%endif
%if 0%{!?sle_version:1} || 0%{?sle_version} >= 120200
%define have_munge 1
%define have_slurm 1
%define have_genders 1
%endif
%if 0%{?suse_version} >= 1550
%ifarch %ix86 %arm ppc
%define have_slurm 0
%endif
%endif
%if !0%{?have_slurm} && 0%{?_slurm_version:1}
ExclusiveArch: do_not_build
%endif
%define pname pdsh
Name: %{pname}%{?_slurm_version:_slurm%{?_slurm_version}}
BuildRequires: dejagnu
BuildRequires: openssh
BuildRequires: readline-devel
%if 0%{?have_slurm}
BuildRequires: slurm%{?_slurm_version}-devel
%endif
%if 0%{?have_munge}
BuildRequires: munge-devel
%endif
BuildRequires: pam-devel
Recommends: mrsh
%if 0%{?have_genders}
BuildRequires: genders-devel > 1.0
%endif
URL: http://pdsh.googlecode.com/
Version: 2.34
Release: 0
Summary: Parallel remote shell program
# git clone of https://code.google.com/p/pdsh/
License: GPL-2.0-or-later
Group: Productivity/Clustering/Computing
Source: https://github.com/chaos/%{pname}/releases/download/%{pname}-%{version}/%{pname}-%{version}.tar.gz
%description
Pdsh is a multithreaded remote shell client which executes commands on
multiple remote hosts in parallel. Pdsh can use several different
remote shell services, including Kerberos IV and ssh.
%package -n %{pname}-slurm%{?_slurm_version}
Summary: SLURM plugin for pdsh
Group: Productivity/Clustering/Computing
%{?_slurm_version:BuildRequires: %pname}
Requires: %pname = %{version}
Enhances: slurm%{?_slurm_version}
%if 0%{?_slurm_version:1}
Provides: %{pname}-slurm = %{version}
%endif
%description -n %{pname}-slurm%{?_slurm_version}
Plugin for pdsh to determine nodes to run on by SLURM jobs or partitions.
%package genders
Summary: Genders plugin for pdsh
Group: Productivity/Clustering/Computing
Requires: pdsh = %{version}
Conflicts: pdsh-netgroup
Conflicts: pdsh-dshgroup
Conflicts: pdsh-machines
%description genders
Plugin for pdsh to determine nodes to run on by genders attributes.
%package machines
Summary: Machines plugin for pdsh
Group: Productivity/Clustering/Computing
Requires: pdsh = %{version}
Conflicts: pdsh-genders
%description machines
Plugin for pdsh to determine nodes to run on from machines file.
%package dshgroup
Summary: Dsh plugin for pdsh
Group: Productivity/Clustering/Computing
Requires: pdsh = %{version}
Conflicts: pdsh-genders
Conflicts: pdsh-netgroup
%description dshgroup
Plugin for pdsh to determine nodes from dsh-style "group" files
%package netgroup
Summary: Netgroup plugin for pdsh
Group: Productivity/Clustering/Computing
Requires: pdsh = %{version}
Conflicts: pdsh-genders
Conflicts: pdsh-dshgroup
%description netgroup
Plugin for pdsh to determine nodes to run on from netgroups.
%prep
%setup -q -n %{pname}-%{version}
%build
export CFLAGS="%{optflags} -fno-strict-aliasing"
%configure \
%if 0%{?_slurm_version:1}
--without-exec \
%else
--with-readline \
--with-machines=%{_sysconfdir}/pdsh/machines \
--with-ssh \
--with-dshgroups \
--with-netgroup \
--with-rcmd-rank-list="ssh %{?have_munge:mrsh} krb4 qsh mqsh exec xcpu" \
--with-pam \
%{?have_genders:--with-genders} \
%{?have_munge:--with-mrsh} \
%endif
%{?have_slurm:--with-slurm} \
--without-rsh \
--disable-static
%if 0%{!?make_build:1}
# accomodate < SLE-15
%define make_build make %{?_smp_mflags}
%endif
%make_build
%install
%{?_slurm_version:cd src/modules}
%make_install
rm -f %buildroot/%{_libdir}/pdsh/*.la
%if !0%{?_slurm_version:1}
%check
make check
%files
%doc README DISCLAIMER.* README.* NEWS TODO
%license COPYING
%attr(755, root, root) %{_bindir}/pdsh
%attr(755, root, root) %{_bindir}/pdcp
%{_bindir}/dshbak
%{_bindir}/rpdcp
%{_mandir}/man1/pdsh.1.gz
%{_mandir}/man1/pdcp.1.gz
%{_mandir}/man1/dshbak.1.gz
%{_mandir}/man1/rpdcp.1.gz
%{_libdir}/pdsh
%{?have_genders:%exclude %{_libdir}/pdsh/genders.so}
%{?have_slurm:%exclude %{_libdir}/pdsh/slurm.so}
%exclude %{_libdir}/pdsh/machines.so
%exclude %{_libdir}/pdsh/dshgroup.so
%exclude %{_libdir}/pdsh/netgroup.so
%if 0%{?have_genders}
%files genders
%{_libdir}/pdsh/genders.so
%endif
%files machines
%{_libdir}/pdsh/machines.so
%files dshgroup
%{_libdir}/pdsh/dshgroup.so
%files netgroup
%{_libdir}/pdsh/netgroup.so
%endif # if _slurm_version
%if 0%{?have_slurm}
%files -n %{pname}-slurm%{?_slurm_version}
%{_libdir}/pdsh/slurm.so
%endif
%changelog