Am 09.12.2014 um 23:30 schrieb Leon Timmermans <faw...@gmail.com>:

> On Tue, Dec 2, 2014 at 10:45 AM, Jens Rehsack <rehs...@gmail.com> wrote:
> > Seems reasonable - but as you know in not to distant future, they shall
> > also override CC, CCLD, ... (using ExtUtils::Builder or alike, instead
> > of plain cc).
> >
> > Does the return hash of this callback overrides all EU::MM constants?
> 
> I think I can answer this question on my own:
> 
> File-ConfigDir-Install sno$ git diff
> diff --git a/t/01-makefile.t b/t/01-makefile.t
> index 5e9bd38..2b0759c 100644
> --- a/t/01-makefile.t
> +++ b/t/01-makefile.t
> @@ -35,8 +35,12 @@ delete $ENV{PERL_MM_OPT};   # local::lib + PREFIX below 
> will FAIL
>  WriteMakefile(
>      NAME              => 'File::ConfigDir::Install',
>      VERSION_FROM      => 'lib/File/ConfigDir/Install.pm',
> +    CONFIGURE => sub {
> +       {
>      INST_ETC          => "tlib-$$/etc",
>      INST_LIB          => "tlib-$$/lib",
> +       },
> +    },
>      MAKEFILE          => $FILE,
>      PREREQ_PM         => {},
>      ($] >= 5.005 ?
> 
> $ make && perl -Mblib t/01-makefile.t
> cp lib/File/ConfigDir/Install.pm blib/lib/File/ConfigDir/Install.pm
> Manifying 1 pod document
> 'INST_ETC' is not a known MakeMaker parameter name.
> Generating a Unix-style test-21206-Makefile
> Writing test-21206-Makefile for File::ConfigDir::Install
> Writing MYMETA.yml and MYMETA.json
> ok 1 - Created test-21206-Makefile
> ok 2 - Recognized: t/etc/fsd-install.json
> # make -f test-21206-Makefile
> # cp t/etc/fsd-install.json tlib-21206/etc/fsd-install.json
> # Manifying 1 pod document
> ok 3 - Copied to blib for dist: t/etc/fsd-install.json
> ok 4 - Same content: t/etc/fsd-install.json
> # make -f test-21206-Makefile 
> DESTDIR=/var/folders/5s/sk58jrwj7jj73phc9lcx9nh80000gn/T/cgOOrG5f45 install
> # Skip tlib-21206/etc/fsd-install.json (unchanged)
> # Manifying 1 pod document
> # Installing 
> /var/folders/5s/sk58jrwj7jj73phc9lcx9nh80000gn/T/cgOOrG5f45/Users/sno/perl5/perlbrew/perls/perl-5.20.0/man/man3/File::ConfigDir::Install.3
> # Installing 
> /var/folders/5s/sk58jrwj7jj73phc9lcx9nh80000gn/T/cgOOrG5f45/Users/sno/perl5/perlbrew/perls/perl-5.20.0/etc/fsd-install.json
> # Appending installation info to 
> /var/folders/5s/sk58jrwj7jj73phc9lcx9nh80000gn/T/cgOOrG5f45/Users/sno/perl5/perlbrew/perls/perl-5.20.0/lib/5.20.0/darwin-2level/perllocal.pod
> # Checking for 
> /var/folders/5s/sk58jrwj7jj73phc9lcx9nh80000gn/T/cgOOrG5f45/Users/sno/perl5/perlbrew/perls/perl-5.20.0/etc/fsd-install.json
> ok 5 - Installed: t/etc/fsd-install.json
> 1..5
> 
> So neither the warning goes away nor existing constants are overwritten.
> 
> Right. There seem to be two layers of verification, I had missed the second 
> one. That is a bummer. There should be a way around this, I just need to find 
> it.

Would be cool, thanks!

> > For some reason File::ConfigDir::Install doesn't just override postamble,
> > it modifies the "install_*_*" instructions ...
> > ...BigHelper (mohawk pointed to that) does something similar.
> 
> I think there is more a hook like 
> https://metacpan.org/pod/Class::Method::Modifiers#around-method-s-sub needed 
> for each of overloaded function ...
> 
> Right. There really ought to be a ExtUtils::MakeMaker::Extensible layer to 
> make this all easier.

I can care for this (with some wise words from #toolchain).
What can be a reasonable approach for providing the "around"?

Using Class::Method::Modifiers and suggest bundling for distributions for 
ancient environments?
As far as I see it has only core dependencies...

inc::latest does a great job for bundling. It does exactly what I want to reach 
with ExtUtils::BundleMaker.
I tried it in LMU 0.400_010 - this sounds being a reasonable approach for 
distributions using ExtUtils::MakeMaker::Extensible.

Cheers
-- 
Jens Rehsack
rehs...@gmail.com

Reply via email to