Bug#896531: libsbml5-perl: Can't locate loadable object for module LibSBML

2018-05-01 Thread gregor herrmann
Control: tag -1 + patch

> thanks for spotting this.  I guess if I would add
> 
>Testsuite: autopkgtest-pkg-perl
> 
> to debian/control this would become obvious by autopkgtests immediately,
> right?

Probably, although it might be more involved due to the complex
structure of the package (but I haven't tried).

Skipping the tests during build is also not optimal but I failed to
enable them successfully.
 
> On Sun, Apr 22, 2018 at 10:28:06AM +0300, Niko Tyni wrote:
> > This package seems unusable:
> > 
> >  # perl -e 'use LibSBML'
> >  Can't locate loadable object for module LibSBML in @INC (@INC contains: 
> > /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.26.2 
> > /usr/local/share/perl/5.26.2 /usr/lib/x86_64-linux-gnu/perl5/5.26 
> > /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.26 /usr/share/perl/5.26 
> > /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base) at 
> > /usr/lib/x86_64-linux-gnu/perl5/5.26/LibSBML.pm line 11.
> >  Compilation failed in require at -e line 1.
> >  BEGIN failed--compilation aborted at -e line 1.
> 
> I admit I have no idea how to fix this.  Any help from the Debian Perl
> team?

I think I found the problem:

(In a chroot after installing libsbml5-perl:)

# perl -e 'use LibSBML'
Can't locate loadable object for module LibSBML in @INC (@INC contains: 
/etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.26.2 
/usr/local/share/perl/5.26.2 /usr/lib/x86_64-linux-gnu/perl5/5.26 
/usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.26 /usr/share/perl/5.26 
/usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base) at 
/usr/lib/x86_64-linux-gnu/perl5/5.26/LibSBML.pm line 11.
Compilation failed in require at -e line 1.
BEGIN failed--compilation aborted at -e line 1.

# mkdir -p /usr/lib/x86_64-linux-gnu/perl5/5.26/auto/LibSBML

# cp /usr/lib/x86_64-linux-gnu/perl5/5.26/auto/libSBML/LibSBML.so 
/usr/lib/x86_64-linux-gnu/perl5/5.26/auto/LibSBML/LibSBML.so

# perl -e 'use LibSBML' ; echo $?   
  
0


The directory with lower-case 'l' is created in
src/bindings/perl/CMakeLists.txt. I've now updated
debian/patches/perl-installdirs.patch to change it to (capital 'L')
LibSBML. Updated patch attached.

(Patch lightly tested, i.e. I rebuilt the package and installed it in
a chroot and run perl -e 'use LibSBML' successfully.)


Cheers,
gregor

-- 
 .''`.  https://info.comodo.priv.at -- Debian Developer https://www.debian.org
 : :' : OpenPGP fingerprint D1E1 316E 93A7 60A8 104D  85FA BB3A 6801 8649 AA06
 `. `'  Member VIBE!AT & SPI Inc. -- Supporter Free Software Foundation Europe
   `-   NP: George Harrison: I'd Have You Anytime
Author: gregor herrmann 
Last-Update: Tue, 01 May 2018 19:03:21 +0200
Description: Install Perl modules in correct dir

--- a/src/bindings/perl/Makefile.PL.in
+++ b/src/bindings/perl/Makefile.PL.in
@@ -58,7 +58,6 @@ WriteMakefile(
   NAME=> "LibSBML",
 	  PREFIX  => "@prefix@",
   MAKEFILE=> 'Makefile-perl',
-  INSTALLDIRS => "site",
   LIBS=> "@XERCES_LDFLAGS@ @EXPAT_LDFLAGS@ @LIBXML_LDFLAGS@ @XERCES_LIBS@ @EXPAT_LIBS@ @LIBXML_LIBS@ @ZLIB_LIBS@ @BZ2_LIBS@ @LIBS@ -lm",
   LDDLFLAGS   => $lddlflags,
   CC  => "@CXX@",
--- a/src/bindings/perl/CMakeLists.txt
+++ b/src/bindings/perl/CMakeLists.txt
@@ -232,8 +232,14 @@ Could not determine Perl version, please
   string(REPLACE "'" "" PERL_PLATFORM ${PERL_PLATFORM})
   string(REPLACE ";" "" PERL_PLATFORM ${PERL_PLATFORM})
   string(REPLACE "archname=" "" PERL_PLATFORM ${PERL_PLATFORM})
-  set(PERL_PACKAGE_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR}/perl5/site_perl/${PERL_VERSION}/${PERL_PLATFORM})
-  set(PERL_PACKAGE_INSTALL_BIN_DIR ${PERL_PACKAGE_INSTALL_DIR}/auto/libSBML)
+  execute_process(COMMAND "${PERL_EXECUTABLE}" -V:vendorarch
+OUTPUT_VARIABLE PERL_VENDORARCH OUTPUT_STRIP_TRAILING_WHITESPACE)
+  string(REPLACE " " "" PERL_VENDORARCH ${PERL_VENDORARCH})
+  string(REPLACE "'" "" PERL_VENDORARCH ${PERL_VENDORARCH})
+  string(REPLACE ";" "" PERL_VENDORARCH ${PERL_VENDORARCH})
+  string(REPLACE "vendorarch=/usr/lib/" "" PERL_VENDORARCH ${PERL_VENDORARCH})
+  set(PERL_PACKAGE_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR}/${PERL_VENDORARCH})
+  set(PERL_PACKAGE_INSTALL_BIN_DIR ${PERL_PACKAGE_INSTALL_DIR}/auto/LibSBML)
 else()
   set(PERL_PACKAGE_INSTALL_DIR ${MISC_PREFIX}bindings/perl)
   set(PERL_PACKAGE_INSTALL_BIN_DIR ${PERL_PACKAGE_INSTALL_DIR})


signature.asc
Description: Digital Signature


Bug#896531: libsbml5-perl: Can't locate loadable object for module LibSBML

2018-04-24 Thread Andreas Tille
Control: tags -1 help

Hi Niko,

thanks for spotting this.  I guess if I would add

   Testsuite: autopkgtest-pkg-perl

to debian/control this would become obvious by autopkgtests immediately,
right?

On Sun, Apr 22, 2018 at 10:28:06AM +0300, Niko Tyni wrote:
> This package seems unusable:
> 
>  # perl -e 'use LibSBML'
>  Can't locate loadable object for module LibSBML in @INC (@INC contains: 
> /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.26.2 
> /usr/local/share/perl/5.26.2 /usr/lib/x86_64-linux-gnu/perl5/5.26 
> /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.26 /usr/share/perl/5.26 
> /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base) at 
> /usr/lib/x86_64-linux-gnu/perl5/5.26/LibSBML.pm line 11.
>  Compilation failed in require at -e line 1.
>  BEGIN failed--compilation aborted at -e line 1.

I admit I have no idea how to fix this.  Any help from the Debian Perl
team?

Kind regards and thanks for spotting this

 Andreas.

-- 
http://fam-tille.de



Bug#896531: libsbml5-perl: Can't locate loadable object for module LibSBML

2018-04-22 Thread Niko Tyni
Package: libsbml5-perl
Version: 5.16.0+dfsg-2
Severity: grave
User: debian-p...@lists.debian.org
Usertags: use-failure

This package seems unusable:

 # perl -e 'use LibSBML'
 Can't locate loadable object for module LibSBML in @INC (@INC contains: 
/etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.26.2 
/usr/local/share/perl/5.26.2 /usr/lib/x86_64-linux-gnu/perl5/5.26 
/usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.26 /usr/share/perl/5.26 
/usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base) at 
/usr/lib/x86_64-linux-gnu/perl5/5.26/LibSBML.pm line 11.
 Compilation failed in require at -e line 1.
 BEGIN failed--compilation aborted at -e line 1.

This is also the case on stretch and jessie.
-- 
Niko Tyni   nt...@debian.org