1. Introduction 1.1. Project/Component Working Name: PSARC/2009/315 Update Perl to version 5.10.x 1.2. Name of Document Author/Supplier: John.Sonnenschein@Sun.COM 1.3. Date of This Document: 05/26/2009 1.3.1. Date this project was conceived: 05/21/2009 1.4. Name of Major Document Customer(s)/Consumer(s): 1.4.1. The PAC or CPT you expect to review your project: Solaris PAC 1.4.2. The ARC(s) you expect to review your project: PSARC 1.4.3. The Director/VP who is "Sponsoring" this project: Vincent.Murphy@Sun.COM 1.4.4. The name of your business unit: Software - OPG 1.5. Email Aliases: 1.5.1. Responsible Manager: Bonnie.Corwin@Sun.COM 1.5.2. Responsible Engineer: John.Sonnenschein@Sun.COM 1.5.3. Marketing Manager: N/A 1.5.4. Interest List: Rich.Burridge@Sun.COM 2. Project Summary 2.1. Project Description: Update the version of Perl shipped with Solaris to the latest available version. 2.2. Risks and Assumptions: This case is a direct follow-on from the following cases: PSARC/1999/192 Including Perl 5 with Solaris PSARC/2001/145 Update of Perl shipped with Solaris to version 5.6.1 PSARC/2003/661 Update Perl to version 5.8.x PSARC 2005/462 Removal of Perl 5.6.1 from Solaris 11 Perl 5.005_03 (introduced in Solaris 8 by PSARC/1999/192) was declared EOF in Solaris 9, and was removed earlier in the development of Solaris 10. Perl 5.6 was declared EOF in Solaris 10, and was removed from OpenSolaris. This fast-track intends to integrate the latest version of the Perl 5.10.x chain into OpenSolaris. Perl 5.10.x is binary-incompatible with 5.8.x, so it will be necessary to declare 5.8.x EOF in OpenSolaris, and remove it in a later version. A separate case will be submitted for this. Unlike previous releases, 5.10.x will not integrate in to O/N, but will instead move to SFW. 3. Business Summary 3.1. Problem Area: Perl is a very commonly-used tool, and is used to deliver Solaris functionality (kstat(1M), projadd(1M), projdel(1m) etc.), it is used by the Apache we ship with Solaris and it is used by several unbundled tools (e.g. SunCluster) 3.2. Market/Requester: A complete cross-section of customers use Perl. 3.3. Business Justification: We need to keep OSS tools that we include in Solaris up-to-date in order to maintain credibility and avoid support costs for bugs in the older versions that are fixed by later versions 3.4. Competitive Analysis: Most other competing products either include Perl as standard or make it readily available. 3.5. Opportunity Window/Exposure: Need to have an up-to-date version of Perl in OpenSolaris 3.6. How will you know when you are done?: Perl test suite passes all tests, existing Solaris commands continue to work correctly with the new version. 4. Technical Description: 4.1. Details: The standard perl 5.10.x distribution will be obtained from the perl source archive (http://cpan.org/src), unnecessary components will be removed (e.g. support for other Operating Systems) and the source files will be integrated into SFW. If any bugs are encountered during the integration, these will be fixed and submitted for integration into the Perl repository, so that they will be hopefully automatically included in a future version. The fix will then be included in the perl SFW code via a patch, and the output of 'perl -V' modified to reflect the change. 4.2. Bug/RFE Number(s): RFE: #6841312 OSR ID# 11317 4.3. In Scope: See above. 4.4. Out of Scope: See above. 4.5. Interfaces: Following the interface stability section of the perl(1) manpage, here is the impact of this upgrade on the various Perl interfaces: Script interface (Uncommitted) --------------------------- There have been no major changes between 5.8.x and 5.10.x except backwards compatible extensions. Incompatible changes are as follows: * Packing and UTF-8 strings * Byte/character count feature in unpack() * The $* and $# variables have been removed * substr() lvalues are no longer fixed-length * Parsing of -f _ * :unique * Effect of pragmas in eval * chdir FOO * Handling of .pmc files * $^V is now a version object instead of a v-string * @- and @+ in patterns * $AUTOLOAD can now be tainted * Tainting and printf * undef and signal handlers * strictures and dereferencing in defined() * (?p{}) has been removed * Pseudo-hashes have been removed * Removal of the bytecode compiler and of perlcc * Removal of the JPL * Recursive inheritance detected earlier Full explanation of changes are included in perl5100delta.pod.txt (in the case materials directory) XSUB interface (Uncommitted) ------------------------- There have been no major changes since 5.8.x Binary interface (Uncommitted) --------------------------- Perl 5.10.x is not binary-compatible with 5.8.x. XS modules will require recompilation. Directory layout (Uncommitted) --------------------------- Unchanged from PSARC/2001/145. /usr/perl5/ bin -> [version]/bin man -> [version]/man pod -> [version]/pod [version]/ lib/ Perl modules. bin/ Perl binary, related tools. man/ Perl documentation in man form. pod/ Perl portable documentation. site-perl/ [version]/ User-installed modules. vendor-perl/ [version]/ SMI-provided unbundled modules. 4.6. Doc Impact: New perl documentation will be included, from that distributed with the source 4.7. Admin/Config Impact: No impact. 4.8. HA Impact: No impact. 4.9. I18N/L10N Impact: No impact. 4.10. Packaging & Delivery: SUNWperl510 will contain the entire distribution. 4.11. Security Impact: No impact. 4.12. Dependencies: This project has no external dependencies. 5. Reference Documents: PSARC/1999/192 Including Perl 5 with Solaris PSARC/2001/145 Update of Perl shipped with Solaris to version 5.6.1 PSARC/2003/661 Update Perl to version 5.8.x PSARC 2005/462 Removal of Perl 5.6.1 from Solaris 11 .../materials/perl5100delta.pod.txt - description of all changes from 5.8 -> 5.10 6. Resources and Schedule: 6.1. Projected Availability: Available for the OpenSolaris 2010.02 release. 6.2. Cost of Effort: 4 weeks. 6.3. Cost of Capital Resources: None. 6.4. Product Approval Committee requested information: 6.4.1. Consolidation or Component Name: SFW. 6.4.3. Type of CPT Review and Approval expected: FastTrack. 6.4.4. Project Boundary Conditions: None. 6.4.5. Is this a necessary project for OEM agreements: No. 6.4.6. Notes: None. 6.4.7. Target RTI Date/Release: July 2009. 6.4.8. Target Code Design Review Date: N/A - code is externally sourced. 6.4.9. Update approval addition: No. 6.5. ARC review type: FastTrack. 6.6. ARC Exposure: Open. 7. Prototype Availability: 7.1. Prototype Availability: June 2009. 7.2. Prototype Cost: 2 weeks.