From 8a6d9d057b343935fe073a322c36ab2205a706129f7bdf8b065a2180fbfa5e80 Mon Sep 17 00:00:00 2001 From: Egbert Eich Date: Sat, 24 Feb 2018 17:39:47 +0000 Subject: [PATCH] Accepting request 579793 from home:eeich:hpc_alt - Fix Group name. - Move library file list to an include file. - General clean up and bug fixes. OBS-URL: https://build.opensuse.org/request/show/579793 OBS-URL: https://build.opensuse.org/package/show/science:HPC/patterns-hpc?expand=0&rev=2 --- get-devel.sh | 6 -- library-inc.txt | 65 ++++++++++++++++ patterns-hpc-rpmlintrc | 3 +- patterns-hpc.changes | 7 ++ patterns-hpc.spec | 168 ++++++++++++----------------------------- 5 files changed, 123 insertions(+), 126 deletions(-) delete mode 100644 get-devel.sh create mode 100644 library-inc.txt diff --git a/get-devel.sh b/get-devel.sh deleted file mode 100644 index ae432b2..0000000 --- a/get-devel.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash -awk 'BEGIN {pln=0;} \ - /start_non_devel/ {pln=1;}\ - /stop_non_devel/ {pln=0;}\ - /^[^#]/{ if(pln) {printf("%s-devel\n",$0);} }' hpc-patterns.spec \ - > devel-inc.txt diff --git a/library-inc.txt b/library-inc.txt new file mode 100644 index 0000000..af27711 --- /dev/null +++ b/library-inc.txt @@ -0,0 +1,65 @@ +# 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 + diff --git a/patterns-hpc-rpmlintrc b/patterns-hpc-rpmlintrc index 459f6d4..2e53483 100644 --- a/patterns-hpc-rpmlintrc +++ b/patterns-hpc-rpmlintrc @@ -1,3 +1,4 @@ addFilter("W: no-binary"); - +addFilter("W: unexpanded-macro"); +addFilter("W: devel-dependency"); diff --git a/patterns-hpc.changes b/patterns-hpc.changes index 004fd93..3469df7 100644 --- a/patterns-hpc.changes +++ b/patterns-hpc.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Sat Feb 24 13:06:37 UTC 2018 - eich@suse.com + +- Fix Group name. +- Move library file list to an include file. +- General clean up and bug fixes. + ------------------------------------------------------------------- Fri Feb 23 13:07:44 UTC 2018 - eich@suse.com diff --git a/patterns-hpc.spec b/patterns-hpc.spec index 10a680d..1c74ecd 100644 --- a/patterns-hpc.spec +++ b/patterns-hpc.spec @@ -15,44 +15,48 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # +%define pattern hpc +%define PATTERN HPC +%if 0%{?is_opensuse} +%define product openSUSE-%{pattern} +%else +%define product sle-%{pattern} +%endif -Name: patterns-hpc -Version: 20180124 +Name: patterns-%{pattern} +Version: 20180224 Release: 0 Summary: Patterns for Installation (HPC patterns) License: MIT -Group: Metapackage +Group: Metapackages Url: https://github.com/openSUSE/patterns Source0: %{name}-rpmlintrc -Source1: devel-inc.txt +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 +This particular package contains all the HPC related patterns ################################################################################ %package compute-node %pattern_serverfunctions Summary: HPC compute node -Group: Metapackage +Provides: Metapackages Provides: compute-node Provides: pattern() = compute-node -Provides: pattern-icon() = yast-uml +Provides: pattern-icon() = pattern-generic 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 +Provides: patterns-%{product}-compute-node = %{version} +Obsoletes: patterns-%{product}-compute-node < %{version} Requires: pattern() = base Requires: nfs-client @@ -68,143 +72,69 @@ Recommends: genders 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 +%dir %{_defaultdocdir}/patterns +%{_defaultdocdir}/patterns/compute-node.txt + ################################################################################ -%package hpc-libraries +%package libraries %pattern_serverfunctions Summary: HPC modularized libraries -Group: Metapackage +Provides: Metapackages Provides: hpc-libraries Provides: pattern() = hpc-libraries -Provides: pattern-icon() = yast-uml +Provides: pattern-icon() = pattern-generic 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 +Provides: patterns-%{product}-libraries = %{version} +Obsoletes: patterns-%{product}-libraries < %{version} 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 +%include %{SOURCE1} -%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 +%description libraries +This package provides all the modularized libraries 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. -%package hpc-development-node +%files libraries +%dir %{_defaultdocdir}/patterns +%{_defaultdocdir}/patterns/hpc-libraries.txt + +################################################################################ +%package development-node %pattern_serverfunctions Summary: Packages needed to be able to develop HPC Apps -Group: Metapackage +Provides: Metapackages Provides: hpc-development-node Provides: pattern() = hpc-development-node -Provides: pattern-icon() = yast-uml +Provides: pattern-icon() = pattern-basis-devel 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 +Provides: patterns-%{product}-development-node = %{version} +Obsoletes: patterns-%{product}-development-node < %{version} 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 +%include %{SOURCE2} + +%description 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 + +%files development-node +%dir %{_defaultdocdir}/patterns +%{_defaultdocdir}/patterns/hpc-development-node.txt %prep %build %install -mkdir -p "%{buildroot}/usr/share/doc/packages/patterns" +mkdir -p "%{buildroot}%{_defaultdocdir}/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" + echo "This file marks the pattern $pack in version %{version} to be installed." \ + >"%{buildroot}%{_defaultdocdir}/patterns/${pack}.txt" done -%post - -%postun - %changelog