patterns-hpc/patterns-hpc.spec

211 lines
7.7 KiB
RPMSpec

#
# spec file for package patterns-hpc
#
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
#
# 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 http://bugs.opensuse.org/
#
Name: patterns-hpc
Version: 20180124
Release: 0
Summary: Patterns for Installation (HPC patterns)
License: MIT
Group: Metapackage
Url: https://github.com/openSUSE/patterns
Source0: %{name}-rpmlintrc
Source1: devel-inc.txt
BuildRequires: patterns-rpm-macros
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%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 compute node
Group: Metapackage
Provides: compute-node
Provides: pattern() = compute-node
Provides: pattern-icon() = yast-uml
Provides: pattern-order() = 2010
Provides: pattern-visible()
%if 0%{?is_opensuse}
Provides: patterns-openSUSE-compute-node = %{version}
Obsoletes: patterns-openSUSE-compute-node < %{version}
%else
Provides: patterns-sles-compute-node = %{version}
Obsoletes: patterns-sles-compute-node < %{version}
%endif
Requires: pattern() = base
Requires: nfs-client
Requires: openssh
Requires: salt-minion
Recommends: ntp
Recommends: nss_ldap
Recommends: ganglia-gmond
Recommends: genders
%description compute-node
A compute node has a minmal software image and mainly runs simultion programs. Services on this node should be reduced to a bare minimum and the node *must* be installed in a automatic manner. A basset of numerical libraries should also be installed.
%files compute-node
%dir /usr/share/doc/packages/patterns
/usr/share/doc/packages/patterns/compute-node.txt
################################################################################
%package hpc-libraries
%pattern_serverfunctions
Summary: HPC modularized libraries
Group: Metapackage
Provides: hpc-libraries
Provides: pattern() = hpc-libraries
Provides: pattern-icon() = yast-uml
Provides: pattern-order() = 2030
Provides: pattern-visible()
%if 0%{?is_opensuse}
Provides: patterns-openSUSE-hpc-libraries = %{version}
Obsoletes: patterns-openSUSE-hpc-libraries < %{version}
%else
Provides: patterns-sles-hpc-libraries = %{version}
Obsoletes: patterns-sles-hpc-libraries < %{version}
%endif
Requires: pattern() = compute-node
Requires: lua-lmod
### start_non_devel libs
# Recommend libraries which are in hpc
Recommends: adios
Recommends: gsl_serial
Recommends: metis_serial
Recommends: python-numpy
Recommends: superlu-gnu
Recommends: libfftw3-gnu-hpc
Recommends: libhdf5-gnu-hpc
Recommends: libhdf5hl_fortran100-hpc
Recommends: libhdf5_cpp-gnu-hpc
Recommends: libhdf5_fortran-gnu-hpc
Recommends: libhdf5_hl-gnu-hpc
Recommends: libhdf5_hl_cpp-gnu-hpc
Recommends: libnetcdf-gnu-hpc
Recommends: libopenblas-gnu-hpc
Recommends: libopenblas-pthreads-gnu-hpc
# We require the mpi module and recommend the rest
Requires: mpich-gnu-hpc
Requires: mpich-ofi-gnu-hpc
Requires: mvapich2-gnu-hpc
Requires: mvapich2-psm-gnu-hpc
Requires: mvapich2-psm2-gnu-hpc
Requires: openmpi1-gnu-hpc
Requires: openmpi3-gnu-hpc
# Now the mpi dependend recommends
Recommends: libblacs2-gnu-mpich-hpc
Recommends: libblacs2-gnu-mvapich2-hpc
Recommends: libfftw3-gnu-mpich-hpc
Recommends: libfftw3-gnu-mvapich2-hpc
Recommends: libfftw3-gnu-openmpi1-hpc
Recommends: libfftw3-gnu-openmpi3-hpc
Recommends: libhdf5-gnu-mpich-hpc
Recommends: libhdf5-gnu-mvapich2-hpc
Recommends: libhdf5-gnu-openmpi1-hpc
Recommends: libhdf5-gnu-openmpi3-hpc
Recommends: libhdf5_fortran-gnu-mpich-hpc
Recommends: libhdf5_fortran-gnu-mvapich2-hpc
Recommends: libhdf5_fortran-gnu-openmpi1-hpc
Recommends: libhdf5_fortran-gnu-openmpi3-hpc
Recommends: libhdf5_hl-gnu-mpich-hpc
Recommends: libhdf5_hl-gnu-mvapich2-hpc
Recommends: libhdf5_hl-gnu-openmpi1-hpc
Recommends: libhdf5_hl-gnu-openmpi3-hpc
Recommends: libhdf5_hl_fortran-gnu-mpich-hpc
Recommends: libhdf5_hl_fortran-gnu-mvapich2-hpc
Recommends: libhdf5_hl_fortran-gnu-openmpi1-hpc
Recommends: libhdf5_hl_fortran-gnu-openmpi3-hpc
Recommends: libnetcdf-fortran-gnu-mpich-hpc
Recommends: libnetcdf-fortran-gnu-openmpi1-hpc
Recommends: libnetcdf-fortran-gnu-openmpi3-hpc
Recommends: libnetcdf-gnu-mpich-hpc
Recommends: libnetcdf-gnu-mvapich2-hpc
Recommends: libnetcdf-gnu-openmpi1-hpc
Recommends: libnetcdf-gnu-openmpi3-hpc
Recommends: libpetsc-gnu-mpich-hpc
Recommends: libpetsc-gnu-mvapich2-hpc
Recommends: libpetsc-gnu-openmpi1-hpc
Recommends: libpetsc-gnu-openmpi3-hpc
Recommends: libscalapack2-gnu-mpich-hpc
Recommends: libscalapack2-gnu-mvapich2-hpc
Recommends: libscalapack2-gnu-openmpi1-hpc
Recommends: libscalapack2-gnu-openmpi3-hpc
Recommends: tau-gnu-mvapich2-hpc
Recommends: tau-gnu-openmpi-hpc
### stop_non_devel libs
%description hpc-libraries
This package provides all the modularized libaries so that they can be used in a hpc environment. Especially these libariries allows you to install a mpi enabled libarary for different mpi libraries.
%files hpc-libraries
%dir /usr/share/doc/packages/patterns
/usr/share/doc/packages/patterns/hpc-libraries.txt
%package hpc-development-node
%pattern_serverfunctions
Summary: Packages needed to be able to develop HPC Apps
Group: Metapackage
Provides: hpc-development-node
Provides: pattern() = hpc-development-node
Provides: pattern-icon() = yast-uml
Provides: pattern-order() = 2040
Provides: pattern-visible()
%if 0%{?is_opensuse}
Provides: patterns-openSUSE-hpc-development-node = %{version}
Obsoletes: patterns-openSUSE-hpc-development-node < %{version}
%else
Provides: patterns-sles-hpc-development-node = %{version}
Obsoletes: patterns-sles-hpc-development-node < %{version}
%endif
Requires: pattern() = compute-node
Requires: pattern() = devel_C_C++
Requires: pattern() = devel_basic
Requires: pattern() = devel_perl
Requires: pattern() = devel_python3
%include %{SOURCE1}
%description hpc-development-node
This package provides all the relevant packages for developing HPC applications. It depends on the hpc-compute node and adds additionally the compilers and includes also the relevant managment packages.
%files hpc-development-node
%dir /usr/share/doc/packages/patterns
/usr/share/doc/packages/patterns/hpc-development-node.txt
%prep
%build
%install
mkdir -p "%{buildroot}/usr/share/doc/packages/patterns"
for pack in compute-node hpc-libraries hpc-development-node; do
echo "This file marks the pattern $pack in version %{version} to be installed." \
>"%{buildroot}/usr/share/doc/packages/patterns/${pack}.txt"
done
%post
%postun
%changelog