ingydotnet / inline-c-pm

10 stars 19 forks source link

Makefile.PL needs non-core module #24

Closed sisyphus closed 5 years ago

sisyphus commented 10 years ago

The 0.62_03 Makefile.PL wants to load File::ShareDir::Install - but there's no guarantee that the module will be present. If File::ShareDir::Install has not previously been installed, then the Makefile.PL simply aborts:

Can't locate File/ShareDir/Install.pm in @INC .... at Makefile.PL line 10

(When this happens on a smoker, no test report is generated.)

Neatest solution I can think of is to have Inline's Makefile.PL specify File::ShareDir::Install as a prerequisite - though, of course, strictly speaking that module is not a prerequisite for Inline.

Is there a preferable way of dealing with this ?

Cheers, Rob

mohawk2 commented 10 years ago

Put the requirement where it belongs, in the requirements of Inline::C.

mohawk2 commented 10 years ago

Actually, is this a Z::D requirement that's not in the relevant requires?

mohawk2 commented 10 years ago

The top of the generated Makefile.PL says:

This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v5.019.

@ingydotnet, do you agree this a missing "requires" somewhere along the line?

ingydotnet commented 9 years ago

We keep the Pegex grammar in the share/ dir.

This make ZD tell DZ to turn on share stuff. DZ uses File::ShareDir::Install in the Makefile.PL but also adds this:

"CONFIGURE_REQUIRES" => {
  "File::ShareDir::Install" => "0.06"
},

I assume that smokers and install tools know about CONFIGURE_REQUIRES. Is this still a problem? Can you point to a specific failing report?

mohawk2 commented 5 years ago

Using a share dir is reasonable. Relying on CONFIGURE_REQUIRES being available is reasonable, since all modern CPAN clients know about it or can work around its absence. Closing.