Perl 5.8.4 lands in Solaris 10

*********  This mail is automatically generated  *******

Your putback for the following fix(es) is complete:

    5040539 Perl 5.8.4 should be integrated into S10
    4915255 perl tries to force -xc99=%none on embed clients
    5059815 Perl should have perlgcc out-of-the-box

These fixes will be in release:


The gatekeeper will mark these bugids "fixed" and "integrated" in bugtraq
as soon as the gate has been delivered to the WOS.  However, you can mark
them "fixed" (but not "integrated") now if you wish.

        Your Friendly Gatekeepers


As part of the day job I look after the version of Perl which is included in Solaris, and as Perl 5.8.4 came out fairly recently I thought I'd better do an update - the text above is from an email sent by the automated system that monitors integrations into the Solaris source repository or 'gate' . Several hundred people have checked in changes to Solaris 10 so far ('putback' in SolarisSpeak), so the Linux model where everything funnels through Linus just wouldn't work for us. Also, contrary to common mis-perceptions we don't 'port' Solaris to x86 after doing the Sparc version, both are developed in parallel and there is one common source tree, so we have to develop, debug and test on both platforms before integration. In fact my workstation at home is a Sparc box, and the one at work is an Opteron, so like all Solaris developers I have a foot firmly in both camps.

Putting pack changes into Solaris can be quite a daunting experience, as everyone who works on Solaris receives a copy of the putback notification, and if your changes don't stick, a copy of the followup notification as they are backed out of the gate. The source repository or 'gate' machines (one sparc, one x86) run last night's build of the OS, so if you screw up and break the gate machines it means that all those people also know about it, and nobody can integrate until it is fixed - which concentrates the mind wonderfully when you come to integrate your stuff ;-) Every 2 weeks we glue together all the bits we ship - Solaris, X11, Gnome, CDE, Java and so on into the WOS ('Wad Of Stuff') and put it all through a series of test suites, then we do the whole thing over again two weeks later. It's one of these fortnightly builds that is periodically released as the Software Express for Solaris builds, or 'SX' for short, and we run them internally on lots of systems - for example Solaris developers run them on their desktops, and the main 2000+ user NFS server that holds the engineers home directories runs the numbered builds as well.

As far as the Perl 5.8.4 integration goes, I'd like to thank Nick Clark and Rafael Garcia-Suarez for their help (they are the people currently coordinating the Perl 5.8.x release series). We spent a morning on IRC discussing which additional patches to Perl would be advisable over and above stock 5.8.4 - Rafael is the Mandrake Perl maintainer to boot, so the Solaris and Mandrake patch lists are remarkably similar ;-) I found a couple of minor Perl warts on the way through and they have made it back into the Perl perforce repository for 5.8.5.

In addition, I've integrated a version of PerlGcc into Solaris 10. This allows you to use gcc to build modules from CPAN, the Perl module archive. As Perl is built as part of Solaris, it uses the same compilers as the OS, the Forte ones. Because Perl stores the details of the compiler it was built with for use when building modules, you normally need to build any add-on modules with the same compiler as you used to build Perl in the first place. PerlGcc provides a drop-in replacement for the appropriate config files, configured to used gcc instead of the Forte compilers. (You can grab a prebuilt copy of gcc from here). For those of you who still on Solaris 8 and 9, you can get a version of PerlGcc from here on CPAN. Unfortunately there is one slight wrinkle, if you've updated ExtUtils::MakeMaker it probably won't work. I had to make some changes to MakeMaker to get PerlGcc to work, and these are specific to the version of MakeMaker that was shipped in Solaris. I have come up with a generic way of doing this, and although the necessary changes have been submitted and will be in the next version of MakeMaker to be released, they aren't available yet. I'm hoping to release an update to the PerlGcc on CPAN over the next couple of weeks or so to work around this - check back here for announcements.

Tags : , , ,
Categories : Solaris, Perl, Work