[Debian-med-packaging] How to make meson accept that `pkg-config --cflags ` has empty result in case only /usr/include is needed
Sergio Durigan Junior
sergiodj at debian.org
Thu Sep 13 01:06:44 BST 2018
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 at 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/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 832 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/debian-med-packaging/attachments/20180912/4e750843/attachment.sig>
More information about the Debian-med-packaging
mailing list