Compare commits

...

3 Commits

Author SHA1 Message Date
Fedora Release Engineering 8e628e1519 Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-22 00:24:35 +00:00
Orion Poplawski 8a6aa5bac4 Build with libzstd-devel 2022-06-27 21:50:54 -06:00
Orion Poplawski 45acd5522f Update to 4.9.0
Make -Wl,--as-needed work
2022-06-26 19:19:26 -06:00
4 changed files with 160 additions and 4 deletions

1
.gitignore vendored
View File

@ -21,3 +21,4 @@ netcdf-4.1.1.tar.gz
/netcdf-4.7.3.tar.gz
/netcdf-4.8.0.tar.gz
/netcdf-4.8.1.tar.gz
/netcdf-4.9.0.tar.gz

107
netcdf-plugin.patch Normal file
View File

@ -0,0 +1,107 @@
diff --git a/plugins/Makefile.am b/plugins/Makefile.am
index 777495ff..bed4bec6 100644
--- a/plugins/Makefile.am
+++ b/plugins/Makefile.am
@@ -5,7 +5,7 @@
include $(top_srcdir)/lib_flags.am
AM_LDFLAGS += -module -avoid-version -shared -export-dynamic \
- -rpath ${abs_builddir} ${NOUNDEFINED}
+ ${NOUNDEFINED}
# Create an alternate directory if not installing or for noinst installs.
ALTPLUGINDIR = ${abs_top_builddir}/plugins/plugindir
@@ -19,17 +19,6 @@ endif
plugin_LTLIBRARIES =
-# Apparently one cannot have plugin_LTLIBRARIES and also noinst_LTLIBRARIES.
-# So create a tmp location for "noinst" shared libraries.
-tmpdir = ${ALTPLUGINDIR}
-
-tmp_LTLIBRARIES =
-
-# This linker flag specifies libtool version info.
-# See http://www.gnu.org/software/libtool/manual/libtool.html#Libtool-versioning
-# for information regarding incrementing `-version-info`.
-plugin_version_info = -version-info 0:0:0
-
if ISMINGW
LDADD = ${top_builddir}/liblib/libnetcdf.la
endif
@@ -55,15 +44,10 @@ lib__nch5shuffle_la_SOURCES = H5Zshuffle.c
lib__nch5fletcher32_la_SOURCES = H5Zfletcher32.c H5checksum.c
lib__nch5deflate_la_SOURCES = H5Zdeflate.c
-lib__nch5shuffle_la_LDFLAGS = ${plugin_version_info}
-lib__nch5deflate_la_LDFLAGS = ${plugin_version_info}
-lib__nch5fletcher32_la_LDFLAGS = ${plugin_version_info}
-
# Need our version of szip if libsz available and we are not using HDF5
if HAVE_SZ
plugin_LTLIBRARIES += lib__nch5szip.la
lib__nch5szip_la_SOURCES = H5Zszip.c H5Zszip.h
-lib__nch5szip_la_LDFLAGS = ${plugin_version_info}
endif
endif # ENABLE_NCZARR_FILTERS
@@ -72,20 +56,20 @@ if ENABLE_PLUGINS
# The NCZarr codec libraries
lib__nczstdfilters_la_SOURCES = NCZstdfilters.c
+lib__nczstdfilters_la_LIBADD = ${top_builddir}/liblib/libnetcdf.la
lib__nczhdf5filters_la_SOURCES = NCZhdf5filters.c
+lib__nczhdf5filters_la_LIBADD = ${top_builddir}/liblib/libnetcdf.la
plugin_LTLIBRARIES += lib__nczhdf5filters.la
plugin_LTLIBRARIES += lib__nczstdfilters.la
if HAVE_BLOSC
lib__nch5blosc_la_SOURCES = H5Zblosc.c H5Zblosc.h
-lib__nch5blosc_la_LDFLAGS = ${plugin_version_info}
plugin_LTLIBRARIES += lib__nch5blosc.la
endif
if HAVE_ZSTD
lib__nch5zstd_la_SOURCES = H5Zzstd.c H5Zzstd.h
-lib__nch5zstd_la_LDFLAGS = ${plugin_version_info}
plugin_LTLIBRARIES += lib__nch5zstd.la
endif
@@ -95,20 +79,22 @@ endif #ENABLE_PLUGINS
# Need two distinct instances
lib__nch5noop_la_SOURCES = H5Znoop.c H5Zutil.c h5noop.h
lib__nch5noop1_la_SOURCES = H5Znoop1.c H5Zutil.c h5noop.h
-lib__nch5noop_la_LDFLAGS = ${plugin_version_info}
-lib__nch5noop1_la_LDFLAGS = ${plugin_version_info}
# The misc filter is to allow testing of filter arguments
lib__nch5misc_la_SOURCES = H5Zmisc.c H5Zutil.c h5misc.h
-lib__nch5misc_la_LDFLAGS = ${plugin_version_info}
lib__nczmisc_la_SOURCES = NCZmisc.c
-lib__nczmisc_la_LDFLAGS = ${plugin_version_info}
# Provide a filter to test missing filter
lib__nch5unknown_la_SOURCES = H5Zunknown.c
-lib__nch5unknown_la_LDFLAGS = ${plugin_version_info}
-tmp_LTLIBRARIES += lib__nch5noop.la lib__nch5noop1.la lib__nch5misc.la lib__nczmisc.la lib__nch5unknown.la
+# These libraries are needed only for testing, so we will remove them from the install location
+# via install-data-hook below. This seems to be the simplest method to get libtool to build
+# a local shared library.
+CHECKLIBS = lib__nch5noop.la lib__nch5noop1.la lib__nch5misc.la lib__nczmisc.la lib__nch5unknown.la
+plugin_LTLIBRARIES += ${CHECKLIBS}
+
+install-data-hook:
+ cd $(DESTDIR)$(plugindir) && rm -f $(CHECKLIBS) $(CHECKLIBS:.la=.so)
# Bzip2 is used to test more complex filters
lib__nch5bzip2_la_SOURCES = H5Zbzip2.c h5bzip2.h
@@ -117,7 +103,6 @@ EXTRA_DIST += ${BZIP2SRC} BZIP2_LICENSE
if HAVE_LOCAL_BZ2
lib__nch5bzip2_la_SOURCES += ${BZIP2SRC}
endif
-lib__nch5bzip2_la_LDFLAGS = ${plugin_version_info}
plugin_LTLIBRARIES += lib__nch5bzip2.la
endif #ENABLE_FILTER_TESTING

View File

@ -1,22 +1,27 @@
%global sover 19
Name: netcdf
Version: 4.8.1
Version: 4.9.0
Release: 3%{?dist}
Summary: Libraries for the Unidata network Common Data Form
License: NetCDF
URL: http://www.unidata.ucar.edu/software/netcdf/
Source0: https://github.com/Unidata/netcdf-c/archive/v%{version}/%{name}-%{version}.tar.gz
# Fix plugins - https://github.com/Unidata/netcdf-c/pull/2431
Patch0: netcdf-plugin.patch
BuildRequires: make
BuildRequires: libtool
BuildRequires: make
BuildRequires: chrpath
BuildRequires: doxygen
BuildRequires: blosc-devel
BuildRequires: hdf-static
BuildRequires: hdf5-devel
BuildRequires: gawk
BuildRequires: libcurl-devel
BuildRequires: libxml2-devel
BuildRequires: libzstd-devel
BuildRequires: m4
BuildRequires: zlib-devel
%ifarch %{valgrind_arches}
@ -160,6 +165,8 @@ NetCDF parallel openmpi static libraries
%prep
%autosetup -p1 -n %{name}-c-%{version}
# For Patch0
./bootstrap
%build
@ -183,7 +190,14 @@ export CFLAGS="%{optflags} -fno-strict-aliasing"
mkdir build
pushd build
ln -s ../configure .
%configure %{configure_opts}
%configure %{configure_opts} \
--with-plugin-dir=%{_libdir}/hdf5/plugin
# Get rid of undesirable hardcoded rpaths; workaround libtool reordering
# -Wl,--as-needed after all the libraries.
sed -e 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' \
-e 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' \
-e 's|CC="\(.*g..\)"|CC="\1 -Wl,--as-needed"|' \
-i libtool
%make_build
popd
@ -203,7 +217,14 @@ do
--includedir=%{_includedir}/$mpi-%{_arch} \
--datarootdir=%{_libdir}/$mpi/share \
--mandir=%{_libdir}/$mpi/share/man \
--with-plugin-dir=%{_libdir}/$mpi/hdf5/plugin \
--enable-parallel-tests
# Get rid of undesirable hardcoded rpaths; workaround libtool reordering
# -Wl,--as-needed after all the libraries.
sed -e 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' \
-e 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' \
-e 's|CC="\(.*g..\)"|CC="\1 -Wl,--as-needed"|' \
-i libtool
%make_build
module purge
popd
@ -262,6 +283,15 @@ done
%{_bindir}/ncgen3
%{_bindir}/nc4print
%{_bindir}/ocprint
%{_libdir}/hdf5/plugin/lib__nch5deflate.so
%{_libdir}/hdf5/plugin/lib__nch5shuffle.so
%{_libdir}/hdf5/plugin/lib__nch5bzip2.so
%{_libdir}/hdf5/plugin/lib__nch5zstd.so
%{_libdir}/hdf5/plugin/lib__nch5szip.so
%{_libdir}/hdf5/plugin/lib__nczhdf5filters.so
%{_libdir}/hdf5/plugin/lib__nczstdfilters.so
%{_libdir}/hdf5/plugin/lib__nch5fletcher32.so
%{_libdir}/hdf5/plugin/lib__nch5blosc.so
%{_libdir}/*.so.%{sover}*
%{_mandir}/man1/*
@ -273,6 +303,8 @@ done
%{_includedir}/netcdf_dispatch.h
%{_includedir}/netcdf_filter.h
%{_includedir}/netcdf_filter_build.h
%{_includedir}/netcdf_filter_hdf5_build.h
%{_includedir}/netcdf_json.h
%{_includedir}/netcdf_meta.h
%{_includedir}/netcdf_mem.h
%{_libdir}/libnetcdf.settings
@ -293,6 +325,7 @@ done
%{_libdir}/mpich/bin/ncgen3
%{_libdir}/mpich/bin/nc4print
%{_libdir}/mpich/bin/ocprint
%{_libdir}/mpich/hdf5/plugin/*
%{_libdir}/mpich/lib/*.so.%{sover}*
%doc %{_libdir}/mpich/share/man/man1/*.1*
@ -303,6 +336,8 @@ done
%{_includedir}/mpich-%{_arch}/netcdf_dispatch.h
%{_includedir}/mpich-%{_arch}/netcdf_filter.h
%{_includedir}/mpich-%{_arch}/netcdf_filter_build.h
%{_includedir}/mpich-%{_arch}/netcdf_filter_hdf5_build.h
%{_includedir}/mpich-%{_arch}/netcdf_json.h
%{_includedir}/mpich-%{_arch}/netcdf_meta.h
%{_includedir}/mpich-%{_arch}/netcdf_mem.h
%{_includedir}/mpich-%{_arch}/netcdf_par.h
@ -325,6 +360,7 @@ done
%{_libdir}/openmpi/bin/ncgen3
%{_libdir}/openmpi/bin/nc4print
%{_libdir}/openmpi/bin/ocprint
%{_libdir}/openmpi/hdf5/plugin/*
%{_libdir}/openmpi/lib/*.so.%{sover}*
%doc %{_libdir}/openmpi/share/man/man1/*.1*
@ -335,6 +371,8 @@ done
%{_includedir}/openmpi-%{_arch}/netcdf_dispatch.h
%{_includedir}/openmpi-%{_arch}/netcdf_filter.h
%{_includedir}/openmpi-%{_arch}/netcdf_filter_build.h
%{_includedir}/openmpi-%{_arch}/netcdf_filter_hdf5_build.h
%{_includedir}/openmpi-%{_arch}/netcdf_json.h
%{_includedir}/openmpi-%{_arch}/netcdf_meta.h
%{_includedir}/openmpi-%{_arch}/netcdf_mem.h
%{_includedir}/openmpi-%{_arch}/netcdf_par.h
@ -349,6 +387,16 @@ done
%changelog
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 4.9.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Tue Jun 28 2022 Orion Poplawski <orion@nwra.com> - 4.9.0-2
- Build with libzstd-devel
* Sun Jun 26 2022 Orion Poplawski <orion@nwra.com> - 4.9.0-1
- Update to 4.9.0
- Make -Wl,--as-needed work
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 4.8.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild

View File

@ -1 +1 @@
SHA512 (netcdf-4.8.1.tar.gz) = c97207867abf10d414abf34624268710f5b812c26c38f97e73afe00558b3f07917331fbc7fdb9e70b09813acf15a9a09bae2c432a3266ce10a791b9472f87a42
SHA512 (netcdf-4.9.0.tar.gz) = 62cb593b99a6e9c56426175d141907572d3974de8dc39549c85337acf410539f9b7dcd9a375808e271da1d0dc93fce7586b955eddd2bb45901d9cc48a72db705