Pegasus Enhancement Proposal (PEP)

PEP #: 133

Title: A framework and recommendations for building Open Pegasus installables.

Version: 1.2 

Created: 19 Feb 2004

Authors: Seema Gupta

Status:  Approved

 

Version History:

Version Date Author Change Description
1.0
19 002 2004 Seema Gupta Initial Submission
1.1 22 003 2004 Seema Gupta Added Inno setUp URL and added little more description on what is proposed.
1.2
06 004 2004
Seema Gupta
Changed the status to Approved.

 


Abstract: This is a concept PEP to summarize and propose solutions to the challenges faced while building pegasus on different platforms. The PEP targets various Open Pegasus users who are from different domains and their interaction with the product varies according to their requirements.


Definition of the Problem

In present scenario w.r.t Pegasus, any person working with pegasus onany platform has to go through a long procedure  of building and setting up Pegasus on his machine before he could actually start working with the product. The procedure is same for everybody even if he just wants to use Open Pegasus in an application environment or he wants to proceed with core development of Open Pegasus. This long procedure of setting up Open Pegasus sometimes can turn out to be big hindrance for a person who just wants to run and get a feel of Open Pegasus.

Proposed Solution

What is proposed :

The proposed solution is : Write scripts to generate an install image for Open Pegasus by using any development environment  of Open Pegasus. This in turn means if we have Open Pegasus built on one machine, we can generate an install image of Open Pegasus using these scripts by making them
point to the Open Pegasus setup on the corresponding machine.

We propose to commit only these scripts to CVS to make them available to Open Pegasus Community. There will not be any binaries required. If desired, somebody ( perhaps from TOG) can generate an install image for Open Pegasus using anyexisting development environment for Open Pegasus  and post it to OpenPegasussite.

There will be different scripts for generating different level of installables for Open Pegasus depending upon the user's requirements. 

Install Image Categories
The various pegasus users can be broadly divided into following categories:
A) Users who just want to use Open Pegasus as a product.
B) Users who just want to develop clients or client applications for Open Pegasus.
C) Users who just want to develop providers for Open Pegasus.
D) Users or more specifically the developers who want to actually contribute to development of Open Pegasus.

So we can assume that a category A person will not be interested in going for a long process of building pegasus most of the times. Thus, depending upon the various categories , there can be mainly following four levels of Open Pegasus Install:

1) Installable for Category A users which installs only cimom binaries with configuration files and builds the repository.
2) Installable for Category B users which installs cimom binaries with configuration files, builds the repository and installs link libraries and files to build clients (say  indication listener, indication subscriber etc.).
3) Installable for Category C users which installs cimom binaries with configuration files, builds the repository, installs link libraries and files to buildclients and finally installs link libraries and files  to write providers.
4) Installable for Category D users. For this category users we propose no automated install support. They can download the currently available zipsource file and build Open Pegasus.

At present it's not decided if the various install levels will be addressed by separate scripts or there will be common scripts to generatedifferent levels of Open Pegasus install image. Further details on this issue will be discussed in the follow up PEPs . ( To get a feel of these follow up PEPs, please refer to PEP 148 which is first follow up PEP for this concept PEP).

Only these scripts to build the installable will be committed to CVS. Wecan include a readme or a cookbook documenting step by step procedure touse these scripts to build the selected executable.

We propose to start with the installable for Category A users first. Later we can move towards developing  the installable for Category B and C users.

Scripting Tools :
The scripts can be written using different tools like Installshield Developer , Inno Setup Installer etc. We propose to start with Inno Setup scripts and not Install Shield until some time when we are comfortable with Inno Setup and installable architecture in general. For more information on Inno Setup , please refer to URLs: http://gnuwin.epfl.ch/apps/innosetup/en/index.html or http://www.jrsoftware.org/ .

Platforms Targeted:
We propose to start with all the above mentioned levels of installable for windows and then extend it to Linux.

Rationale

To simplify Open Pegasus build for users from different domains and backgrounds whose Open Pegasus requirements vary in their scope.

Schedule

The first follow on PEP will be submitted by 23/03/2004.

Discussion


Copyright (c) 2004 EMC Corporation; Hewlett-PackardDevelopment 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.