|
@@ -1,20 +1,37 @@
|
|
|
Name: hdf
|
|
|
-Version: 4.2r2
|
|
|
+Version: 4.2.10
|
|
|
Release: 1%{?_dist_release}
|
|
|
Summary: A general purpose library and file format for storing scientific data
|
|
|
-Source0: ftp://ftp.ncsa.uiuc.edu/HDF/HDF/HDF_Current/src/HDF%{version}.tar.gz
|
|
|
-#Source1: ftp://ftp.ncsa.uiuc.edu/HDF/HDF/HDF_Current/src/patches/4.2r1-hrepack-patch.tar
|
|
|
-Patch0: hdf-4.2r1p4-maxavailfiles.patch
|
|
|
-Patch1: hdf-4.2r2-ppc.patch
|
|
|
+
|
|
|
License: BSD-ish
|
|
|
Group: System Environment/Libraries
|
|
|
-URL: http://hdf.ncsa.uiuc.edu/hdf4.html
|
|
|
+URL: http://hdfgroup.org/products/hdf4/index.html
|
|
|
+
|
|
|
+Source0: ftp://ftp.hdfgroup.org/HDF/HDF_Current/src/%{name}-%{version}.tar.bz2
|
|
|
+Patch0: hdf-4.2.5-maxavailfiles.patch
|
|
|
+Patch1: hdf-ppc.patch
|
|
|
+Patch2: hdf-4.2.4-sparc.patch
|
|
|
+Patch3: hdf-s390.patch
|
|
|
+Patch4: hdf-arm.patch
|
|
|
+# Support DESTDIR in install-examples
|
|
|
+Patch5: hdf-destdir.patch
|
|
|
+# Install examples into the right location
|
|
|
+Patch6: hdf-examplesdir.patch
|
|
|
+# Fix build with -Werror=format-security
|
|
|
+# https://bugzilla.redhat.com/show_bug.cgi?id=1037120
|
|
|
+Patch7: hdf-format.patch
|
|
|
+# Add AArch64 definitions
|
|
|
+Patch8: hdf-4.2.10-aarch64.patch
|
|
|
+# ppc64le support
|
|
|
+# https://bugzilla.redhat.com/show_bug.cgi?id=1134385
|
|
|
+Patch9: hdf-ppc64le.patch
|
|
|
|
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-root
|
|
|
-BuildRequires: autoconf flex byacc libjpeg-devel zlib-devel
|
|
|
+# For destdir/examplesdir patches
|
|
|
+BuildRequires: automake libtool
|
|
|
+BuildRequires: flex byacc libjpeg-turbo-devel zlib-devel
|
|
|
BuildRequires: gcc-gfortran
|
|
|
|
|
|
-
|
|
|
%description
|
|
|
HDF is a general purpose library and file format for storing scientific data.
|
|
|
HDF can store two primary objects: datasets and groups. A dataset is
|
|
@@ -28,62 +45,91 @@ grids. You can also mix and match them in HDF files according to your needs.
|
|
|
Summary: HDF development files
|
|
|
Group: Development/Libraries
|
|
|
Requires: %{name} = %{version}-%{release}
|
|
|
-Requires: libjpeg-devel zlib-devel
|
|
|
+Requires: libjpeg-devel
|
|
|
+Requires: zlib-devel
|
|
|
|
|
|
%description devel
|
|
|
HDF development headers and libraries.
|
|
|
|
|
|
|
|
|
%prep
|
|
|
-%setup -q -n HDF%{version}
|
|
|
-#tar xf %{SOURCE1} --directory mfhdf/hrepack
|
|
|
-#mv mfhdf/hrepack/4.2r1-hrepack-patch/*.[ch] mfhdf/hrepack
|
|
|
-#rm -r mfhdf/hrepack/4.2r1-hrepack-patch
|
|
|
-%patch -p1 -b .maxavailfiles
|
|
|
+%setup -q
|
|
|
+%patch0 -p1 -b .maxavailfiles
|
|
|
%patch1 -p1 -b .ppc
|
|
|
+%patch5 -p1 -b .destdir
|
|
|
+%patch6 -p1 -b .examplesdir
|
|
|
+%patch7 -p1 -b .format
|
|
|
|
|
|
chmod a-x *hdf/*/*.c hdf/*/*.h
|
|
|
+# restore include file timestamps modified by patching
|
|
|
+touch -c -r ./hdf/src/hdfi.h.ppc ./hdf/src/hdfi.h
|
|
|
|
|
|
|
|
|
%build
|
|
|
+# For destdir/examplesdir patches
|
|
|
+autoreconf -vif
|
|
|
+# avoid upstream compiler flags settings
|
|
|
rm config/*linux-gnu
|
|
|
export CFLAGS="$RPM_OPT_FLAGS -fPIC"
|
|
|
-export FFLAGS="$RPM_OPT_FLAGS -ffixed-line-length-none"
|
|
|
-%configure F77=gfortran --disable-production \
|
|
|
+export FFLAGS="$RPM_OPT_FLAGS -fPIC -ffixed-line-length-none"
|
|
|
+%configure --disable-production --disable-netcdf \
|
|
|
--includedir=%{_includedir}/%{name} --libdir=%{_libdir}/%{name}
|
|
|
-make
|
|
|
|
|
|
+make
|
|
|
+# correct the timestamps based on files used to generate the header files
|
|
|
+touch -c -r hdf/src/hdf.inc hdf/src/hdf.f90
|
|
|
+touch -c -r hdf/src/dffunc.inc hdf/src/dffunc.f90
|
|
|
+touch -c -r mfhdf/fortran/mffunc.inc mfhdf/fortran/mffunc.f90
|
|
|
+# netcdf fortran include need same treatement, but they are not shipped
|
|
|
|
|
|
%install
|
|
|
rm -rf $RPM_BUILD_ROOT
|
|
|
-%makeinstall includedir=${RPM_BUILD_ROOT}%{_includedir}/%{name} \
|
|
|
- libdir=$RPM_BUILD_ROOT%{_libdir}/%{name}
|
|
|
+make install DESTDIR=$RPM_BUILD_ROOT INSTALL='install -p'
|
|
|
#Don't conflict with netcdf
|
|
|
-rm $RPM_BUILD_ROOT%{_bindir}/nc* $RPM_BUILD_ROOT%{_mandir}/man1/nc*
|
|
|
-
|
|
|
+#rm $RPM_BUILD_ROOT%{_bindir}/nc* $RPM_BUILD_ROOT%{_mandir}/man1/nc*
|
|
|
+for file in ncdump ncgen; do
|
|
|
+ mv $RPM_BUILD_ROOT%{_bindir}/$file $RPM_BUILD_ROOT%{_bindir}/h$file
|
|
|
+ # man pages are the same than netcdf ones
|
|
|
+ rm $RPM_BUILD_ROOT%{_mandir}/man1/${file}.1
|
|
|
+done
|
|
|
+
|
|
|
+# this is done to have the same timestamp on multiarch setups
|
|
|
+touch -c -r README.txt $RPM_BUILD_ROOT/%{_includedir}/hdf/h4config.h
|
|
|
+
|
|
|
+# Remove an autoconf conditional from the API that is unused and cause
|
|
|
+# the API to be different on x86 and x86_64
|
|
|
+pushd $RPM_BUILD_ROOT/%{_includedir}/hdf
|
|
|
+grep -v 'H4_SIZEOF_INTP' h4config.h > h4config.h.tmp
|
|
|
+touch -c -r h4config.h h4config.h.tmp
|
|
|
+mv h4config.h.tmp h4config.h
|
|
|
+popd
|
|
|
|
|
|
%check
|
|
|
make check
|
|
|
|
|
|
-
|
|
|
%clean
|
|
|
rm -rf $RPM_BUILD_ROOT
|
|
|
|
|
|
|
|
|
%files
|
|
|
%defattr(-,root,root,0755)
|
|
|
-%doc COPYING MANIFEST README release_notes/*.txt
|
|
|
+%doc COPYING MANIFEST README.txt release_notes/*.txt
|
|
|
%{_bindir}/*
|
|
|
%{_mandir}/man1/*.gz
|
|
|
-
|
|
|
+%exclude %{_defaultdocdir}/%{name}/examples
|
|
|
|
|
|
%files devel
|
|
|
%defattr(-,root,root,0755)
|
|
|
%{_includedir}/%{name}/
|
|
|
%{_libdir}/%{name}/
|
|
|
+%{_defaultdocdir}/%{name}/examples
|
|
|
|
|
|
|
|
|
%changelog
|
|
|
+* Sun Jan 25 2015 Ryoichi INAGAKI <ryo1@toki.waseda.jp> 4.2.10-1
|
|
|
+- updated to 4.2.10
|
|
|
+- built on current VineSeed
|
|
|
+
|
|
|
* Sat Oct 25 2008 Shu KONNO <owa@bg.wakwak.com> 4.2r2-1vl5
|
|
|
- applied new versioning policy
|
|
|
|