[MacPorts] #70459: exiftool @12.920.0_0+perl5_34: Can't locate Image/ExifTool.pm in @INC

MacPorts noreply at macports.org
Mon Jul 29 06:28:57 UTC 2024


#70459: exiftool @12.920.0_0+perl5_34: Can't locate Image/ExifTool.pm in @INC
-------------------------+----------------------
  Reporter:  e-maryniak  |      Owner:  dbevans
      Type:  defect      |     Status:  assigned
  Priority:  Normal      |  Milestone:
 Component:  ports       |    Version:
Resolution:              |   Keywords:
      Port:  exiftool    |
-------------------------+----------------------

Comment (by ryandesign):

 I have `p5.34-image-exiftool @12.890.0_0` installed, which I realize now
 is an older version. /opt/local/bin/exiftool is, as you've noted, a
 symlink to /opt/local/libexec/perl5.34/exiftool, and the first line of
 that script on my system is:

 {{{
 #!/opt/local/bin/perl5.34 -w
 }}}

 I checked the precompiled archive of @12.890.0_0 on the server and that's
 what's in there too.

 I then checked the precompiled archive of @12.910.0_0 and the first line
 of the script in that version is:

 {{{
 #!/usr/bin/env perl -w
 }}}

 And in the @12.920.0_0 archive it's:

 {{{
 #!/usr/bin/env perl
 }}}

 which is similar to though not identical to what you reported. The fact
 that this line is not referencing the correct versioned perl executable is
 likely the problem, and changing that line as you did is a good workaround
 until we can figure out how to make the port do that automatically again,
 although you will want to specify `perl5.34` instead; specifying
 `perl5.34.3` will break the moment the perl5.34 port is updated to a new
 version.

 The port updates to those versions did nothing other than update the
 version and checksums, so the problem was not caused by MacPorts but by an
 undesirable upstream change.

 It's not the same problem, but another bug caused by this change is
 described here: https://github.com/exiftool/exiftool/issues/273

 Per the changelog entry for version 12.90, they `Changed exiftool shebang
 from "#!/usr/bin/perl" to "#!/usr/bin/env perl"`.

 There must be some fixup process that fixed `#!/usr/bin/perl` to be the
 perl executable we asked for, and that fixup process does not know to do
 the same thing to `#!/usr/bin/env perl`. I assumed that fixup would be a
 `reinplace` in the perl5 portgroup but I don't see it. It might be done
 automatically by perl when building a module.

-- 
Ticket URL: <https://trac.macports.org/ticket/70459#comment:9>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list