module-build-checkins Mailing List for Module::Build (Page 26)
Status: Beta
Brought to you by:
kwilliams
You can subscribe to this list here.
| 2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(82) |
Dec
(58) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2005 |
Jan
(49) |
Feb
(57) |
Mar
(49) |
Apr
(49) |
May
(2) |
Jun
(147) |
Jul
(60) |
Aug
(55) |
Sep
(51) |
Oct
(68) |
Nov
(61) |
Dec
(44) |
| 2006 |
Jan
(27) |
Feb
(38) |
Mar
(89) |
Apr
(31) |
May
(17) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Ken W. <kwi...@us...> - 2005-06-23 00:27:56
|
Update of /cvsroot/module-build/Module-Build/lib/Module/Build In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22611/lib/Module/Build Modified Files: Base.pm Log Message: Moved the setting of various default installation paths from being scattered throughout several methods into the _set_install_paths() method, which is called at new() time. Besides cleaning up the code, this will pave the way for users to be able to change those defaults. More checkins that rearrange things a little are coming. Index: Base.pm =================================================================== RCS file: /cvsroot/module-build/Module-Build/lib/Module/Build/Base.pm,v retrieving revision 1.434 retrieving revision 1.435 diff -u -d -r1.434 -r1.435 --- Base.pm 22 Jun 2005 02:45:37 -0000 1.434 +++ Base.pm 23 Jun 2005 00:27:43 -0000 1.435 @@ -171,10 +171,14 @@ sub _set_install_paths { my $self = shift; my $c = $self->{config}; + my $p = $self->{properties}; - my @html = $c->{installhtmldir} ? (html => $c->{installhtmldir}) : (); + my @libstyle = $c->{installstyle} ? File::Spec->splitdir($c->{installstyle}) : qw(lib perl5); + my $arch = $c->{archname}; + my $version = $c->{version}; + my @html = $c->{installhtmldir} ? (html => $c->{installhtmldir}) : (); - $self->{properties}{install_sets} = + $p->{install_sets} = { core => { lib => $c->{installprivlib}, @@ -204,6 +208,53 @@ @html, }, }; + + $p->{prefix_sets} = + { + core => $c->{installprefixexp} || $c->{installprefix} || + $c->{prefixexp} || $c->{prefix} || '', + site => $c->{siteprefixexp}, + vendor => $c->{usevendorprefix} ? $c->{vendorprefixexp} : '', + }; + $p->{prefix_sets}{site} ||= $p->{prefix_sets}{core}; + + $p->{install_base_relpaths} = + { + lib => ['lib', 'perl5'], + arch => ['lib', 'perl5', $arch], + bin => ['bin'], + script => ['bin'], + bindoc => ['man', 'man1'], + libdoc => ['man', 'man3'], + }; + + $p->{prefix_relpaths} = + { + core => { + lib => [@libstyle], + arch => [@libstyle, $version, $arch], + bin => ['bin'], + script => ['bin'], + libdoc => ['man', 'man3'], + bindoc => ['man', 'man1'], + }, + vendor => { + lib => [@libstyle], + arch => [@libstyle, $version, $arch], + bin => ['bin'], + script => ['bin'], + libdoc => ['man', 'man3'], + bindoc => ['man', 'man1'], + }, + site => { + lib => [@libstyle, 'site_perl'], + arch => [@libstyle, 'site_perl', $version, $arch], + bin => ['bin'], + script => ['bin'], + libdoc => ['man', 'man3'], + bindoc => ['man', 'man1'], + }, + }; } sub _find_nested_builds { @@ -496,6 +547,9 @@ perl has_config_data install_sets + install_base_relpaths + prefix_sets + prefix_relpaths install_base destdir debugger @@ -2553,90 +2607,47 @@ } } -sub install_base_relative { - my ($self, $type) = @_; - # XXX - this won't handle additional build elements correctly - my %map = ( - lib => ['lib', 'perl5'], - arch => ['lib', 'perl5', $self->{config}{archname}], - bin => ['bin'], - script => ['bin'], - bindoc => ['man', 'man1'], - libdoc => ['man', 'man3'], - ); - return unless exists $map{$type}; - return File::Spec->catdir(@{$map{$type}}); +sub install_base_relpaths { + # Usage: install_base_relpaths('lib') or install_base_relpaths(); + my $self = shift; + my $map = $self->{properties}{install_base_relpaths}; + return $map unless @_; + + my $type = shift; + return unless exists $map->{$type}; + return File::Spec->catdir(@{$map->{$type}}); } # Translated from ExtUtils::MM_Any::init_INSTALL_from_PREFIX sub prefix_relative { my ($self, $type, $prefix) = @_; - my $c = $self->{config}; - - my $map = $self->install_sets; - my $defaults = $self->_prefix_defaults; - my $installdirs = $self->installdirs; - return unless exists $map->{$installdirs}{$type}; - my %prefixes = - ( - core => $c->{installprefixexp} || $c->{installprefix} || - $c->{prefixexp} || $c->{prefix} || '', - site => $c->{siteprefixexp}, - vendor => $c->{usevendorprefix} ? $c->{vendorprefixexp} : '', - ); - $prefixes{site} ||= $prefixes{core}; - - return $self->_prefixify($map->{$installdirs}{$type}, - $prefixes{$installdirs}, + my $map = $self->install_sets->{$installdirs}; + my $prefix_rel = $self->prefix_relpaths($installdirs, $type); + return unless exists $map->{$type}; + + return $self->_prefixify($map->{$type}, + $self->prefix_sets->{$installdirs}, $prefix, - $defaults->{$installdirs}{$type} + $prefix_rel ); } # Defaults to use in case the config install paths cannot be prefixified. -sub _prefix_defaults { +sub prefix_relpaths { + # Usage: prefix_relpaths('site', 'lib') or prefix_relpaths('site'); my $self = shift; - my $c = $self->{config}; - - my $libstyle = $c->{installstyle} || 'lib/perl5'; - my $arch = $c->{archname}; - my $version = $c->{version}; - - my %defaults = - ( - core => { - lib => $libstyle, - arch => File::Spec->catdir($libstyle, $version, $arch), - bin => 'bin', - script => 'bin', - libdoc => File::Spec->catdir('man', 'man3'), - bindoc => File::Spec->catdir('man', 'man1'), - }, - vendor => { - lib => $libstyle, - arch => File::Spec->catdir($libstyle, $version, $arch), - bin => 'bin', - script => 'bin', - libdoc => File::Spec->catdir('man', 'man3'), - bindoc => File::Spec->catdir('man', 'man1'), - }, - site => { - lib => File::Spec->catdir($libstyle, 'site_perl'), - arch => File::Spec->catdir($libstyle, 'site_perl', - $version, $arch), - bin => 'bin', - script => 'bin', - libdoc => File::Spec->catdir('man', 'man3'), - bindoc => File::Spec->catdir('man', 'man1'), - }, - ); - - return \%defaults; + my $installdirs = shift || $self->installdirs; + my $map = $self->{properties}{prefix_relpaths}{$installdirs}; + return $map unless @_; + + my $type = shift; + return unless exists $map->{$type}; + return File::Spec->catdir(@{$map->{$type}}); } @@ -2709,7 +2720,7 @@ my $p = $self->{properties}; return $p->{install_path}{$type} if exists $p->{install_path}{$type}; - return File::Spec->catdir($p->{install_base}, $self->install_base_relative($type)) if $p->{install_base}; + return File::Spec->catdir($p->{install_base}, $self->install_base_relpaths($type)) if $p->{install_base}; return $self->prefix_relative($type, $p->{prefix}) if $p->{prefix}; return $p->{install_sets}{ $p->{installdirs} }{$type}; } |
|
From: Ken W. <kwi...@us...> - 2005-06-23 00:27:56
|
Update of /cvsroot/module-build/Module-Build/t In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22611/t Modified Files: destinations.t Log Message: Moved the setting of various default installation paths from being scattered throughout several methods into the _set_install_paths() method, which is called at new() time. Besides cleaning up the code, this will pave the way for users to be able to change those defaults. More checkins that rearrange things a little are coming. Index: destinations.t =================================================================== RCS file: /cvsroot/module-build/Module-Build/t/destinations.t,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- destinations.t 21 Jun 2005 23:26:42 -0000 1.16 +++ destinations.t 23 Jun 2005 00:27:44 -0000 1.17 @@ -117,8 +117,7 @@ # the prefix. Ensure it doesn't. { # Get the prefix defaults - my $defaults = $M->_prefix_defaults; - $defaults = $defaults->{site}; + my $defaults = $M->prefix_relpaths('site'); # Create a configuration involving weird paths that are outside of # the configured prefix. |
|
From: Ken W. <kwi...@us...> - 2005-06-23 00:22:05
|
Update of /cvsroot/module-build/Module-Build In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20197 Modified Files: Changes Log Message: Index: Changes =================================================================== RCS file: /cvsroot/module-build/Module-Build/Changes,v retrieving revision 1.353 retrieving revision 1.354 diff -u -d -r1.353 -r1.354 --- Changes 18 Jun 2005 00:32:57 -0000 1.353 +++ Changes 23 Jun 2005 00:21:49 -0000 1.354 @@ -1,6 +1,6 @@ Revision history for Perl extension Module::Build. -0.27_02 (Beta for 0.28) Fri Jun 17 19:32:21 CDT 2005 +0.27_02 (Beta for 0.28) - Provided initial support for the --prefix installation parameter, which acts like MakeMaker's PREFIX. It is still highly recommended |
|
From: Ken W. <kwi...@us...> - 2005-06-22 02:45:59
|
Update of /cvsroot/module-build/Module-Build/lib/Module/Build In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13670 Modified Files: Base.pm Log Message: install_base : prefix :: install_base_relative : prefix_relative Index: Base.pm =================================================================== RCS file: /cvsroot/module-build/Module-Build/lib/Module/Build/Base.pm,v retrieving revision 1.433 retrieving revision 1.434 diff -u -d -r1.433 -r1.434 --- Base.pm 22 Jun 2005 02:39:16 -0000 1.433 +++ Base.pm 22 Jun 2005 02:45:37 -0000 1.434 @@ -2570,7 +2570,7 @@ # Translated from ExtUtils::MM_Any::init_INSTALL_from_PREFIX -sub install_prefix_relative { +sub prefix_relative { my ($self, $type, $prefix) = @_; my $c = $self->{config}; @@ -2710,7 +2710,7 @@ return $p->{install_path}{$type} if exists $p->{install_path}{$type}; return File::Spec->catdir($p->{install_base}, $self->install_base_relative($type)) if $p->{install_base}; - return $self->install_prefix_relative($type, $p->{prefix}) if $p->{prefix}; + return $self->prefix_relative($type, $p->{prefix}) if $p->{prefix}; return $p->{install_sets}{ $p->{installdirs} }{$type}; } |
|
From: Ken W. <kwi...@us...> - 2005-06-22 02:39:28
|
Update of /cvsroot/module-build/Module-Build/lib/Module/Build In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9891/lib/Module/Build Modified Files: Base.pm Log Message: Change to Ken-style indentation (cperl-style) Index: Base.pm =================================================================== RCS file: /cvsroot/module-build/Module-Build/lib/Module/Build/Base.pm,v retrieving revision 1.432 retrieving revision 1.433 diff -u -d -r1.432 -r1.433 --- Base.pm 21 Jun 2005 23:26:42 -0000 1.432 +++ Base.pm 22 Jun 2005 02:39:16 -0000 1.433 @@ -2571,137 +2571,135 @@ # Translated from ExtUtils::MM_Any::init_INSTALL_from_PREFIX sub install_prefix_relative { - my ($self, $type, $prefix) = @_; - my $c = $self->{config}; - - my $map = $self->install_sets; - my $defaults = $self->_prefix_defaults; - - - my $installdirs = $self->installdirs; - return unless exists $map->{$installdirs}{$type}; - - my %prefixes = ( - core => $c->{installprefixexp} || $c->{installprefix} || - $c->{prefixexp} || $c->{prefix} || '', - site => $c->{siteprefixexp}, - vendor => $c->{usevendorprefix} ? $c->{vendorprefixexp} : '', + my ($self, $type, $prefix) = @_; + my $c = $self->{config}; + + my $map = $self->install_sets; + my $defaults = $self->_prefix_defaults; + + + my $installdirs = $self->installdirs; + return unless exists $map->{$installdirs}{$type}; + + my %prefixes = + ( + core => $c->{installprefixexp} || $c->{installprefix} || + $c->{prefixexp} || $c->{prefix} || '', + site => $c->{siteprefixexp}, + vendor => $c->{usevendorprefix} ? $c->{vendorprefixexp} : '', ); - $prefixes{site} ||= $prefixes{core}; + $prefixes{site} ||= $prefixes{core}; - return $self->_prefixify($map->{$installdirs}{$type}, - $prefixes{$installdirs}, - $prefix, - $defaults->{$installdirs}{$type} - ); + return $self->_prefixify($map->{$installdirs}{$type}, + $prefixes{$installdirs}, + $prefix, + $defaults->{$installdirs}{$type} + ); } # Defaults to use in case the config install paths cannot be prefixified. sub _prefix_defaults { - my $self = shift; - my $c = $self->{config}; + my $self = shift; + my $c = $self->{config}; - my $libstyle = $c->{installstyle} || 'lib/perl5'; - my $arch = $c->{archname}; - my $version = $c->{version}; + my $libstyle = $c->{installstyle} || 'lib/perl5'; + my $arch = $c->{archname}; + my $version = $c->{version}; - my %defaults = ( - core => { - lib => $libstyle, - arch => File::Spec->catdir($libstyle, $version, $arch), - bin => 'bin', - script => 'bin', - libdoc => File::Spec->catdir('man', 'man3'), - bindoc => File::Spec->catdir('man', 'man1'), - }, - vendor => { - lib => $libstyle, - arch => File::Spec->catdir($libstyle, $version, $arch), - bin => 'bin', - script => 'bin', - libdoc => File::Spec->catdir('man', 'man3'), - bindoc => File::Spec->catdir('man', 'man1'), - }, - site => { - lib => File::Spec->catdir($libstyle, 'site_perl'), - arch => File::Spec->catdir($libstyle, 'site_perl', - $version, $arch), - bin => 'bin', - script => 'bin', - libdoc => File::Spec->catdir('man', 'man3'), - bindoc => File::Spec->catdir('man', 'man1'), - }, + my %defaults = + ( + core => { + lib => $libstyle, + arch => File::Spec->catdir($libstyle, $version, $arch), + bin => 'bin', + script => 'bin', + libdoc => File::Spec->catdir('man', 'man3'), + bindoc => File::Spec->catdir('man', 'man1'), + }, + vendor => { + lib => $libstyle, + arch => File::Spec->catdir($libstyle, $version, $arch), + bin => 'bin', + script => 'bin', + libdoc => File::Spec->catdir('man', 'man3'), + bindoc => File::Spec->catdir('man', 'man1'), + }, + site => { + lib => File::Spec->catdir($libstyle, 'site_perl'), + arch => File::Spec->catdir($libstyle, 'site_perl', + $version, $arch), + bin => 'bin', + script => 'bin', + libdoc => File::Spec->catdir('man', 'man3'), + bindoc => File::Spec->catdir('man', 'man1'), + }, ); - return \%defaults; + return \%defaults; } # Translated from ExtUtils::MM_Unix::prefixify() sub _prefixify { - my($self, $path, $sprefix, $rprefix, $default) = @_; - - $rprefix .= '/' if $sprefix =~ m|/$|; - - $self->log_verbose(" prefixify $path from $sprefix to $rprefix\n"); - - if( length $path == 0 ) { - $self->log_verbose(" no path to prefixify.\n") - } - elsif( !File::Spec->file_name_is_absolute($path) ) { - $self->log_verbose(" path is relative, not prefixifying.\n"); - } - elsif( $sprefix eq $rprefix ) { - $self->log_verbose(" no new prefix.\n"); - } - elsif( $path !~ s{^\Q$sprefix\E\b}{$rprefix}s ) { - $self->log_verbose(" cannot prefixify.\n"); - $path = $self->_prefixify_default($rprefix, $default); - } - - $self->log_verbose(" now $path\n"); - - return $path; + my($self, $path, $sprefix, $rprefix, $default) = @_; + + $rprefix .= '/' if $sprefix =~ m|/$|; + + $self->log_verbose(" prefixify $path from $sprefix to $rprefix\n"); + + if( length $path == 0 ) { + $self->log_verbose(" no path to prefixify.\n") + } elsif( !File::Spec->file_name_is_absolute($path) ) { + $self->log_verbose(" path is relative, not prefixifying.\n"); + } elsif( $sprefix eq $rprefix ) { + $self->log_verbose(" no new prefix.\n"); + } elsif( $path !~ s{^\Q$sprefix\E\b}{$rprefix}s ) { + $self->log_verbose(" cannot prefixify.\n"); + $path = $self->_prefixify_default($rprefix, $default); + } + + $self->log_verbose(" now $path\n"); + + return $path; } sub _prefixify_default { - my($self, $rprefix, $default) = @_; - - $self->log_verbose(" cannot prefix, trying default.\n"); - - if( !$default ) { - $self->log_verbose(" no default! Using prefix '$rprefix'.\n"); - return $rprefix; - } - if( !$rprefix ) { - $self->log_verbose(" no replacement prefix!\n"); - return; - } - - $self->log_verbose(" using default '$default'.\n"); - - return $self->_catprefix($rprefix, $default); + my($self, $rprefix, $default) = @_; + + $self->log_verbose(" cannot prefix, trying default.\n"); + + if( !$default ) { + $self->log_verbose(" no default! Using prefix '$rprefix'.\n"); + return $rprefix; + } + if( !$rprefix ) { + $self->log_verbose(" no replacement prefix!\n"); + return; + } + + $self->log_verbose(" using default '$default'.\n"); + + return $self->_catprefix($rprefix, $default); } -# From ExtUtils::MM_VMS::_catpreifx() but its actually cross platform. +# From ExtUtils::MM_VMS::_catprefix(), but it's actually cross platform. sub _catprefix { - my($self, $rprefix, $default) = @_; - - # Most file path types do not distinguish between a file and a directory - # so the "file" part here is usually part of the directory. - my($rvol, @rdirs) = File::Spec->splitpath($rprefix); - if( $rvol ) { - return File::Spec->catpath($rvol, - File::Spec->catdir(@rdirs, $default), - '' - ) - } - else { - return File::Spec->catdir(@rdirs, $default); - } + my($self, $rprefix, $default) = @_; + + # Most file path types do not distinguish between a file and a directory + # so the "file" part here is usually part of the directory. + my($rvol, @rdirs) = File::Spec->splitpath($rprefix); + if( $rvol ) { + return File::Spec->catpath($rvol, + File::Spec->catdir(@rdirs, $default), + '' + ) + } else { + return File::Spec->catdir(@rdirs, $default); + } } |
|
From: Michael G S. <sc...@us...> - 2005-06-21 23:26:51
|
Update of /cvsroot/module-build/Module-Build/t In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8800/t Modified Files: destinations.t Log Message: Nail a couple unixisms. Index: destinations.t =================================================================== RCS file: /cvsroot/module-build/Module-Build/t/destinations.t,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- destinations.t 21 Jun 2005 23:16:19 -0000 1.15 +++ destinations.t 21 Jun 2005 23:26:42 -0000 1.16 @@ -140,7 +140,8 @@ $M->{properties}{install_sets}{site}{$key} = $path; } - $M->{config}{siteprefixexp} = '/wierd/prefix'; + $M->{config}{siteprefixexp} = catdir(File::Spec->rootdir, + 'wierd', 'prefix'); my $prefix = catdir('another', 'prefix'); $M->prefix($prefix); |
|
From: Michael G S. <sc...@us...> - 2005-06-21 23:26:51
|
Update of /cvsroot/module-build/Module-Build/lib/Module/Build In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8800/lib/Module/Build Modified Files: Base.pm Log Message: Nail a couple unixisms. Index: Base.pm =================================================================== RCS file: /cvsroot/module-build/Module-Build/lib/Module/Build/Base.pm,v retrieving revision 1.431 retrieving revision 1.432 diff -u -d -r1.431 -r1.432 --- Base.pm 21 Jun 2005 23:16:18 -0000 1.431 +++ Base.pm 21 Jun 2005 23:26:42 -0000 1.432 @@ -2612,16 +2612,16 @@ arch => File::Spec->catdir($libstyle, $version, $arch), bin => 'bin', script => 'bin', - libdoc => 'man/man3', - bindoc => 'man/man1', + libdoc => File::Spec->catdir('man', 'man3'), + bindoc => File::Spec->catdir('man', 'man1'), }, vendor => { lib => $libstyle, arch => File::Spec->catdir($libstyle, $version, $arch), bin => 'bin', script => 'bin', - libdoc => 'man/man3', - bindoc => 'man/man1', + libdoc => File::Spec->catdir('man', 'man3'), + bindoc => File::Spec->catdir('man', 'man1'), }, site => { lib => File::Spec->catdir($libstyle, 'site_perl'), @@ -2629,8 +2629,8 @@ $version, $arch), bin => 'bin', script => 'bin', - libdoc => 'man/man3', - bindoc => 'man/man1', + libdoc => File::Spec->catdir('man', 'man3'), + bindoc => File::Spec->catdir('man', 'man1'), }, ); |
|
From: Michael G S. <sc...@us...> - 2005-06-21 23:16:30
|
Update of /cvsroot/module-build/Module-Build/lib/Module/Build In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4114/lib/Module/Build Modified Files: Base.pm Log Message: Add defaults for prefixification to use in case the install location is outside the config prefix. _catprefix() was busted because splitpath considers the last thing on a path to be a file in Unix. It can't distinguish between directories and files. We just assume its a directory. Throughly test prefixifcation defaults. Index: Base.pm =================================================================== RCS file: /cvsroot/module-build/Module-Build/lib/Module/Build/Base.pm,v retrieving revision 1.430 retrieving revision 1.431 diff -u -d -r1.430 -r1.431 --- Base.pm 21 Jun 2005 22:49:30 -0000 1.430 +++ Base.pm 21 Jun 2005 23:16:18 -0000 1.431 @@ -2574,7 +2574,9 @@ my ($self, $type, $prefix) = @_; my $c = $self->{config}; - my $map = $self->install_sets; + my $map = $self->install_sets; + my $defaults = $self->_prefix_defaults; + my $installdirs = $self->installdirs; return unless exists $map->{$installdirs}{$type}; @@ -2587,16 +2589,55 @@ ); $prefixes{site} ||= $prefixes{core}; - my $default; - return $self->_prefixify($map->{$installdirs}{$type}, $prefixes{$installdirs}, $prefix, - $default + $defaults->{$installdirs}{$type} ); } +# Defaults to use in case the config install paths cannot be prefixified. +sub _prefix_defaults { + my $self = shift; + my $c = $self->{config}; + + my $libstyle = $c->{installstyle} || 'lib/perl5'; + my $arch = $c->{archname}; + my $version = $c->{version}; + + my %defaults = ( + core => { + lib => $libstyle, + arch => File::Spec->catdir($libstyle, $version, $arch), + bin => 'bin', + script => 'bin', + libdoc => 'man/man3', + bindoc => 'man/man1', + }, + vendor => { + lib => $libstyle, + arch => File::Spec->catdir($libstyle, $version, $arch), + bin => 'bin', + script => 'bin', + libdoc => 'man/man3', + bindoc => 'man/man1', + }, + site => { + lib => File::Spec->catdir($libstyle, 'site_perl'), + arch => File::Spec->catdir($libstyle, 'site_perl', + $version, $arch), + bin => 'bin', + script => 'bin', + libdoc => 'man/man3', + bindoc => 'man/man1', + }, + ); + + return \%defaults; +} + + # Translated from ExtUtils::MM_Unix::prefixify() sub _prefixify { my($self, $path, $sprefix, $rprefix, $default) = @_; @@ -2649,15 +2690,17 @@ sub _catprefix { my($self, $rprefix, $default) = @_; - my($rvol, $rdirs) = File::Spec->splitpath($rprefix); + # Most file path types do not distinguish between a file and a directory + # so the "file" part here is usually part of the directory. + my($rvol, @rdirs) = File::Spec->splitpath($rprefix); if( $rvol ) { return File::Spec->catpath($rvol, - File::Spec->catdir($rdirs, $default), + File::Spec->catdir(@rdirs, $default), '' ) } else { - return File::Spec->catdir($rdirs, $default); + return File::Spec->catdir(@rdirs, $default); } } |
|
From: Michael G S. <sc...@us...> - 2005-06-21 23:16:30
|
Update of /cvsroot/module-build/Module-Build/t In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4114/t Modified Files: destinations.t Log Message: Add defaults for prefixification to use in case the install location is outside the config prefix. _catprefix() was busted because splitpath considers the last thing on a path to be a file in Unix. It can't distinguish between directories and files. We just assume its a directory. Throughly test prefixifcation defaults. Index: destinations.t =================================================================== RCS file: /cvsroot/module-build/Module-Build/t/destinations.t,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- destinations.t 21 Jun 2005 22:49:30 -0000 1.14 +++ destinations.t 21 Jun 2005 23:16:19 -0000 1.15 @@ -13,7 +13,7 @@ } -use Test::More tests => 55; +use Test::More tests => 67; use_ok 'Module::Build'; @@ -116,14 +116,24 @@ # Try a config setting which would result in installation locations outside # the prefix. Ensure it doesn't. { - my %test_config = ( - lib => '/foo/bar/lib', - arch => '/foo/bar/arch', - bin => '/wiffle/bin', - script => '/yarrow/script', - bindoc => '/this/moof/bindoc', - libdoc => '/libdoc', - ); + # Get the prefix defaults + my $defaults = $M->_prefix_defaults; + $defaults = $defaults->{site}; + + # Create a configuration involving weird paths that are outside of + # the configured prefix. + my @prefixes = ( + [qw(foo bar)], + [qw(biz)], + [], + ); + + my %test_config; + foreach my $type (keys %$defaults) { + my $prefix = shift @prefixes || [qw(foo bar)]; + $test_config{$type} = catdir(File::Spec->rootdir, @$prefix, + $defaults->{$type}); + } # Poke at the innards of MB to change the default install locations. while( my($key, $path) = each %test_config ) { |
|
From: Michael G S. <sc...@us...> - 2005-06-21 22:49:41
|
Update of /cvsroot/module-build/Module-Build/t In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22032/t Modified Files: destinations.t Log Message: Functionality: Make prefixification guard against installing outside the prefix. Add default handling to prefixifcation for such a case. Defaults not yet filled in. Use the cross-platform _catprefix() from the VMS version. Test changes: Change global $m to $M. Test that prefixification winds up with the right path under the prefix. The test is not exact but it'll hold for now. Index: destinations.t =================================================================== RCS file: /cvsroot/module-build/Module-Build/t/destinations.t,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- destinations.t 21 Jun 2005 22:11:00 -0000 1.13 +++ destinations.t 21 Jun 2005 22:49:30 -0000 1.14 @@ -3,7 +3,7 @@ use strict; use Config; -use File::Spec::Functions qw( catdir ); +use File::Spec::Functions qw( catdir splitdir ); use File::Spec; @@ -18,21 +18,25 @@ use_ok 'Module::Build'; -my $m = Module::Build->current; -isa_ok( $m, 'Module::Build::Base' ); +my $M = Module::Build->current; +isa_ok( $M, 'Module::Build::Base' ); + +my $Install_Sets = $M->install_sets; + + +# Get us into a known state. +$M->installdirs('site'); +$M->install_base(undef); +$M->prefix(undef); # Check that we install into the proper default locations. { - $m->installdirs('site'); - $m->install_base(undef); - $m->prefix(undef); - - is( $m->installdirs, 'site' ); - is( $m->install_base, undef ); - is( $m->prefix, undef ); + is( $M->installdirs, 'site' ); + is( $M->install_base, undef ); + is( $M->prefix, undef ); - test_install_destinations( $m, { + test_install_destinations( $M, { lib => $Config{installsitelib}, arch => $Config{installsitearch}, bin => $Config{installsitebin} || $Config{installbin}, @@ -46,10 +50,10 @@ # Is installdirs honored? { - $m->installdirs('core'); - is( $m->installdirs, 'core' ); + $M->installdirs('core'); + is( $M->installdirs, 'core' ); - test_install_destinations( $m, { + test_install_destinations( $M, { lib => $Config{installprivlib}, arch => $Config{installarchlib}, bin => $Config{installbin}, @@ -58,21 +62,21 @@ libdoc => $Config{installman3dir}, }); - $m->installdirs('site'); - is( $m->installdirs, 'site' ); + $M->installdirs('site'); + is( $M->installdirs, 'site' ); } # Check install_base() { my $install_base = catdir( 'foo', 'bar' ); - $m->install_base( $install_base ); + $M->install_base( $install_base ); - is( $m->prefix, undef ); - is( $m->install_base, $install_base ); + is( $M->prefix, undef ); + is( $M->install_base, $install_base ); - test_install_destinations( $m, { + test_install_destinations( $M, { lib => catdir( $install_base, 'lib', 'perl5' ), arch => catdir( $install_base, 'lib', 'perl5', $Config{archname} ), bin => catdir( $install_base, 'bin' ), @@ -85,49 +89,61 @@ # Basic prefix test. Ensure everything is under the prefix. { - $m->install_base( undef ); - ok( !defined $m->install_base ); + $M->install_base( undef ); + ok( !defined $M->install_base ); my $prefix = catdir( qw( some prefix ) ); - $m->prefix( $prefix ); - is( $m->{properties}{prefix}, $prefix ); + $M->prefix( $prefix ); + is( $M->{properties}{prefix}, $prefix ); - test_prefix($prefix); + test_prefix($prefix, $Install_Sets->{site}); } # And now that prefix honors installdirs. { - $m->installdirs('core'); - is( $m->installdirs, 'core' ); + $M->installdirs('core'); + is( $M->installdirs, 'core' ); my $prefix = catdir( qw( some prefix ) ); test_prefix($prefix); - $m->installdirs('site'); - is( $m->installdirs, 'site' ); + $M->installdirs('site'); + is( $M->installdirs, 'site' ); } # Try a config setting which would result in installation locations outside # the prefix. Ensure it doesn't. -TODO: { - local $TODO = 'prefix doesnt protect against going outside itself'; +{ + my %test_config = ( + lib => '/foo/bar/lib', + arch => '/foo/bar/arch', + bin => '/wiffle/bin', + script => '/yarrow/script', + bindoc => '/this/moof/bindoc', + libdoc => '/libdoc', + ); - $m->{config}{siteprefixexp} = '/wierd/prefix'; + # Poke at the innards of MB to change the default install locations. + while( my($key, $path) = each %test_config ) { + $M->{properties}{install_sets}{site}{$key} = $path; + } + + $M->{config}{siteprefixexp} = '/wierd/prefix'; my $prefix = catdir('another', 'prefix'); - $m->prefix($prefix); - test_prefix($prefix); + $M->prefix($prefix); + test_prefix($prefix, \%test_config); } # Check that we can use install_base after setting prefix. { my $install_base = catdir( 'foo', 'bar' ); - $m->install_base( $install_base ); + $M->install_base( $install_base ); - test_install_destinations( $m, { + test_install_destinations( $M, { lib => catdir( $install_base, 'lib', 'perl5' ), arch => catdir( $install_base, 'lib', 'perl5', $Config{archname} ), bin => catdir( $install_base, 'bin' ), @@ -139,13 +155,21 @@ sub test_prefix { - my ($prefix) = shift; + my ($prefix, $test_config) = @_; local $Test::Builder::Level = $Test::Builder::Level + 1; foreach my $type (qw(lib arch bin script bindoc libdoc)) { - my $dest = $m->install_destination( $type ); + my $dest = $M->install_destination( $type ); like( $dest, "/^\Q$prefix\E/", "$type prefixed"); + + if( $test_config ) { + my @test_dirs = splitdir( $test_config->{$type} ); + my @dest_dirs = splitdir( $dest ); + + is( $dest_dirs[-1], $test_dirs[-1], ' suffix correctish' ); + } + } } @@ -156,6 +180,6 @@ local $Test::Builder::Level = $Test::Builder::Level + 1; while( my($type, $expect) = each %$expect ) { - is( $m->install_destination($type), $expect, "$type destination" ); + is( $mb->install_destination($type), $expect, "$type destination" ); } } |
|
From: Michael G S. <sc...@us...> - 2005-06-21 22:49:41
|
Update of /cvsroot/module-build/Module-Build/lib/Module/Build In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22032/lib/Module/Build Modified Files: Base.pm Log Message: Functionality: Make prefixification guard against installing outside the prefix. Add default handling to prefixifcation for such a case. Defaults not yet filled in. Use the cross-platform _catprefix() from the VMS version. Test changes: Change global $m to $M. Test that prefixification winds up with the right path under the prefix. The test is not exact but it'll hold for now. Index: Base.pm =================================================================== RCS file: /cvsroot/module-build/Module-Build/lib/Module/Build/Base.pm,v retrieving revision 1.429 retrieving revision 1.430 diff -u -d -r1.429 -r1.430 --- Base.pm 21 Jun 2005 00:12:54 -0000 1.429 +++ Base.pm 21 Jun 2005 22:49:30 -0000 1.430 @@ -2587,13 +2587,19 @@ ); $prefixes{site} ||= $prefixes{core}; - return $self->prefixify($map->{$installdirs}{$type}, $prefixes{$installdirs}, $prefix); + my $default; + + return $self->_prefixify($map->{$installdirs}{$type}, + $prefixes{$installdirs}, + $prefix, + $default + ); } # Translated from ExtUtils::MM_Unix::prefixify() -sub prefixify { - my($self, $path, $sprefix, $rprefix) = @_; +sub _prefixify { + my($self, $path, $sprefix, $rprefix, $default) = @_; $rprefix .= '/' if $sprefix =~ m|/$|; @@ -2610,6 +2616,7 @@ } elsif( $path !~ s{^\Q$sprefix\E\b}{$rprefix}s ) { $self->log_verbose(" cannot prefixify.\n"); + $path = $self->_prefixify_default($rprefix, $default); } $self->log_verbose(" now $path\n"); @@ -2618,6 +2625,44 @@ } +sub _prefixify_default { + my($self, $rprefix, $default) = @_; + + $self->log_verbose(" cannot prefix, trying default.\n"); + + if( !$default ) { + $self->log_verbose(" no default! Using prefix '$rprefix'.\n"); + return $rprefix; + } + if( !$rprefix ) { + $self->log_verbose(" no replacement prefix!\n"); + return; + } + + $self->log_verbose(" using default '$default'.\n"); + + return $self->_catprefix($rprefix, $default); +} + + +# From ExtUtils::MM_VMS::_catpreifx() but its actually cross platform. +sub _catprefix { + my($self, $rprefix, $default) = @_; + + my($rvol, $rdirs) = File::Spec->splitpath($rprefix); + if( $rvol ) { + return File::Spec->catpath($rvol, + File::Spec->catdir($rdirs, $default), + '' + ) + } + else { + return File::Spec->catdir($rdirs, $default); + } +} + + + sub install_destination { my ($self, $type) = @_; my $p = $self->{properties}; |
|
From: Michael G S. <sc...@us...> - 2005-06-21 22:49:41
|
Update of /cvsroot/module-build/Module-Build/lib/Module/Build/Platform In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22032/lib/Module/Build/Platform Modified Files: VMS.pm Log Message: Functionality: Make prefixification guard against installing outside the prefix. Add default handling to prefixifcation for such a case. Defaults not yet filled in. Use the cross-platform _catprefix() from the VMS version. Test changes: Change global $m to $M. Test that prefixification winds up with the right path under the prefix. The test is not exact but it'll hold for now. Index: VMS.pm =================================================================== RCS file: /cvsroot/module-build/Module-Build/lib/Module/Build/Platform/VMS.pm,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- VMS.pm 7 Jun 2005 03:34:07 -0000 1.7 +++ VMS.pm 21 Jun 2005 22:49:30 -0000 1.8 @@ -105,6 +105,10 @@ $path_dirs =~ s{^\[}{\[.} unless $path_dirs =~ m{^\[\.}; $path = $self->_catprefix($rprefix, $path_dirs); } + else { + $self->log_verbose(" cannot prefixify.\n"); + $path = $self->_prefixify_default($rprefix, $default); + } } $self->log_verbose(" now $path\n"); @@ -113,23 +117,6 @@ } -# From ExtUtils::MM_VMS::_catpreifx() -sub _catprefix { - my($self, $rprefix, $default) = @_; - - my($rvol, $rdirs) = File::Spec->splitpath($rprefix); - if( $rvol ) { - return File::Spec->catpath($rvol, - File::Spec->catdir($rdirs, $default), - '' - ) - } - else { - return File::Spec->catdir($rdirs, $default); - } -} - - =back =head1 AUTHOR |
|
From: Michael G S. <sc...@us...> - 2005-06-21 22:11:12
|
Update of /cvsroot/module-build/Module-Build/t In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3031/t Modified Files: destinations.t Log Message: Break the tests up into logical block to provide some encapsulation. Index: destinations.t =================================================================== RCS file: /cvsroot/module-build/Module-Build/t/destinations.t,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- destinations.t 21 Jun 2005 22:08:13 -0000 1.12 +++ destinations.t 21 Jun 2005 22:11:00 -0000 1.13 @@ -23,15 +23,16 @@ # Check that we install into the proper default locations. -$m->installdirs('site'); -$m->install_base(undef); -$m->prefix(undef); +{ + $m->installdirs('site'); + $m->install_base(undef); + $m->prefix(undef); -is( $m->installdirs, 'site' ); -is( $m->install_base, undef ); -is( $m->prefix, undef ); + is( $m->installdirs, 'site' ); + is( $m->install_base, undef ); + is( $m->prefix, undef ); -test_install_destinations( $m, { + test_install_destinations( $m, { lib => $Config{installsitelib}, arch => $Config{installsitearch}, bin => $Config{installsitebin} || $Config{installbin}, @@ -39,65 +40,73 @@ $Config{installscript}, bindoc => $Config{installsiteman1dir} || $Config{installman1dir}, libdoc => $Config{installsiteman3dir} || $Config{installman3dir} -}); + }); +} # Is installdirs honored? -$m->installdirs('core'); -is( $m->installdirs, 'core' ); +{ + $m->installdirs('core'); + is( $m->installdirs, 'core' ); -test_install_destinations( $m, { + test_install_destinations( $m, { lib => $Config{installprivlib}, arch => $Config{installarchlib}, bin => $Config{installbin}, script => $Config{installscript} || $Config{installbin}, bindoc => $Config{installman1dir}, libdoc => $Config{installman3dir}, -}); - + }); -$m->installdirs('site'); -is( $m->installdirs, 'site' ); + $m->installdirs('site'); + is( $m->installdirs, 'site' ); +} # Check install_base() -my $install_base = catdir( 'foo', 'bar' ); -$m->install_base( $install_base ); +{ + my $install_base = catdir( 'foo', 'bar' ); + $m->install_base( $install_base ); -is( $m->prefix, undef ); -is( $m->install_base, $install_base ); + is( $m->prefix, undef ); + is( $m->install_base, $install_base ); -test_install_destinations( $m, { + test_install_destinations( $m, { lib => catdir( $install_base, 'lib', 'perl5' ), arch => catdir( $install_base, 'lib', 'perl5', $Config{archname} ), bin => catdir( $install_base, 'bin' ), script => catdir( $install_base, 'bin' ), bindoc => catdir( $install_base, 'man', 'man1'), libdoc => catdir( $install_base, 'man', 'man3' ), -}); - - -$m->install_base( undef ); -ok( !defined $m->install_base ); + }); +} # Basic prefix test. Ensure everything is under the prefix. -my $prefix = catdir( qw( some prefix ) ); -$m->prefix( $prefix ); -is( $m->{properties}{prefix}, $prefix ); +{ + $m->install_base( undef ); + ok( !defined $m->install_base ); -test_prefix($prefix); + my $prefix = catdir( qw( some prefix ) ); + $m->prefix( $prefix ); + is( $m->{properties}{prefix}, $prefix ); + + test_prefix($prefix); +} # And now that prefix honors installdirs. -$m->installdirs('core'); -is( $m->installdirs, 'core' ); +{ + $m->installdirs('core'); + is( $m->installdirs, 'core' ); -test_prefix($prefix); + my $prefix = catdir( qw( some prefix ) ); + test_prefix($prefix); -$m->installdirs('site'); -is( $m->installdirs, 'site' ); + $m->installdirs('site'); + is( $m->installdirs, 'site' ); +} # Try a config setting which would result in installation locations outside @@ -107,23 +116,26 @@ $m->{config}{siteprefixexp} = '/wierd/prefix'; - $prefix = catdir('another', 'prefix'); + my $prefix = catdir('another', 'prefix'); $m->prefix($prefix); test_prefix($prefix); } # Check that we can use install_base after setting prefix. -$m->install_base( $install_base ); +{ + my $install_base = catdir( 'foo', 'bar' ); + $m->install_base( $install_base ); -test_install_destinations( $m, { + test_install_destinations( $m, { lib => catdir( $install_base, 'lib', 'perl5' ), arch => catdir( $install_base, 'lib', 'perl5', $Config{archname} ), bin => catdir( $install_base, 'bin' ), script => catdir( $install_base, 'bin' ), bindoc => catdir( $install_base, 'man', 'man1'), libdoc => catdir( $install_base, 'man', 'man3' ), -}); + }); +} sub test_prefix { |
|
From: Michael G S. <sc...@us...> - 2005-06-21 22:08:24
|
Update of /cvsroot/module-build/Module-Build/t In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1555/t Modified Files: destinations.t Log Message: Add tests to make sure prefixification does not go outside the prefix. This is currently broken and the tests are TODO. Added better names to the test subroutines. Index: destinations.t =================================================================== RCS file: /cvsroot/module-build/Module-Build/t/destinations.t,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- destinations.t 21 Jun 2005 00:03:15 -0000 1.11 +++ destinations.t 21 Jun 2005 22:08:13 -0000 1.12 @@ -13,7 +13,7 @@ } -use Test::More tests => 49; +use Test::More tests => 55; use_ok 'Module::Build'; @@ -100,6 +100,19 @@ is( $m->installdirs, 'site' ); +# Try a config setting which would result in installation locations outside +# the prefix. Ensure it doesn't. +TODO: { + local $TODO = 'prefix doesnt protect against going outside itself'; + + $m->{config}{siteprefixexp} = '/wierd/prefix'; + + $prefix = catdir('another', 'prefix'); + $m->prefix($prefix); + test_prefix($prefix); +} + + # Check that we can use install_base after setting prefix. $m->install_base( $install_base ); @@ -120,7 +133,7 @@ foreach my $type (qw(lib arch bin script bindoc libdoc)) { my $dest = $m->install_destination( $type ); - like( $dest, "/^\Q$prefix\E/"); + like( $dest, "/^\Q$prefix\E/", "$type prefixed"); } } @@ -131,6 +144,6 @@ local $Test::Builder::Level = $Test::Builder::Level + 1; while( my($type, $expect) = each %$expect ) { - is( $m->install_destination($type), $expect, $type ); + is( $m->install_destination($type), $expect, "$type destination" ); } } |
|
From: Michael G S. <sc...@us...> - 2005-06-21 00:13:07
|
Update of /cvsroot/module-build/Module-Build/lib/Module/Build In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9141/lib/Module/Build Modified Files: Base.pm Log Message: installdirs() is quietly read-only. There's no reason it shouldn't be read/write and if its read-only it makes testing MB hard. So this makes it read/write and that clears up the failures in destinations.t. Index: Base.pm =================================================================== RCS file: /cvsroot/module-build/Module-Build/lib/Module/Build/Base.pm,v retrieving revision 1.428 retrieving revision 1.429 diff -u -d -r1.428 -r1.429 --- Base.pm 19 Jun 2005 13:55:23 -0000 1.428 +++ Base.pm 21 Jun 2005 00:12:54 -0000 1.429 @@ -258,7 +258,6 @@ } sub base_dir { shift()->{properties}{base_dir} } -sub installdirs { shift()->{properties}{installdirs} } sub _is_interactive { return -t STDIN && (-t STDOUT || !(-f STDOUT || -c STDOUT)) ; # Pipe? |
|
From: Michael G S. <sc...@us...> - 2005-06-21 00:03:23
|
Update of /cvsroot/module-build/Module-Build/t In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4664/t Modified Files: destinations.t Log Message: This test exposes that installdirs() silently throws away your settings. Index: destinations.t =================================================================== RCS file: /cvsroot/module-build/Module-Build/t/destinations.t,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- destinations.t 20 Jun 2005 23:54:40 -0000 1.10 +++ destinations.t 21 Jun 2005 00:03:15 -0000 1.11 @@ -13,7 +13,7 @@ } -use Test::More tests => 44; +use Test::More tests => 49; use_ok 'Module::Build'; @@ -27,6 +27,7 @@ $m->install_base(undef); $m->prefix(undef); +is( $m->installdirs, 'site' ); is( $m->install_base, undef ); is( $m->prefix, undef ); @@ -43,6 +44,7 @@ # Is installdirs honored? $m->installdirs('core'); +is( $m->installdirs, 'core' ); test_install_destinations( $m, { lib => $Config{installprivlib}, @@ -55,6 +57,7 @@ $m->installdirs('site'); +is( $m->installdirs, 'site' ); # Check install_base() @@ -89,10 +92,12 @@ # And now that prefix honors installdirs. $m->installdirs('core'); +is( $m->installdirs, 'core' ); test_prefix($prefix); $m->installdirs('site'); +is( $m->installdirs, 'site' ); # Check that we can use install_base after setting prefix. |
|
From: Michael G S. <sc...@us...> - 2005-06-20 23:54:48
|
Update of /cvsroot/module-build/Module-Build/t In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32017/t Modified Files: destinations.t Log Message: Test that installdirs('core') is honored with install_base() and prefix(). ***lib and arch fail this test***, they continue to use the site dirs. Better comment the various testing phases. Let the tests report the right line from which the test was run. Index: destinations.t =================================================================== RCS file: /cvsroot/module-build/Module-Build/t/destinations.t,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- destinations.t 20 Jun 2005 23:24:42 -0000 1.9 +++ destinations.t 20 Jun 2005 23:54:40 -0000 1.10 @@ -13,7 +13,7 @@ } -use Test::More tests => 32; +use Test::More tests => 44; use_ok 'Module::Build'; @@ -21,10 +21,9 @@ my $m = Module::Build->current; isa_ok( $m, 'Module::Build::Base' ); -$m->installdirs('site'); # Check that we install into the proper default locations. - +$m->installdirs('site'); $m->install_base(undef); $m->prefix(undef); @@ -40,8 +39,25 @@ bindoc => $Config{installsiteman1dir} || $Config{installman1dir}, libdoc => $Config{installsiteman3dir} || $Config{installman3dir} }); - + +# Is installdirs honored? +$m->installdirs('core'); + +test_install_destinations( $m, { + lib => $Config{installprivlib}, + arch => $Config{installarchlib}, + bin => $Config{installbin}, + script => $Config{installscript} || $Config{installbin}, + bindoc => $Config{installman1dir}, + libdoc => $Config{installman3dir}, +}); + + +$m->installdirs('site'); + + +# Check install_base() my $install_base = catdir( 'foo', 'bar' ); $m->install_base( $install_base ); @@ -63,6 +79,7 @@ ok( !defined $m->install_base ); +# Basic prefix test. Ensure everything is under the prefix. my $prefix = catdir( qw( some prefix ) ); $m->prefix( $prefix ); is( $m->{properties}{prefix}, $prefix ); @@ -70,7 +87,15 @@ test_prefix($prefix); -# Check that we can return to normality after setting prefix. +# And now that prefix honors installdirs. +$m->installdirs('core'); + +test_prefix($prefix); + +$m->installdirs('site'); + + +# Check that we can use install_base after setting prefix. $m->install_base( $install_base ); test_install_destinations( $m, { @@ -86,6 +111,8 @@ sub test_prefix { my ($prefix) = shift; + local $Test::Builder::Level = $Test::Builder::Level + 1; + foreach my $type (qw(lib arch bin script bindoc libdoc)) { my $dest = $m->install_destination( $type ); like( $dest, "/^\Q$prefix\E/"); @@ -96,6 +123,8 @@ sub test_install_destinations { my($mb, $expect) = @_; + local $Test::Builder::Level = $Test::Builder::Level + 1; + while( my($type, $expect) = each %$expect ) { is( $m->install_destination($type), $expect, $type ); } |
|
From: Michael G S. <sc...@us...> - 2005-06-20 23:25:28
|
Update of /cvsroot/module-build/Module-Build/t In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15964/t Modified Files: destinations.t Log Message: Refactor test_install_destination() to test_install_destinations() to reflect that it tests a bunch of destinations, not just one. Index: destinations.t =================================================================== RCS file: /cvsroot/module-build/Module-Build/t/destinations.t,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- destinations.t 20 Jun 2005 23:24:00 -0000 1.8 +++ destinations.t 20 Jun 2005 23:24:42 -0000 1.9 @@ -31,7 +31,7 @@ is( $m->install_base, undef ); is( $m->prefix, undef ); -test_install_destination( $m, { +test_install_destinations( $m, { lib => $Config{installsitelib}, arch => $Config{installsitearch}, bin => $Config{installsitebin} || $Config{installbin}, @@ -49,7 +49,7 @@ is( $m->install_base, $install_base ); -test_install_destination( $m, { +test_install_destinations( $m, { lib => catdir( $install_base, 'lib', 'perl5' ), arch => catdir( $install_base, 'lib', 'perl5', $Config{archname} ), bin => catdir( $install_base, 'bin' ), @@ -73,7 +73,7 @@ # Check that we can return to normality after setting prefix. $m->install_base( $install_base ); -test_install_destination( $m, { +test_install_destinations( $m, { lib => catdir( $install_base, 'lib', 'perl5' ), arch => catdir( $install_base, 'lib', 'perl5', $Config{archname} ), bin => catdir( $install_base, 'bin' ), @@ -93,7 +93,7 @@ } -sub test_install_destination { +sub test_install_destinations { my($mb, $expect) = @_; while( my($type, $expect) = each %$expect ) { |
|
From: Michael G S. <sc...@us...> - 2005-06-20 23:24:12
|
Update of /cvsroot/module-build/Module-Build/t In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15779/t Modified Files: destinations.t Log Message: Eliminate unused code trying to figure out the system prefix. Change install_destinations test to use test_intall_destination() Index: destinations.t =================================================================== RCS file: /cvsroot/module-build/Module-Build/t/destinations.t,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- destinations.t 20 Jun 2005 23:21:40 -0000 1.7 +++ destinations.t 20 Jun 2005 23:24:00 -0000 1.8 @@ -62,35 +62,26 @@ $m->install_base( undef ); ok( !defined $m->install_base ); -##### Adaptation START -# Adapted from ExtUtils::MakeMaker::MM_Any::init_INSTALL_from_PREFIX() - -my $core_prefix = $Config{installprefixexp} || $Config{installprefix} || - $Config{prefixexp} || $Config{prefix} || ''; -my $vend_prefix = $Config{usevendorprefix} ? $Config{vendorprefixexp} : ''; -my $site_prefix = $Config{siteprefixexp} || $core_prefix; - -my $libstyle = $Config{installstyle} || 'lib/perl5'; -my $manstyle = $libstyle eq 'lib/perl5' ? $libstyle : ''; - -##### Adaptation END my $prefix = catdir( qw( some prefix ) ); $m->prefix( $prefix ); is( $m->{properties}{prefix}, $prefix ); -my $c = \%Config; - test_prefix($prefix); + +# Check that we can return to normality after setting prefix. $m->install_base( $install_base ); -is( $m->install_destination( 'lib' ), catdir( $install_base, 'lib', 'perl5' ) ); -is( $m->install_destination( 'arch' ), catdir( $install_base, 'lib', 'perl5', $Config{archname} ) ); -is( $m->install_destination( 'bin' ), catdir( $install_base, 'bin' ) ); -is( $m->install_destination( 'script' ), catdir( $install_base, 'bin' ) ); -is( $m->install_destination( 'bindoc' ), catdir( $install_base, 'man', 'man1') ); -is( $m->install_destination( 'libdoc' ), catdir( $install_base, 'man', 'man3' ) ); +test_install_destination( $m, { + lib => catdir( $install_base, 'lib', 'perl5' ), + arch => catdir( $install_base, 'lib', 'perl5', $Config{archname} ), + bin => catdir( $install_base, 'bin' ), + script => catdir( $install_base, 'bin' ), + bindoc => catdir( $install_base, 'man', 'man1'), + libdoc => catdir( $install_base, 'man', 'man3' ), +}); + sub test_prefix { my ($prefix) = shift; |
|
From: Michael G S. <sc...@us...> - 2005-06-20 23:21:49
|
Update of /cvsroot/module-build/Module-Build/t In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14563/t Modified Files: destinations.t Log Message: Convert repeatative tests into functions so we can test more combinations easier. Index: destinations.t =================================================================== RCS file: /cvsroot/module-build/Module-Build/t/destinations.t,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- destinations.t 20 Jun 2005 22:57:19 -0000 1.6 +++ destinations.t 20 Jun 2005 23:21:40 -0000 1.7 @@ -13,7 +13,7 @@ } -use Test::More tests => 31; +use Test::More tests => 32; use_ok 'Module::Build'; @@ -21,29 +21,43 @@ my $m = Module::Build->current; isa_ok( $m, 'Module::Build::Base' ); -ok( !defined $m->install_base ); -ok( !defined $m->prefix ); +$m->installdirs('site'); -# Do default tests here +# Check that we install into the proper default locations. -is( $m->install_destination( 'lib' ), $Config{ installsitelib } ); -is( $m->install_destination( 'arch' ), $Config{ installsitearch } ); -is( $m->install_destination( 'bin' ), $Config{ installsitebin } || $Config{ installbin } ); -is( $m->install_destination( 'script' ), $Config{ installsitescript } || $Config{ installsitebin } || $Config{ installscript } ); -is( $m->install_destination( 'bindoc' ), $Config{ installsiteman1dir } || $Config{ installman1dir } ); -is( $m->install_destination( 'libdoc' ), $Config{ installsiteman3dir } || $Config{ installman3dir } ); +$m->install_base(undef); +$m->prefix(undef); -my $install_base = catdir( 'foo', 'bar' ); +is( $m->install_base, undef ); +is( $m->prefix, undef ); + +test_install_destination( $m, { + lib => $Config{installsitelib}, + arch => $Config{installsitearch}, + bin => $Config{installsitebin} || $Config{installbin}, + script => $Config{installsitescript} || $Config{installsitebin} || + $Config{installscript}, + bindoc => $Config{installsiteman1dir} || $Config{installman1dir}, + libdoc => $Config{installsiteman3dir} || $Config{installman3dir} +}); + +my $install_base = catdir( 'foo', 'bar' ); $m->install_base( $install_base ); -ok( !defined $m->prefix ); -is( $m->install_destination( 'lib' ), catdir( $install_base, 'lib', 'perl5' ) ); -is( $m->install_destination( 'arch' ), catdir( $install_base, 'lib', 'perl5', $Config{archname} ) ); -is( $m->install_destination( 'bin' ), catdir( $install_base, 'bin' ) ); -is( $m->install_destination( 'script' ), catdir( $install_base, 'bin' ) ); -is( $m->install_destination( 'bindoc' ), catdir( $install_base, 'man', 'man1') ); -is( $m->install_destination( 'libdoc' ), catdir( $install_base, 'man', 'man3' ) ); +is( $m->prefix, undef ); +is( $m->install_base, $install_base ); + + +test_install_destination( $m, { + lib => catdir( $install_base, 'lib', 'perl5' ), + arch => catdir( $install_base, 'lib', 'perl5', $Config{archname} ), + bin => catdir( $install_base, 'bin' ), + script => catdir( $install_base, 'bin' ), + bindoc => catdir( $install_base, 'man', 'man1'), + libdoc => catdir( $install_base, 'man', 'man3' ), +}); + $m->install_base( undef ); ok( !defined $m->install_base ); @@ -67,13 +81,7 @@ my $c = \%Config; -test_prefix('lib'); -test_prefix('arch'); -test_prefix('bin'); -test_prefix('script'); -test_prefix('bindoc'); -test_prefix('libdoc'); - +test_prefix($prefix); $m->install_base( $install_base ); @@ -85,14 +93,19 @@ is( $m->install_destination( 'libdoc' ), catdir( $install_base, 'man', 'man3' ) ); sub test_prefix { - my ($type) = @_; - - my $dest = $m->install_destination( $type ); - unless ($dest) { - skip_subtest("No target install location for type '$type'"); - return; - } + my ($prefix) = shift; - like( $dest, "/^\Q$prefix\E/"); + foreach my $type (qw(lib arch bin script bindoc libdoc)) { + my $dest = $m->install_destination( $type ); + like( $dest, "/^\Q$prefix\E/"); + } } + +sub test_install_destination { + my($mb, $expect) = @_; + + while( my($type, $expect) = each %$expect ) { + is( $m->install_destination($type), $expect, $type ); + } +} |
|
From: Michael G S. <sc...@us...> - 2005-06-20 22:57:30
|
Update of /cvsroot/module-build/Module-Build/t In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1314/t Modified Files: destinations.t Log Message: Convert to Test::More. Don't bother checking to see if we're loaded from blib, its really not this test's problem. Index: destinations.t =================================================================== RCS file: /cvsroot/module-build/Module-Build/t/destinations.t,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- destinations.t 20 Jun 2005 18:22:35 -0000 1.5 +++ destinations.t 20 Jun 2005 22:57:19 -0000 1.6 @@ -1,10 +1,6 @@ -use strict; - -use Test; -BEGIN { plan tests => 32 } +#!/usr/bin/perl -w -use Module::Build; -ok(1); +use strict; use Config; use File::Spec::Functions qw( catdir ); @@ -16,34 +12,38 @@ require $common_pl; } -ok( $INC{'Module/Build.pm'}, '/blib/', "Make sure Module::Build was loaded from blib/"); + +use Test::More tests => 31; + +use_ok 'Module::Build'; + my $m = Module::Build->current; -ok( UNIVERSAL::isa( $m, 'Module::Build::Base' ) ); +isa_ok( $m, 'Module::Build::Base' ); ok( !defined $m->install_base ); ok( !defined $m->prefix ); # Do default tests here -ok( $m->install_destination( 'lib' ), $Config{ installsitelib } ); -ok( $m->install_destination( 'arch' ), $Config{ installsitearch } ); -ok( $m->install_destination( 'bin' ), $Config{ installsitebin } || $Config{ installbin } ); -ok( $m->install_destination( 'script' ), $Config{ installsitescript } || $Config{ installsitebin } || $Config{ installscript } ); -ok( $m->install_destination( 'bindoc' ), $Config{ installsiteman1dir } || $Config{ installman1dir } ); -ok( $m->install_destination( 'libdoc' ), $Config{ installsiteman3dir } || $Config{ installman3dir } ); +is( $m->install_destination( 'lib' ), $Config{ installsitelib } ); +is( $m->install_destination( 'arch' ), $Config{ installsitearch } ); +is( $m->install_destination( 'bin' ), $Config{ installsitebin } || $Config{ installbin } ); +is( $m->install_destination( 'script' ), $Config{ installsitescript } || $Config{ installsitebin } || $Config{ installscript } ); +is( $m->install_destination( 'bindoc' ), $Config{ installsiteman1dir } || $Config{ installman1dir } ); +is( $m->install_destination( 'libdoc' ), $Config{ installsiteman3dir } || $Config{ installman3dir } ); my $install_base = catdir( 'foo', 'bar' ); $m->install_base( $install_base ); ok( !defined $m->prefix ); -ok( $m->install_destination( 'lib' ), catdir( $install_base, 'lib', 'perl5' ) ); -ok( $m->install_destination( 'arch' ), catdir( $install_base, 'lib', 'perl5', $Config{archname} ) ); -ok( $m->install_destination( 'bin' ), catdir( $install_base, 'bin' ) ); -ok( $m->install_destination( 'script' ), catdir( $install_base, 'bin' ) ); -ok( $m->install_destination( 'bindoc' ), catdir( $install_base, 'man', 'man1') ); -ok( $m->install_destination( 'libdoc' ), catdir( $install_base, 'man', 'man3' ) ); +is( $m->install_destination( 'lib' ), catdir( $install_base, 'lib', 'perl5' ) ); +is( $m->install_destination( 'arch' ), catdir( $install_base, 'lib', 'perl5', $Config{archname} ) ); +is( $m->install_destination( 'bin' ), catdir( $install_base, 'bin' ) ); +is( $m->install_destination( 'script' ), catdir( $install_base, 'bin' ) ); +is( $m->install_destination( 'bindoc' ), catdir( $install_base, 'man', 'man1') ); +is( $m->install_destination( 'libdoc' ), catdir( $install_base, 'man', 'man3' ) ); $m->install_base( undef ); ok( !defined $m->install_base ); @@ -63,7 +63,7 @@ my $prefix = catdir( qw( some prefix ) ); $m->prefix( $prefix ); -ok( $m->{properties}{prefix} eq $prefix ); +is( $m->{properties}{prefix}, $prefix ); my $c = \%Config; @@ -77,12 +77,12 @@ $m->install_base( $install_base ); -ok( $m->install_destination( 'lib' ), catdir( $install_base, 'lib', 'perl5' ) ); -ok( $m->install_destination( 'arch' ), catdir( $install_base, 'lib', 'perl5', $Config{archname} ) ); -ok( $m->install_destination( 'bin' ), catdir( $install_base, 'bin' ) ); -ok( $m->install_destination( 'script' ), catdir( $install_base, 'bin' ) ); -ok( $m->install_destination( 'bindoc' ), catdir( $install_base, 'man', 'man1') ); -ok( $m->install_destination( 'libdoc' ), catdir( $install_base, 'man', 'man3' ) ); +is( $m->install_destination( 'lib' ), catdir( $install_base, 'lib', 'perl5' ) ); +is( $m->install_destination( 'arch' ), catdir( $install_base, 'lib', 'perl5', $Config{archname} ) ); +is( $m->install_destination( 'bin' ), catdir( $install_base, 'bin' ) ); +is( $m->install_destination( 'script' ), catdir( $install_base, 'bin' ) ); +is( $m->install_destination( 'bindoc' ), catdir( $install_base, 'man', 'man1') ); +is( $m->install_destination( 'libdoc' ), catdir( $install_base, 'man', 'man3' ) ); sub test_prefix { my ($type) = @_; @@ -93,6 +93,6 @@ return; } - ok( $dest, "/^\Q$prefix\E/"); + like( $dest, "/^\Q$prefix\E/"); } |
|
From: Ken W. <kwi...@us...> - 2005-06-20 18:23:09
|
Update of /cvsroot/module-build/Module-Build/t In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5848/t Modified Files: destinations.t Log Message: Refactor, and just check to make sure --prefix stays within the specified path Index: destinations.t =================================================================== RCS file: /cvsroot/module-build/Module-Build/t/destinations.t,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- destinations.t 19 Jun 2005 13:55:45 -0000 1.4 +++ destinations.t 20 Jun 2005 18:22:35 -0000 1.5 @@ -9,10 +9,12 @@ use Config; use File::Spec::Functions qw( catdir ); -#use File::Spec; -# -#my $common_pl = File::Spec->catfile('t', 'common.pl'); -#require $common_pl; +use File::Spec; + +BEGIN { + my $common_pl = File::Spec->catfile('t', 'common.pl'); + require $common_pl; +} ok( $INC{'Module/Build.pm'}, '/blib/', "Make sure Module::Build was loaded from blib/"); @@ -64,32 +66,14 @@ ok( $m->{properties}{prefix} eq $prefix ); my $c = \%Config; -my $site_paths = $m->install_sets->{site}; - -my $naive_prefix = sub { - my ($path) = @_; - my $drive = ($path =~ s/^(\w:)// ? $1 : ''); # Win32 drive letters - (my $bare = $path) =~ s!^\Q$site_prefix\E\b!!; - return catdir($drive . $prefix, $bare); -}; - -ok( $m->install_destination( 'lib' ), - $naive_prefix->($site_paths->{lib}) ); - -ok( $m->install_destination( 'arch' ), - $naive_prefix->($site_paths->{arch}) ); - -ok( $m->install_destination( 'bin' ), - $naive_prefix->($site_paths->{bin}) ); - -ok( $m->install_destination( 'script' ), - $naive_prefix->($site_paths->{script}) ); -ok( $m->install_destination( 'bindoc' ), - $naive_prefix->($site_paths->{bindoc}) ); +test_prefix('lib'); +test_prefix('arch'); +test_prefix('bin'); +test_prefix('script'); +test_prefix('bindoc'); +test_prefix('libdoc'); -ok( $m->install_destination( 'libdoc' ), - $naive_prefix->($site_paths->{libdoc})); $m->install_base( $install_base ); @@ -100,3 +84,15 @@ ok( $m->install_destination( 'bindoc' ), catdir( $install_base, 'man', 'man1') ); ok( $m->install_destination( 'libdoc' ), catdir( $install_base, 'man', 'man3' ) ); +sub test_prefix { + my ($type) = @_; + + my $dest = $m->install_destination( $type ); + unless ($dest) { + skip_subtest("No target install location for type '$type'"); + return; + } + + ok( $dest, "/^\Q$prefix\E/"); +} + |
|
From: Ken W. <kwi...@us...> - 2005-06-20 18:11:36
|
Update of /cvsroot/module-build/Module-Build/lib/Module In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32199/lib/Module Modified Files: Build.pm Log Message: Add some extra text to the PREFIX stuff Index: Build.pm =================================================================== RCS file: /cvsroot/module-build/Module-Build/lib/Module/Build.pm,v retrieving revision 1.183 retrieving revision 1.184 diff -u -d -r1.183 -r1.184 --- Build.pm 17 Jun 2005 04:27:14 -0000 1.183 +++ Build.pm 20 Jun 2005 18:11:09 -0000 1.184 @@ -741,11 +741,17 @@ Many systems have Perl configs that make little sense with PREFIX. For example, OS X, where core modules go in F</System/Library/Perl/...>, user-installed modules go in -F</Library/Perl/...>, and man pages go in F</usr/share/man/...>. +F</Library/Perl/...>, and man pages go in F</usr/share/man/...>. The PREFIX is thus set to F</>. Install L<Foo::Bar> on OS X with C<PREFIX=/home/spurkis> and you get things like F</home/spurkis/Library/Perl/5.8.1/Foo/Bar.pm> and F</home/spurkis/usr/share/man/man3/Foo::Bar.3pm>. Not too pretty. +The problem is not limited to Unix-like platforms, either - on Windows +builds (e.g. ActiveState perl 5.8.0), we have user-installed modules +going in F<C:\Perl\site\lib>, user-installed executables going in +F<C:\Perl\bin>, and PREFIX=F<C:\Perl\site>. The prefix just doesn't +apply neatly to the executables. + =item * The PREFIX logic is too complicated and hard to predict for the user. |
|
From: Ken W. <kwi...@us...> - 2005-06-19 13:55:53
|
Update of /cvsroot/module-build/Module-Build/t In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15920/t Modified Files: destinations.t Log Message: Use the install_sets map for checking prefix Index: destinations.t =================================================================== RCS file: /cvsroot/module-build/Module-Build/t/destinations.t,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- destinations.t 19 Jun 2005 13:40:59 -0000 1.3 +++ destinations.t 19 Jun 2005 13:55:45 -0000 1.4 @@ -64,6 +64,7 @@ ok( $m->{properties}{prefix} eq $prefix ); my $c = \%Config; +my $site_paths = $m->install_sets->{site}; my $naive_prefix = sub { my ($path) = @_; @@ -73,22 +74,22 @@ }; ok( $m->install_destination( 'lib' ), - $naive_prefix->($c->{installsitelib}) ); + $naive_prefix->($site_paths->{lib}) ); ok( $m->install_destination( 'arch' ), - $naive_prefix->($c->{installsitearch}) ); + $naive_prefix->($site_paths->{arch}) ); ok( $m->install_destination( 'bin' ), - $naive_prefix->($c->{installsitebin}) ); + $naive_prefix->($site_paths->{bin}) ); ok( $m->install_destination( 'script' ), - $naive_prefix->($c->{installscript}) ); + $naive_prefix->($site_paths->{script}) ); ok( $m->install_destination( 'bindoc' ), - $naive_prefix->($c->{installsiteman1dir} || $c->{installman1dir}) ); + $naive_prefix->($site_paths->{bindoc}) ); ok( $m->install_destination( 'libdoc' ), - $naive_prefix->($c->{installsiteman3dir} || $c->{installman3dir})); + $naive_prefix->($site_paths->{libdoc})); $m->install_base( $install_base ); |
|
From: Ken W. <kwi...@us...> - 2005-06-19 13:55:32
|
Update of /cvsroot/module-build/Module-Build/lib/Module/Build In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15770/lib/Module/Build Modified Files: Base.pm Log Message: Use the install_sets map for --prefix too Index: Base.pm =================================================================== RCS file: /cvsroot/module-build/Module-Build/lib/Module/Build/Base.pm,v retrieving revision 1.427 retrieving revision 1.428 diff -u -d -r1.427 -r1.428 --- Base.pm 16 Jun 2005 18:44:06 -0000 1.427 +++ Base.pm 19 Jun 2005 13:55:23 -0000 1.428 @@ -2575,47 +2575,20 @@ my ($self, $type, $prefix) = @_; my $c = $self->{config}; - my %map = ( - core => { - lib => $c->{installprivlib}, - arch => $c->{installarchlib}, - bin => $c->{installbin}, - script => $c->{installscript}, - bindoc => $c->{installman1dir}, - libdoc => $c->{installman3dir}, - }, - - site => { - lib => $c->{installsitelib}, - arch => $c->{installsitearch}, - bin => $c->{installsitebin}, - script => $c->{installscript}, - bindoc => $c->{installsiteman1dir}, - libdoc => $c->{installsiteman3dir}, - }, - - vendor => { - lib => $c->{installvendorlib}, - arch => $c->{installvendorarch}, - bin => $c->{installvendorbin}, - script => $c->{installscript}, - bindoc => $c->{installvendorman1dir}, - libdoc => $c->{installvendorman3dir}, - }, - ); - + my $map = $self->install_sets; + my $installdirs = $self->installdirs; - return unless exists $map{$installdirs}{$type}; + return unless exists $map->{$installdirs}{$type}; my %prefixes = ( - core => $Config{installprefixexp} || $Config{installprefix} || - $Config{prefixexp} || $Config{prefix} || '', - site => $Config{siteprefixexp}, - vendor => $Config{usevendorprefix} ? $Config{vendorprefixexp} : '', + core => $c->{installprefixexp} || $c->{installprefix} || + $c->{prefixexp} || $c->{prefix} || '', + site => $c->{siteprefixexp}, + vendor => $c->{usevendorprefix} ? $c->{vendorprefixexp} : '', ); $prefixes{site} ||= $prefixes{core}; - return $self->prefixify($map{$installdirs}{$type}, $prefixes{$installdirs}, $prefix); + return $self->prefixify($map->{$installdirs}{$type}, $prefixes{$installdirs}, $prefix); } |