[Shipwright] EXTERNAL: Re: Shipwright Build using older versions of Perl modules
samuel.wenck at lmco.com
Mon Dec 16 10:51:27 EST 2013
I moved the ExtUtils::ParseXS module all the way to the top of the shipwright/order.yml file and now the vessel successfully builds.
Thanks for your help, Sam
From: shipwright-bounces at lists.bestpractical.com [mailto:shipwright-bounces at lists.bestpractical.com] On Behalf Of sunnavy
Sent: Monday, December 16, 2013 9:59 AM
To: shipwright at lists.bestpractical.com
Subject: EXTERNAL: Re: [Shipwright] Shipwright Build using older versions of Perl modules
Shipwright ignores local directory(except its own ones), that's the reason.
I would suggest import ExtUtils::ParseXS to Shipyard too and move it ahead of cpan-Scalar-List-Utils at least in shipwright/order.yml.
Will this work for you?
On Dec 13, 2013, at 1:11, Wenck, Samuel <samuel.wenck at lmco.com> wrote:
> 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.
> 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 \
> rm -rf \
> 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
> 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
> 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> 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 =
> 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
> 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
> Shipwright mailing list
> Shipwright at lists.bestpractical.com
Shipwright mailing list
Shipwright at lists.bestpractical.com
More information about the Shipwright