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