SHA256
10
0
forked from pool/hypre

Compare commits

16 Commits

Author SHA256 Message Date
89aeb2225c Accepting request 1266059 from science
OBS-URL: https://build.opensuse.org/request/show/1266059
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/hypre?expand=0&rev=14
2025-04-03 14:46:51 +00:00
Ana Guerrero
d89b5dab0a - Remove support for gnu-hpc build flavors (bsc#1239982).
OBS-URL: https://build.opensuse.org/package/show/science/hypre?expand=0&rev=56
2025-04-01 09:11:40 +00:00
f32f2e5d29 - Disable gnu-hpc build flavours (bsc#1239982)
- Add openmpi5 build flavour
- openmpi5 is not available on 32b systems

OBS-URL: https://build.opensuse.org/package/show/science/hypre?expand=0&rev=55
2025-03-31 09:03:40 +00:00
7e9b20ad79 Accepting request 1236197 from home:eeich:science
- Use the newly introduced %hpc_requires_eq macro to get the correct
  library dependencies (boo#1234007).

OBS-URL: https://build.opensuse.org/request/show/1236197
OBS-URL: https://build.opensuse.org/package/show/science/hypre?expand=0&rev=54
2025-01-09 12:56:37 +00:00
5e2bc21082 Accepting request 1149283 from science
OBS-URL: https://build.opensuse.org/request/show/1149283
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/hypre?expand=0&rev=13
2024-02-22 20:00:29 +00:00
c98894f3d4 Accepting request 1119955 from science
- Disable HPC flavors on i586

- Drop support for obsolete openmpi[123]
- Prepare support for openmpi5

OBS-URL: https://build.opensuse.org/request/show/1119955
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/hypre?expand=0&rev=12
2023-10-24 18:08:14 +00:00
42cf3c5ae1 Accepting request 867883 from science
- Make cmake files installation non-conflicting.

- Fix hypre package conflicts for non HPC packages. (forwarded request 867882 from eeich)

OBS-URL: https://build.opensuse.org/request/show/867883
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/hypre?expand=0&rev=11
2021-01-30 12:56:14 +00:00
ae6cb98f9d Accepting request 840010 from science
- Don't include superlu-devel and lapack-devel into HPC devel
  package. (forwarded request 840009 from eeich)

OBS-URL: https://build.opensuse.org/request/show/840010
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/hypre?expand=0&rev=10
2020-10-08 11:13:26 +00:00
20c396aa32 Accepting request 833702 from science
- Add build support for gcc10 to HPC build (bsc#1174439).
- Add openmpi4 flavors. (forwarded request 833679 from eeich)

OBS-URL: https://build.opensuse.org/request/show/833702
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/hypre?expand=0&rev=9
2020-09-15 14:24:48 +00:00
25636e2d2d Accepting request 800437 from science
- Add non-HPC openmpi3 flavor.

OBS-URL: https://build.opensuse.org/request/show/800437
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/hypre?expand=0&rev=8
2020-05-07 12:48:42 +00:00
addd62d4b9 Accepting request 794971 from science
- Enable non-HPC openmpi3 build (boo#1169792).
- Remove bogus %undefine suffix - suffix is a RPM builtin, and
  trying to undefine it is an error since RPM 4.15.

OBS-URL: https://build.opensuse.org/request/show/794971
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/hypre?expand=0&rev=7
2020-04-17 22:33:18 +00:00
20bdaf5f0a Accepting request 755685 from science
- Add support for gcc8 and gcc9 (jsc#SLE-7766 & jsc#SLE-8604).

OBS-URL: https://build.opensuse.org/request/show/755685
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/hypre?expand=0&rev=6
2019-12-12 22:18:34 +00:00
c375a6ffee Accepting request 752515 from science
- Add support for gcc7.
- Add support for gcc8 and gcc9 (jsc#SLE-7766 & jsc#SLE-8609).

- Update to 2.18.2:
  * Fixed mixedint bugs.
  * Ported BoomerAMG setup to run on GPUs.  Only a subset of setup phase
    features are currently available.
  * Updated CMake to support more of the features available in configure/make.
  * Added RecomputeResidual options to several hybrid solvers.
  * Various bug fixes.
- Disable openmpi1 builds for SLE/Leap > 15.1.
- Adapt build for openmpi1 to reflect naming change on Factory.
- Enable openmpi3 builds for Leap and SLE > 15.1 (jsc#SLE-7773).
- hypre_CMakeLists.patch refreshed and replaced by:
  Fix-library-version-numbering.patch
- Fix-empty-elseif-in-CMakeLists.txt.patch:
  Fix empty elseif() in CMake file.
- Use full package version to identify .so version:
  INSTALL.md states that "The hypre team currently does nothing to ensure
  application binary interface (ABI) compatibility. As a result, all release
  (major, minor, or patch) should be treated as incompatible."
- Replaced -DHYPRE_SEQUENTIAL by -DHYPRE_WITH_MPI

OBS-URL: https://build.opensuse.org/request/show/752515
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/hypre?expand=0&rev=5
2019-12-02 10:29:48 +00:00
7e03615830 Accepting request 734095 from science
Add Jira feature ID

OBS-URL: https://build.opensuse.org/request/show/734095
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/hypre?expand=0&rev=4
2019-10-02 09:58:02 +00:00
e455e7868a Accepting request 727780 from science
OBS-URL: https://build.opensuse.org/request/show/727780
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/hypre?expand=0&rev=3
2019-09-07 09:48:27 +00:00
f38e392157 Accepting request 680428 from science
- Consolidated build_all (forwarded request 680425 from eeich)

OBS-URL: https://build.opensuse.org/request/show/680428
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/hypre?expand=0&rev=2
2019-07-05 11:48:40 +00:00
3 changed files with 43 additions and 341 deletions

View File

@@ -1,9 +1,7 @@
<multibuild>
<package>serial</package>
<package>openmpi4</package>
<package>openmpi5</package>
<package>mvapich2</package>
<package>mpich</package>
<package>gnu-openmpi4-hpc</package>
<package>gnu-mpich-hpc</package>
<package>gnu-mvapich2-hpc</package>
</multibuild>

View File

@@ -1,3 +1,21 @@
-------------------------------------------------------------------
Mon Mar 31 12:32:54 UTC 2025 - Egbert Eich <eich@suse.com>
- Remove support for gnu-hpc build flavors (bsc#1239982).
-------------------------------------------------------------------
Mon Mar 24 13:13:04 UTC 2025 - Nicolas Morey <nicolas.morey@suse.com>
- Disable gnu-hpc build flavours (bsc#1239982)
- Add openmpi5 build flavour
- openmpi5 is not available on 32b systems
-------------------------------------------------------------------
Tue Dec 3 08:45:17 UTC 2024 - Egbert Eich <eich@suse.com>
- Use the newly introduced %hpc_requires_eq macro to get the correct
library dependencies (boo#1234007).
-------------------------------------------------------------------
Thu Feb 22 07:54:08 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>

View File

@@ -1,7 +1,7 @@
#
# spec file
# spec file for package hypre
#
# Copyright (c) 2023 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,8 +17,6 @@
%global flavor @BUILD_FLAVOR@%{?nil}
%define ver 2.20.0
%define _ver 2_20_0
%define somver %{_ver}
%define sover %{ver}
@@ -43,204 +41,26 @@ ExclusiveArch: do_not_build
%if "%{flavor}" == "serial"
%undefine mpi_family
%bcond_with hpc
%endif
%if "%{flavor}" == "openmpi4"
%global mpi_family openmpi
%define mpi_vers 4
%bcond_with hpc
%{?DisOMPI4}
%endif
%if "%{flavor}" == "openmpi5"
%global mpi_family openmpi
%define mpi_vers 5
%bcond_with hpc
%{?DisOMPI5}
%endif
%if "%{flavor}" == "mvapich2"
%global mpi_family mvapich2
%bcond_with hpc
%endif
%if "%{flavor}" == "mpich"
%global mpi_family mpich
%bcond_with hpc
%endif
%if "%{flavor}" == "doc-hpc"
%bcond_without hpc
%bcond_without install_doc
%bcond_with build_all
%else
%bcond_without build_all
%endif
%if "%{flavor}" == "gnu-mvapich2-hpc"
%undefine c_f_ver
%define mpi_family mvapich2
%define compiler_family gnu
%bcond_without hpc
%endif
%if "%{flavor}" == "gnu-mpich-hpc"
%undefine c_f_ver
%define mpi_family mpich
%define compiler_family gnu
%bcond_without hpc
%endif
%if "%{flavor}" == "gnu-openmpi4-hpc"
%undefine c_f_ver
%define compiler_family gnu
%define mpi_family openmpi
%define mpi_vers 4
%bcond_without hpc
%{?DisOMPI4}
%endif
%if "%{flavor}" == "gnu-openmpi5-hpc"
%undefine c_f_ver
%define compiler_family gnu
%define mpi_family openmpi
%define mpi_vers 5
%bcond_without hpc
%{?DisOMPI5}
%endif
%if "%{flavor}" == "gnu7-mvapich2-hpc"
%define c_f_ver 7
%define mpi_family mvapich2
%define compiler_family gnu
%bcond_without hpc
%endif
%if "%{flavor}" == "gnu7-mpich-hpc"
%define c_f_ver 7
%define mpi_family mpich
%define compiler_family gnu
%bcond_without hpc
%endif
%if "%{flavor}" == "gnu7-openmpi4-hpc"
%define c_f_ver 7
%define compiler_family gnu
%define mpi_family openmpi
%define mpi_vers 4
%bcond_without hpc
%{?DisOMPI4}
%endif
%if "%{flavor}" == "gnu7-openmpi5-hpc"
%define c_f_ver 7
%define compiler_family gnu
%define mpi_family openmpi
%define mpi_vers 5
%bcond_without hpc
%{?DisOMPI5}
%endif
%if "%{flavor}" == "gnu8-mvapich2-hpc"
%define c_f_ver 8
%define mpi_family mvapich2
%define compiler_family gnu
%bcond_without hpc
%endif
%if "%{flavor}" == "gnu8-mpich-hpc"
%define c_f_ver 8
%define mpi_family mpich
%define compiler_family gnu
%bcond_without hpc
%endif
%if "%{flavor}" == "gnu8-openmpi4-hpc"
%define c_f_ver 8
%define compiler_family gnu
%define mpi_family openmpi
%define mpi_vers 4
%bcond_without hpc
%{?DisOMPI4}
%endif
%if "%{flavor}" == "gnu8-openmpi5-hpc"
%define c_f_ver 8
%define compiler_family gnu
%define mpi_family openmpi
%define mpi_vers 5
%bcond_without hpc
%{?DisOMPI5}
%endif
%if "%{flavor}" == "gnu9-mvapich2-hpc"
%define c_f_ver 9
%define mpi_family mvapich2
%define compiler_family gnu
%bcond_without hpc
%endif
%if "%{flavor}" == "gnu9-mpich-hpc"
%define c_f_ver 9
%define mpi_family mpich
%define compiler_family gnu
%bcond_without hpc
%endif
%if "%{flavor}" == "gnu9-openmpi4-hpc"
%define c_f_ver 9
%define compiler_family gnu
%define mpi_family openmpi
%define mpi_vers 4
%bcond_without hpc
%{?DisOMPI4}
%endif
%if "%{flavor}" == "gnu9-openmpi5-hpc"
%define c_f_ver 9
%define compiler_family gnu
%define mpi_family openmpi
%define mpi_vers 5
%bcond_without hpc
%{?DisOMPI5}
%endif
%if "%{flavor}" == "gnu10-mvapich2-hpc"
%define c_f_ver 10
%define mpi_family mvapich2
%define compiler_family gnu
%bcond_without hpc
%endif
%if "%{flavor}" == "gnu10-mpich-hpc"
%define c_f_ver 10
%define mpi_family mpich
%define compiler_family gnu
%bcond_without hpc
%endif
%if "%{flavor}" == "gnu10-openmpi4-hpc"
%define c_f_ver 10
%define compiler_family gnu
%define mpi_family openmpi
%define mpi_vers 4
%bcond_without hpc
%{?DisOMPI4}
%endif
%if "%{flavor}" == "gnu10-openmpi5-hpc"
%define c_f_ver 10
%define compiler_family gnu
%define mpi_family openmpi
%define mpi_vers 5
%bcond_without hpc
%{?DisOMPI5}
%endif
# Don't build non-HPC on SLE
%if !0%{?is_opensuse} && !0%{?with_hpc:1}
ExclusiveArch: do_not_build
%endif
%{?mpi_family:%{bcond_without mpi}}%{!?mpi_family:%{bcond_with mpi}}
@@ -250,40 +70,26 @@ ExclusiveArch: do_not_build
%define mpi_ext %{?mpi_vers}
%endif
%if %{without hpc}
%if %{without mpi}
%global my_bindir %_bindir
%global _incdir %{_prefix}/include/
%else
%global _bindir %_bindir
%global _defaultlicensedir %_defaultlicensedir
%global _prefix %{_libdir}/mpi/gcc/%{mpi_family}%{?mpi_ext}
%global _suffix -%{?mpi_family}%{?mpi_ext}
%global my_bindir %{_prefix}/bin
%global _libdir %{_prefix}/%{_lib}/
%global _incdir %{_prefix}/include/
%endif
%if 0%{!?package_name:1}
%define package_name %pname%{?_suffix}
%endif
%define libname lib%{PNAME}%{somver}%{?_suffix}
%else # with hpc
ExcludeArch: %ix86
%{hpc_init %{?compiler_family:-c %compiler_family %{?c_f_ver:-v %{c_f_ver}}} %{?with_mpi:-m {%mpi_family}} %{?mpi_vers:-V %{mpi_vers}} %{?ext:-e %{ext}}}
# Nail these down before changing _prefix
%global hpc_base %hpc_base
%if %{without mpi}
%global my_bindir %_bindir
%global _incdir %{_prefix}/include/
%else
%global _bindir %_bindir
%global _defaultlicensedir %_defaultlicensedir
%define _prefix %hpc_prefix
%define my_bindir %hpc_bindir
%define _libdir %hpc_libdir
%define _incdir %hpc_includedir
%define package_name %{hpc_package_name %_ver}
%define libname lib%{PNAME}%{hpc_package_name_tail %{?_ver}}
%global _prefix %{_libdir}/mpi/gcc/%{mpi_family}%{?mpi_ext}
%global _suffix -%{?mpi_family}%{?mpi_ext}
%global my_bindir %{_prefix}/bin
%global _libdir %{_prefix}/%{_lib}/
%global _incdir %{_prefix}/include/
%endif
%if 0%{!?package_name:1}
%define package_name %pname%{?_suffix}
%endif
%define libname lib%{PNAME}%{somver}%{?_suffix}
Name: %package_name
Version: %{ver}
Version: 2.20.0
%define somver 2_20_0
Release: 0
Summary: Scalable algorithms for solving linear systems of equations
License: Apache-2.0 OR MIT
@@ -295,26 +101,14 @@ Patch1: Add-library-version.patch
# TODO : add babel
#BuildRequires: babel-devel
%if %{with build_all}
%if %{without hpc}
BuildRequires: gcc-c++
BuildRequires: gcc-fortran
BuildRequires: lapack-devel
BuildRequires: superlu-devel
%if 0%{?with mpi}
%if 0%{?with mpi}
BuildRequires: %{mpi_family}%{?mpi_ext}-devel
%endif
%else
BuildRequires: %{compiler_family}%{?c_f_ver}-compilers-hpc-macros-devel
BuildRequires: %{mpi_family}%{?mpi_vers}-%{compiler_family}%{?c_f_ver}-hpc-macros-devel
BuildRequires: libopenblas%{?hpc_ext}-%{compiler_family}%{?c_f_ver}-hpc-devel
BuildRequires: superlu%{?hpc_ext}-%{compiler_family}%{?c_f_ver}-hpc-devel
%endif
BuildRequires: cmake
%endif # build_all
%if %{with hpc}
BuildRequires: suse-hpc
%endif
BuildRequires: cmake
BuildRequires: fdupes
# Default library install path
@@ -328,12 +122,6 @@ sciences.
%package -n %{libname}
Summary: Scalable algorithms for solving linear systems of equations
Group: System/Libraries
%if %{with hpc}
%hpc_requires
%{requires_eq libopenblas%{?hpc_ext}-%{compiler_family}%{?c_f_ver}-hpc}
%{requires_eq libsuperlu%{?hpc_ext}-%{compiler_family}%{?c_f_ver}-hpc}
Requires: lua-lmod >= 7.6.1
%endif
%description -n %{libname}
Hypre is a library of preconditioners that feature parallel multigrid
@@ -348,14 +136,8 @@ This package contains %{?mpi_family}%{?mpi_vers}%{!?mpi_family:serial} shared li
Summary: Headers and library links for %{libname}
Group: Development/Libraries/C and C++
Requires: %{libname} = %version
%if %{without hpc}
Requires: lapack-devel
Requires: superlu-devel
%else
%{requires_eq libopenblas%{?hpc_ext}-%{compiler_family}%{?c_f_ver}-hpc-devel}
%{requires_eq superlu%{?hpc_ext}-%{compiler_family}%{?c_f_ver}-hpc-devel}
%hpc_requires_devel
%endif
%description devel
%{PNAME} headers and libraries files needed for development
@@ -369,7 +151,6 @@ BuildArch: noarch
%description examples
This package contains examples for Hypre.
%if %{with install_doc}
%package doc
Summary: Development documentation for Hypre
Group: Documentation/Other
@@ -380,44 +161,24 @@ BuildRequires: texlive-xypic
%description doc
This package contains development documentation for Hypre.
%endif
%if %{with build_all}
%{?with_hpc:%{hpc_master_package -L -l -N %PNAME -n lib%{PNAME}%{hpc_package_name_tail}}}
%{?with_hpc:%{hpc_master_package -L devel}}
%endif
%prep
%autosetup -p0 -n %{pname}-%{version}
%if %{without hpc}
cat > %{_sourcedir}/baselibs.conf <<EOF
%{libname}
%{libname}-devel
requires %{?_suffix}-<targettype>
requires "%{libname}-<targettype> = <version>"
EOF
%endif
%build
%if %{with build_all}
%if %{without hpc}
%{?with_mpi: . %{my_bindir}/mpivars.sh}
%else
%hpc_setup
module load openblas
module load superlu
%endif
export LDFLAGS="-lm"
cd src/
%if %{without hpc}
%cmake \
%else
%hpc_cmake \
%endif
-DHYPRE_SHARED=ON \
%if %{without mpi}
-DHYPRE_WITH_MPI=OFF \
@@ -426,111 +187,36 @@ cd src/
%endif
-DHYPRE_USING_HYPRE_BLAS=OFF \
-DHYPRE_USING_HYPRE_LAPACK=OFF \
-DCMAKE_SHARED_LINKER_FLAGS="-lm" \
-DCMAKE_SHARED_LINKER_FLAGS="-lm"
%make_jobs
%endif # build_all
%install
%if %{with install_doc}
install -m 644 -D docs/*pdf -t %{buildroot}%{_docdir}/%{package_name}/
%fdupes -s src/examples
%endif
%if %{with build_all}
pushd .
cd src/
install -m 644 -D docs/usr-manual/*pdf -t %{buildroot}%{_docdir}/%{package_name}/
%fdupes -s examples
%cmake_install
%if %{with hpc}
%{hpc_write_pkgconfig -n %{pname} -l %{PNAME}}
%hpc_write_modules_files
#%%Module1.0#####################################################################
proc ModulesHelp { } {
puts stderr " "
puts stderr "This module loads the hypre library built with the %{compiler_family} compiler"
puts stderr "toolchain and the %{mpi_family}%{?mpi_vers} MPI stack."
puts stderr " "
puts stderr "Note that this build of hypre leverages the superlu and MKL libraries."
puts stderr "Consequently, these packages are loaded automatically with this module."
puts stderr "\nVersion %{version}\n"
}
module-whatis "Name: %{pname} built with %{compiler_family} compiler and %{mpi_family}%{?mpi_vers} MPI"
module-whatis "Description: %{SUMMARY}"
module-whatis "Version: %{version}"
module-whatis "Category: runtime library"
module-whatis "%{url}"
set version %{version}
depends-on openblas
depends-on superlu
prepend-path PATH %{hpc_bindir}
if {[file isdirectory %{hpc_includedir}]} {
prepend-path INCLUDE %{hpc_includedir}
%hpc_modulefile_add_pkgconfig_path
}
prepend-path LD_LIBRARY_PATH %{hpc_libdir}
setenv %{PNAME}_DIR %{hpc_prefix}
setenv %{PNAME}_BIN %{hpc_bindir}
if {[file isdirectory %{hpc_includedir}]} {
setenv %{PNAME}_INC %{hpc_includedir}
prepend-path CPATH %{hpc_includedir}
prepend-path C_INCLUDE_PATH %{hpc_includedir}
prepend-path CPLUS_INCLUDE_PATH %{hpc_includedir}
}
setenv %{PNAME}_LIB %{hpc_libdir}
EOF
%endif
%fdupes -s %{buildroot}%{_prefix}
%endif # build_all
%if %{without hpc} && %{without mpi}
%post -n %{libname} -p /sbin/ldconfig
%postun -n %{libname} -p /sbin/ldconfig
%else
%post -n %{libname}
/sbin/ldconfig -N %{_libdir}
%postun -n %{libname}
/sbin/ldconfig -N %{_libdir}
%{?with_hpc:%hpc_module_delete_if_default}
%endif
%if %{with build_all}
%files -n %{libname}
%{?hpc_dirs}
%{?hpc_modules_files}
%{_libdir}/*.so.*
%files devel
%if %{with hpc}
%{?hpc_dirs}
%{hpc_pkgconfig_file}
%endif
%{_libdir}/cmake
%license COPYRIGHT LICENSE-APACHE LICENSE-MIT NOTICE
%doc CHANGELOG README.md INSTALL.md
%{_incdir}%{?!with_hpc:/%{pname}}
%{_incdir}/%{pname}
%{_libdir}/*.so
%endif # build_all
%if %{with install_doc}
%files doc
%{_docdir}/%{package_name}
%files examples
%doc src/examples
%endif
%changelog