[Debian-med-packaging] Psortb has errors in Perl testsuite

Carnë Draug carandraug+dev at gmail.com
Wed Apr 19 14:52:30 UTC 2017


On 19 April 2017 at 15:19, Andreas Tille <tille at debian.org> wrote:
> Hi again,
>
> On Wed, Apr 19, 2017 at 12:44:06PM +0200, Andreas Tille wrote:
>> On Wed, Apr 19, 2017 at 12:37:48PM +0200, Bas Couwenberg wrote:
>> > >>"… SVMLoc.so: … undefined symbol: _ZN7DataSet12getAttributeEi at
>> > >>/usr/lib/x86_64-linux-gnu/perl/5.24/DynaLoader.pm line 187."
>> > >
>> > >Ahh, makes sense.  Hmmm, but what now.  How can I know were this symbol
>> > >comes from?  I greped the code and the linkes libs but failed.
>> >
>> > Did you run it through c++filt first to decode the symbol?
>> >
>> >  $ echo _ZN7DataSet12getAttributeEi | c++filt
>> >  DataSet::getAttribute(int)
>>
>> I did not - but also this does not ring a bell what lib might be
>> missing.
>
> I think I found the problem.  DataSet::getAttribute(int) is defined in
> bio-tools-psort-svmloc/libsvm.cpp.  While
> [...]

The filename rang a bell and seems like they are vendorising libsvm
[1].  This is confirmed on the README file inside the
bio-tools-psort-svmloc directory:

  Algorithm::SVM is based on the libsvm 2.8 library written by
  Chih-Chung Chang and Chih-Jen Lin.

Turns out that psortb is actually vendorising Algorithm::SVM [2] (they
just moved it out of the Algorithm::SVM namespace and into
Bio::Tools::PSort::SVMLoc) which in turn is vendorising libsvm.  My
understanding of Debian packaging is that such things should be
removed, packaged as separate, and made as dependencies.

Carnë

[1] https://www.csie.ntu.edu.tw/~cjlin/libsvm/
[2] https://metacpan.org/pod/Algorithm::SVM
[3] https://wiki.debian.org/UpstreamGuide#No_inclusion_of_third_party_code



More information about the Debian-med-packaging mailing list