Template Version: @(#)onepager.txt 1.35 07/11/07 SMI Copyright 2007 Sun Microsystems 1. Introduction 1.1. Project/Component Working Name: OpenSolaris Distribution Constructor 1.2. Name of Document Author/Supplier: Karen.Tung@sun.com 1.3. Date of This Document: 08/27/2009 1.3.1. Date this project was conceived: November 2007 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: Solaris Software 1.5. Email Aliases: 1.5.1. Responsible Manager: Dana.Barsan@sun.com 1.5.2. Responsible Engineer: Karen.Tung@sun.com 1.5.3. Marketing Manager: Glynn.Foster@sun.com 1.5.4. Interest List: caiman-discuss@opensolaris.org 2. Project Summary 2.1. Project Description: The Distribution Constructor(DC) is a tool for building and customizing OpenSolaris installation images. Users specify the processing needed to create an image containing the desired content via a configuration file. DC also provides checkpointing and logging features to allow for rapid development and testing. 2.2. Risks and Assumptions: While the Distribution Constructor application itself will be supported. The custom scripts and custom images users produce using DC will not be supported. 3. Business Summary 3.1. Problem Area: Installable Solaris CD/DVD images have historically been built by the Solaris Release Engineering(RE) organization. Solaris RE has an internally developed set of tools that they use for building these images. This set of tools is heavily dependent on Sun's internal system architecture, and they are not particularly well documented or easy to use. In addition, the RE tools require that all packages from Solaris be included in the image at all times. Unless one has access to these tools and knows how to modify them, there's no easy way to build an image with just a subset of the Solaris packages. Many customers want to create their own custom deployment images. This is a feature that's commonly available in many other platforms (both Unix and Linux). Solaris does not provide the feature. As a result, unofficial blueprint documents were written by field or marketing personnel to meet their customers' requirements. These documents are posted on sun.com without any product support. 3.2. Market/Requester: The Distribution Constructor will be used by OpenSolaris release engineering, other OpenSolaris projects, such as the LiveCD project, Automated Installer project, and the xVM project. It will also be used by any OpenSolaris developer who wants to create their own OpenSolaris based distribution. 3.3. Business Justification: An open sourced tool is needed for building and customizing OpenSolaris distributions. 3.4. Competitive Analysis: Many Linux distributions provide tools for creating customized distributions. For example: * Fedora - Fedora Revisor (http://revisor.fedoraunity.org/) * Ubuntu - Ubuntu Reconstructor (http://www.reconstructor.org) * Suse - SUSE studio (http://susestudio.com/) * HP-UX - HP-UX Ignite (http://docs.hp.com/en/IUX/) * AIX - mksysb/mkcd OpenSolaris needs to provide similar tools to be competitive. 3.5. Opportunity Window/Exposure: The ability to create customizable Solaris distributions is needed as soon as possible. The prototype version of Distribution Constructor was introduced when OpenSolaris preview was released. The production version has been available since Oct 2008. It is used for building all images for OpenSolaris 2008.11 and beyond. 3.6. How will you know when you are done?: The Distribution Constructor can be used for building all OpenSolaris images. 4. Technical Description: 4.1. Details: Please see the Distribution Constructor design specification: http://opensolaris.org/os/project/caiman/Constructor/design_notes/DC_DESIGN_DOC.pdf 4.2. Bug/RFE Number(s): Bugzilla Bugs: 1903 Distribution Constructor Update 2617 Moving new Distro Constructor code to slim_source gate 3018 Implement clean interfaces for XML manifest setup and use 3038 Augment finalizer to support multiple common script arguments 2959 finalizer module should be integrated into DC 3152 Convert part of old DC into finalizer scripts for new DC 3151 Distro Constructor package 4.3. In Scope: 4.4. Out of Scope: - There's no GUI/BUI/TUI interface to the DC in this proposal. All user input to the DC are specified in the XML manifest file. Users will have to edit this file manually. - Even though the DC is used to build the OpenSolaris Live CD and Automated Installer images, the algorithm in the finalizer scripts for creating these images are not part of Distribution Constructor design. 4.5. Interfaces: The Distribution Constructor will introduce the following interfaces: Table 1 Interfaces Exported ____________________________________________________________________________ | Interface |Commitment |Comments | |_______________________________________|____________|_______________________| |/usr/share/man/man1m/distro_const.1m |committed | man page | |/usr/share/man/man4/dc_parameters.4 |uncommitted | man page | |manifest schema |uncommitted | | |finalizer API |uncommitted | | |ManifestServ |uncommitted | | |ManifestRead |uncommitted | | |SUNWdistro-const |committed | package | |_______________________________________|____________|_______________________| The Distribution Constructor will import the following interfaces: Table 2 Interfaces Imported by Distribution Constructor _____________________________________________________________________________ |Interface | Classification | Comments | |_______________________|_______________________|____________________________| |zfs(1m) | committed | man page | |xmllint(1) | committed | PSARC/2001/175 | |libxml(3) | committed | PSARC/2001/175 | |_______________________|_______________________|____________________________| The sample scripts delivered by the Distribution Constructor project will import the following interfaces: Table 3 Interfaces Imported by Distribution Constructor sample scripts _____________________________________________________________________________ |Interface | Classification | Comments | |_______________________|_______________________|____________________________| |pkg(1m) | under development | PSARC/2008/190 | |lofiadm(1m) | committed | PSARC/1999/463 | |_______________________|_______________________|____________________________| 4.6. Doc Impact: The following documents are delivered for DC: - man page for distro_const(1M) - man page for dc_parameters(4): this describe parameters in the manifest - OpenSolaris Distribution Constructor Guide 4.7. Admin/Config Impact: N/A 4.8. HA Impact: N/A 4.9. I18N/L10N Impact: Content of the manifest file will not be localized. The man pages, user guide and output/errors from the distro_const(1M) need to be localized. 4.10. Packaging & Delivery: - Code that's strictly related to the DC application will be delivered in package: SUNWdistro-const - Code that is introduced by DC, but is also used by other install technologies will be delivered in package: SUNWinstall 4.11. Security Impact: N/A 4.12. Dependencies: DC depends on the following features: - zfs(1M) - xmllint(1) - libxml(3) Finalizer scripts provided by DC depends on the following features: - pkg(1) - lofiadm(1M) 5. Reference Documents: PSARC/2007/039 - Caiman: New Solaris Installation Experience PSARC/2008/190 - Image Packaging System Distribution Constructor web page: http://opensolaris.org/os/project/caiman/Constructor/ 6. Resources and Schedule: 6.1. Projected Availability: This feature has been available in OpenSolaris since Oct 2008 6.2. Cost of Effort: In 2008-2009, the following resource was assigned to work in DC: * development: About 30 person months * testing: About 9 person months * documentation: About 3 person months 6.3. Cost of Capital Resources: There are no specific capital costs identified explicitly for this project. 6.4. Product Approval Committee requested information: 6.4.1. Consolidation or Component Name: ON 6.4.3. Type of CPT Review and Approval expected: Standard 6.4.4. Project Boundary Conditions: 6.4.5. Is this a necessary project for OEM agreements: No 6.4.6. Notes: 6.4.7. Target RTI Date/Release: Solaris Next 6.4.8. Target Code Design Review Date: Design and code has already been reviewed and integrated into the slim_source gate. 6.4.9. Update approval addition: N/A 6.5. ARC review type: Standard 6.6. ARC Exposure: open 6.6.1. Rationale: 7. Prototype Availability: 7.1. Prototype Availability: A fully functioning product has been available in OpenSolaris since Oct 2008 7.2. Prototype Cost: N/A