Hi Phil,
Two entries listed in README->DEPENDENCIES are not available in current ActivePerl distributions (build failed):
- POSIX::strptime -> https://code.activestate.com/ppm/POSIX-strptime/ was never available?
- Win32::FindFile -> https://code.activestate.com/ppm/Win32-FindFile/ was available until Perl 5.22, but this release isn't available anymore.
Would you mind to share your pp parameters you use to generate the Windows executable? I tried TraceUse and ScanDeps but my results weren't nearly similar to the content of your Windows exiftool.exe distribution.
By some manual checks I might have found unneeded files in the Windows exe distribution:
Image/ExifTool/WriteID3.pl (is not in Image-ExifTool-xxx.tar.gz)
14 dupes in /lib: Writer.pl, WriteExif.pl, QuickTimeStream.pl, XMP2.pl, WriteXMP.pl, WriteQuickTime.pl, XMPStruct.pl, WriteIPTC.pl, WritePostScript.pl, WritePDF.pl, WriteCanonRaw.pl, Shift.pl, WritePNG.pl, WritePhotoshop.pl
Three "CVS" directories
I'm not sure about these modules:
"re" (600KB) only for TAINT mode?. Then, Term::Cap might also be removed.
ActivePerl::Config.pm? If so, likely also Win32::Console (with console.dll)
Oliver
Wow. That is unfortunate that Win32::FindFile is no longer available. The windows file support in ActivePerl is hideous. :(
Here is a post (https://exiftool.org/forum/index.php/topic,3609.msg18798.html#msg18798) where I describe how I build the executable.
- Phil
Quote from: Phil Harvey on May 20, 2019, 01:41:29 PM
Wow. That is unfortunate that Win32::FindFile is no longer available. The windows file support in ActivePerl is hideous. :(
It might be rather an error in Win32::FindFile. It affects also Strawbery Perl, has been reported in CPAN: https://rt.cpan.org/Public/Dist/Display.html?Name=Win32-FindFile but doesn't seem to get fixed soon. Good that you have a system with a working version.
POSIX::strptime lists 6 bugs, none fixed, and also doesn't compile with Strawberry Perl (no problem since you use also Time::Piece).
Quote from: Phil Harvey on May 20, 2019, 01:41:29 PM
Here is a post (https://exiftool.org/forum/index.php/topic,3609.msg18798.html#msg18798) where I describe how I build the executable.
Thanks! By adding "-u" and "-M Time::HiRes" to this 2012 version, I could get plausible results.
The 14 duplicates I mentioned in the OP come from the "-M Image/ExifTool/*.pl" lines, putting each file in the /lib dir although they are already in lib/Image/ExifTool. What's the intent? Not a big deal to have these files twice in the exe version, I'm asking just out of curiosity.
I still can't see why Image/ExifTool/WriteID3.pl is in the Windows exe.
Oliver
P.S.: The ActivePerl repository doesn't offer PAR::Packer for Mac and Windows, at least not for currently available versions of ActivePerl. I used Strawberry then.
Quote from: obetz on May 21, 2019, 06:34:47 AM
The 14 duplicates I mentioned in the OP come from the "-M Image/ExifTool/*.pl" lines, putting each file in the /lib dir although they are already in lib/Image/ExifTool. What's the intent?
I put in all the files explicitly because I had a problem once when a file either wasn't included in the package, or wasn't being loaded for some reason. Maybe I should revisit this, but I would rather have duplicates than load errors.
QuoteI still can't see why Image/ExifTool/WriteID3.pl is in the Windows exe.
It really shouldn't be there.
QuoteP.S.: The ActivePerl repository doesn't offer PAR::Packer for Mac and Windows, at least not for currently available versions of ActivePerl. I used Strawberry then.
Let's hope that I'm not forced to update then.
- Phil
Quote from: Phil Harvey on May 25, 2019, 12:14:08 PM
I would rather have duplicates than load errors.
I fully agree.
Quote from: Phil Harvey on May 25, 2019, 12:14:08 PM
QuoteI still can't see why Image/ExifTool/WriteID3.pl is in the Windows exe.
It really shouldn't be there.
Maybe it has something to do with the also included CVS directories? But pp shouldn't look at them.
Quote from: Phil Harvey on May 25, 2019, 12:14:08 PM
QuoteP.S.: The ActivePerl repository doesn't offer PAR::Packer for Mac and Windows, at least not for currently available versions of ActivePerl. I used Strawberry then.
Let's hope that I'm not forced to update then.
Yup, it seems to better to avoid changes. I'm afraid each Perl distribution has it's peculiarities. I remember struggling with a timezone / DST error in ActivePerl long ago.
Quote from: Phil Harvey on May 20, 2019, 01:41:29 PM
Wow. That is unfortunate that Win32::FindFile is no longer available. The windows file support in ActivePerl is hideous. :(
in the mean, I think I found the problem in Win32::FindFile
Automated tests during the installation fail if the machine runs in a DST time zone. To avoid the problem, disable DST. Then you can install Win32::FindFile from CPAN.
It's a long known DST bug in Windows (likely cygwin fixed it, but not the native ports). I was already struggling with this stupidity more than ten years ago.
Look at http://www.cpantesters.org/distro/W/Win32-FindFile.html and you will see that tests usually fail during summer and pass in winter.
Maybe ActiveState has it's build machine configured to DST (stupid), but also the Win32-FindFile developer should fix this bug in the automated test (I reported the issue directly to his mail address).
Edit: The delivery of the e-mail to "grian" (maintainer of Win32::FindFile) failed.
Oliver