[Bug 1179521] New: netcdf-cxx4 packages built against out-of-date version of HDF5
http://bugzilla.opensuse.org/show_bug.cgi?id=1179521 Bug ID: 1179521 Summary: netcdf-cxx4 packages built against out-of-date version of HDF5 Classification: openSUSE Product: openSUSE Tumbleweed Version: Current Hardware: Other OS: openSUSE Tumbleweed Status: NEW Severity: Normal Priority: P5 - None Component: Other Assignee: screening-team-bugs@suse.de Reporter: zed.three@gmail.com QA Contact: qa-bugs@suse.de Found By: --- Blocker: --- Building and running the following short test program results in a crash: #include <netcdf> int main() { netCDF::NcFile file("test.nc", netCDF::NcFile::replace); } compiled like g++ test_hello.cxx $(ncxx4-config --libs) $(ncxx4-config --cflags) Error text: Warning! ***HDF5 library version mismatched error*** The HDF5 header files used to compile this application do not match the version used by the HDF5 library to which this application is linked. Data corruption or segmentation faults may occur if the application continues. This can happen when an application was compiled by one version of HDF5 but linked with a different version of static or shared HDF5 library. You should recompile the application or check your shared library related settings such as 'LD_LIBRARY_PATH'. You can, at your own risk, disable this warning by setting the environment variable 'HDF5_DISABLE_VERSION_CHECK' to a value of '1'. Setting it to 2 or higher will suppress the warning messages totally. Headers are 1.10.5, library is 1.10.7 (HDF5 build configuration details omitted) Workaround is as suggested in the error message, setting HDF5_DISABLE_VERSION_CHECK=1. This doesn't seem to affect the netCDF C library, I've not checked the Fortran version though. It *does* affect the HPC variant. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1179521 http://bugzilla.opensuse.org/show_bug.cgi?id=1179521#c12 Stefan Br�ns <stefan.bruens@rwth-aachen.de> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |REOPENED CC| |stefan.bruens@rwth-aachen.d | |e Resolution|FIXED |--- --- Comment #12 from Stefan Br�ns <stefan.bruens@rwth-aachen.de> --- (In reply to Egbert Eich from comment #7)
Ok, let's consider this fixed. Thanks for reporting and checking!
Unfortunately, the added check is incorrect: rpm -E 'requires_eq libhdf5' expands to "%nil". It has to include soversion, i.e. libhdf5-103 (currently). Obviously, this does not scale ... On the other hand, HDFGroup has adjusted their versioning policy and relaxed the check: https://github.com/HDFGroup/hdf5/pull/1494/files I.e. we can now (hopefully) rely on the soversion, which should be bumped when major/minor changes, but can be kept when only the release changes. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1179521 http://bugzilla.opensuse.org/show_bug.cgi?id=1179521#c13 Benjamin Greiner <code@bnavigator.de> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|REOPENED |RESOLVED CC| |badshah400@gmail.com, | |code@bnavigator.de See Also| |https://bugzilla.opensuse.o | |rg/show_bug.cgi?id=1196682 Resolution|--- |FIXED --- Comment #13 from Benjamin Greiner <code@bnavigator.de> --- (In reply to Stefan Br�ns from comment #12)
rpm -E 'requires_eq libhdf5' expands to "%nil". It has to include soversion, i.e. libhdf5-103 (currently). Obviously, this does not scale ...
But rpm -E '%requires_eq hdf5' expands to 'Requires: hdf5 = 1.10.8'. The macro requires a proper package name. It does not work with symbolic rpm capabilities. The hdf5 package has the correct version and depends on all libraries. Your rejections are based on a wrong assumption https://build.opensuse.org/request/show/966082 https://build.opensuse.org/request/show/966084 The only disadvantage is that it also installs the command line tools. I could only see that as a valid reason for rejection in the vtk specifel, because you could want to keep a shlib package pure shlibs. https://build.opensuse.org/request/show/966086 On the other hand a more complex expression to get the correct soversion would be possible, but I am sure you won't like that either. $ rpm -E 'Requires: %(rpm -q --requires hdf5 | grep 'libhdf5-[0-9]*')' Requires: libhdf5-103 = 1.10.8
On the other hand, HDFGroup has adjusted their versioning policy and relaxed the check: https://github.com/HDFGroup/hdf5/pull/1494/files
I.e. we can now (hopefully) rely on the soversion, which should be bumped when major/minor changes, but can be kept when only the release changes.
This is not in Factory, yet. The proposed workaround works, and has worked for years. We can and should use it until https://bugzilla.opensuse.org/show_bug.cgi?id=1196014 is ready or an update for the 1.10 release is available. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1179521 http://bugzilla.opensuse.org/show_bug.cgi?id=1179521#c14 --- Comment #14 from Stefan Br�ns <stefan.bruens@rwth-aachen.de> --- (In reply to Benjamin Greiner from comment #13)
(In reply to Stefan Br�ns from comment #12)
The only disadvantage is that it also installs the command line tools.
... which means *all* libhdf* subpackages, and its transient dependencies. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1179521 http://bugzilla.opensuse.org/show_bug.cgi?id=1179521#c15 --- Comment #15 from Benjamin Greiner <code@bnavigator.de> --- https://build.opensuse.org/request/show/966185 then. Thanks for pointin to the appropriate GitHub PR. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1179521 http://bugzilla.opensuse.org/show_bug.cgi?id=1179521#c16 --- Comment #16 from Egbert Eich <eich@suse.com> --- While changing the version check in hdf5 may be the right way to go forward, the fix for this imminent problem seems to be to change: %{requires_eq libhdf5%{p_suffix}} to: %{requires_eq \--whatprovides libhdf5%{p_suffix}} (and the like for some other %requires_eq). -- You are receiving this mail because: You are on the CC list for the bug.
participants (1)
-
bugzilla_noreply@suse.com