Skip Menu |

This queue is for tickets about the Module-Build CPAN distribution.

Report information
The Basics
Id: 15056
Status: resolved
Priority: 0/
Queue: Module-Build

People
Owner: Nobody in particular
Requestors:
Cc:
AdminCc:

Bug Information
Severity: Important
Broken in: 0.2611
Fixed in: (no value)



Subject: new_from_contect() doens't honor a 'use lib' where 'perl Build.PL' does
Hi, when using the API to run the Build.PL on HTML-Mason 1.3101, it fails by not being able to load a module in the 'inc' dir. However, using the commandline tool, it succeeds: [kane@codebase2 ~...build/HTML-Mason-1.3101]$ ls ./ CREDITS MANIFEST Makefile.PL bin/ inc/ t/ ../ Changes MANIFEST.SKIP README eg/ lib/ Build.PL LICENSE META.yml UPGRADE htdocs/ samples/ [kane@codebase2 ~...build/HTML-Mason-1.3101]$ perl -MModule::Build -e'Module::Build->new_from_context'; /usr/bin/perl Build.PL Checking whether your kit is complete... Looks good * ERROR: Prerequisite Exception::Class isn't installed * ERROR: Prerequisite Class::Container isn't installed ERRORS/WARNINGS FOUND IN PREREQUISITES. You may wish to install the versions of the modules indicated above before proceeding with this installation. Creating new 'Build' script for 'HTML-Mason' version '1.3101' Failed to re-load 'Mason::Build': Can't locate Mason/Build.pm in @INC (@INC contains: _build/lib /home/kane/sources/p4/other/archive-extract/lib /home/kane/sources/p4/other/file-fetch/lib /home/kane/sources/p4/other/archive-tar-new/lib /home/kane/sources/p4/other/carp-trace/lib /home/kane/sources/p4/other/log-message/lib /home/kane/sources/p4/other/module-load/lib /home/kane/sources/p4/other/params-check/lib /home/kane/sources/p4/other/qmail-checkpassword/lib /home/kane/sources/p4/other/module-load-conditional/lib /home/kane/sources/p4/other/term-ui/lib /home/kane/sources/p4/other/ipc-cmd/lib /home/kane/sources/p4/other/config-auto/lib /home/kane/sources/p4/cpanplus/devel/lib /home/kane/sources/p4/cpanplus/cpanplus-dist-deb/lib /home/kane/sources/p4/cpanplus/cpanplus-dist-build/lib /home/kane/sources/p4/other/log-message-simple/lib /home/kane/sources/p4/other/file-alter/lib /home/kane/sources/p4/other/dbix-simple-oo/lib /home/kane/sources/p4/other/debug-subcall/lib /home/kane/sources/p4/other/devel-breakpoint/lib /etc/perl /usr/local/lib/perl/5.8.7 /usr/local/share/perl/5.8.7 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl /usr/local/lib/perl/5.8.4 /usr/local/share/perl/5.8.4 .) at (eval 18) line 1. [kane@codebase2 ~...build/HTML-Mason-1.3101]$ perl Build.PL Checking whether your kit is complete... Looks good * ERROR: Prerequisite Exception::Class isn't installed * ERROR: Prerequisite Class::Container isn't installed ERRORS/WARNINGS FOUND IN PREREQUISITES. You may wish to install the versions of the modules indicated above before proceeding with this installation. Deleting Build Removed previous script 'Build' Creating new 'Build' script for 'HTML-Mason' version '1.3101' [kane@codebase2 ~...build/HTML-Mason-1.3101]$ perl -MModule::Build -e'print Module::Build->VERSION' 0.2611 [kane@codebase2 ~...build/HTML-Mason-1.3101]$ perl -V Summary of my perl5 (revision 5 version 8 subversion 7) configuration: Platform: osname=linux, osvers=2.4.27-ti1211, archname=i486-linux-gnu-thread-multi uname='linux kosh 2.4.27-ti1211 #1 sun sep 19 18:17:45 est 2004 i686 gnulinux ' config_args='-Dusethreads -Duselargefiles -Dccflags=-DDEBIAN -Dcccdlflags=-fPIC -Darchname=i486-linux-gnu -Dprefix=/usr -Dprivlib=/usr/share/perl/5.8 -Darchlib=/usr/lib/perl/5.8 -Dvendorprefix=/usr -Dvendorlib=/usr/share/perl5 -Dvendorarch=/usr/lib/perl5 -Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl/5.8.7 -Dsitearch=/usr/local/lib/perl/5.8.7 -Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3 -Dsiteman1dir=/usr/local/man/man1 -Dsiteman3dir=/usr/local/man/man3 -Dman1ext=1 -Dman3ext=3perl -Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Uusesfio -Uusenm -Duseshrplib -Dlibperl=libperl.so.5.8.7 -Dd_dosuid -des' hint=recommended, useposix=true, d_sigaction=define usethreads=define use5005threads=undef useithreads=define usemultiplicity=define useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBIAN -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', optimize='-O2', cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBIAN -fno-strict-aliasing -pipe -I/usr/local/include' ccversion='', gccversion='4.0.1 20050701 (prerelease) (Debian 4.0.0-12)', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=4, prototype=define Linker and Libraries: ld='cc', ldflags =' -L/usr/local/lib' libpth=/usr/local/lib /lib /usr/lib libs=-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt perllibs=-ldl -lm -lpthread -lc -lcrypt libc=/lib/libc-2.3.2.so, so=so, useshrplib=true, libperl=libperl.so.5.8.7 gnulibc_version='2.3.2' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E' cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib' Characteristics of this binary (from libperl): Compile-time options: MULTIPLICITY USE_ITHREADS USE_LARGE_FILES PERL_IMPLICIT_CONTEXT Built under linux Compiled at Jul 9 2005 12:16:40 %ENV: PERL5LIB="/home/kane/sources/p4/other/archive-extract/lib:/home/kane/sources/p4/other/file-fetch/lib:/home/kane/sources/p4/other/archive-tar-new/lib:/home/kane/sources/p4/other/carp-trace/lib:/home/kane/sources/p4/other/log-message/lib:/home/kane/sources/p4/other/module-load/lib:/home/kane/sources/p4/other/params-check/lib:/home/kane/sources/p4/other/qmail-checkpassword/lib:/home/kane/sources/p4/other/module-load-conditional/lib:/home/kane/sources/p4/other/term-ui/lib:/home/kane/sources/p4/other/ipc-cmd/lib:/home/kane/sources/p4/other/config-auto/lib:/home/kane/sources/p4/cpanplus/devel/lib:/home/kane/sources/p4/cpanplus/cpanplus-dist-deb/lib:/home/kane/sources/p4/cpanplus/cpanplus-dist-build/lib:/home/kane/sources/p4/other/log-message-simple/lib:/home/kane/sources/p4/other/file-alter/lib:/home/kane/sources/p4/other/dbix-simple-oo/lib:/home/kane/sources/p4/other/debug-subcall/lib:/home/kane/sources/p4/other/devel-breakpoint/lib" @INC: /home/kane/sources/p4/other/archive-extract/lib /home/kane/sources/p4/other/file-fetch/lib /home/kane/sources/p4/other/archive-tar-new/lib /home/kane/sources/p4/other/carp-trace/lib /home/kane/sources/p4/other/log-message/lib /home/kane/sources/p4/other/module-load/lib /home/kane/sources/p4/other/params-check/lib /home/kane/sources/p4/other/qmail-checkpassword/lib /home/kane/sources/p4/other/module-load-conditional/lib /home/kane/sources/p4/other/term-ui/lib /home/kane/sources/p4/other/ipc-cmd/lib /home/kane/sources/p4/other/config-auto/lib /home/kane/sources/p4/cpanplus/devel/lib /home/kane/sources/p4/cpanplus/cpanplus-dist-deb/lib /home/kane/sources/p4/cpanplus/cpanplus-dist-build/lib /home/kane/sources/p4/other/log-message-simple/lib /home/kane/sources/p4/other/file-alter/lib /home/kane/sources/p4/other/dbix-simple-oo/lib /home/kane/sources/p4/other/debug-subcall/lib /home/kane/sources/p4/other/devel-breakpoint/lib /etc/perl /usr/local/lib/perl/5.8.7 /usr/local/share/perl/5.8.7 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl /usr/local/lib/perl/5.8.4 /usr/local/share/perl/5.8.4 .
For convenience, here's the contents of the Build.PL in question: [kane@codebase2 ~...build/HTML-Mason-1.3101]$ cat Build.PL use strict; use 5.005; use lib 'inc'; use Mason::Build; use File::Spec; my %prereq = ( 'Cache::Cache' => 1.00, 'Class::Container' => 0.07, 'CGI' => 2.46, 'Exception::Class' => 1.15, 'File::Spec' => 0.8, 'Params::Validate' => 0.70, 'Scalar::Util' => 1.01, ); eval { require mod_perl }; my $has_mod_perl_1 = $@ ? 0 : 1; if ($has_mod_perl_1) { $prereq{mod_perl} = 1.24; } eval { require mod_perl2 }; my $has_mod_perl_2 = $@ ? 0 : 1; my $has_only_mp2 = ! $has_mod_perl_1 && $has_mod_perl_2; # XXX - this really isn't right since we really want to know which # version of mod_perl they _intend_ to use with Mason, rather than # just blindly adding all these prereqs. if ($has_mod_perl_1) { $prereq{'Apache::Request'} = 1.05; # minimum for OSX } if ($has_only_mp2) { $prereq{CGI} = 3.08; $prereq{mod_perl} = 1.999022; } my $build = Mason::Build->new ( module_name => 'HTML::Mason', requires => \%prereq, build_requires => { 'Test' => 0, 'Test::Builder' => 0, }, license => 'perl', create_makefile_pl => 'passthrough', ); $build->create_build_script;
Hi Jos, sorry for the long response time. It looks like this bug has already been fixed in the 0.27_xx tree: [~/Downloads/perl/HTML-Mason-1.3101] ken% perl -MModule::Build -le 'print Module:: Build->VERSION' 0.2703 [~/Downloads/perl/HTML-Mason-1.3101] ken% perl -MModule::Build -e'Module::Build- Show quoted text
>new_from_context'
Checking whether your kit is complete... Looks good Checking prerequisites... - ERROR: Cache::Cache is not installed - ERROR: Exception::Class is not installed - ERROR: Apache::Request is not installed ERRORS/WARNINGS FOUND IN PREREQUISITES. You may wish to install the versions of the modules indicated above before proceeding with this installation Creating new 'Build' script for 'HTML-Mason' version '1.3101' [~/Downloads/perl/HTML-Mason-1.3101] ken% To make sure, I went ahead with the build & install, and it did work. -Ken