Future versions of MacOS and Perl Exiftool

Started by eddy2099, September 04, 2019, 02:09:21 AM

Previous topic - Next topic

eddy2099

As of now, I have been bundling ExifTool within my Mac apps which did an excellent job and it is easy for my users from the Mac AppStore to use. ExifTool is an excellent comprehensive tool and as Perl is preinstalled up to Catalina, it's not going to be an issue using it at least for my users' perspective.

QuoteScripting Language Runtimes
Deprecations
Scripting language runtimes such as Python, Ruby, and Perl are included in macOS for compatibility with legacy software. Future versions of macOS won't include scripting language runtimes by default, and might require you to install additional packages. If your software depends on scripting languages, it's recommended that you bundle the runtime within the app. (49764202)
Use of Python 2.7 isn't recommended as this version is included in macOS for compatibility with legacy software. Future versions of macOS won't include Python 2.7. Instead, it's recommended that you run python3 from within Terminal. (51097165)

However, I understand after Catalina, Apple would not preinstall scripting languages to the MacOS and that probably means that I would need to install Perl on my Mac to use ExifTool. No problem if it is just me but this can get complicated for some users.

I am not familiar with Perl myself and I seems to have two options here. Either bundle the Perl runtimes in my App or package ExifTool as a standalone command line app (like in the Windows version). Both of which I have no clue.

I tried PP but failed as it keeps complaining about the different version of Perl.

QuotePerl lib version (5.18.4) doesn't match executable '/var/folders/zp/nfm_cfsj7nngt6dk_pd51phc0000gn/T/parlMfEk' version (v5.18.2) at /System/Library/Perl/5.18/darwin-thread-multi-2level/Config.pm line 62.
Compilation failed in require at /System/Library/Perl/5.18/darwin-thread-multi-2level/Errno.pm line 8.
BEGIN failed--compilation aborted at /System/Library/Perl/5.18/darwin-thread-multi-2level/Errno.pm line 8.
Compilation failed in require at /System/Library/Perl/5.18/File/Temp.pm line 150.
BEGIN failed--compilation aborted at /System/Library/Perl/5.18/File/Temp.pm line 150.
Compilation failed in require at /System/Library/Perl/Extras/5.18/Archive/Zip.pm line 11.
BEGIN failed--compilation aborted at /System/Library/Perl/Extras/5.18/Archive/Zip.pm line 11.
Compilation failed in require at -e line 459.
/usr/bin/pp5.18: Failed to extract a parl from 'PAR::StrippedPARL::Static' to file '/var/folders/zp/nfm_cfsj7nngt6dk_pd51phc0000gn/T/parl6l8QxA9' at /System/Library/Perl/Extras/5.18/PAR/Packer.pm line 1152, <DATA> line 1.

I know it is probably going to be a year away before this issue becomes real but was wondering what my options are moving forward.

Thanks.

StarGeek

Just to let you know, Phil is currently on vacation with no net access.  So it'll probably be a couple weeks before you'll get a response.  I'd suggest clicking the the "Notify" button in the upper right corner of this thread so you'll know when there's a response.
"It didn't work" isn't helpful. What was the exact command used and the output.
Read FAQ #3 and use that cmd
Please use the Code button for exiftool output

Please include your OS/Exiftool version/filetype

eddy2099

Not a problem since it is not a pressing issue now but just had to get it off my chest.

Phil Harvey

I'm not looking forward to this.  The Mac install will get much more complicated.  I will probably have to include Perl in the ExifTool MacOS package, which I really don't want to do.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

frank

Hi,

I was going to ask whether the exiftool executable in /usr/local/bin already includes the whole of perl.. I assume this means it does not.

I'm shipping the exiftool perl files with my application but that might no longer be possible after WWDC 2020. So I'm starting to investigate solutions. I've found "pp" (https://metacpan.org/pod/pp), but I don't really know what I'm doing.

Do you have any words (/perls?) of wisdom for a perl newbie?

Thanks again for writing and maintaining this great utility!

Frank

Phil Harvey

Hi Frank,

Quote from: frank on March 26, 2020, 07:39:55 AM
I was going to ask whether the exiftool executable in /usr/local/bin already includes the whole of perl.. I assume this means it does not.

Correct.

QuoteI'm shipping the exiftool perl files with my application but that might no longer be possible after WWDC 2020. So I'm starting to investigate solutions. I've found "pp" (https://metacpan.org/pod/pp), but I don't really know what I'm doing.

There are more security problems associated with "pp" (it runs executables from a temporary directory, which MacOS might not like).  I think a better solution would be to include a separate Perl installer that runs if Perl is not found on the system.  (Is this possible?)  I'm not looking forward to Apple dropping built-in Perl, and will probably have to deal with this myself for the ExifTool Mac installer (although I won't be able to test it because I am locked into using Mojave because I can't update all of the apps I use to 64 bit).

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).