Discussion:
Did anyone else's Perl 5.26 suddenly break?
Dave Horsfall
2018-03-06 02:06:35 UTC
Permalink
A script that I wrote and has worked fine for ages is now breaking with:

Can't locate Scanner.pm in @INC (you may need to install the Scanner module) (@INC contains: /opt/local/lib/perl5/site_perl/5.26/darwin-thread-multi-2level /opt/local/lib/perl5/site_perl/5.26 /opt/local/lib/perl5/vendor_perl/5.26/darwin-thread-multi-2level /opt/local/lib/perl5/vendor_perl/5.26 /opt/local/lib/perl5/5.26/darwin-thread-multi-2level /opt/local/lib/perl5/5.26) at ./uniscan.pl line 40.
BEGIN failed--compilation aborted at ./uniscan.pl line 40.

That "Scanner.pm" module is one I wrote myself, and it's definitely there.

No, I haven't changed anything, and it works just fine on my FreeBSD
(5.24) and Penguin (5.20) boxes. Older Mac versions of Perl also work
(5.16, 5.22, 5.24).

Rebooted (ugh!) to eliminate a corrupted image in swap: nope.

Uninstalled and reinstalled in case the disk binary was corrupt: nope.

Don't tell me that Perl 5.26 comes with a built-in time-bomb...
--
Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer."
Ryan Schmidt
2018-03-06 04:09:56 UTC
Permalink
Post by Dave Horsfall
BEGIN failed--compilation aborted at ./uniscan.pl line 40.
That "Scanner.pm" module is one I wrote myself, and it's definitely there.
No, I haven't changed anything, and it works just fine on my FreeBSD (5.24) and Penguin (5.20) boxes. Older Mac versions of Perl also work (5.16, 5.22, 5.24).
Rebooted (ugh!) to eliminate a corrupted image in swap: nope.
Uninstalled and reinstalled in case the disk binary was corrupt: nope.
Don't tell me that Perl 5.26 comes with a built-in time-bomb...
Add -I to CPPFLAGS. Perl < 5.26 did so automatically, but 5.26 no longer does.

See for example https://github.com/macports/macports-ports/commit/454eb2b0608266ab7bdf51a82d690be0f97610fe
Ryan Schmidt
2018-03-06 09:00:33 UTC
Permalink
Post by Ryan Schmidt
Post by Dave Horsfall
BEGIN failed--compilation aborted at ./uniscan.pl line 40.
That "Scanner.pm" module is one I wrote myself, and it's definitely there.
No, I haven't changed anything, and it works just fine on my FreeBSD (5.24) and Penguin (5.20) boxes. Older Mac versions of Perl also work (5.16, 5.22, 5.24).
Rebooted (ugh!) to eliminate a corrupted image in swap: nope.
Uninstalled and reinstalled in case the disk binary was corrupt: nope.
Don't tell me that Perl 5.26 comes with a built-in time-bomb...
Add -I to CPPFLAGS. Perl < 5.26 did so automatically, but 5.26 no longer does.
I meant: -I.
Post by Ryan Schmidt
See for example https://github.com/macports/macports-ports/commit/454eb2b0608266ab7bdf51a82d690be0f97610fe
Daniel J. Luke
2018-03-06 20:05:10 UTC
Permalink
Post by Ryan Schmidt
Post by Ryan Schmidt
Post by Dave Horsfall
BEGIN failed--compilation aborted at ./uniscan.pl line 40.
That "Scanner.pm" module is one I wrote myself, and it's definitely there.
No, I haven't changed anything, and it works just fine on my FreeBSD (5.24) and Penguin (5.20) boxes. Older Mac versions of Perl also work (5.16, 5.22, 5.24).
Rebooted (ugh!) to eliminate a corrupted image in swap: nope.
Uninstalled and reinstalled in case the disk binary was corrupt: nope.
Don't tell me that Perl 5.26 comes with a built-in time-bomb...
Add -I to CPPFLAGS. Perl < 5.26 did so automatically, but 5.26 no longer does.
I meant: -I.
Post by Ryan Schmidt
See for example https://github.com/macports/macports-ports/commit/454eb2b0608266ab7bdf51a82d690be0f97610fe
--
Daniel J. Luke
Dave Horsfall
2018-03-08 01:28:13 UTC
Permalink
In Dave's case, he's running a perl script and not building with a
that he's seeing.
Yeah, I saw that, but I worked it out. Putting "#!/usr/bin/env perl -I."
as the shebang fixed it until/if/when I release the code, and "perl -c
-I." for my "make check" target in the [mM]akefile (and how I loathe the
Mac's file system and its stupid mixed-case handling).
Aha - all is now clear! Was there actually a port note about it that I
missed?

About 20 years I've been writing Perl, and this was the first module that
I ever wrote, and then it suddenly broke...
--
Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer."
Bill Cole
2018-03-08 02:14:42 UTC
Permalink
Post by Dave Horsfall
In Dave's case, he's running a perl script and not building with a
5.26 that he's seeing.
Yeah, I saw that, but I worked it out. Putting "#!/usr/bin/env perl
-I." as the shebang fixed it until/if/when I release the code, and
"perl -c -I." for my "make check" target in the [mM]akefile
You should note that the name of the environment variable to turn on the
traditional behavior is PERL_USE_UNSAFE_INC.
So: not something to allow anywhere near a release. Probably not
something to use outside of a developer's personal machine.
Post by Dave Horsfall
(and how I loathe the Mac's file system and its stupid mixed-case
handling).
If you can do live without Adobe CC and a shrinking handful of other
shoddy software, switching to case-sensitive is mostly painless.
Switching BACK is painful but i've been running MacOS X on
case-sensitive file systems exclusively since the first stable developer
preview, so I can attest to the problems with using a case-sensitive
filesystem going from frequent to almost never over that time.
--
Bill Cole
***@scconsult.com or ***@apache.org
(AKA @grumpybozo and many *@billmail.scconsult.com addresses)
Currently Seeking Steady Work: https://linkedin.com/in/billcole
Ryan Schmidt
2018-03-08 07:57:56 UTC
Permalink
Aha - all is now clear! Was there actually a port note about it that I missed?
Not that I'm aware of. MacPorts port maintainers don't generally investigate and write notes about changes in upstream releases. The upstream developers do that, so you have to look up their notes.
Dave Horsfall
2018-03-06 23:47:50 UTC
Permalink
Post by Ryan Schmidt
Post by Dave Horsfall
Don't tell me that Perl 5.26 comes with a built-in time-bomb...
Add -I to CPPFLAGS. Perl < 5.26 did so automatically, but 5.26 no longer does.
Well, "-I." actually; thanks.

Hmmm... I wonder how that slipped past me? It must've got nobbled on my
regular Monday morning "port upgrade outdated" routine, and I somehow
missed the port note (the scrollback buffer got lost at the reboot, and of
course I didn't "tee" it).

The module is indeed in "." until I'm happy to install (and perhaps
distribute) it.

Thanks again; I was losing too much hair...
--
Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer."
Continue reading on narkive:
Loading...