? MB.patch ? t/destinations.t Index: lib/Module/Build/Base.pm =================================================================== RCS file: /cvsroot/module-build/Module-Build/lib/Module/Build/Base.pm,v retrieving revision 1.416 diff -u -r1.416 Base.pm --- lib/Module/Build/Base.pm 21 Apr 2005 01:59:55 -0000 1.416 +++ lib/Module/Build/Base.pm 25 May 2005 02:15:31 -0000 @@ -510,6 +510,7 @@ ignore_prereq_requires ignore_prereqs skip_rcfile + prefix ); { @@ -2536,12 +2537,42 @@ return File::Spec->catdir(@{$map{$type}}); } +sub prefixify { + my ($self, $type, $prefix) = @_; + + my %map = ( + site => { + lib => $self->{config}{installsitelib}, + arch => $self->{config}{installsitearch}, + bin => $self->{config}{installsitebin}, + script => $self->{config}{installscript}, + bindoc => $self->{config}{installsiteman1dir}, + libdoc => $self->{config}{installsiteman3dir}, + }, + ); + + my $installdirs = $self->installdirs; + return unless exists $map{$installdirs}{$type}; + + # Adapted from ExtUtils::MakeMaker::MM_Any::init_INSTALL_from_PREFIX() + my %prefixes = ( + core => $Config{installprefixexp} || $Config{installprefix} || + $Config{prefixexp} || $Config{prefix} || '', + vendor => $Config{usevendorprefix} ? $Config{vendorprefixexp} : '', + ); + $prefixes{ site } = $Config{siteprefixexp} || $prefixes{core}; + + (my $rv = $map{$installdirs}{$type}) =~ s!\Q$prefixes{$installdirs}\E\b!$prefix!; + return $rv; +} + sub install_destination { my ($self, $type) = @_; 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 $self->prefixify($type, $p->{prefix}) if $p->{prefix}; return $p->{install_sets}{ $p->{installdirs} }{$type}; } Index: lib/Module/Build/Notes.pm =================================================================== RCS file: /cvsroot/module-build/Module-Build/lib/Module/Build/Notes.pm,v retrieving revision 1.6 diff -u -r1.6 Notes.pm --- lib/Module/Build/Notes.pm 15 Apr 2005 22:59:05 -0000 1.6 +++ lib/Module/Build/Notes.pm 25 May 2005 02:15:31 -0000 @@ -76,7 +76,7 @@ foreach my $key (keys %{ $self->{new} }) { next if ref $self->{new}{$key}; next if ref $self->{disk}{$key} or !exists $self->{disk}{$key}; - delete $self->{new}{$key} if $self->{new}{$key} eq $self->{disk}{$key}; + delete $self->{new}{$key} if ($self->{new}{$key}||'') eq ($self->{disk}{$key}||''); } if (my $file = $self->{file}) {