Blob Blame History Raw
#
# spec file for package patterns-hpc
#
# Copyright (c) 2023 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/
#


Name:           patterns-hpc
Version:        20190218
Release:        0
Summary:        Source Package for HPC Patterns
License:        MIT
Group:          Metapackages
URL:            https://github.com/openSUSE/patterns
Source0:        %{name}-rpmlintrc
Source1:        library-inc.txt
Source2:        devel-inc.txt
BuildRequires:  patterns-rpm-macros
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
ExclusiveArch:  x86_64 aarch64

%description
This is an internal package that is used to create the patterns as part of
the installation source setup.  Installation of this package does not make
sense.
This particular package contains all the HPC related patterns.





################################################################################
%package compute_node
%pattern_serverfunctions
Summary:        HPC Basic Compute Node
Group:          Metapackages
Provides:       pattern() = hpc_compute_node
Provides:       pattern-icon() = pattern-generic
Provides:       pattern-visible()

Requires:       nfs-client
Requires:       openssh
Requires:       sudo
# Ping is useful on compute nodes (bsc#1169484)
Requires:       iputils

Recommends:     less
Recommends:     mrsh
Recommends:     mrsh-server
Recommends:     nss_ldap
Recommends:     ntp
Recommends:     pdsh
Recommends:     rsync
Recommends:     salt-minion
Recommends:     slurm-node
Recommends:     vim
Recommends:     wget
# python 2.7 deps
Recommends:     ganglia-gmond
Recommends:     genders
Recommends:     perl-genders

%description compute_node
A compute node comprises of a minimal software image and mainly runs simulation programs. Services on this node should be reduced to a bare minimum and the node *must* be installed in a automatic manner.
The pattern 'HPC Modularized libraries' should also be installed.

%files compute_node
%dir %{_defaultdocdir}/patterns
%{_defaultdocdir}/patterns/patterns-hpc-compute_node.txt

################################################################################

%package libraries
%pattern_serverfunctions
Summary:        HPC Modularized Libraries
Group:          Metapackages
Provides:       pattern() = hpc_libraries
Provides:       pattern-icon() = pattern-generic
Provides:       pattern-order() = 2030
Provides:       pattern-visible()
Requires:       pattern() = hpc_compute_node

Requires:       lua-lmod
%include %{SOURCE1}

%description libraries
This package provides all the modularized libraries so that they can be used in an HPC environment. These libraries allow to install several MPI flavors in parallel.
In order to use these libraries one needs to load them via the module command first.

%files libraries
%dir %{_defaultdocdir}/patterns
%{_defaultdocdir}/patterns/patterns-hpc-libraries.txt

################################################################################
%package development_node
%pattern_development
Summary:        HPC Development Packages
Group:          Metapackages
Provides:       pattern() = hpc_development_node
Provides:       pattern-icon() = pattern-basis-devel
Provides:       pattern-order() = 2040
Provides:       pattern-visible()
Requires:       pattern() = hpc_compute_node
Requires:       pattern() = hpc_libraries
Recommends:     python3-devel
Recommends:     pattern() = devel_C_C++
Recommends:     pattern() = devel_basis
Recommends:     pattern() = devel_perl
Recommends:     pattern() = devel_python3
Requires:       gnu-compilers-hpc-devel
Requires:       lua-lmod
# Ping is useful on compute nodes (bsc#1169484)
Requires:       iputils

# recommend additional development tools
Recommends:     cmake
Recommends:     gnuplot
Recommends:     gnuplot-doc
# include all the modularized stuff
%include %{SOURCE2}

%description development_node
This package provides all the relevant packages for developing HPC applications.
It depends on the pattern 'HPC Modularized Libraries'. In addition it includes the GNU compilers and the relevant management packages.

%files development_node
%dir %{_defaultdocdir}/patterns
%{_defaultdocdir}/patterns/patterns-hpc-development_node.txt

################################################################################
%package workload_server
%pattern_serverfunctions
Summary:        HPC Workload Manager
Group:          Metapackages
Provides:       pattern() = hpc_workload_server
Provides:       pattern-icon() = pattern-generic
Provides:       pattern-visible()

Requires:       slurm
Requires:       slurm-slurmdbd
# Ping is useful on compute nodes (bsc#1169484)
Requires:       iputils
Suggests:       mariadb

%description workload_server
This package provides all the relevant packages for running the central server
component of the slurm workload manager.

%files workload_server
%dir %{_defaultdocdir}/patterns
%{_defaultdocdir}/patterns/patterns-hpc-workload_server.txt

%prep

%build

%install
mkdir -p "%{buildroot}%{_defaultdocdir}/patterns"
for pack in patterns-hpc-compute_node patterns-hpc-libraries \
        patterns-hpc-workload_server patterns-hpc-development_node; do
    echo "This file marks the pattern $pack in version %{version} to be installed." \
		>"%{buildroot}%{_defaultdocdir}/patterns/${pack}.txt"
done

%changelog