Subject: | enc2xs from core breaks modules based on it on Windows |
Installation of perl modules on Windows creates .bat files from scripts, so they can be called from command line, because there is no shebang line on Windows. When enc2xs is installed from CPAN, both "enc2xs" and "enc2xs.bat" files are present.
perl Windows makefiles like "makefile.mk" delete enc2xs:
-cd ..\utils && del /f h2ph splain perlbug pl2pm h2xs \
perldoc perlivp libnetcfg enc2xs ....
When using enc2xs to generate CPAN module with encoding, enc2xs uses template for Makefile.PL that checks that "enc2xs" file is present:
for my $d (@Config{qw/bin sitebin vendorbin/},
(split /$Config{path_sep}/o, $ENV{PATH})){
for my $f (qw/enc2xs enc2xs5.7.3/){
my $path = File::Spec->catfile($d, $f);
for my $ext (@path_ext) {
my $bin = "$path$ext";
-r "$bin" and $enc2xs = $bin and last PATHLOOP;
}
}
}
So when Encode was not upgraded from CPAN, enc2xs-based module will die with an error during installation. For ex. http://www.cpantesters.org/cpan/report/1a5693cb-6e2f-1014-8d82-ae8424ca0c09
I think that search for "enc2xs.bat" should be added to template .
--
Alexandr Ciornii, http://chorny.net