Orion Poplawski 137091e
Name:           netcdf-cxx4
cd485c0
Version:        4.3.1
7869ad4
Release:        3%{?dist}
Orion Poplawski 137091e
Summary:        NetCDF-4 C++ library
Orion Poplawski 137091e
Orion Poplawski 137091e
License:        NetCDF
Orion Poplawski 137091e
URL:            http://www.unidata.ucar.edu/software/netcdf/
Orion Poplawski aa826db
Source0:        https://github.com/Unidata/netcdf-cxx4/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
Orion Poplawski 658748b
# Fix tests on big-endian
Orion Poplawski 658748b
# https://github.com/Unidata/netcdf-cxx4/issues/45
Orion Poplawski 658748b
Patch0:         netcdf-cxx4-bigendian.patch
Orion Poplawski 137091e
43b8e0b
BuildRequires: make
8422ad0
BuildRequires:  gcc-c++
Orion Poplawski 137091e
BuildRequires:  netcdf-devel
Orion Poplawski 137091e
#mpiexec segfaults if ssh is not present
Orion Poplawski 137091e
#https://trac.mcs.anl.gov/projects/mpich2/ticket/1576
Orion Poplawski 137091e
BuildRequires:  openssh-clients
Orion Poplawski 137091e
Deji Akingunola 2c4abe1
%global with_mpich 1
Orion Poplawski 137091e
%global with_openmpi 1
d9f90c4
%if 0%{?rhel} <= 6
Orion Poplawski 137091e
%ifarch ppc64
d9f90c4
# No mpich on ppc64 in EL6
Deji Akingunola 2c4abe1
%global with_mpich 0
Orion Poplawski 137091e
%endif
Orion Poplawski 137091e
%endif
Orion Poplawski 137091e
Deji Akingunola 2c4abe1
%if %{with_mpich}
Deji Akingunola 2c4abe1
%global mpi_list mpich
Orion Poplawski 137091e
%endif
Orion Poplawski 137091e
%if %{with_openmpi}
Orion Poplawski 137091e
%global mpi_list %{?mpi_list} openmpi
Orion Poplawski 137091e
%endif
Orion Poplawski 137091e
Orion Poplawski 137091e
%description
Orion Poplawski 137091e
netCDF-4 C++ library.
Orion Poplawski 137091e
Orion Poplawski 137091e
Orion Poplawski 137091e
%package devel
Orion Poplawski 137091e
Summary:        Development files for netCDF-4 C++ API
Orion Poplawski 137091e
Requires:       %{name}%{?_isa} = %{version}-%{release}
Orion Poplawski 137091e
Requires:       pkgconfig
Orion Poplawski 137091e
Requires:       netcdf-devel%{?_isa}
Orion Poplawski 137091e
Orion Poplawski 137091e
%description devel
Orion Poplawski 137091e
Development files for netCDF-4 C++ API.
Orion Poplawski 137091e
Orion Poplawski 137091e
Orion Poplawski 137091e
%package static
Orion Poplawski 137091e
Summary:        Static library for netCDF-4 C++ API
Orion Poplawski 137091e
Requires:       %{name}-devel%{?_isa} = %{version}-%{release}
Orion Poplawski 137091e
Orion Poplawski 137091e
%description static
Orion Poplawski 137091e
Static library for netCDF-4 C++ API.
Orion Poplawski 137091e
Orion Poplawski 137091e
Deji Akingunola 2c4abe1
%if %{with_mpich}
Deji Akingunola 2c4abe1
%package mpich
Deji Akingunola 2c4abe1
Summary: NetCDF mpich libraries
Deji Akingunola 2c4abe1
BuildRequires: mpich-devel
Deji Akingunola 2c4abe1
BuildRequires: netcdf-mpich-devel
Deji Akingunola 2c4abe1
Provides: %{name}-mpich2 = %{version}-%{release}
Deji Akingunola 2c4abe1
Obsoletes: %{name}-mpich2 < 4.2-8
Orion Poplawski 137091e
Deji Akingunola 2c4abe1
%description mpich
Deji Akingunola 2c4abe1
NetCDF parallel mpich libraries
Orion Poplawski 137091e
Orion Poplawski 137091e
Deji Akingunola 2c4abe1
%package mpich-devel
Deji Akingunola 2c4abe1
Summary: NetCDF mpich development files
Deji Akingunola 2c4abe1
Requires: %{name}-mpich%{?_isa} = %{version}-%{release}
Orion Poplawski 137091e
Requires: pkgconfig
Deji Akingunola 2c4abe1
Requires: netcdf-mpich-devel
Orion Poplawski 137091e
Requires: libcurl-devel
Deji Akingunola 2c4abe1
Provides: %{name}-mpich2-devel = %{version}-%{release}
Deji Akingunola 2c4abe1
Obsoletes: %{name}-mpich2-devel < 4.2-8
Orion Poplawski 137091e
Deji Akingunola 2c4abe1
%description mpich-devel
Deji Akingunola 2c4abe1
NetCDF parallel mpich development files
Orion Poplawski 137091e
Orion Poplawski 137091e
Deji Akingunola 2c4abe1
%package mpich-static
Deji Akingunola 2c4abe1
Summary: NetCDF mpich static libraries
Deji Akingunola 2c4abe1
Requires: %{name}-mpich-devel%{?_isa} = %{version}-%{release}
Deji Akingunola 2c4abe1
Provides: %{name}-mpich2-static = %{version}-%{release}
Deji Akingunola 2c4abe1
Obsoletes: %{name}-mpich2-static < 4.2-8
Orion Poplawski 137091e
Deji Akingunola 2c4abe1
%description mpich-static
Deji Akingunola 2c4abe1
NetCDF parallel mpich static libraries
Orion Poplawski 137091e
%endif
Orion Poplawski 137091e
Orion Poplawski 137091e
Orion Poplawski 137091e
%if %{with_openmpi}
Orion Poplawski 137091e
%package openmpi
Orion Poplawski 137091e
Summary: NetCDF openmpi libraries
Orion Poplawski 137091e
BuildRequires: openmpi-devel
Orion Poplawski 137091e
BuildRequires: netcdf-openmpi-devel
Orion Poplawski 137091e
Orion Poplawski 137091e
%description openmpi
Orion Poplawski 137091e
NetCDF parallel openmpi libraries
Orion Poplawski 137091e
Orion Poplawski 137091e
Orion Poplawski 137091e
%package openmpi-devel
Orion Poplawski 137091e
Summary: NetCDF openmpi development files
Orion Poplawski 137091e
Requires: %{name}-openmpi%{_isa} = %{version}-%{release}
Orion Poplawski 137091e
Requires: openmpi-devel
Orion Poplawski 137091e
Requires: pkgconfig
Orion Poplawski 137091e
Requires: netcdf-openmpi-devel
Orion Poplawski 137091e
Requires: libcurl-devel
Orion Poplawski 137091e
Orion Poplawski 137091e
%description openmpi-devel
Orion Poplawski 137091e
NetCDF parallel openmpi development files
Orion Poplawski 137091e
Orion Poplawski 137091e
Orion Poplawski 137091e
%package openmpi-static
Orion Poplawski 137091e
Summary: NetCDF openmpi static libraries
Orion Poplawski 137091e
Requires: %{name}-openmpi-devel%{?_isa} = %{version}-%{release}
Orion Poplawski 137091e
Orion Poplawski 137091e
%description openmpi-static
Orion Poplawski 137091e
NetCDF parallel openmpi static libraries
Orion Poplawski 137091e
%endif
Orion Poplawski 137091e
Orion Poplawski 137091e
Orion Poplawski 137091e
%prep
Orion Poplawski 137091e
%setup -q
Orion Poplawski 658748b
%patch0 -p1 -b .bigendian
Orion Poplawski 137091e
# Fix line endings
Orion Poplawski 137091e
sed -i -e 's/\r//' examples/*.cpp
Orion Poplawski 137091e
Orion Poplawski 137091e
Orion Poplawski 137091e
%build
Orion Poplawski 137091e
#Do out of tree builds
Orion Poplawski 137091e
%global _configure ../configure
Orion Poplawski 137091e
Orion Poplawski 137091e
# Serial build
Orion Poplawski 137091e
mkdir build
Orion Poplawski 137091e
pushd build
Orion Poplawski 137091e
ln -s ../configure .
Orion Poplawski 137091e
%configure
Orion Poplawski 137091e
make %{?_smp_mflags}
Orion Poplawski 137091e
popd
Orion Poplawski 137091e
Orion Poplawski 137091e
# MPI builds
Orion Poplawski 137091e
export CC=mpicc
Orion Poplawski 137091e
export CXX=mpicxx
Orion Poplawski 137091e
for mpi in %{mpi_list}
Orion Poplawski 137091e
do
Orion Poplawski 137091e
  mkdir $mpi
Orion Poplawski 137091e
  pushd $mpi
Orion Poplawski f425107
  module load mpi/$mpi-%{_arch}
Orion Poplawski 137091e
  ln -s ../configure .
Orion Poplawski 137091e
  %configure \
Orion Poplawski 137091e
    --libdir=%{_libdir}/$mpi/lib \
Orion Poplawski 137091e
    --bindir=%{_libdir}/$mpi/bin \
Orion Poplawski 137091e
    --sbindir=%{_libdir}/$mpi/sbin \
Orion Poplawski 137091e
    --includedir=%{_includedir}/$mpi-%{_arch} \
Orion Poplawski 137091e
    --datarootdir=%{_libdir}/$mpi/share \
Orion Poplawski 137091e
    --mandir=%{_libdir}/$mpi/share/man
Orion Poplawski 137091e
  make %{?_smp_mflags}
Orion Poplawski 137091e
  module purge
Orion Poplawski 137091e
  popd
Orion Poplawski 137091e
done
Orion Poplawski 137091e
Orion Poplawski 137091e
Orion Poplawski 137091e
%install
Orion Poplawski 137091e
make -C build install DESTDIR=${RPM_BUILD_ROOT}
Orion Poplawski 137091e
/bin/rm ${RPM_BUILD_ROOT}%{_libdir}/*.la
cd485c0
# https://github.com/Unidata/netcdf-cxx4/issues/75
cd485c0
/bin/rm ${RPM_BUILD_ROOT}%{_libdir}/libh5bzip2.so
Orion Poplawski 137091e
for mpi in %{mpi_list}
Orion Poplawski 137091e
do
Orion Poplawski f425107
  module load mpi/$mpi-%{_arch}
Orion Poplawski 137091e
  make -C $mpi install DESTDIR=${RPM_BUILD_ROOT}
Orion Poplawski 137091e
  rm $RPM_BUILD_ROOT/%{_libdir}/$mpi/lib/*.la
cd485c0
  # https://github.com/Unidata/netcdf-cxx4/issues/75
cd485c0
  rm $RPM_BUILD_ROOT/%{_libdir}/$mpi/lib/libh5bzip2.so
Orion Poplawski 137091e
  module purge
Orion Poplawski 137091e
done
Orion Poplawski 137091e
Orion Poplawski 137091e
Orion Poplawski 137091e
%check
1b4f6bf
make -C build check || ( cat build/*/test-suite.log && exit 1 )
d9f90c4
for mpi in %{mpi_list}
Orion Poplawski 137091e
do
Orion Poplawski f425107
  module load mpi/$mpi-%{_arch}
1b4f6bf
  make -C $mpi check || ( cat ${mpi}/*/test-suite.log && exit 1 )
Orion Poplawski 137091e
  module purge
Orion Poplawski 137091e
done
Orion Poplawski 137091e
Orion Poplawski 137091e
Orion Poplawski 137091e
9c1d065
%ldconfig_scriptlets
Orion Poplawski 137091e
Orion Poplawski 137091e
Orion Poplawski 137091e
%files
Orion Poplawski 137091e
%doc COPYRIGHT
Orion Poplawski 137091e
%{_libdir}/libnetcdf_c++4.so.*
Orion Poplawski 137091e
Orion Poplawski 137091e
%files devel
Orion Poplawski 137091e
%doc examples
Orion Poplawski 137091e
%{_bindir}/ncxx4-config
Orion Poplawski 137091e
%{_includedir}/*
Orion Poplawski 137091e
%{_libdir}/libnetcdf_c++4.so
Orion Poplawski 137091e
%{_libdir}/pkgconfig/netcdf-cxx4.pc
Orion Poplawski 137091e
Orion Poplawski 137091e
%files static
Orion Poplawski 137091e
%{_libdir}/libnetcdf_c++4.a
Orion Poplawski 137091e
Orion Poplawski 137091e
Deji Akingunola 2c4abe1
%if %{with_mpich}
Deji Akingunola 2c4abe1
%files mpich
Orion Poplawski 137091e
%doc COPYRIGHT
Deji Akingunola 2c4abe1
%{_libdir}/mpich/lib/*.so.*
Orion Poplawski 137091e
Deji Akingunola 2c4abe1
%files mpich-devel
Deji Akingunola 2c4abe1
%{_libdir}/mpich/bin/ncxx4-config
Deji Akingunola 2c4abe1
%{_includedir}/mpich-%{_arch}/*
Deji Akingunola 2c4abe1
%{_libdir}/mpich/lib/*.so
Deji Akingunola 2c4abe1
%{_libdir}/mpich/lib/pkgconfig/%{name}.pc
Orion Poplawski 137091e
Deji Akingunola 2c4abe1
%files mpich-static
Deji Akingunola 2c4abe1
%{_libdir}/mpich/lib/*.a
Orion Poplawski 137091e
%endif
Orion Poplawski 137091e
Orion Poplawski 137091e
%if %{with_openmpi}
Orion Poplawski 137091e
%files openmpi
Orion Poplawski 137091e
%doc COPYRIGHT
Orion Poplawski 137091e
%{_libdir}/openmpi/lib/*.so.*
Orion Poplawski 137091e
Orion Poplawski 137091e
%files openmpi-devel
Orion Poplawski 137091e
%{_libdir}/openmpi/bin/ncxx4-config
Orion Poplawski 137091e
%{_includedir}/openmpi-%{_arch}/*
Orion Poplawski 137091e
%{_libdir}/openmpi/lib/*.so
Orion Poplawski 137091e
%{_libdir}/openmpi/lib/pkgconfig/%{name}.pc
Orion Poplawski 137091e
Orion Poplawski 137091e
%files openmpi-static
Orion Poplawski 137091e
%{_libdir}/openmpi/lib/*.a
Orion Poplawski 137091e
%endif
Orion Poplawski 137091e
Orion Poplawski 137091e
Orion Poplawski 137091e
%changelog
7869ad4
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4.3.1-3
7869ad4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
7869ad4
ee7a2e2
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4.3.1-2
ee7a2e2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
ee7a2e2
cd485c0
* Fri Sep 13 2019 Orion Poplawski <orion@nwra.com> - 4.3.1-1
cd485c0
- Update to 4.3.1
cd485c0
d68d934
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 4.3.0-11
d68d934
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
d68d934
99022e3
* Mon Mar 18 2019 Orion Poplawski <orion@nwra.com> - 4.3.0-10
99022e3
- Rebuild for netcdf 4.6.3
99022e3
428589f
* Thu Feb 14 2019 Orion Poplawski <orion@nwra.com> - 4.3.0-9
428589f
- Rebuild for openmpi 3.1.3
428589f
41c7440
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 4.3.0-8
41c7440
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
41c7440
b219e5e
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 4.3.0-7
b219e5e
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
b219e5e
462c4f4
* Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 4.3.0-6
462c4f4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
462c4f4
b95d1f8
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.3.0-5
b95d1f8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
b95d1f8
e04f84a
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.3.0-4
e04f84a
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
e04f84a
Orion Poplawski 658748b
* Tue Feb 14 2017 Orion Poplawski <orion@cora.nwra.com> - 4.3.0-3
Orion Poplawski 658748b
- Fix test on big-endian (ppc64)
Orion Poplawski 658748b
33c1c93
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.3.0-3
33c1c93
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
33c1c93
Orion Poplawski dc757e8
* Sat Oct 22 2016 Orion Poplawski <orion@cora.nwra.com> - 4.3.0-2
Orion Poplawski dc757e8
- Rebuild for openmpi 2.0
Orion Poplawski dc757e8
Orion Poplawski aa826db
* Wed May 18 2016 Orion Poplawski <orion@cora.nwra.com> - 4.3.0-1
Orion Poplawski aa826db
- Update to 4.3.0
Orion Poplawski aa826db
e5c6567
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 4.2.1-12
e5c6567
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
e5c6567
Orion Poplawski 671a1b8
* Fri Jan 22 2016 Orion Poplawski <orion@cora.nwra.com> - 4.2.1-11
Orion Poplawski 671a1b8
- Rebuild for netcdf 4.4.0
Orion Poplawski 671a1b8
Orion Poplawski 017eb23
* Thu Sep 17 2015 Orion Poplawski <orion@cora.nwra.com> - 4.2.1-10
Orion Poplawski 017eb23
- Rebuild for openmpi 1.10.0
Orion Poplawski 017eb23
6908b69
* Sun Aug 16 2015 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 4.2.1-9
6908b69
- Rebuild for MPI provides
6908b69
d1f31e6
* Sun Jul 26 2015 Sandro Mani <manisandro@gmail.com> - 4.2.1-8
d1f31e6
- Rebuild for RPM MPI Requires Provides Change
d1f31e6
ccaae08
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.2.1-7
ccaae08
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
ccaae08
1f0df24
* Sat May 02 2015 Kalev Lember <kalevlember@gmail.com> - 4.2.1-6
1f0df24
- Rebuilt for GCC 5 C++11 ABI change
1f0df24
Orion Poplawski 7b6a8fb
* Sun Apr 5 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.2.1-5
Orion Poplawski 7b6a8fb
- Rebuild for mpich soname change
Orion Poplawski 7b6a8fb
642fc33
* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.2.1-4
642fc33
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
642fc33
aa6f5cd
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.2.1-3
aa6f5cd
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
aa6f5cd
527d86e
* Mon Feb 24 2014 Orion Poplawski <orion@cora.nwra.com> - 4.2.1-2
527d86e
- Rebuild for mpich-3.1
527d86e
Orion Poplawski 4f08ea1
* Thu Feb 6 2014 Orion Poplawski <orion@cora.nwra.com> - 4.2.1-1
Orion Poplawski 4f08ea1
- Update to 4.2.1
Orion Poplawski 4f08ea1
a179b26
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.2-9
a179b26
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
a179b26
Deji Akingunola 2c4abe1
* Mon Jul 22 2013 Deji Akingunola <dakingun@gmail.com> - 4.2-8
Deji Akingunola 2c4abe1
- Rename mpich2 sub-packages to mpich and rebuild for mpich-3.0
Deji Akingunola 2c4abe1
56153c5
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.2-7
56153c5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
56153c5
Orion Poplawski f425107
* Fri Nov 2 2012 Orion Poplawski <orion@cora.nwra.com> - 4.2-6
Orion Poplawski f425107
- Rebuild for mpich2 1.5
Orion Poplawski f425107
- Use new mpi module location
Orion Poplawski f425107
a557750
* Fri Jul 20 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.2-5
a557750
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
a557750
Orion Poplawski 137091e
* Wed Mar 7 2012 Orion Poplawski <orion@cora.nwra.com> - 4.2-4
Orion Poplawski 137091e
- Fix line endings
Orion Poplawski 137091e
Orion Poplawski 137091e
* Wed Mar 7 2012 Orion Poplawski <orion@cora.nwra.com> - 4.2-3
Orion Poplawski 137091e
- Build parallel versions
Orion Poplawski 137091e
- Ship examples with -devel
Orion Poplawski 137091e
Orion Poplawski 137091e
* Mon Oct 3 2011 Orion Poplawski <orion@cora.nwra.com> - 4.2-2
Orion Poplawski 137091e
- Use %%{?_isa} in Requires
Orion Poplawski 137091e
- Make -static sub-package require the -devel package
Orion Poplawski 137091e
Orion Poplawski 137091e
* Fri Sep 30 2011 Orion Poplawski <orion@cora.nwra.com> - 4.2-1
Orion Poplawski 137091e
- Initial package