File adios.spec of Package adios
#
# spec file for package adios
#
# 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
# 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/
#
%global _lto_cflags %{?_lto_cflags} -ffat-lto-objects
%global mpi_flavor @BUILD_FLAVOR@%{nil}
%define pname adios
%if "%{mpi_flavor}" == ""
ExclusiveArch: do_not_build
%global p_suffix %{nil}
%else
%global p_suffix -%{mpi_flavor}
%endif
# No netcdf on s390 and 32bit platforms
ExcludeArch: s390 s390x i586 %arm
%if "%{mpi_flavor}" == "openmpi5"
ExcludeArch: %{ix86} %{arm}
%endif
%define p_prefix %{_libdir}/mpi/gcc/%{mpi_flavor}
%define p_bindir %{p_prefix}/bin/
%define p_libdir %{p_prefix}/%{_lib}/
%define p_incdir %{p_prefix}/include/
%define p_datadir %{p_prefix}/share/
%define p_sysconfdir %{p_prefix}/etc/
%define p_skeldir %{p_prefix}/etc/skel/
%if 0%{?suse_version} >= 1500
%define my_py_version 3
%endif
Name: adios%{?p_suffix}
Version: 1.13.1
Release: 0
Summary: The Adaptable IO System (ADIOS)
License: BSD-2-Clause AND BSD-3-Clause AND LGPL-2.1-or-later
Group: Productivity/Scientific/Other
URL: https://www.olcf.ornl.gov/center-projects/adios/
Source0: https://users.nccs.gov/~pnorbert/adios-%{version}.tar.gz
Patch0: adios-correct-func-ret.patch
Patch1: Fix-code-to-be-python3-compliant.patch
BuildRequires: %{mpi_flavor}-devel
BuildRequires: autoconf
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: gcc-fortran
BuildRequires: hdf5%{?p_suffix}-devel
BuildRequires: libbz2-devel
BuildRequires: liblz4-devel
BuildRequires: netcdf%{?p_suffix}-devel
BuildRequires: python%{?my_py_version}
BuildRequires: zlib-devel
Requires: python%{?my_py_version}-PyYAML
Requires: python%{?my_py_version}-xml
%description
The Adaptable IO System (ADIOS) provides a way for scientists to
describe the data in their code that may need to be written, read, or
processed outside of the running simulation. By providing an external
to the code XML file describing the various elements, their types,
and how one wishes to process them for a particular run, the routines
in the host code (either FORTRAN or C) can transparently change how
they process the data.
%package devel
Summary: Development files for %{name}
Group: Development/Libraries/Parallel
Requires: %{name} = %{version}
Requires: %{name}-devel-static = %{version}
Requires: hdf5%{?p_suffix}-devel
Requires: netcdf%{?p_suffix}-devel
%description devel
The Adaptable IO System (ADIOS) provides a way for scientists to
describe the data in their code that may need to be written, read, or
processed outside of the running simulation.
This package contains all files needed to create projects that use
the %{flavor} version of ADIOS.
%package devel-static
Summary: Static libraries for %{name}
Group: Development/Libraries/Parallel
%description devel-static
The Adaptable IO System (ADIOS) provides a way for scientists to
describe the data in their code that may need to be written, read, or
processed outside of the running simulation.
This package contains all the static libraries needed to create projects
that use the %{flavor} version of ADIOS.
%prep
%autosetup -p1 -n %{pname}-%{version}
%build
export CC=gcc
export CXX=g++
export F77=gfortran
export F9X=gfortran
export FC=gfortran
export MPICC=mpicc
export MPICXX=mpicxx
export MPIFC=mpif90
export CFLAGS="-fPIC %{optflags}"
%if 0%{?suse_version} >= 1550
# https://github.com/ornladios/ADIOS/issues/206
export FCFLAGS="-fPIC %{optflags} -fallow-argument-mismatch"
%else
export FCFLAGS="-fPIC %{optflags}"
%endif
export LDFLAGS="-pie"
export MPICC="%{p_bindir}/mpicc"
export MPIFC="%{p_bindir}/mpif90"
export PATH=${PATH}:%{p_bindir}
export LDFLAGS="${LDFLAGS} -L%{p_libdir}"
export LD_LIBRARY_PATH="%{p_libdir}"
%configure \
--prefix=%{p_prefix} \
--exec-prefix=%{_prefix} \
--bindir=%{p_bindir} \
--libdir=%{p_libdir} \
--includedir=%{p_incdir} \
--sysconfdir=%{p_sysconfdir} \
--datadir=%{p_datadir} \
--docdir=%{_docdir}/%{name} \
--enable-fortran \
--with-phdf5="%{p_prefix}" \
--with-netcdf="%{p_prefix}" \
--with-zlib="%{_prefix}" \
--with-bzip2="%{_libdir}" \
--with-lz4="%{_libdir}" \
--without-evpath \
--without-fastbit \
--without-ffs \
make V=1 %{?_smp_mflags}
%install
%make_install
for i in %{buildroot}/%{p_bindir}/{skel,*.py} %{buildroot}/%{p_libdir}/python/*.py; do
sed -e '1s@^\(#!.*\)\(python\)[23]*\( *.*\)@\1\2%{?my_py_version}\3@' -e '1s@/\env @/@' -i $i
done
%fdupes -s %{buildroot}/%{p_skeldir}/templates
%files
%{p_bindir}
%config %{p_sysconfdir}/*
%dir %{p_prefix}/etc
%{p_skeldir}
%{p_libdir}/python
%license COPYING
%doc AUTHORS KNOWN_BUGS NEWS README.md TODO
%files devel
%{p_incdir}
%files devel-static
%{p_libdir}/*.a
%changelog