On Monday, September 10 2018, Andreas Tille wrote: > Hi Andrey, > > On Mon, Sep 10, 2018 at 07:40:45PM +0500, Andrey Rahmatullin wrote: >> > is correct behaviour and return code is 0. >> You are not running this in a minimal chroot. >> >> # pkg-config --cflags pbbam >> Package zlib was not found in the pkg-config search path. >> Perhaps you should add the directory containing `zlib.pc' >> to the PKG_CONFIG_PATH environment variable >> Package 'zlib', required by 'htslib', not found >> >> I've submitted #908501 against libhts-dev. > > Good catch. Meanwhile I've added zlib1g-dev directly to Build-Depends > of this package and it turned out that also libhdf5-dev is needed > (including an according patch for meson.build. Unfortunately there are > remaining issues related to hdf5 lib: > > ... > c++ -Iblasr@sha -I. -I.. -I../ -I/usr/include/hdf5/serial -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=c++11 -g -O2 -fdebug-prefix-map=/build/libblasr-5.3.1=. -fstack-protecto > In file included from ../hdf/HDFAtom.cpp:1: > ../hdf/HDFAtom.hpp: In member function ‘int HDFAtom<T>::Initialize(H5::H5File&, const string&, const string&)’: > ../hdf/HDFAtom.hpp:64:44: error: no matching function for call to ‘HDFGroup::Initialize(H5::H5File&, const string&)’ > group.Initialize(hdfFile, groupName); > ^ > In file included from ../hdf/HDFData.hpp:10, > from ../hdf/HDFAtom.hpp:12, > from ../hdf/HDFAtom.cpp:1: > ../hdf/HDFGroup.hpp:28:9: note: candidate: ‘int HDFGroup::Initialize(H5::Group&, std::__cxx11::string)’ > int Initialize(H5::Group& fg, std::string groupName); > ^~~~~~~~~~ > ../hdf/HDFGroup.hpp:28:9: note: no known conversion for argument 1 from ‘H5::H5File’ to ‘H5::Group&’ > ../hdf/HDFGroup.hpp:30:9: note: candidate: ‘int HDFGroup::Initialize(HDFGroup&, std::__cxx11::string)’ > int Initialize(HDFGroup& parentGroup, std::string groupName); > ^~~~~~~~~~ > ../hdf/HDFGroup.hpp:30:9: note: no known conversion for argument 1 from ‘H5::H5File’ to ‘HDFGroup&’ > ... > > Any idea how to fix this? This can't work. From the source code: class HDFGroup : public HDFAttributable { public: ... int Initialize(H5::Group& fg, std::string groupName); int Initialize(HDFGroup& parentGroup, std::string groupName); ... }; But: template <typename T> class HDFAtom : public HDFData { public: ... int Initialize(H5::H5File &hdfFile, const std::string &groupName, const std::string &attributeName) { HDFGroup group; group.Initialize(hdfFile, groupName); attribute = group.group.openAttribute(attributeName.c_str()); isInitialized = true; return 1; } ... The HDFAtom::Initialize above is calling "group.Initialize" passing an "H5::H5File&" as the first parameter, but there's no "H5Group::Initialize (H5::H5File&...)" method declared. This is a bug. The code is too cryptic for me understand what the correct solution is in this case. There are a few possibilities (creating a HDFFile first, iterating over the available groups, etc.), but I'm not sure. I'd report this upstream. Thanks, -- Sergio GPG key ID: 237A 54B1 0287 28BF 00EF 31F4 D0EB 7628 65FC 5E36 Please send encrypted e-mail if possible http://sergiodj.net/
Attachment:
signature.asc
Description: PGP signature