Feeds

Apple's Mac OS X update breaks Perl

Never trust a vendor

The essential guide to IT transformation

Apple's latest Mac OS X security update has a knack for breaking Perl, according to Mac users across the web.

"I've just done the update using Software update and just about everything I look at is working, except that perl seems to have gone almost AWOL," says one Mac OS X user, with a post to Apple's support forum.

"I seen it pop up occasionally in the Activity Monitor, but, when I try to run perl scripts from the command line or the cron jobs that ran flawlessly before the update, nothing happens. Period."

Two additional support forum visitors say they've experienced similar problems with the popular programming language following Mac updates, and others have complained of Perl breakage on a public Perl mailing list and an independent blog.

Apple did not immediately respond to a request for comment. The company released its Security Update 2009-001 on Thursday.

According to blogger Tatsuhiko Miyagawa, Perl breakage only occurs if you're running Leopard (Mac OS X 10.5), you're using the Perl distro baked into the OS, and you've updated the distro via CPAN (Comprehensive Perl Archive Network), a widely-used collection of existing Perl modules.

Miyagawa's post says the problem generates error messages that look something like this:

% perl -MIO IO object version 1.22 does not match bootstrap parameter 1.23 at /System/Library/Perl/5.8.8/darwin-thread-multi-2level/XSLoader.pm line 94.

Compilation failed in require. BEGIN failed--compilation aborted

This would indicate that Apple's security update reverts Mac Perl to an older IO object incompatible with newer CPAN modules. "The Security Update brings (old) IO.bundle with version 1.22 but your IO.pm has been updated to the latest 1.23 on CPAN shell. (But hey, 1.23 was released in 2006...Why do you bring that ancient version back, Apple!?)," Miyagawa writes.

The blogger claims you can fix the problem if you reload the IO module. But since Perl is broken, this takes a little finesse. "The fix is to update IO.pm to 1.23, but since IO.pm is now broken, you can't even run CPAN shell to do this (Ugh!). You need to go to CPAN and grab IO-1.2301.tar.gz, unpack it and run 'perl Makefile.PL; make; sudo make install' to fix this."

And one support forum poster says the fix is only a partial solution.

"This is another reason why you shouldn't use Perl that comes from vendors," Miyagawa says. "Apple isn't any different from Fedora on this!" ®

5 things you didn’t know about cloud backup

More from The Register

next story
BBC: We're going to slip CODING into kids' TV
Pureed-carrot-in-ice cream C++ surprise
China: You, Microsoft. Office-Windows 'compatibility'. You have 20 days to explain
Told to cough up more details as antitrust probe goes deeper
Linux turns 23 and Linus Torvalds celebrates as only he can
No, not with swearing, but by controlling the release cycle
Scratched PC-dispatch patch patched, hatched in batch rematch
Windows security update fixed after triggering blue screens (and screams) of death
This is how I set about making a fortune with my own startup
Would you leave your well-paid job to chase your dream?
prev story

Whitepapers

Endpoint data privacy in the cloud is easier than you think
Innovations in encryption and storage resolve issues of data privacy and key requirements for companies to look for in a solution.
Implementing global e-invoicing with guaranteed legal certainty
Explaining the role local tax compliance plays in successful supply chain management and e-business and how leading global brands are addressing this.
Advanced data protection for your virtualized environments
Find a natural fit for optimizing protection for the often resource-constrained data protection process found in virtual environments.
Boost IT visibility and business value
How building a great service catalog relieves pressure points and demonstrates the value of IT service management.
Next gen security for virtualised datacentres
Legacy security solutions are inefficient due to the architectural differences between physical and virtual environments.