[Shipwright] Shipwright 2.4.31 and @INC

sunnavy sunnavy at bestpractical.com
Wed May 9 13:57:53 EDT 2012


On 12-05-09 10:16, David Good wrote:
> On a related note, do I need to be using perl 5.14.2 to build a vessel
> that will contain 5.14.2?  I've been using the system perl (5.8.8 on
> CentOS 5).
nope, that's not necessary.
> 
> On 5/9/2012 10:14 AM, David Good wrote:
> > No, that's the problem -- 1.4404 is installed in lib/perl5/ but it's
> > still using the version that comes with perl 5.14.2 in lib/perl5/5.14.2/:

this is weird, as Parse::CPAN::Meta 1.4403+ should be in shipyard and
installed before CPAN::Meta being built, as CPAN::Meta depends on
Parse::CPAN::Meta.

from the earlist post, your built vessel's layout is kinda out of date as it
doesn't seem to contain top directory named "as", are you sure your Shipwright
version is 2.4.31?

> >
> > [dgood at gouda-vm5 ~]$ grep VERSION `find vessel -name Meta.pm | grep Parse`
> > vessel/lib/perl5/5.14.2/Parse/CPAN/Meta.pm:    
> > $Parse::CPAN::Meta::VERSION   = '1.4401';
> > vessel/lib/perl5/5.14.2/Parse/CPAN/Meta.pm:    eval {
> > $module->VERSION($version); 1 }
> > vessel/lib/perl5/Parse/CPAN/Meta.pm:    $Parse::CPAN::Meta::VERSION   =
> > '1.4404';
> > vessel/lib/perl5/Parse/CPAN/Meta.pm:    eval {
> > $module->VERSION($version); 1 }
> >
> > Or do I need my system perl to have the 1.4404 version too?
> >
> >
> > On 5/9/2012 9:07 AM, sunnavy wrote:
> >> Seems your shipyard is a bit out of date as it has Parse::CPAN::Meta 1.4401,
> >> but CPAN::Meta require 1.4403.
> >>
> >> Recently version of Parse::CPAN::Meta is 1.4404, maybe you used an outdated
> >> CPAN mirror?
> >>
> >> Regards
> >> sunnavy
> >>
> >> On 12-05-08 13:47, David Good wrote:
> >>> Whoops -- sorry for replying directly to you last time.  I tried it
> >>> again exactly has you did below, but when it gets to CPAN::Meta it runs
> >>> into the same trouble I saw before:
> >>>
> >>> Parse::CPAN::Meta version 1.4403 required--this is only version 1.4401
> >>> at /home/dgood/shipyard/dists/cpan-CPAN-Meta/blib/lib/CPAN/Meta.pm line 13.
> >>> BEGIN failed--compilation aborted at
> >>> /home/dgood/shipyard/dists/cpan-CPAN-Meta/blib/lib/CPAN/Meta.pm line 13.
> >>>
> >>> Parse::CPAN::Meta is installed in the vessel.
> >>>
> >>> This is on a CentOS 6.2 machine.  I'll try it on a CentOS 5 server next
> >>> and see if that could be the cause somehow.
> >>>
> >>>
> >>> On 5/8/2012 12:49 PM, sunnavy wrote:
> >>>> interesting that I can't reproduce this, here is how I tried:
> >>>>
> >>>>  $ export SHIPWRIGHT_SHIPYARD=fs:/tmp/fs
> >>>>  $ shipwright create
> >>>>  $ shipwright import http://search.cpan.org/CPAN/authors/id/F/FL/FLORA/perl-5.14.2.tar.gz
> >>>>
> >>>> # manualy set build script for perl in /tmp/fs/scripts/perl/build:
> >>>>
> >>>> configure: sh Configure -de -Dprefix=%%INSTALL_BASE%%
> >>>> make: %%MAKE%%
> >>>> install: %%MAKE%% install
> >>>> clean: %%MAKE%% clean
> >>>>
> >>>>  $ shipwright import DBIx::Class Config::General cpan:Directory::Queue DateTime Email::Stuff
> >>>>  $ cd /tmp/fs
> >>>>  $ ./bin/shipwright-builder --install-base /tmp/vessel
> >>>>
> >>>> it works for me.
> >>>>
> >>>>     $ cd /tmp/vessel
> >>>>     $ find . -name ParseXS.pm
> >>>> /as/Linux/lib/perl5/5.14.2/ExtUtils/ParseXS.pm
> >>>>
> >>>>
> >>>> Regards
> >>>> sunnavy
> >>>>
> >>>> On 12-05-08 09:47, David Good wrote:
> >>>>> OK.  I created a shipyard and imported perl 5.14.2:
> >>>>>
> >>>>>   shipwright import
> >>>>> http://search.cpan.org/CPAN/authors/id/F/FL/FLORA/perl-5.14.2.tar.gz
> >>>>>
> >>>>> I then imported a bunch of CPAN modules, including DBIx::Class,
> >>>>> Config::General, DIrectory::Queue, DateTime, Email::Stuff and
> >>>>> Scalar::Util.  When I tried to build the vessel
> >>>>> (./bin/shipwright-builder --install-base /home/dgood/vessel)  I kept
> >>>>> getting errors.  I force-installed one to get it to work, but then got
> >>>>> stuck building cpan-Params-Util:
> >>>>>
> >>>>> /home/dgood/vessel/bin/perl
> >>>>> /home/dgood/vessel/lib/perl5/ExtUtils/xsubpp  -typemap
> >>>>> /home/dgood/vessel/lib/perl5/5.14.2/ExtUtils/typemap  Util.xs > Util.xsc
> >>>>> && mv Util.xsc Util.c
> >>>>> Failed to load or import from ExtUtils::ParseXS (version 2.2210). Please
> >>>>> check that ExtUtils::ParseXS is installed correctly and that the newest
> >>>>> version will be found in your @INC path: "report_error_count" is not
> >>>>> exported by the ExtUtils::ParseXS module
> >>>>> Can't continue after import errors at
> >>>>> /home/dgood/vessel/lib/perl5/ExtUtils/xsubpp line 6
> >>>>> make: *** [Util.c] Error 255
> >>>>>
> >>>>> Shipwright had already built and installed into the vessel the latest
> >>>>> version of ExtUtils::ParseXS (3.15) into lib/perl5/ExtUtils/ParseXS.pm,
> >>>>> but the vessel's perl is still using the original version that came with
> >>>>> 5.14.2, in lib/perl5/5.14.2/ExtUtils/ParseXS.pm (2.2210).  The
> >>>>> report_error_count function was added to ExtUtils::ParseXS in version 3.04:
> >>>>>
> >>>>> [dgood at gouda-vm vessel]$ find . -name ParseXS.pm
> >>>>> ./lib/perl5/ExtUtils/ParseXS.pm
> >>>>> ./lib/perl5/5.14.2/ExtUtils/ParseXS.pm
> >>>>> [dgood at gouda-vm vessel]$ grep "VERSION = '"
> >>>>> ./lib/perl5/ExtUtils/ParseXS.pm ./lib/perl5/5.14.2/ExtUtils/ParseXS.pm
> >>>>> ./lib/perl5/ExtUtils/ParseXS.pm:  $VERSION = '3.15';
> >>>>> ./lib/perl5/5.14.2/ExtUtils/ParseXS.pm:$VERSION = '2.2210';
> >>>>> [dgood at gouda-vm vessel]$ ./bin/perl -V
> >>>>> Summary of my perl5 (revision 5 version 14 subversion 2) configuration:
> >>>>>   
> >>>>>   Platform:
> >>>>>     osname=linux, osvers=2.6.32-131.0.15.el6.x86_64, archname=x86_64-linux
> >>>>>     uname='linux gouda-vm.willingminds.com 2.6.32-131.0.15.el6.x86_64 #1
> >>>>> smp sat nov 12 15:11:58 cst 2011 x86_64 x86_64 x86_64 gnulinux '
> >>>>>     config_args='-des -Dprefix=/home/dgood/vessel'
> >>>>>     hint=recommended, useposix=true, d_sigaction=define
> >>>>>     useithreads=undef, usemultiplicity=undef
> >>>>>     useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
> >>>>>     use64bitint=define, use64bitall=define, uselongdouble=undef
> >>>>>     usemymalloc=n, bincompat5005=undef
> >>>>>   Compiler:
> >>>>>     cc='cc', ccflags ='-fno-strict-aliasing -pipe -fstack-protector
> >>>>> -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
> >>>>>     optimize='-O2',
> >>>>>     cppflags='-fno-strict-aliasing -pipe -fstack-protector
> >>>>> -I/usr/local/include'
> >>>>>     ccversion='', gccversion='4.4.6 20110731 (Red Hat 4.4.6-3)',
> >>>>> gccosandvers=''
> >>>>>     intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
> >>>>>     d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
> >>>>>     ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t',
> >>>>> lseeksize=8
> >>>>>     alignbytes=8, prototype=define
> >>>>>   Linker and Libraries:
> >>>>>     ld='cc', ldflags =' -fstack-protector -L/usr/local/lib'
> >>>>>     libpth=/usr/local/lib /lib/../lib64 /usr/lib/../lib64 /lib /usr/lib
> >>>>> /lib64 /usr/lib64 /usr/local/lib64
> >>>>>     libs=-lnsl -ldl -lm -lcrypt -lutil -lc
> >>>>>     perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
> >>>>>     libc=, so=so, useshrplib=false, libperl=libperl.a
> >>>>>     gnulibc_version='2.12'
> >>>>>   Dynamic Linking:
> >>>>>     dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
> >>>>>     cccdlflags='-fPIC', lddlflags='-shared -O2 -L/usr/local/lib
> >>>>> -fstack-protector'
> >>>>>
> >>>>>
> >>>>> Characteristics of this binary (from libperl):
> >>>>>   Compile-time options: PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP
> >>>>>                         PERL_PRESERVE_IVUV USE_64_BIT_ALL USE_64_BIT_INT
> >>>>>                         USE_LARGE_FILES USE_PERLIO USE_PERL_ATOF
> >>>>>   Built under linux
> >>>>>   Compiled at May  7 2012 14:35:52
> >>>>>   @INC:
> >>>>>     /home/dgood/vessel/lib/perl5/site_perl/5.14.2/x86_64-linux
> >>>>>     /home/dgood/vessel/lib/perl5/site_perl/5.14.2
> >>>>>     /home/dgood/vessel/lib/perl5/5.14.2/x86_64-linux
> >>>>>     /home/dgood/vessel/lib/perl5/5.14.2
> >>>>>     .
> >>>>> [dgood at gouda-vm vessel]$
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> On 5/8/2012 8:55 AM, sunnavy wrote:
> >>>>>> I don't think it's the problem, Shipwright *does* add %%INSTALL_BASE%%/lib/perl5
> >>>>>> to PERL5LIB
> >>>>>>
> >>>>>> Could you tell the whole story?
> >>>>>>
> >>>>>> Regards
> >>>>>> sunnavy
> >>>>>>
> >>>>>> On 12-05-07 17:10, David Good wrote:
> >>>>>>> I've been attempting to build a vessel incorporating perl 5.14.2 and
> >>>>>>> have been having a lot of trouble getting CPAN modules I've also
> >>>>>>> included to build properly.  I think I've finally tracked down the
> >>>>>>> problem.  Shipwright is building and installing them under
> >>>>>>> %%INSTALL_BASE%%/lib/perl5 but apparently since perl 5.12.0 only the
> >>>>>>> version-specific directories are included in @INC (i.e.
> >>>>>>> %%INSTALL_BASE%%/lib/perl5/5.14.2 ).
> >>>>>>>
> >>>>>>> I'm not sure how to proceed -- should I build perl hardcoded to use the
> >>>>>>> non-versioned directories or do I need to tweak the build scripts for
> >>>>>>> all of the modules?  I'm kinda leaning towards the former since I'm not
> >>>>>>> that interested in having multiple versions of perl in my vessel :-)  Is
> >>>>>>> there a newer version of Shipwright that'll do the right thing?
> >>>>>>>
> >>>>>>> _______________________________________________
> >>>>>>> Shipwright mailing list
> >>>>>>> Shipwright at lists.bestpractical.com
> >>>>>>> http://lists.bestpractical.com/cgi-bin/mailman/listinfo/shipwright
> >>>>>> _______________________________________________
> >>>>>> Shipwright mailing list
> >>>>>> Shipwright at lists.bestpractical.com
> >>>>>> http://lists.bestpractical.com/cgi-bin/mailman/listinfo/shipwright
> >>>>>>
> >>>>>>
> >>>> _______________________________________________
> >>>> Shipwright mailing list
> >>>> Shipwright at lists.bestpractical.com
> >>>> http://lists.bestpractical.com/cgi-bin/mailman/listinfo/shipwright
> >>>>
> >>>>
> >>> _______________________________________________
> >>> Shipwright mailing list
> >>> Shipwright at lists.bestpractical.com
> >>> http://lists.bestpractical.com/cgi-bin/mailman/listinfo/shipwright
> >> _______________________________________________
> >> Shipwright mailing list
> >> Shipwright at lists.bestpractical.com
> >> http://lists.bestpractical.com/cgi-bin/mailman/listinfo/shipwright
> >>
> >>
> > _______________________________________________
> > Shipwright mailing list
> > Shipwright at lists.bestpractical.com
> > http://lists.bestpractical.com/cgi-bin/mailman/listinfo/shipwright
> >
> >
> _______________________________________________
> Shipwright mailing list
> Shipwright at lists.bestpractical.com
> http://lists.bestpractical.com/cgi-bin/mailman/listinfo/shipwright


More information about the Shipwright mailing list