Re: An Inline question, and a user's experience: Fwd: Using Inline::CPP and Math::Primes::FastSieve

[email protected] (David Oswald)
Newsgroups perl.inline
Message-ID <CAKTcQ96Y3dVtTO+qtmDtcunPknTfMm-fChHU4c_ME1FWJ9sGpw@mail.gmail.com>
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]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.