0

When I try to cpanm Pod::Spell on Strawberry 5.20.2 (64bit PortableZIP edition), it flags I18N::Langinfo as a dependency. When it tries to download the distribution for I18N::Langinfo it locates it in R/RJ/RJBS/perl-520.0.tar.gz and, wisely, thinks better of continuing.

Pod::Spell is of interest only as a dependency of Perl::Critic.

Any suggestions as to how to untangle this dependency issue?

tjd
  • 4,064
  • 1
  • 24
  • 34
  • why don't you have I18N::Langinfo installed? or if you do, why isn't cpanm finding it? – ysth Mar 04 '15 at 18:41
  • @ysth Mighty fine questions both. I've re-downloaded the zip file & Langinfo does not seem to exist. – tjd Mar 04 '15 at 18:46
  • Hmm, `I18N::Langinfo` does not seem to be installed in ActiveState 5.20.1. And I didn't find a copy in the Strawberry 5.20.2 Portable w/ extra PDL libs either... – tjd Mar 04 '15 at 19:22
  • probably it just doesn't work on MSWin so isn't built there. maybe cygwin has it? – ysth Mar 04 '15 at 19:28

2 Answers2

3

It's a bug that Pod::Spell depends on this module, I didn't carefully enough check someone else's patch in the last release. I temporary fix would be to install the previous release as the only real changes in this release were to podspell and not the whole module. It will be fixed in the future.

xenoterracide
  • 16,274
  • 24
  • 118
  • 243
  • Before trying Sinan's make-install-dispite-make-test solution, I did try to specifically install prior version numbers by distribution path. I'd assumed your CPAN directory was the correct one. The current distribution is the only one I saw in your directory. Is it available elsewhere? – tjd Mar 04 '15 at 23:13
  • I see http://search.cpan.org/CPAN/authors/id/X/XE/XENO/Pod-Spell-1.16.tar.gz and (from a year ago) http://search.cpan.org/CPAN/authors/id/X/XE/XENO/Pod-Spell-1.15.tar.gz. Older versions are at http://backpan.perl.org/authors/id/X/XE/XENO/ – ysth Mar 05 '15 at 00:31
  • https://metacpan.org/pod/Pod::Spell all versions can be found on metacpan, but yeah 1.15 is still published and cpanm can be used to install a specified version – xenoterracide Mar 05 '15 at 04:17
2

Interesting. I looked for I18N::Langinfo on my self-built Perl on Windows, and it is not installed either. I would have expected it to be installed so that it could croak:

croak("nl_langinfo() not implemented on this architecture");

It seems to me the problem is not Strawberry or ActiveState specific (because I am building from source). It maybe worth building the current blead, and if I18N::Langinfo is still not being installed, reporting this as a bug to p5p.

Now, even if you could install the module however, I would not expect it to work with a non-Cygwin perl on Windows. Therefore, if Pod::Spell really depends on the module, it wouldn't work properly anyway.

But, frankly, looking at the code for Pod::Spell it is not immediately obvious to me why it should depend on I18N::Langinfo.

Therefore, I switched to cpanms work directory for Pod::Spell, and an nmake test (in your case, this would be dmake test with Strawberry Perl):

# *** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***
#
# The following REQUIRED prerequisites were not satisfied:
#
# I18N::Langinfo is not installed (any version required)
#
t\00-report-prereqs.t .. ok
t\basic.t .............. ok
t\debug.t .............. ok
t\get-stopwords.t ...... ok
t\text-block.t ......... ok
t\utf8.t ............... ok
All tests successful.
Files=7, Tests=24,  9 wallclock secs ( 0.13 usr +  0.02 sys =  0.14 CPU)
Result: PASS

Therefore, I went ahead, and installed the module using nmake install (in your case dmake install).

podspell seemed to work.

But, IMHO, you are better off just using aspell as in:

C:\...> aspell --mode=perl lib\Pod\Spell.pm

aspell spell checking Pod::Spell

Note: I am using Aspell 0.60.6.1 installed using Cygwin.

Sinan Ünür
  • 116,958
  • 15
  • 196
  • 339
  • 2
    My motivation for wanting to install `Pod::Spell` is because it is a dependency of `Perl::Critic`. `Aspell` may be slightly more work than I need in this specific case. ;) – tjd Mar 04 '15 at 20:54
  • 2
    dolmen added the dependency to the `podspell` in the last release, Pod::Spell does not depend on it, but I didn't closely enough check his work and so the dependency made it to the global dependency list. Installing the previous version or next version will work – xenoterracide Mar 04 '15 at 21:48