Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package hdf5 for openSUSE:Factory checked in at 2025-03-24 13:27:48 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/hdf5 (Old) and /work/SRC/openSUSE:Factory/.hdf5.new.2696 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "hdf5" Mon Mar 24 13:27:48 2025 rev:88 rq:1255078 version:1.14.6 Changes: -------- --- /work/SRC/openSUSE:Factory/hdf5/hdf5.changes 2025-02-05 17:23:15.025800805 +0100 +++ /work/SRC/openSUSE:Factory/.hdf5.new.2696/hdf5.changes 2025-03-24 13:28:09.037544886 +0100 @@ -1,0 +2,48 @@ +Wed Mar 5 16:09:27 UTC 2025 - Atri Bhattacharya <badshah...@gmail.com> + +- Update to version 1.14.6: + * Reverted a change (from v1.14.4) to the library's handling of + UTF-8 file names. + * Updated CMake find_package(ZLIB) defaults to find most system + zlib installs. +- Changes from versions 1.14.0 through 1.14.5: + * See %{_docdir}/hdf5/HISTORY-1_14.txt or online at + https://github.com/HDFGroup/hdf5/blob/hdf5_1.14.6/release_docs/HISTORY-1_14.txt +- Build hdf5 tools lib and split out as separate shared lib. +- Disable static libs. Note: If we need to re-enable this, we will + have to do it as part of separate flavours and strip all cmake + configuration files from the -devel-static package. Otherwise, + we will need to BuildRequires: hdf5-devel-static for every + package even if only the shared lib is required, because the + cmake module will contain references to both shared and static + libs and not having the latter will cause find_package(HDF5) to + fail. +- Enable tests and run them as part of %check. +- Pass regexs to cmake option `DHDF5_DISABLE_TESTS_REGEX` to + disable failing tests, including: + * MPI tests that take a long time to run (on all archs). + * Tests failing on specific archs. +- Drop helper scripts `so_versions` and `update_so_version.sh` to + simplify so versioning usage; hdf5 is now consistent with their + so numbers across different libraries. +- Add hdf5.rpmlintrc file to suppress false positives reported by + rpmlint. +- Add hdf5-cmake-fix-script-paths.patch -- Fix paths in scripts + when built using cmake [gh#HDFGroup/hdf5#5361]. +- Move h5hl* compiler wrappers to -devel package. +- Drop patches that have been incorporated upstream directly or + otherwise fixed: + * hdf5-LD_LIBRARY_PATH.patch (not needed after switch to cmake) + * hdf5-Remove-timestamps-from-binaries.patch + * hdf5-mpi.patch (was already disabled since v1.12) + * Disable-phdf5-tests.patch (test runs fine now) + * Fix-error-message-not-the-name-but-the-link-information-is-parsed.patch + * H5O_fsinfo_decode-Make-more-resilient-to-out-of-bounds-read.patch + * Report-error-if-dimensions-of-chunked-storage-in-data-layout-2.patch + * When-evicting-driver-info-block-NULL-the-corresponding-entry.patch + * Validate-location-offset-of-the-accumulated-metadata-when-comparing.patch + * Hot-fix-for-CVE-2020-10812.patch + * reproducible.patch + * hdf5-wrappers.patch (autotools specific, no longer used) + +------------------------------------------------------------------- Old: ---- Disable-phdf5-tests.patch Fix-error-message-not-the-name-but-the-link-information-is-parsed.patch H5O_fsinfo_decode-Make-more-resilient-to-out-of-bounds-read.patch Hot-fix-for-CVE-2020-10812.patch Report-error-if-dimensions-of-chunked-storage-in-data-layout-2.patch Validate-location-offset-of-the-accumulated-metadata-when-comparing.patch When-evicting-driver-info-block-NULL-the-corresponding-entry.patch hdf5-1.12.3.tar.bz2 hdf5-LD_LIBRARY_PATH.patch hdf5-Remove-timestamps-from-binaries.patch hdf5-mpi.patch hdf5-wrappers.patch reproducible.patch so_versions update_so_version.sh New: ---- hdf5-1.14.6.tar.gz hdf5-cmake-fix-script-paths.patch hdf5.rpmlintrc BETA DEBUG BEGIN: Old: * hdf5-mpi.patch (was already disabled since v1.12) * Disable-phdf5-tests.patch (test runs fine now) * Fix-error-message-not-the-name-but-the-link-information-is-parsed.patch Old: * Disable-phdf5-tests.patch (test runs fine now) * Fix-error-message-not-the-name-but-the-link-information-is-parsed.patch * H5O_fsinfo_decode-Make-more-resilient-to-out-of-bounds-read.patch Old: * Fix-error-message-not-the-name-but-the-link-information-is-parsed.patch * H5O_fsinfo_decode-Make-more-resilient-to-out-of-bounds-read.patch * Report-error-if-dimensions-of-chunked-storage-in-data-layout-2.patch Old: * Validate-location-offset-of-the-accumulated-metadata-when-comparing.patch * Hot-fix-for-CVE-2020-10812.patch * reproducible.patch Old: * H5O_fsinfo_decode-Make-more-resilient-to-out-of-bounds-read.patch * Report-error-if-dimensions-of-chunked-storage-in-data-layout-2.patch * When-evicting-driver-info-block-NULL-the-corresponding-entry.patch Old: * When-evicting-driver-info-block-NULL-the-corresponding-entry.patch * Validate-location-offset-of-the-accumulated-metadata-when-comparing.patch * Hot-fix-for-CVE-2020-10812.patch Old: * Report-error-if-dimensions-of-chunked-storage-in-data-layout-2.patch * When-evicting-driver-info-block-NULL-the-corresponding-entry.patch * Validate-location-offset-of-the-accumulated-metadata-when-comparing.patch Old: otherwise fixed: * hdf5-LD_LIBRARY_PATH.patch (not needed after switch to cmake) * hdf5-Remove-timestamps-from-binaries.patch Old: * hdf5-LD_LIBRARY_PATH.patch (not needed after switch to cmake) * hdf5-Remove-timestamps-from-binaries.patch * hdf5-mpi.patch (was already disabled since v1.12) Old: * hdf5-Remove-timestamps-from-binaries.patch * hdf5-mpi.patch (was already disabled since v1.12) * Disable-phdf5-tests.patch (test runs fine now) Old: * reproducible.patch * hdf5-wrappers.patch (autotools specific, no longer used) Old: * Hot-fix-for-CVE-2020-10812.patch * reproducible.patch * hdf5-wrappers.patch (autotools specific, no longer used) BETA DEBUG END: BETA DEBUG BEGIN: New: rpmlint. - Add hdf5-cmake-fix-script-paths.patch -- Fix paths in scripts when built using cmake [gh#HDFGroup/hdf5#5361]. BETA DEBUG END: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ hdf5.spec ++++++ --- /var/tmp/diff_new_pack.ztasov/_old 2025-03-24 13:28:12.161675056 +0100 +++ /var/tmp/diff_new_pack.ztasov/_new 2025-03-24 13:28:12.165675224 +0100 @@ -1,7 +1,7 @@ # # spec file for package hdf5 # -# Copyright (c) 2024 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 @@ -18,28 +18,19 @@ %global flavor @BUILD_FLAVOR@%{nil} -%if 0%{?sle_version} >= 150200 -%define DisOMPI1 ExclusiveArch: do_not_build -%endif -%if !0%{?is_opensuse} && 0%{?sle_version:1} && 0%{?sle_version} < 150200 -%define DisOMPI3 ExclusiveArch: do_not_build -%endif - -%if 0%{?sle_version:1} && 0%{?sle_version} < 150300 -%define DisOMPI4 ExclusiveArch: do_not_build -%endif +%bcond_with sz2 -# Disable until resource issue is resolved. -%bcond_with check - -%define use_sz2 0 - -%define short_ver 1.12 -%define vers %{short_ver}.3 +%define sonum 310 +%define short_ver 1.14 +%define vers %{short_ver}.6 %define _vers %( echo %{vers} | tr '.' '_' ) %define src_ver %{version} %define pname hdf5 +%bcond_with static + +%if %{with static} %global _lto_cflags %{_lto_cflags} -ffat-lto-objects +%endif %if "%{flavor}" == "" ExclusiveArch: do_not_build @@ -51,14 +42,12 @@ %endif %if "%{flavor}" == "openmpi4" -%{?DisOMPI4} %global mpi_flavor openmpi %define mpi_vers 4 %bcond_with hpc %endif %if "%{flavor}" == "openmpi5" -%{?DisOMPI5} %global mpi_flavor openmpi %define mpi_vers 5 %bcond_with hpc @@ -76,7 +65,6 @@ %endif %if "%{flavor}" == "gnu-openmpi4-hpc" -%{?DisOMPI4} %bcond_without hpc %define compiler_family gnu %undefine c_f_ver @@ -85,7 +73,6 @@ %endif %if "%{flavor}" == "gnu-openmpi5-hpc" -%{?DisOMPI5} %bcond_without hpc %define compiler_family gnu %undefine c_f_ver @@ -115,7 +102,6 @@ %endif %if "%{flavor}" == "gnu7-openmpi4-hpc" -%{?DisOMPI4} %bcond_without hpc %define compiler_family gnu %define c_f_ver 7 @@ -124,7 +110,6 @@ %endif %if "%{flavor}" == "gnu7-openmpi5-hpc" -%{?DisOMPI5} %bcond_without hpc %define compiler_family gnu %define c_f_ver 7 @@ -154,7 +139,6 @@ %endif %if "%{flavor}" == "gnu8-openmpi4-hpc" -%{?DisOMPI4} %bcond_without hpc %define compiler_family gnu %define c_f_ver 8 @@ -163,7 +147,6 @@ %endif %if "%{flavor}" == "gnu8-openmpi5-hpc" -%{?DisOMPI5} %bcond_without hpc %define compiler_family gnu %define c_f_ver 8 @@ -193,7 +176,6 @@ %endif %if "%{flavor}" == "gnu9-openmpi4-hpc" -%{?DisOMPI4} %bcond_without hpc %define compiler_family gnu %define c_f_ver 9 @@ -202,7 +184,6 @@ %endif %if "%{flavor}" == "gnu9-openmpi5-hpc" -%{?DisOMPI5} %bcond_without hpc %define compiler_family gnu %define c_f_ver 9 @@ -232,7 +213,6 @@ %endif %if "%{flavor}" == "gnu10-openmpi4-hpc" -%{?DisOMPI4} %bcond_without hpc %define compiler_family gnu %define c_f_ver 10 @@ -241,7 +221,6 @@ %endif %if "%{flavor}" == "gnu10-openmpi5-hpc" -%{?DisOMPI5} %bcond_without hpc %define compiler_family gnu %define c_f_ver 10 @@ -294,8 +273,8 @@ %define my_prefix %{_libdir}/mpi/gcc/%{mpi_flavor}%{?mpi_ext} %define my_suffix -%{mpi_flavor}%{?mpi_ext} %define my_bindir %{my_prefix}/bin - %define my_libdir %{my_prefix}/%{_lib}/ - %define my_incdir %{my_prefix}/include/ + %define my_libdir %{my_prefix}/%{_lib} + %define my_incdir %{my_prefix}/include %endif %if 0%{!?package_name:1} %define package_name %pname%{?my_suffix} @@ -304,8 +283,7 @@ %define vname %{pname} %endif -# Run 'sh ./update_so_version.sh' when updating hdf5! -%include %{_sourcedir}/so_versions +%define __builder ninja Name: %{package_name} Version: %vers @@ -314,49 +292,39 @@ License: BSD-3-Clause Group: Productivity/Scientific/Other URL: https://www.hdfgroup.org/HDF5/ -Source0: https://www.hdfgroup.org/ftp/HDF5/releases/%{pname}-%{short_ver}/%{pname}-%{src_ver}/src/%{pname}-%{src_ver}.tar.bz2 -Source100: so_versions -Source1000: update_so_version.sh -Patch0: hdf5-LD_LIBRARY_PATH.patch +Source0: https://github.com/HDFGroup/hdf5/releases/download/%{pname}_%{version}/%{pname}-%{version}.tar.gz +Source100: %{pname}.rpmlintrc +# PATCH-FIX-UPSTREAM hdf5-cmake-fix-script-paths.patch badshah...@gmail.com -- Fix paths in scripts when built using cmake +Patch0: hdf5-cmake-fix-script-paths.patch # not really needed but we want to get noticed if hdf5 doesn' t know our host Patch2: hdf5-1.8.11-abort_unknown_host_config.patch %ifarch %arm Patch4: hdf5-1.8.10-tests-arm.patch %endif Patch5: PPC64LE-Fix-long-double-handling.patch -Patch6: hdf5-Remove-timestamps-from-binaries.patch -# Could be ported but it's unknown if it's still needed -Patch7: hdf5-mpi.patch -Patch8: Disable-phdf5-tests.patch -Patch9: Fix-error-message-not-the-name-but-the-link-information-is-parsed.patch -# Imported from Fedora, strip flags from h5cc wrapper -Patch10: hdf5-wrappers.patch -Patch101: H5O_fsinfo_decode-Make-more-resilient-to-out-of-bounds-read.patch -Patch104: Report-error-if-dimensions-of-chunked-storage-in-data-layout-2.patch -Patch105: When-evicting-driver-info-block-NULL-the-corresponding-entry.patch -Patch107: Validate-location-offset-of-the-accumulated-metadata-when-comparing.patch -Patch109: Hot-fix-for-CVE-2020-10812.patch -Patch110: reproducible.patch +BuildRequires: cmake BuildRequires: fdupes +BuildRequires: gcc-c++ +BuildRequires: gcc-fortran BuildRequires: hostname -%if 0%{?use_sz2} -BuildRequires: libsz2-devel +BuildRequires: ninja +%if %{with sz2} +BuildRequires: sz2-devel %endif BuildRequires: zlib-devel %if %{without hpc} -BuildRequires: gcc-c++ -BuildRequires: gcc-fortran %if %{with mpi} BuildRequires: %{mpi_flavor}%{?mpi_ext}-devel %else -Requires: lib%{pname}_cpp%{sonum_CXX} = %{version} -Requires: lib%{pname}_hl_cpp%{sonum_HL_CXX} = %{version} +Requires: lib%{pname}_cpp%{sonum} = %{version} +Requires: lib%{pname}_hl_cpp%{sonum} = %{version} %endif Requires: lib%{pname}-%{sonum} = %{version} -Requires: lib%{pname}_fortran%{sonum_F} = %{version} -Requires: lib%{pname}_hl%{sonum_HL} = %{version} -Requires: lib%{pname}hl_fortran%{sonum_HL_F} = %{version} +Requires: lib%{pname}_fortran%{sonum} = %{version} +Requires: lib%{pname}_hl%{sonum} = %{version} +Requires: lib%{pname}_hl_fortran%{sonum} = %{version} +Requires: lib%{pname}_tools%{sonum} = %{version} %else # hpc %hpc_requires Requires: %{libname -l _fortran} @@ -364,8 +332,9 @@ Requires: %{libname -l _cpp} Requires: %{libname -l _hl_cpp} %endif +Requires: %{libname -l _hl_fortran} Requires: %{libname -l _hl} -Requires: %{libname -l hl_fortran} +Requires: %{libname -l _tools} Requires: %{libname} BuildRequires: %{compiler_family}%{?c_f_ver}-compilers-hpc-macros-devel BuildRequires: lua-lmod @@ -374,7 +343,6 @@ BuildRequires: %{mpi_flavor}%{?mpi_vers}-%{compiler_family}%{?c_f_ver}-hpc-macros-devel %endif %endif # ?hpc -BuildRoot: %{_tmppath}/%{name}-%{version}-build %description HDF5 is a data model, library, and file format for storing and @@ -401,7 +369,7 @@ %{?with_hpc:%{hpc_master_package -l -n lib%{pname}%{hpc_package_name_tail}}} -%package -n %{libname -l _hl -s %{sonum_HL}} +%package -n %{libname -l _hl -s %{sonum}} Summary: High-level shared libraries for the HDF5 scientific data format # To avoid unresolvable errors due to multiple providers of the library Group: System/Libraries @@ -409,7 +377,7 @@ Obsoletes: %{libname -l _hl} < %{version} %{?with_hpc:Requires: %{name}-module = %version} -%description -n %{libname -l _hl -s %{sonum_HL}} +%description -n %{libname -l _hl -s %{sonum}} HDF5 is a data model, library, and file format for storing and managing data. It supports an unlimited variety of datatypes. @@ -418,7 +386,7 @@ %{?with_hpc:%{hpc_master_package -l -n lib%{pname}_hl%{hpc_package_name_tail} -N %{pname}_hl}} -%package -n %{libname -l _cpp -s %{sonum_CXX}} +%package -n %{libname -l _cpp -s %{sonum}} Summary: Shared libraries for the HDF5 scientific data format # To avoid unresolvable errors due to multiple providers of the library Group: System/Libraries @@ -426,7 +394,7 @@ Obsoletes: %{libname -l _cpp} < %{version} %{?with_hpc:Requires: %{name}-module = %version} -%description -n %{libname -l _cpp -s %{sonum_CXX}} +%description -n %{libname -l _cpp -s %{sonum}} HDF5 is a data model, library, and file format for storing and managing data. It supports an unlimited variety of datatypes. @@ -434,7 +402,7 @@ %{?with_hpc:%{hpc_master_package -l -n lib%{pname}_cpp%{hpc_package_name_tail} -N %{pname}_cpp}} -%package -n %{libname -l _hl_cpp -s %{sonum_HL_CXX}} +%package -n %{libname -l _hl_cpp -s %{sonum}} Summary: High-level shared libraries for the HDF5 scientific data format # To avoid unresolvable errors due to multiple providers of the library Group: System/Libraries @@ -442,7 +410,7 @@ Obsoletes: %{libname -l _hl_cpp} < %{version} %{?with_hpc:Requires: %{name}-module = %version} -%description -n %{libname -l _hl_cpp -s %{sonum_HL_CXX}} +%description -n %{libname -l _hl_cpp -s %{sonum}} HDF5 is a data model, library, and file format for storing and managing data. It supports an unlimited variety of datatypes. @@ -450,7 +418,7 @@ %{?with_hpc:%{hpc_master_package -l -n lib%{pname}_hl_cpp%{hpc_package_name_tail} -N %{pname}_hl_cpp}} -%package -n %{libname -l _fortran -s %{sonum_F}} +%package -n %{libname -l _fortran -s %{sonum}} Summary: Shared libraries for the HDF5 scientific data format # To avoid unresolvable errors due to multiple providers of the library Group: System/Libraries @@ -458,7 +426,7 @@ Obsoletes: %{libname -l _fortran} < %{version} %{?with_hpc:Requires: %{name}-module = %version} -%description -n %{libname -l _fortran -s %{sonum_F}} +%description -n %{libname -l _fortran -s %{sonum}} HDF5 is a data model, library, and file format for storing and managing data. It supports an unlimited variety of datatypes. @@ -466,26 +434,43 @@ %{?with_hpc:%{hpc_master_package -l -n lib%{pname}_fortran%{hpc_package_name_tail} -N %{pname}_fortran}} -%package -n %{libname -l hl_fortran -s %{sonum_HL_F}} +%package -n %{libname -l _hl_fortran -s %{sonum}} Summary: High-level shared libraries for the HDF5 scientific data format # To avoid unresolvable errors due to multiple providers of the library Group: System/Libraries -Provides: %{libname -l hl_fortran} = %{version} -Obsoletes: %{libname -l hl_fortran} < %{version} +Provides: %{libname -l _hl_fortran} = %{version} +Obsoletes: %{libname -l _hl_fortran} < %{version} %{?with_hpc:Requires: %{name}-module = %version} -%description -n %{libname -l hl_fortran -s %{sonum_HL_F}} +%description -n %{libname -l _hl_fortran -s %{sonum}} HDF5 is a data model, library, and file format for storing and managing data. It supports an unlimited variety of datatypes. This package contains the %{flavor} version of the high-level HDF5 runtime libraries. -%{?with_hpc:%{hpc_master_package -l -n lib%{pname}_hl_fortran%{hpc_package_name_tail} -N %{pname}hl_fortran}} +%{?with_hpc:%{hpc_master_package -l -n lib%{pname}_hl_fortran%{hpc_package_name_tail} -N %{pname}_hl_fortran}} + +%package -n %{libname -l _tools -s %{sonum}} +Summary: Shared libraries for the HDF5 scientific data format +# To avoid unresolvable errors due to multiple providers of the library +Group: System/Libraries +Provides: %{libname -l _tools} = %{version} +Obsoletes: %{libname -l _tools} < %{version} +%{?with_hpc:Requires: %{name}-module = %version} + +%description -n %{libname -l _tools -s %{sonum}} +HDF5 is a data model, library, and file format for storing and +managing data. It supports an unlimited variety of datatypes. + +This package contains the HDF5 runtime libraries. + +%{?with_hpc:%{hpc_master_package -l -n lib%{pname}_tools%{hpc_package_name_tail} -N %{pname}_tools}} %package -n %{pname}-devel-data Summary: Development data files for %{name} Group: Development/Libraries/Other +BuildArch: noarch %description -n %{pname}-devel-data HDF5 is a data model, library, and file format for storing and @@ -497,8 +482,8 @@ %package devel Summary: Development files for %{name} Group: Development/Libraries/Parallel -Requires: %{libname -l _cpp -s %{sonum_CXX}} = %{version} -Requires: %{libname -l _hl_cpp -s %{sonum_HL_CXX}} = %{version} +Requires: %{libname -l _cpp -s %{sonum}} = %{version} +Requires: %{libname -l _hl_cpp -s %{sonum}} = %{version} Requires: %{name} = %{version} %{!?with_hpc:Requires: %{pname}-devel-data = %{version}} Requires: zlib-devel @@ -507,9 +492,10 @@ %endif Requires: %{libname -s %{sonum}} = %{version} # Required by Fortran programs? -Requires: %{libname -l _fortran -s %{sonum_F}} = %{version} -Requires: %{libname -l _hl -s %{sonum_HL}} = %{version} -Requires: %{libname -l hl_fortran -s %{sonum_HL_F}} = %{version} +Requires: %{libname -l _fortran -s %{sonum}} = %{version} +Requires: %{libname -l _hl -s %{sonum}} = %{version} +Requires: %{libname -l _hl_fortran -s %{sonum}} = %{version} +Requires: %{libname -l _tools -s %{sonum}} = %{version} %{?with_hpc:%hpc_requires_devel} %description devel @@ -535,6 +521,7 @@ %package -n %{vname}-examples Summary: Examples for %{name} Group: Documentation/Other +BuildArch: noarch %description -n %{vname}-examples HDF5 is a data model, library, and file format for storing and @@ -561,130 +548,129 @@ %prep %{?with_hpc: %hpc_debug} -%setup -q -n %{pname}-%{version} -%patch -P 0 -p1 -b .LD_LIBRARY_PATH +%autosetup -N -n %{pname}-%{version} +%patch -P 0 -p1 %patch -P 2 -p0 -b .abort_unknown_host_config %ifarch %arm %patch -P 4 -p0 -b .tests-arm %endif %patch -P 5 -p1 -%patch -P 6 -p1 -# work around bot rejection for unapplied patch -%if 0 -%patch -P 7 -p1 -%endif -%patch -P 8 -p1 -%patch -P 9 -p1 -%patch -P 10 -p1 -%patch -P 101 -p1 -%patch -P 104 -p1 -%patch -P 105 -p1 -%patch -P 107 -p1 -%patch -P 109 -p1 %if %{without hpc} # baselibs looks different for different flavors - generate it on the fly -cat > %{_sourcedir}/baselibs.conf <<EOF +cat > %{_sourcedir}/baselibs.conf << EOF libhdf5-%{sonum}%{?my_suffix} -libhdf5_hl%{sonum_HL}%{?my_suffix} -libhdf5_fortran%{sonum_F}%{?my_suffix} -libhdf5hl_fortran%{sonum_HL_F}%{?my_suffix} -libhdf5_cpp%{sonum_CXX}%{?my_suffix} -libhdf5_hl_cpp%{sonum_HL_CXX}%{?my_suffix} +libhdf5_hl%{sonum}%{?my_suffix} +libhdf5_fortran%{sonum}%{?my_suffix} +libhdf5hl_fortran%{sonum}%{?my_suffix} +libhdf5_cpp%{sonum}%{?my_suffix} +libhdf5_hl_cpp%{sonum}%{?my_suffix} +libhdf5_tools%{sonum}%{?my_suffix} hdf5%{?my_suffix}-devel requires %{?my_suffix}-<targettype> requires "libhdf5-%{sonum}%{?my_suffix}-<targettype> = <version>" - requires "libhdf5_hl%{sonum_HL}%{?my_suffix}-<targettype> = <version>" - requires "libhdf5_fortran%{sonum_F}%{?my_suffix}-<targettype> = <version>" - requires "libhdf5hl_fortran%{sonum_HL_F}%{?my_suffix}-<targettype> = <version>" - requires "libhdf5_cpp%{sonum_CXX}%{?my_suffix}-<targettype> = <version>" - requires "libhdf5_hl_cpp%{sonum_HL_CXX}%{?my_suffix}-<targettype> = <version>" + requires "libhdf5_hl%{sonum}%{?my_suffix}-<targettype> = <version>" + requires "libhdf5_fortran%{sonum}%{?my_suffix}-<targettype> = <version>" + requires "libhdf5hl_fortran%{sonum}%{?my_suffix}-<targettype> = <version>" + requires "libhdf5_cpp%{sonum}%{?my_suffix}-<targettype> = <version>" + requires "libhdf5_hl_cpp%{sonum}%{?my_suffix}-<targettype> = <version>" + requires "libhdf5_tools%{sonum}%{?my_suffix}-<targettype> = <version>" EOF %endif -%patch -P110 -p1 %build - %{?with_hpc:%hpc_setup} %{?with_hpc:%hpc_debug} -export CC=gcc -export CXX=g++ -export F9X=gfortran -# Ouch, how ugly! Upstream configure depends on hacking out Werror manually: -# > configure.ac:## Strip out -Werror from CFLAGS since that can cause checks to fail when -# > configure.ac:CFLAGS="`echo $CFLAGS | sed -e 's/-Werror//g'`" -# We need to clear out -Werror=return-type from our optflags otherwise we leave -# a bare '=return-type' hanging in the options passed to GCC by configure -export CFLAGS=`echo "%{optflags}" | sed -e 's/-Werror=return-type //'` -export CXXFLAGS=`echo "%{optflags}" | sed -e 's/-Werror=return-type //'` -export FFLAGS=`echo "%{optflags}" | sed -e 's/-Werror=return-type //'` -export FCFLAGS=`echo "%{optflags}" | sed -e 's/-Werror=return-type //'` +export CFLAGS="%{optflags}" +export CXXFLAGS="%{optflags}" +export FFLAGS="%{optflags}" +export FCFLAGS="%{optflags}" %ifarch %arm # we want to have useful H5_CFLAGS on arm too test -e config/linux-gnueabi || cp config/linux-gnu config/linux-gnueabi %endif -# NOTE: --enable-unsupported is required when --enable-fortran -# and/or --enable-cxx is enabled along with --enable-threadsafe. -# Building with thise combination results in thread-safe C -# libraries and non-thread-safe fotran and/or C++ libraries. So -# you have to explicitly allow building the thread-safe C -# library and the non-thread-safe C++ and fortran libraries in -# order to make sure people don't assume that their fotran or -# C++ code is thread-safe. Since our users are going to be -# accessing this through other programs, this doesn't matter. +# SECTION Tests to disable by regex +## Long lasting tests for MPI +DISABLED_TEST_REGEX="MPI_TEST_t_.*" +## Failing tests on 32bit +%ifarch %ix86 +DISABLED_TEST_REGEX+="|FORTRAN_testhdf5_fortran|MPI_TEST_testphdf5" +%endif +## PPC peculiarities +%ifarch %power64 +DISABLED_TEST_REGEX+="|MPI_TEST_H5DIFF-h5diff_601" +%endif +%ifarch %arm64 +DISABLED_TEST_REGEX+="|MPI_TEST_H5DIFF-h5diff_601" +%endif +export DISABLED_TEST_REGEX +# /SECTION + +# NOTE 1: -DALLOW_UNSUPPORTED=ON is required when -DHDF5_BUILD_FORTRAN is +# enabled along with -DHDF5_ENABLE_THREADSAFE=ON. Building with thise +# combination results in thread-safe C libraries and non-thread-safe fortran +# and/or C++ libraries. So you have to explicitly allow building the +# thread-safe C library and the non-thread-safe C++ and fortran libraries in +# order to make sure people don't assume that their fortran or C++ code is +# thread-safe. Since our users are going to be accessing this through other +# programs, this doesn't matter. + +# NOTE 2: It is absolutely critical to set explicitly the CMAKE_<LANG>_COMPILER +# options for each flavour of build, even for the serial one, especially when +# ccache is used to speed up builds. Otherwise, the scripts `h5(p)cc` and +# libhdf5.settings embed incorrect values of the compiler (e.g. ccache instead +# of gcc) causing major issues downstream. %if %{without hpc} +%cmake \ %if %{with mpi} -export CC="%{my_bindir}/mpicc" -export CXX="%{my_bindir}/mpicxx" -export FC="%{my_bindir}/mpif90" -export F77="%{my_bindir}/mpif77" -export LD_LIBRARY_PATH="%{my_libdir}" - %endif -%configure \ - %if %{with mpi} - --prefix=%{my_prefix} \ - --exec-prefix=%{_prefix} \ - --bindir=%{my_bindir} \ - --libdir=%{my_libdir} \ - --includedir=%{my_incdir} \ - --datadir=%{_datadir} \ + -DCMAKE_C_COMPILER:FILEPATH="%{my_bindir}/mpicc" \ + -DCMAKE_CXX_COMPILER:FILEPATH="%{my_bindir}/mpicxx" \ + -DCMAKE_Fortran_COMPILER:FILEPATH="%{my_bindir}/mpif90" \ + -DCMAKE_INSTALL_BINDIR:PATH=%{my_bindir} \ + -DCMAKE_INSTALL_INCLUDEDIR:PATH=%{my_incdir} \ + -DCMAKE_INSTALL_LIBDIR:PATH=%{my_libdir} \ + -DCMAKE_INSTALL_PREFIX:PATH=%{my_prefix} \ + %else + -DCMAKE_C_COMPILER:FILEPATH="%{my_bindir}/cc" \ + -DCMAKE_CXX_COMPILER:FILEPATH="%{my_bindir}/c++" \ + -DCMAKE_Fortran_COMPILER:FILEPATH="%{my_bindir}/gfortran" \ %endif - --docdir=%{_docdir}/%{name} \ %else # hpc %global _hpc_exec_prefix %hpc_exec_prefix %global hpc_exec_prefix %_prefix +%hpc_cmake \ +%define hpc_exec_prefix %{expand:%_hpc_exec_prefix} %if %{with mpi} -export CC=mpicc -export CXX=mpicxx -export F77=mpif77 -export FC=mpif90 -export MPICC=mpicc -export MPIFC=mpifc -export MPICXX=mpicxx + -DCMAKE_C_COMPILER:FILEPATH=mpicc \ + -DCMAKE_CXX_COMPILER:FILEPATH=mpicxx \ + -DCMAKE_Fortran_COMPILER:FILEPATH=mpif90 \ + %else + -DCMAKE_C_COMPILER:FILEPATH=cc \ + -DCMAKE_CXX_COMPILER:FILEPATH=c++ \ + -DCMAKE_Fortran_COMPILER:FILEPATH=gfortran \ %endif -%hpc_configure \ -%define hpc_exec_prefix %{expand:%_hpc_exec_prefix} %endif # ?hpc - --disable-hltools \ - --disable-dependency-tracking \ - --enable-fortran \ - --enable-unsupported \ - --enable-hl \ - --enable-shared \ - --enable-threadsafe \ - --enable-build-mode=production \ -%if %{with mpi} - --enable-parallel \ -%endif - --enable-cxx \ -%if 0%{?use_sz2} - --with-szlib \ -%endif - --with-pthread \ - %{nil} + -DCMAKE_SKIP_INSTALL_RPATH:BOOL=ON \ + -DALLOW_UNSUPPORTED:BOOL=ON \ + -DBUILD_STATIC_LIBS:BOOL=%{?with_static:ON}%{!?with_static:OFF} \ + -DBUILD_TESTING:BOOL=ON \ + -DHDF5_INSTALL_CMAKE_DIR:PATH=%{_lib}/cmake/hdf5 \ + -DHDF5_BUILD_CPP_LIB:BOOL=ON \ + -DHDF5_BUILD_FORTRAN:BOOL=ON \ + -DHDF5_BUILD_HL_GIF_TOOLS:BOOL=OFF \ + -DHDF5_BUILD_HL_LIB:BOOL=ON \ + -DHDF5_BUILD_PARALLEL_TOOLS:BOOL=OFF \ + -DHDF5_BUILD_TOOLS:BOOL=ON \ + -DHDF5_DISABLE_TESTS_REGEX:STRING="${DISABLED_TEST_REGEX}" \ + -DHDF5_ENABLE_DEPRECATED_SYMBOLS:BOOL=ON \ + -DHDF5_ENABLE_PARALLEL:BOOL=%{?with_mpi:ON}%{!?with_mpi:OFF} \ + -DHDF5_ENABLE_SZIP_SUPPORT:BOOL=%{?with_sz2:ON}%{!?with_sz2:OFF} \ + -DHDF5_ENABLE_THREADSAFE:BOOL=ON \ + -DHDF5_USE_GNU_DIRS:BOOL=ON \ +%{nil} # Remove timestamp/buildhost/kernel version export SDE_DATE=$(date -d @${SOURCE_DATE_EPOCH} -u) @@ -694,26 +680,50 @@ -e "s/\(Configured by: \).*/\1 abuild@OBS/" \ src/libhdf5.settings -make V=1 %{?_smp_mflags} +# Not clear why we need to do this for mvapich2, +# but linking against libmpi.so.* fails otherwise +%if "%{?mpi_flavor}" == "mvapich2" +export LD_LIBRARY_PATH+=":%{my_libdir}" +%endif +%cmake_build %install %{?with_hpc:%hpc_setup} %{?with_hpc:%hpc_debug} -make install DESTDIR=%{buildroot} +%cmake_install find %{buildroot} -type f -name "*.la" -delete -print +# Incorrect path pointing to package build dir +sed -Ei "s@(Module Directory: ).*@\1%{my_incdir}/mod@" %{buildroot}%{my_libdir}/libhdf5.settings + +chmod -x HDF5Examples/C/H5FLT/tfiles/h5ex_d_*.* + +# Delete %%doc files from all possible combinations of dirs +rm -rf %{buildroot}%{_prefix}/share/COPYING \ + %{buildroot}%{my_prefix}/share/COPYING \ + %{buildroot}%{_docdir}/%{name}/ \ + %{buildroot}%{_docdir}/%{vname}/ \ + %{buildroot}%{my_prefix}/share/doc/packages/%{name}/ \ + %{buildroot}%{my_prefix}/share/doc/packages/%{vname}/ \ +%{nil} + +sed -Ei "1{s@/usr/bin/env bash@%{my_bindir}/bash@}" %{buildroot}%{my_bindir}/h5fuse + +# HACK: We need the _test.so libraries in buildroot for tests +# to succeed, but we can exclude them from file lists +cp %{__builddir}/bin/libhdf5_test*.so* %{buildroot}%{my_libdir} + %if %{without mpi} %if %{with hpc} -# copy to versioned subdir -install -m 755 -d %{buildroot}%{_prefix}/share/%{version} -install -m 755 -d %{buildroot}%{_prefix}/share/hdf5_examples -mv %{buildroot}%{_prefix}/lib/hpc/*/hdf5/*/share/hdf5_examples/* \ - %{buildroot}%{_prefix}/share/%{version}/ -mv %{buildroot}%{_prefix}/share/%{version} \ - %{buildroot}%{_prefix}/share/hdf5_examples +# Manually install examples as cmake does not do it (versioned dir) +install -m 0755 -d %{buildroot}%{_datadir}/hdf5_examples/%{version} +cp -pr HDF5Examples/* %{buildroot}%{_datadir}/hdf5_examples/%{version}/ %else +# Manually install examples as cmake does not do it (unversioned dir) +install -m 0755 -d %{buildroot}%{_datadir}/hdf5_examples +cp -pr HDF5Examples/* %{buildroot}%{_datadir}/hdf5_examples/ # rpm macro for version checking mkdir -p %{buildroot}%{_rpmconfigdir}/macros.d/ cat > %{buildroot}%{_rpmconfigdir}/macros.d/macros.hdf5 <<EOF @@ -728,8 +738,12 @@ %else # delete examples from parallel builds find %{buildroot} -type d -name "hdf5_examples" -exec rm -rf {} +; +# fix double / in pkgconfig files +sed -Ei "s@//@/@g" %{buildroot}%{my_libdir}/pkgconfig/*.pc +%fdupes %{buildroot}%{my_bindir}/ %endif +%fdupes %{buildroot}/%{my_incdir}/ %fdupes -s %{buildroot}/%{_datadir} %if %{with hpc} @@ -781,37 +795,28 @@ EOF %endif -%if %{with check} %check - %if 0%{?qemu_user_space_build} -# default timeout is 1200 seconds -export HDF5_ALARM_SECONDS=3600 - %endif - %if %{with mpi} -export HDF5_Make_Ignore=yes - %endif %{?with_hpc:%hpc_setup} - %ifarch ppc ppc64 ppc64le aarch64 - make %{?_smp_mflags} check || { echo "Ignore transient make check failures for PowerPC or aarch64. boo#1058563"; } - %else - %if "%{?mpi_flavor}" != "mpich" || ("%_arch" != "s390" && "%_arch" != "s390x") - make %{?_smp_mflags} check - %endif +%if %{with mpi} + %{?with_hpc:%hpc_setup_mpi}%{!?with_hpc:source %{my_bindir}/mpivars.sh} +%endif + +%if "%{?mpi_flavor}" != "mpich" || ("%_arch" != "s390" && "%_arch" != "s390x") + %if "%{?mpi_flavor}" == "mvapich2" + export MV2_SMP_USE_CMA=0 %endif + export LD_LIBRARY_PATH+=":%{buildroot}%{my_libdir}" + export TMPDIR=`mktemp -d -p ${PWD}` + %ctest %endif -%post -n %{libname -l _cpp -s %{sonum_CXX}} -p /sbin/ldconfig -%postun -n %{libname -l _cpp -s %{sonum_CXX}} -p /sbin/ldconfig -%post -n %{libname -l _hl_cpp -s %{sonum_HL_CXX}} -p /sbin/ldconfig -%postun -n %{libname -l _hl_cpp -s %{sonum_HL_CXX}} -p /sbin/ldconfig -%post -n %{libname -s %{sonum}} -p /sbin/ldconfig -%postun -n %{libname -s %{sonum}} -p /sbin/ldconfig -%post -n %{libname -l _hl -s %{sonum_HL}} -p /sbin/ldconfig -%postun -n %{libname -l _hl -s %{sonum_HL}} -p /sbin/ldconfig -%post -n %{libname -l _fortran -s %{sonum_F}} -p /sbin/ldconfig -%postun -n %{libname -l _fortran -s %{sonum_F}} -p /sbin/ldconfig -%post -n %{libname -l hl_fortran -s %{sonum_HL_F}} -p /sbin/ldconfig -%postun -n %{libname -l hl_fortran -s %{sonum_HL_F}} -p /sbin/ldconfig +%ldconfig_scriptlets -n %{libname -s %{sonum}} +%ldconfig_scriptlets -n %{libname -l _cpp -s %{sonum}} +%ldconfig_scriptlets -n %{libname -l _fortran -s %{sonum}} +%ldconfig_scriptlets -n %{libname -l _hl -s %{sonum}} +%ldconfig_scriptlets -n %{libname -l _hl_cpp -s %{sonum}} +%ldconfig_scriptlets -n %{libname -l _hl_fortran -s %{sonum}} +%ldconfig_scriptlets -n %{libname -l _tools -s %{sonum}} %if %{with hpc} %postun module @@ -840,9 +845,11 @@ %{my_bindir}/h5clear %{my_bindir}/h5copy %{my_bindir}/h5debug +%{my_bindir}/h5delete %{my_bindir}/h5diff %{my_bindir}/h5dump %{my_bindir}/h5format_convert +%{my_bindir}/h5fuse %{my_bindir}/h5import %{my_bindir}/h5jam %{my_bindir}/h5ls @@ -850,22 +857,21 @@ %if %{with mpi} %{my_bindir}/ph5diff %{my_bindir}/h5perf -%{my_bindir}/perf %endif %{my_bindir}/h5perf_serial -%{my_bindir}/h5redeploy %{my_bindir}/h5repack %{my_bindir}/h5repart %{my_bindir}/h5stat %{my_bindir}/h5unjam %{my_bindir}/h5watch +%{my_bindir}/mirror_server* %files -n %{libname -s %{sonum}} %doc ACKNOWLEDGMENTS README.md %mylicense COPYING ## %if %{without mpi} -%doc release_docs/HISTORY-1_10_0-1_12_0.txt +%doc release_docs/HISTORY-1_14.txt %doc release_docs/RELEASE.txt %endif %defattr(0755,root,root) @@ -873,40 +879,51 @@ %{my_libdir}/libhdf5.so.%{sonum} %{my_libdir}/libhdf5.so.%{sonum}.* -%files -n %{libname -l _hl -s %{sonum_HL}} +%files -n %{libname -l _hl -s %{sonum}} %mylicense COPYING %defattr(0755,root,root) %{?with_hpc:%hpc_dirs} -%{my_libdir}/libhdf5_hl.so.%{sonum_HL} -%{my_libdir}/libhdf5_hl.so.%{sonum_HL}.* +%{my_libdir}/libhdf5_hl.so.%{sonum} +%{my_libdir}/libhdf5_hl.so.%{sonum}.* -%files -n %{libname -l _cpp -s %{sonum_CXX}} +%files -n %{libname -l _cpp -s %{sonum}} %mylicense COPYING %defattr(0755,root,root) %{?with_hpc:%hpc_dirs} -%{my_libdir}/libhdf5_cpp.so.%{sonum_CXX} -%{my_libdir}/libhdf5_cpp.so.%{sonum_CXX}.* +%{my_libdir}/libhdf5_cpp.so.%{sonum} +%{my_libdir}/libhdf5_cpp.so.%{sonum}.* -%files -n %{libname -l _hl_cpp -s %{sonum_HL_CXX}} +%files -n %{libname -l _hl_cpp -s %{sonum}} %mylicense COPYING %defattr(0755,root,root) %{?with_hpc:%hpc_dirs} -%{my_libdir}/libhdf5_hl_cpp.so.%{sonum_HL_CXX} -%{my_libdir}/libhdf5_hl_cpp.so.%{sonum_HL_CXX}.* +%{my_libdir}/libhdf5_hl_cpp.so.%{sonum} +%{my_libdir}/libhdf5_hl_cpp.so.%{sonum}.* -%files -n %{libname -l _fortran -s %{sonum_F}} +%files -n %{libname -l _fortran -s %{sonum}} %mylicense COPYING %defattr(0755,root,root) %{?with_hpc:%hpc_dirs} -%{my_libdir}/libhdf5_fortran.so.%{sonum_F} -%{my_libdir}/libhdf5_fortran.so.%{sonum_F}.* +%{my_libdir}/libhdf5_fortran.so.%{sonum} +%{my_libdir}/libhdf5_fortran.so.%{sonum}.* +%{my_libdir}/libhdf5_f90cstub.so.%{sonum} +%{my_libdir}/libhdf5_f90cstub.so.%{sonum}.* -%files -n %{libname -l hl_fortran -s %{sonum_HL_F}} +%files -n %{libname -l _hl_fortran -s %{sonum}} %mylicense COPYING %defattr(0755,root,root) %{?with_hpc:%hpc_dirs} -%{my_libdir}/libhdf5hl_fortran.so.%{sonum_HL_F} -%{my_libdir}/libhdf5hl_fortran.so.%{sonum_HL_F}.* +%{my_libdir}/libhdf5_hl_fortran.so.%{sonum} +%{my_libdir}/libhdf5_hl_fortran.so.%{sonum}.* +%{my_libdir}/libhdf5_hl_f90cstub.so.%{sonum} +%{my_libdir}/libhdf5_hl_f90cstub.so.%{sonum}.* + +%files -n %{libname -l _tools -s %{sonum}} +%mylicense COPYING +%defattr(0755,root,root) +%{?with_hpc:%hpc_dirs} +%{my_libdir}/libhdf5_tools.so.%{sonum} +%{my_libdir}/libhdf5_tools.so.%{sonum}.* %if %{with hpc} %files module @@ -916,9 +933,10 @@ %files devel ## %{?with_hpc:%dir %{my_incdir}} -%doc release_docs/HISTORY-1_10_0-1_12_0.txt +%doc release_docs/HISTORY-1_14.txt %doc release_docs/RELEASE.txt %doc ACKNOWLEDGMENTS README.md +%doc release_docs/USING_HDF5_CMake.txt %{?with_hpc:%{hpc_pkgconfig_file -n hdf5}} %{?with_hpc:%{hpc_pkgconfig_file -N -n hdf5_hl}} %{?with_hpc:%{hpc_pkgconfig_file -N -n hdf5_fortran}} @@ -926,18 +944,29 @@ %{?with_hpc:%{hpc_pkgconfig_file -N -n hdf5_cpp}} %{?with_hpc:%{hpc_pkgconfig_file -N -n hdf5_hl_cpp}} %{my_bindir}/h5c++ -%if %{without mpi} %{my_bindir}/h5cc %{my_bindir}/h5fc -%else +%{my_bindir}/h5hlc++ +%{my_bindir}/h5hlcc +%{my_bindir}/h5hlfc +%if %{with mpi} %{my_bindir}/h5pcc %{my_bindir}/h5pfc %endif %{my_incdir}/*.h +%{my_incdir}/H5fortran_types.F90 +%{my_incdir}/H5config_f.inc +%{my_incdir}/mod/ %{my_libdir}/*.so %{my_libdir}/*.settings %{my_incdir}/*.mod +%{my_libdir}/pkgconfig/*.pc +%dir %{my_libdir}/cmake +%{my_libdir}/cmake/hdf5/ +%exclude %{my_libdir}/libhdf5_test*.so* +%if %{with static} %files devel-static %{my_libdir}/*.a +%endif ++++++ PPC64LE-Fix-long-double-handling.patch ++++++ --- /var/tmp/diff_new_pack.ztasov/_old 2025-03-24 13:28:12.185676057 +0100 +++ /var/tmp/diff_new_pack.ztasov/_new 2025-03-24 13:28:12.189676223 +0100 @@ -11,11 +11,11 @@ test/dt_arith.c | 27 +++++++++++++++++++++++++-- 2 files changed, 41 insertions(+), 2 deletions(-) -Index: hdf5-1.12.3/test/dt_arith.c +Index: hdf5-1.14.6/test/dt_arith.c =================================================================== ---- hdf5-1.12.3.orig/test/dt_arith.c -+++ hdf5-1.12.3/test/dt_arith.c -@@ -3035,7 +3035,19 @@ test_conv_flt_1(const char *name, int ru +--- hdf5-1.14.6.orig/test/dt_arith.c ++++ hdf5-1.14.6/test/dt_arith.c +@@ -3448,7 +3448,19 @@ test_conv_flt_1(const char *name, int ru #if H5_SIZEOF_LONG_DOUBLE != H5_SIZEOF_DOUBLE } else if (src_type == FLT_LDOUBLE) { @@ -35,8 +35,8 @@ + buf, saved, nelmts); #endif } - else -@@ -3735,7 +3747,18 @@ test_conv_int_fp(const char *name, int r + else if (src_type == FLT_FLOAT16) { +@@ -4215,7 +4227,18 @@ test_conv_int_fp(const char *name, int r nelmts); } else { @@ -56,10 +56,10 @@ } #endif } -Index: hdf5-1.12.3/config/cmake/ConversionTests.c +Index: hdf5-1.14.6/config/cmake/ConversionTests.c =================================================================== ---- hdf5-1.12.3.orig/config/cmake/ConversionTests.c -+++ hdf5-1.12.3/config/cmake/ConversionTests.c +--- hdf5-1.14.6.orig/config/cmake/ConversionTests.c ++++ hdf5-1.14.6/config/cmake/ConversionTests.c @@ -34,6 +34,14 @@ int HDF_NO_UBSAN main(void) unsigned char s2[8]; int ret = 1; ++++++ hdf5-1.8.10-tests-arm.patch ++++++ --- /var/tmp/diff_new_pack.ztasov/_old 2025-03-24 13:28:12.221677556 +0100 +++ /var/tmp/diff_new_pack.ztasov/_new 2025-03-24 13:28:12.225677724 +0100 @@ -1,8 +1,8 @@ -Index: hdf5-1.12.2/test/testhdf5.c +Index: hdf5-1.14.6/test/testhdf5.c =================================================================== ---- hdf5-1.12.2.orig/test/testhdf5.c -+++ hdf5-1.12.2/test/testhdf5.c -@@ -53,7 +53,6 @@ main(int argc, char *argv[]) +--- hdf5-1.14.6.orig/test/testhdf5.c ++++ hdf5-1.14.6/test/testhdf5.c +@@ -62,7 +62,6 @@ main(int argc, char *argv[]) AddTest("coords", test_coords, cleanup_coords, "Dataspace coordinates", NULL); AddTest("sohm", test_sohm, cleanup_sohm, "Shared Object Header Messages", NULL); AddTest("attr", test_attr, cleanup_attr, "Attributes", NULL); ++++++ hdf5-cmake-fix-script-paths.patch ++++++ >From 02b701653deb5eeaa6fe4462ba5c9bdd30dc778d Mon Sep 17 00:00:00 2001 From: Atri Bhattacharya <badshah...@gmail.org> Date: Tue, 11 Mar 2025 22:44:29 +0530 Subject: [PATCH 1/2] h5cc: Fix location of settings and pkgconfig files In h5cc and other compiler wrappers, drop hardcoded 'lib' as the dir for libhdf5.settings and pkgconfig scripts and use cmake computed values for HDF5_INSTALL_LIB_DIR. This fixes issues on systems where the libdir is 'lib64' for instance, as on 64-bit Linux OSes, and 'lib' in the wrappers point to incorrect locations of the settings and pkgconfig files. --- config/cmake/libh5cc.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/cmake/libh5cc.in b/config/cmake/libh5cc.in index 2608f49423a..3ac9588740b 100644 --- a/config/cmake/libh5cc.in +++ b/config/cmake/libh5cc.in @@ -32,7 +32,7 @@ pc_args="" # libhdf5.settings file residing in the lib directory. showconfigure() { - cat $dir/lib/libhdf5.settings + cat $dir/@HDF5_INSTALL_LIB_DIR@/libhdf5.settings status=$? } @@ -57,7 +57,7 @@ usage() { exit $EXIT_FAILURE } -export PKG_CONFIG_PATH=$dir/lib/pkgconfig +export PKG_CONFIG_PATH=$dir/@HDF5_INSTALL_LIB_DIR@/pkgconfig for arg in $@ ; do case "$arg" in >From b777d6f4d8df67726c7611a945f3e204513efd16 Mon Sep 17 00:00:00 2001 From: Atri Bhattacharya <badshah...@gmail.org> Date: Tue, 11 Mar 2025 22:52:17 +0530 Subject: [PATCH 2/2] h5cc: Drop -show from output when calling command. When calling `h5cc -show FOO`, the output should not repeat the '-show' argument itself. This commit fixes the '-show' command invoked from a cmake built h5cc to be consistent with an (previously) autotools built one. --- config/cmake/libh5cc.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/cmake/libh5cc.in b/config/cmake/libh5cc.in index 3ac9588740b..2af2abf0aff 100644 --- a/config/cmake/libh5cc.in +++ b/config/cmake/libh5cc.in @@ -66,7 +66,7 @@ for arg in $@ ; do exit $status ;; -show) - echo @_PKG_CONFIG_COMPILER@ $@ `pkg-config $pc_args --define-variable=prefix=$dir --cflags --libs @_PKG_CONFIG_LIBNAME@` + echo @_PKG_CONFIG_COMPILER@ ${@:2} `pkg-config $pc_args --define-variable=prefix=$dir --cflags --libs @_PKG_CONFIG_LIBNAME@` exit $status ;; -help) ++++++ hdf5.rpmlintrc ++++++ # Chill out about example dir issues as users may need these for copying and re-use addFilter("hdf5.*-examples.*: E: non-executable-script") addFilter("hdf5.*-examples.*: E: zero-length") addFilter("hdf5.*-examples.*: W: bin-sh-syntax-error") # Cannot avoid using name in summary for serial flavour addFilter("hdf5\..*: W: name-repeated-in-summary") # Something to investigate with upstream? addFilter("W: potential-bashisms") # Always with these multibuild packages! addFilter("hdf5.+\.src: E: invalid-spec-name") # HPC specific non-issues addFilter("hdf5_.*-hpc.*: E: explicit-lib-dependency") addFilter("hdf5_.*-hpc-devel.*: E: no-binary") addFilter("hdf5_.*-hpc-module.*: E: no-binary") addFilter("libhdf5.*-hpc.*: E: no-binary") addFilter("hdf5_.*-hpc-module\..*: W: hidden-file-or-dir")