Opened 3 years ago

Closed 3 years ago

#61577 closed defect (fixed)

perl5.28 @5.28.3: Can't locate strict.pm in @INC

Reported by: ryandesign (Ryan Carsten Schmidt) Owned by: mojca (Mojca Miklavec)
Priority: Normal Milestone:
Component: ports Version: 2.6.4
Keywords: haspatch Cc:
Port: perl5

Description

perl5.28 fails to build in /opt/local on the arm64 macOS 11 buildbot worker:

https://build.macports.org/builders/ports-11.0_arm64-builder/builds/25/steps/install-dependencies/logs/stdio

DYLD_LIBRARY_PATH=/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_lang_perl5/perl5.28/work/perl-5.28.3 ./miniperl -Ilib autodoc.pl
Can't locate strict.pm in @INC (you may need to install the strict module) (@INC contains: /cpan/AutoLoader/lib /dist/Carp/lib /dist/PathTools /dist/PathTools/lib /cpan/ExtUtils-Install/lib /cpan/ExtUtils-MakeMaker/lib /cpan/ExtUtils-Manifest/lib /cpan/File-Path/lib /ext/re /dist/Term-ReadLine/lib /dist/Exporter/lib /ext/File-Find/lib /cpan/Text-Tabs/lib /dist/constant/lib /cpan/version/lib /lib .) at autodoc.pl line 25.
BEGIN failed--compilation aborted at autodoc.pl line 25.
make: *** [pod/perlintern.pod] Error 2

This is weird because perl5.28 built fine in prefix /opt/bblocal on the same computer when I installed the ports that are used to run the buildbot software.

perl5.26 built fine in /opt/local on the same computer.

This buildbot worker is set up a little differently than the others, with /opt/local being the mountpoint of an entire separate APFS volume. I don't know if that could be contributing to the problem.

Change History (6)

comment:1 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

perl5.30 built fine in /opt/local on the same computer too.

comment:2 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

I think this might be https://github.com/perl/perl5/issues/16903. They committed three changes in 5.29 and later to fix it; see https://github.com/perl/perl5/issues/16903#issuecomment-544100709. Maybe we can add those to the perl5.28 port.

comment:3 Changed 3 years ago by mojca (Mojca Miklavec)

I can try to prepare a merge request from those three fixes, but I cannot easily test them. I'm thinking about trying to do a full switch to 5.30 (or newer) and remove all 5.28 modules ASAP, as perl 5.28 is out of maintenance mode anyway.

Fixing perl 5.28 is probably faster, but we need to do the switch at some point.

comment:4 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

We still have older versions of perl in MacPorts, so it would be nice to fix this, even if we switch to 5.30 as the default.

I made a change to the arm64 buildbot worker: I changed the mountpoint of the volume from /opt/local to /opt. This has the advantage that /opt/local and /opt/bblocal are on the same disk again now so staging archives in mpbb is more efficient (they can be hardlinked instead of copied). I figured this change would have one of two consequences: either it would make perl5.28 build successfully in /opt/local, or it would make it fail to build in /opt/bblocal; looks like it has done the latter. I will try the above patches to see if they will fix this.

comment:5 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

Keywords: haspatch added

The patches do appear to fix it so here is a PR: https://github.com/macports/macports-ports/pull/9194

comment:6 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: assignedclosed

In 51ee0156b4c12a957f15cae705258bc4ee121406/macports-ports (master):

perl5.28: Fix build with inaccessible parent dir

This fix is already in perl5.30 and doesn't appear to affect perl5.26.

Closes: #61577

Increase revision because installed files change
(${prefix}/lib/perl5/5.28/darwin-thread-multi-2level/Cwd.pm).

Note: See TracTickets for help on using tickets.