<URL: https://rt.cpan.org/Ticket/Display.html?id=41166 >

On Sun Nov 23 16:18:50 2008, nt...@iki.fi wrote:
>  http://bazaar.launchpad.net/~pardus-cpan/zim/trunk/files
> 
> has this:
> 
> my $sets = $$build{properties}{install_sets};
> for my $dirs (values %$sets) {
>         my @dirs = File::Spec->splitdir($$dirs{bin});
>         pop @dirs; # loose 'bin'
>         $$dirs{share} = File::Spec->catdir(@dirs, 'share');
> }
> 
> This breaks with Module::Build 0.30, because modifying the
> install_sets property isn't preserved anymore to the Build phase.
> Module::Build::Base::resume() now explicitly resets install_sets by
> calling the _set_install_paths() method.
> 
> Please let us know if this should be considered a bug in 
Module::Build
> 0.30 or Zim itself.

Hi Niko,

I think that code is out-of-bounds by modifying the install_sets 
element directly.  It would possibly be less breakable if it were done 
local() in one of the overridden methods, but probably Module::Build 
should offer some "official" 'share' directory as part of the API.  
That does, however, raise the issue of whether it behaves ala 
File::ShareDir or not.

Schwern: does this call to $self->_set_install_paths in resume() have 
to happen only because it has not yet been set via some other entry 
point?  If so, we could probably find somewhere else from which to call 
it or simply let it return if the key is already set.

Thanks,
Eric

Reply via email to