On Fri, May 18, 2012 at 5:45 PM, Sisyphus <[email protected]> wrote: > > ----- Original Message ----- From: "David Oswald" > >> Next: Dana identified that Inline will not install on Perl version >> 5.8.0 or earlier. > > > This is not quite correct. > Digest::MD5 is core by the time 5.8.0 arrives. Later versions of Digest::MD5 > might be unbuildable on 5.8.0 but that doesn't matter, because the version > of Digest::MD5 that ships with the 5.8.0 sources is fine for the purposes of > Inline. > Digest::MD5 was not core for 5.6, however. So there may be a problem there > in that one cannot install the most recent version of Digest::MD5, and has > to settle for an older version. My perl-5.6 has Digest-MD5-2.16, which is > fine for Inline. > > Is there a way for a Makefile.PL to specify a *maximum* version for a > dependency ? > Currently the Inline Makefile.PL simply specifies a minimum version of 2.09. > > I guess it wouldn't hurt if the Inline Makefile.PL displayed a warning about > this whenever it gets run on perl-5.6. > Maybe this should also be mentioned in the docs.
You're right, the main issue is where 'v' is 5.6.0 <= v < 5.8.0. If there isn't an older version already installed, cpan/cpanm/cpanp will pull in the latest, which won't install. Though the Meta Specification (ExtUtils::Meta::Spec, I think) does permit a maximum version, to my knowledge that feature isn't supported by the various installers and MakeMakers. I'm not sure for Module::Install. Anyway, that feature will eventually work, but at the moment I don't think it does. Maybe Makefile.PL could detect whether the Perl version number is within the trouble-range, and if so, test whether or not D::MD5 is installed. If not, bail out with a diagnostic message stating that D::MD5 version whatever must be installed manually before proceeding. The issue with v5.8.0 is simply one of incompatibility with newer D::MD5's. But that's a non-issue, since it was bundled with the core distribution. If later versions are incompatible, they won't be getting installed, and will never conflict. So... unless D::MD5 gets patched we either need to detect and warn, or abandon 5.6.x. Detect and warn seems the lesser evil. -- David Oswald [email protected]
