[Shipwright] Shipwright 2.4.31 and @INC

sunnavy sunnavy at bestpractical.com
Wed May 9 14:39:42 EDT 2012


Sorry, I missed your output of `shipwright -v`.

You can omit the "as" directory I mentioned before, as it's created only after
all dists are installed successfully.

Still, I can't reproduce this, so I don't know what went wrong.

Regards
sunnavy

On 12-05-10 02:19, sunnavy wrote:
> could you show the top layout of your vessel and also run the following
> command?
> 
>     $ shipwright --version
> 
> Regards
> sunnavy
> 
> 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).
> > 
> > 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/:
> > >
> > > [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