Bug 245164

Summary: graphics/vigra poudriere build fails on 12.1-stable amd64 with error: no matching function for call to 'H5Oget_info_by_name3'
Product: Ports & Packages Reporter: Robert Cina <transitive>
Component: Individual Port(s)Assignee: freebsd-ports-bugs (Nobody) <ports-bugs>
Status: Open ---    
Severity: Affects Only Me CC: felix, fernape, rhurlin
Priority: --- Keywords: needs-qa, patch
Version: Latest   
Hardware: amd64   
OS: Any   
Attachments:
Description Flags
graphics/vigra poudriere build log of compilation failure
none
Add flag to use HDF5 1.1.0 API none

Description Robert Cina 2020-03-29 14:30:55 UTC
Created attachment 212831 [details]
graphics/vigra poudriere build log of compilation failure

The port graphics/vigra fails to build for me using poudriere on my 12.1-stable amd64 system. The build log reports a compilation error of no matching function for call to 'H5Oget_info_by_name3'.

The relevant portion of the build log showing the error is shown below:

[12/23] /usr/local/libexec/ccache/c++  -DHasEXR -DHasHDF5 -DHasJPEG -DHasPNG -DHasTIFF -DHasZLIB -Dvigraimpex_EXPORTS -I/wrkdirs/usr/ports/graphics/vigra/work/vigra-8acd73a/include -isystem /usr/local/include -isystem /usr/local/include/OpenEXR -std=c++11 -pthread -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -fPIC    -DH5_BUILT_AS_DYNAMIC_LIB -std=gnu++11 -MD -MT src/impex/CMakeFiles/vigraimpex.dir/hdf5impex.cxx.o -MF src/impex/CMakeFiles/vigraimpex.dir/hdf5impex.cxx.o.d -o src/impex/CMakeFiles/vigraimpex.dir/hdf5impex.cxx.o -c /wrkdirs/usr/ports/graphics/vigra/work/vigra-8acd73a/src/impex/hdf5impex.cxx
FAILED: src/impex/CMakeFiles/vigraimpex.dir/hdf5impex.cxx.o 
/usr/local/libexec/ccache/c++  -DHasEXR -DHasHDF5 -DHasJPEG -DHasPNG -DHasTIFF -DHasZLIB -Dvigraimpex_EXPORTS -I/wrkdirs/usr/ports/graphics/vigra/work/vigra-8acd73a/include -isystem /usr/local/include -isystem /usr/local/include/OpenEXR -std=c++11 -pthread -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -fPIC    -DH5_BUILT_AS_DYNAMIC_LIB -std=gnu++11 -MD -MT src/impex/CMakeFiles/vigraimpex.dir/hdf5impex.cxx.o -MF src/impex/CMakeFiles/vigraimpex.dir/hdf5impex.cxx.o.d -o src/impex/CMakeFiles/vigraimpex.dir/hdf5impex.cxx.o -c /wrkdirs/usr/ports/graphics/vigra/work/vigra-8acd73a/src/impex/hdf5impex.cxx
/wrkdirs/usr/ports/graphics/vigra/work/vigra-8acd73a/src/impex/hdf5impex.cxx:193:5: error: no matching function for call to 'H5Oget_info_by_name3'
    H5Oget_info_by_name(loc_id, name, &infobuf, H5P_DEFAULT);
    ^~~~~~~~~~~~~~~~~~~
/usr/local/include/H5version.h:772:31: note: expanded from macro 'H5Oget_info_by_name'
  #define H5Oget_info_by_name H5Oget_info_by_name3
                              ^~~~~~~~~~~~~~~~~~~~
/usr/local/include/H5Opublic.h:188:15: note: candidate function not viable: requires 5 arguments, but 4 were provided
H5_DLL herr_t H5Oget_info_by_name3(hid_t loc_id, const char *name, H5O_info2_t *oinfo,
              ^
1 error generated.
[13/23] /usr/local/libexec/ccache/cc -DHasEXR -DHasHDF5 -DHasJPEG -DHasPNG -DHasTIFF -DHasZLIB -Dvigraimpex_EXPORTS -I/wrkdirs/usr/ports/graphics/vigra/work/vigra-8acd73a/include -isystem /usr/local/include -isystem /usr/local/include/OpenEXR -O2 -pipe  -fstack-protector-strong -fno-strict-aliasing -O2 -pipe  -fstack-protector-strong -fno-strict-aliasing -fPIC    -DH5_BUILT_AS_DYNAMIC_LIB -MD -MT src/impex/CMakeFiles/vigraimpex.dir/lz4.c.o -MF src/impex/CMakeFiles/vigraimpex.dir/lz4.c.o.d -o src/impex/CMakeFiles/vigraimpex.dir/lz4.c.o   -c /wrkdirs/usr/ports/graphics/vigra/work/vigra-8acd73a/src/impex/lz4.c
[14/23] /usr/local/libexec/ccache/c++  -DHasEXR -DHasHDF5 -DHasJPEG -DHasPNG -DHasTIFF -DHasZLIB -Dvigraimpex_EXPORTS -I/wrkdirs/usr/ports/graphics/vigra/work/vigra-8acd73a/include -isystem /usr/local/include -isystem /usr/local/include/OpenEXR -std=c++11 -pthread -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -fPIC    -DH5_BUILT_AS_DYNAMIC_LIB -std=gnu++11 -MD -MT src/impex/CMakeFiles/vigraimpex.dir/png.cxx.o -MF src/impex/CMakeFiles/vigraimpex.dir/png.cxx.o.d -o src/impex/CMakeFiles/vigraimpex.dir/png.cxx.o -c /wrkdirs/usr/ports/graphics/vigra/work/vigra-8acd73a/src/impex/png.cxx
[15/23] /usr/local/libexec/ccache/c++  -DHasEXR -DHasHDF5 -DHasJPEG -DHasPNG -DHasTIFF -DHasZLIB -Dvigraimpex_EXPORTS -I/wrkdirs/usr/ports/graphics/vigra/work/vigra-8acd73a/include -isystem /usr/local/include -isystem /usr/local/include/OpenEXR -std=c++11 -pthread -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -fPIC    -DH5_BUILT_AS_DYNAMIC_LIB -std=gnu++11 -MD -MT src/impex/CMakeFiles/vigraimpex.dir/pnm.cxx.o -MF src/impex/CMakeFiles/vigraimpex.dir/pnm.cxx.o.d -o src/impex/CMakeFiles/vigraimpex.dir/pnm.cxx.o -c /wrkdirs/usr/ports/graphics/vigra/work/vigra-8acd73a/src/impex/pnm.cxx
ninja: build stopped: subcommand failed.
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** Error code 1

Stop.
make: stopped in /usr/ports/graphics/vigra
=>> Cleaning up wrkdir
===>  Cleaning for vigra-1.11.1_7
build of graphics/vigra | vigra-1.11.1_7 ended at Sun Mar 29 10:15:04 EDT 2020
build time: 00:00:11
!!! build failure encountered !!!
Comment 1 Felix Palmen 2020-03-29 14:40:36 UTC
Created attachment 212832 [details]
Add flag to use HDF5 1.1.0 API

Try attached patch :)
Comment 2 Robert Cina 2020-03-29 14:54:58 UTC
The attached patch works. Thanks for the fix!
Comment 3 Felix Palmen 2020-03-29 15:01:05 UTC
This might affect a whole lot of other ports depending on science/hdf5 if they haven't moved to the 1.1.2 API yet.
Comment 4 Felix Palmen 2020-04-05 00:18:36 UTC
This isn't an issue any more after the rollback of hdf5 ... but I guess sooner or later, this update should be carried out, so as long as you don't assume any dependent port will move to the new API quickly, maybe this PR should stay open?