Pegasus Enhancement Proposal (PEP)

PEP #: 186

Title: Product ID Override Clean-up

Version: 1.0

Created: 26 July 2004

Authors: Roger Kumpf

Status: Complete

Version History:

Version Date Author Change Description
1.0 26 July 2004 Roger Kumpf Initial submittal

 


Abstract: The product name, version, and status associated with a Pegasus release should have default values that apply across platforms and yet be overridable by vendors. Support for this feature is partially in place, but needs clean-up.


Definition of the Problem

Pegasus currently has a mechanism to override the default Pegasus product name, version, and status (collectively referred to as "product ID" in this document). This mechanism is configured on a per-platform basis, such that different product ID values can be statically defined for each platform.

The existing mechanism is deficient in several respects:

Proposed Solution

A PEGASUS_OVERRIDE_PRODUCT_ID flag is read from the environment to determine whether the Pegasus default product ID is overridden. If this variable is not defined, the Pegasus default product ID is used, as defined in pegasus/src/Pegasus/Common/PegasusVersion.h. If the override variable is defined, PegasusVersion.h will instead include the file pegasus/src/Pegasus/Common/ProductVersion.h.

The ProductVersion.h file is not included in the CVS repository, but is instead supplied externally by the vendor doing the override. This file must include definitions for the same variables as are otherwise defined in PegasusVersion.h (e.g., PEGASUS_NAME, PEGASUS_VERSION, and PEGASUS_STATUS), so that the code that uses these values does not need to understand whether a product ID override is in effect.

The product ID variables defined in PegasusVersion.h are renamed from {PEGASUS_NAME, PEGASUS_VERSION, PEGASUS_STATUS} to {PEGASUS_PRODUCT_NAME, PEGASUS_PRODUCT_VERSION, PEGASUS_PRODUCT_STATUS} for clarity.

The PEGASUS_OVERRIDE_PRODUCT_ID flag takes the place of the previously existing PLATFORM_VERSION_SUPPORTED flag, which is hereby removed.

Rationale

The proposed solution addresses the three deficiencies listed above. Code will be simplified by the use of the same variables whether the default product ID or an override is used. Pegasus consistency across platforms is improved through the definition of a single default Pegasus product ID.

Schedule

ActionPlannedActualComment
PEP Submitted7/26/047/26/04
PEP Reviewed7/30/047/30/04
PEP Approved8/6/048/3/04
Code Committed9/3/041/7/05


Copyright (c) 2004 EMC Corporation; Hewlett-Packard Development Company, L.P.; IBM Corp.; The Open Group; VERITAS Software Corporation

Permission is hereby granted, free of charge, to any person obtaining a copy  of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED  "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


Template last modified: March 9th 2004 by Martin Kirk
Template version: 1.8