[Shipwright] Shipwright Build using older versions of Perl modules
Wenck, Samuel
samuel.wenck at lmco.com
Thu Dec 12 12:11:54 EST 2013
Summary:
While attempting to build a shipwright vessel using version 2.4.38 of shipwright on CentOS 6.4, it appears that the builder script is referencing an older version of a Perl module instead of the updated module installed using the CPAN client.
Details:
I have successfully imported the cpan-Devel-GlobalDestruction-XS package and all of its dependencies into a file system based shipyard using this import command:
shipwright import --include-dual-lifed --min-perl-version= 5.008006 --log-file - --log-level info cpan:Devel::GlobalDestruction
When I use the following build commands from within the ship yard:
cd /opt/rt_build/rt4.2.1_vessel/shipwright/yard
./bin/shipwright-builder --flags mysql --install-base ../vessel
I receive the following error messages:
building RT
building cpan-Test-Harness
building cpan-Test
building cpan-Test-Simple
building cpan-Scalar-List-Utils
build cpan-Scalar-List-Utils make part failed, last output of build.log is:
blib/arch/auto/Test/Simple/extralibs.ld blibdirs.ts \
core.[0-9][0-9][0-9][0-9][0-9] *perl.core \
core.*perl.*.? Makefile.aperl \
perl Simple.def \
core.[0-9][0-9][0-9] mon.out \
libSimple.def perlmain.c \
perl.exe so_locations \
Simple.exp
rm -rf \
blib
mv Makefile Makefile.old > /dev/null 2>&1
Checking if your kit is complete...
Looks good
Writing Makefile for List::Util
cp lib/List/Util/XS.pm blib/lib/List/Util/XS.pm
cp lib/List/Util.pm blib/lib/List/Util.pm
cp lib/Scalar/Util.pm blib/lib/Scalar/Util.pm
/usr/bin/perl /usr/share/perl5/ExtUtils/xsubpp -typemap /usr/share/perl5/ExtUtils/typemap ListUtil.xs > ListUtil.xsc && mv ListUtil.xsc ListUtil.c
Undefined subroutine &ExtUtils::ParseXS::errors called at /usr/share/perl5/ExtUtils/xsubpp line 44.
make: *** [ListUtil.c] Error 255
at ./bin/shipwright-builder line 605
main::_install('cpan-Scalar-List-Utils', 'GLOB(0x28edc68)') called at ./bin/shipwright-builder line 435
main::install() called at ./bin/shipwright-builder line 300
The messages indicate that the build script is referencing the old version of the /usr/share/perl5/ExtUtils/xsubpp script which is part of the CentOS perl-ExtUtils-ParseXS RPM:
[root at CentOS64Dev]# rpm -ql perl-ExtUtils-ParseXS-2.2003.0-131.el6_4.x86_64
/usr/share/man/man3/ExtUtils::ParseXS.3pm.gz
/usr/share/perl5/ExtUtils/ParseXS.pm
/usr/share/perl5/ExtUtils/xsubpp
instead of using the newer version installed here by CPAN command line client:
[root at CentOS64Dev ~]# ls -alt /usr/local/share/perl5/ExtUtils/xsubpp
-r--r--r--. 1 root root 5033 Aug 29 13:29 /usr/local/share/perl5/ExtUtils/xsubpp
The scripts are very different due to newer version of the module. Here is the CPAN information about the newer module which I installed onto the build system for where I running the above commands:
cpan[1]> i ExtUtils::ParseXS
CPAN: Storable loaded ok (v2.20)
Reading '/root/.cpan/Metadata'
Database was generated on Thu, 12 Dec 2013 03:07:48 GMT
Module id = ExtUtils::ParseXS
DESCRIPTION Converts Perl XS code into C code
CPAN_USERID KWILLIAMS (Ken Williams <kwilliams at cpan.org>)
CPAN_VERSION 3.22
CPAN_FILE S/SM/SMUELLER/ExtUtils-ParseXS-3.22.tar.gz
UPLOAD_DATE 2013-08-29
DSLIP_STATUS Rdpfp (released,developer,perl,functions,Standard-Perl)
MANPAGE ExtUtils::ParseXS - converts Perl XS code into C code
INST_FILE /usr/local/share/perl5/ExtUtils/ParseXS.pm
INST_VERSION 3.22
I verified that Perl's path contains the local directory in the hierarchy before the other directory:
Characteristics of this binary (from libperl):
Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV
PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP USE_64_BIT_ALL
USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES
USE_PERLIO USE_REENTRANT_API USE_SITECUSTOMIZE
Built under linux
Compiled at Apr 30 2013 12:24:05
@INC:
/usr/local/lib64/perl5
/usr/local/share/perl5
/usr/lib64/perl5/vendor_perl
/usr/share/perl5/vendor_perl
/usr/lib64/perl5
/usr/share/perl5
I don't think I am doing anything wrong as I have built other shipwright vessels using the same commands. Is there a way to tell shipwright to use only the newer Perl modules and not ones installed by RPMs?
I would appreciate any assistance as to how I should resolve this issue.
Thanks in advance, Sam
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.bestpractical.com/pipermail/shipwright/attachments/20131212/19f01796/attachment.html>
More information about the Shipwright
mailing list