[Shipwright] Shipwright Build using older versions of Perl modules
sunnavy
sunnavy at gmail.com
Mon Dec 16 09:58:55 EST 2013
Hi Sam
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?
Regards
sunnavy
On Dec 13, 2013, at 1:11, Wenck, Samuel <samuel.wenck at lmco.com> wrote:
> 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
>
> _______________________________________________
> Shipwright mailing list
> Shipwright at lists.bestpractical.com
> http://lists.bestpractical.com/cgi-bin/mailman/listinfo/shipwright
More information about the Shipwright
mailing list