(file) Return to readme.html CVS log (file) (dir) Up to [Pegasus] / pegasus / Attic

Diff for /pegasus/Attic/readme.html between version 1.1 and 1.11.2.3

version 1.1, 2003/11/13 16:02:37 version 1.11.2.3, 2006/07/12 19:53:48
Line 1 
Line 1 
 <html>  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
   <html><head>
   
   
   
   
   <link rel="stylesheet" href="PEP_251_Draft_251_Readme_Version_1_2_files/info1margins.css">
  
 <head>  
 <meta name="GENERATOR" content="Microsoft FrontPage 5.0"> <meta name="GENERATOR" content="Microsoft FrontPage 5.0">
 <meta name="ProgId" content="FrontPage.Editor.Document"> <meta name="ProgId" content="FrontPage.Editor.Document">
 <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"><title>OpenPegasus</title>
 <title>OpenPegasus</title>  
 </head>  
   
 <body>  
  
                           <script language="javascript" src="PEP_251_Draft_251_Readme_Version_1_2_files/js.htm"></script></head><body>
 <p align="center"><b><font size="4">Pegasus Enhancement Proposal (PEP)</font></b></p> <p align="center"><b><font size="4">Pegasus Enhancement Proposal (PEP)</font></b></p>
 <p style="margin-top: 0; margin-bottom: 0"><b>PEP #:</b> 103</p>  <p style="margin-top: 0pt; margin-bottom: 0pt;"><b></b><br>
 <p style="margin-top: 0; margin-bottom: 0"><b>Title: </b>OpenPegasus Version 2.3  </p>
 Release Readme file</p>  <p style="margin-top: 0pt; margin-bottom: 0pt;">&nbsp;</p>
 <p style="margin-top: 0; margin-bottom: 0"><b>Version: </b>1.0</p>  <p style="margin-top: 0pt; margin-bottom: 0pt;"><b>Title: </b>OpenPegasus
 <p style="margin-top: 0; margin-bottom: 0"><b>Created:</b> 12 November 2003</p>  Release 2.5.1 and subsequent 2.5 minor releases Readme file</p>
 <p style="margin-top: 0; margin-bottom: 0"><b>Authors: </b>Karl Schopmeyer</p>  <p style="margin-top: 0pt; margin-bottom: 0pt;">&nbsp;</p>
 <p style="margin-top: 0; margin-bottom: 0"><b>Status:&nbsp; </b>draft</p>  <p style="margin-top: 0pt; margin-bottom: 0pt;"><b>Version: </b><span style="color: rgb(0, 0, 0);">
 <p style="margin-top: 0; margin-bottom: 0"><b>Version History:</b></p>  1.3<br>
 <table border="1" cellspacing="1" bordercolordark="#666666"  </span></p>
     bordercolorlight="#CCCCCC" width=100%  <p style="margin-top: 0pt; margin-bottom: 0pt;"><b>Created:</b> 20th March 2006</p>
     style='font-size=10.0pt;font-family:Arial'>  <p style="margin-top: 0pt; margin-bottom: 0pt;">&nbsp;</p>
   <tr>  <p style="margin-top: 0pt; margin-bottom: 0pt;"><b>Authors: </b>Martin Kirk<br>
     <th bgcolor="#CAE6CA">Version</th>  </p>
     <th bgcolor="#CAE6CA">Date</th>  <p style="margin-top: 0pt; margin-bottom: 0pt;">&nbsp;</p>
     <th bgcolor="#CAE6CA">Author</th>  <p style="margin-top: 0pt; margin-bottom: 0pt;"><b>Status:&nbsp; </b>Draft</p>
     <th bgcolor="#CAE6CA">Change Description</th>  <p style="margin-top: 0pt; margin-bottom: 0pt;">&nbsp;</p>
   <p style="margin-top: 0pt; margin-bottom: 0pt;"><b>Version History:</b></p>
   <table bordercolordark="#666666" bordercolorlight="#cccccc" style="font-family: Arial;" border="1" cellspacing="1" width="100%">
     <tbody>
       <tr>
         <th bgcolor="#cae6ca">Version</th>
         <th bgcolor="#cae6ca">Date</th>
         <th bgcolor="#cae6ca">Author</th>
         <th bgcolor="#cae6ca">Change Description</th>
   </tr>   </tr>
   <tr>   <tr>
     <td align="center">1.0</td>     <td align="center">1.0</td>
     <td align="center">12 Novemberl 2003</td>        <td align="center">March 20th 2006</td>
     <td align="center">Karl Schopmeyer</td>        <td align="center">Martin Kirk</td>
     <td>Update from 2.2 Release notes. Converted to HTML</td>        <td>First draft, basically unchanged from 2.5 ReadMe except for version
   </tr>                  numbers and typos</td>
   <tr>      </tr>
     <td align="center">&nbsp;</td>      <tr>
     <td align="center">&nbsp;</td>        <td style="vertical-align: top;" align="center">1.1</td>
     <td align="center">&nbsp;</td>        <td style="vertical-align: top; text-align: center;">March 23rd 2006</td>
     <td>&nbsp;</td>        <td style="vertical-align: top; text-align: center;">Martin Kirk</td>
         <td style="vertical-align: top; text-align: center;">
                   <p style="text-align: left;">Draft for ballot incorporating draft 1.0
                   comments.</p></td>
       </tr>
       <tr>
         <td style="vertical-align: top;" align="center">1.2</td>
         <td style="vertical-align: top;" align="center">March 26th 2006</td>
         <td style="vertical-align: top;" align="center">Martin Kirk</td>
         <td style="vertical-align: top;">Draft for Steering Committee approval.
         Approved</td>
       </tr>
       <tr>
         <td style="vertical-align: top; color: rgb(0, 0, 0);" align="center">1.3</td>
         <td style="vertical-align: top; color: rgb(0, 0, 0);">
         <p align="center">July 12th 2006</td>
         <td style="vertical-align: top; color: rgb(0, 0, 0);">
         <p align="center">Karl Schopmeyer</td>
         <td style="vertical-align: top; color: rgb(0, 0, 0);">Update to Reflect
         that it applies to subsequent 2.5 minor releases. <font color="#FF0000">
         (Note Approved)</font></td>
       </tr>
       <tr>
         <td style="vertical-align: top;" align="center">&nbsp;</td>
         <td style="vertical-align: top;">&nbsp;</td>
         <td style="vertical-align: top;">&nbsp;</td>
         <td style="vertical-align: top;">&nbsp;</td>
   </tr>   </tr>
     </tbody>
  </table>  </table>
 <hr> <hr>
 <p><b>Abstract:</b>&nbsp; Installation, build, operation information on the  <p><b>Abstract:</b>&nbsp; Installation, build, operation information on
 Pegasus Platform Version 2.3 Release. Note that if this readme conflicts with  the OpenPegasus Version 2.5.1 Release and subsequent minor releases. Note that if this readme
 the documentation in the release notes or interface defintion documents for a  conflicts with the documentation in the release notes or interface
 particular release, those documents should be considered authorative. This is a  definition documents for a particular release, those documents should
 simplified overview to act as an introduction to Pegasus.</p>  be considered authoritative. This is a simplified overview to act as an
   introduction to OpenPegasus.</p>
 <hr> <hr>
   <p align="center"><b><font size="5">OpenPegasus - A Manageability
 <p align="Center"><b><font size="5">OpenPegasus - A Manageability Services Broker  Services Broker for the DMTF CIM/WBEM Standards
 for the DMTF CIM/WBEM Standards  </font></b></p>
 </font>  <p align="left"><b>Tagline:</b> OpenPegasus is an object manager for
 </b>  DMTF CIM objects written in C++
   and hosted by The Open Group </p>
 <p align="left">  
 <b>Tagline:</b> OpenPegasus is an object manager for DMTF CIM objects written in C++  
 and supported by The Open Group </p>  
   
 <p align="left"> <p align="left">
   <b>STATUS:</b> Revised July 2006 for&nbsp; Pegasus release version 2.5.1 and
 <b>STATUS:</b> Revised October 2003 for&nbsp; Pegasus release version 2.3.  subsequent releases&nbsp; - Draft<font color="#FF0000"> (Change to Architecture
 &nbsp;</p>  Team Approved)</font><br>
   </p>
 <p align="center">  <a href="#Overview">Overview</a>
 <b><font size="4">Table of Contents</font></b><p align="left" style="margin-top: 0; margin-bottom: 0">  <blockquote style="margin-top: 0pt; margin-bottom: 0pt;">
 <a href="#Overview">&nbsp;Overview</a>    <a href="#peg_sup_plat">Pegasus Supported Platforms</a><br>
           <a href="#cmnd">Commands</a><br>
 <p align="left" style="margin-top: 0; margin-bottom: 0">    <a href="#docs">Documentation</a><br>
 <a href="#Availability of Pegasus">Availability of Pegasus</a><p align="left" style="margin-top: 0; margin-bottom: 0">    <a href="#part">How to Participate</a><br>
 <a href="#Pegasus Major Components">Pegasus Major Components</a><p align="left" style="margin-top: 0; margin-bottom: 0">  </blockquote>
 <a href="#Pegasus Supported Platforms">Pegasus Supported Platforms</a><p align="left" style="margin-top: 0; margin-bottom: 0">  <a href="#inst_peg">Installing Pegasus</a>
 <a href="#Pegasus Dependencies">Pegasus Dependencies </a>  <blockquote style="margin-top: 0pt; margin-bottom: 0pt;"><a href="#download">
           Obtain Pegasus in Source Code or Binary Executable Format</a><br>
 <p align="left" style="margin-top: 0; margin-bottom: 0">          <a href="#peg_dep">Verify Dependencies</a><br>
 <a href="#The Pegasus Directory Structure">The Pegasus Directory Structure</a>    <a href="#set_envt_var">Set the environment variables</a></blockquote>
   <a href="#build_peg">Building Pegasus</a><blockquote style="margin-top: 0pt; margin-bottom: 0pt;">
 <p align="left" style="margin-top: 0; margin-bottom: 0">  <a href="#note_bld_peg_lnx">Building Pegasus on Linux</a><br>
 <a href="#Pegasus Installation">Installation</a>  <a href="#note_bld_peg_ssl">Building Pegasus with SSL</a><br>
   <a href="#bld_peg_win">Building Pegasus on Windows 2000 or Windows XP With Microsoft Visual C++</a><br>
 <p align="left" style="margin-top: 0; margin-bottom: 0">    <blockquote style="margin-top: 0pt; margin-bottom: 0pt;"> <a href="#mu_utility">The MU Utility</a><br>
 <a href="#Building Pegasus">Building Pegasus </a>    </blockquote>
   </blockquote>
 <p align="left" style="margin-top: 0; margin-bottom: 0">  <a href="#pop_peg_rep">Populate the Pegasus repository</a><br>
 <a href="#Populate the Repository">Populate the Repository</a>  <a href="#reg_prov">Register providers in the Pegasus environment</a><br>
   <a href="#test">Test the Pegasus installation</a><br>
 <p align="left" style="margin-top: 0; margin-bottom: 0">  <blockquote style="margin-top: 0pt; margin-bottom: 0pt;"> <a href="#test_icu">Testing with ICU enabled</a></blockquote>
 <a href="#Registering Providers in the Pegasus Environment">Registering  <a href="#sec0">Security Considerations</a><br>
 Providers</a><p align="left" style="margin-top: 0; margin-bottom: 0">  <hr>
 <a href="#The MU Utility">The MU Utility</a>  
   
   
 <p align="left" style="margin-top: 0; margin-bottom: 0">  
 <a href="#Notes about Building Pegasus on Linux">Notes about Building Pegasus on Linux</a>  
   
 <p align="left" style="margin-top: 0; margin-bottom: 0">  
 <a href="#Notes about Building Pegasus with SSL">Notes on building Pegasus with SSL</a>  
   
 <p align="left" style="margin-top: 0; margin-bottom: 0">  
 <a href="#Building Pegasus on Windows 2000 or Windows XP With Microsoft Visual C++">Building Pegasus on Windows 2000 or Windows XP With Microsoft Visual C++</a><p align="left" style="margin-top: 0; margin-bottom: 0">  
 <a href="#Installing the Pegasus HTML Test Client">Installing the Pegasus HTML Test Client  
 </a>  
   
 <p align="left" style="margin-top: 0; margin-bottom: 0">  
 <a href="#Development with Pegasus and Pegasus Tools">Development with Pegasus and Pegasus Tools</a>  
   
 <p align="left" style="margin-top: 0; margin-bottom: 0">  
 <a href="#Commands">Commands</a>  
   
 <p align="left" style="margin-top: 0; margin-bottom: 0">  
 <a href="#Creating SSL certifications">Creating SSL certifications</a>.  
   
 <p align="left" style="margin-top: 0; margin-bottom: 0">  
 <a href="#Testing with ICU enabled">Testing with ICU enabled </a>  
   
 <p align="left" style="margin-top: 0; margin-bottom: 0">  
 <a href="#Pegasus Documentation">Documentation</a>  
   
 <p align="left" style="margin-top: 0; margin-bottom: 0">  
 <a href="#Participate!">Participate</a>  
   
 <h1><a name="Overview">Overview</a> </h1> <h1><a name="Overview">Overview</a> </h1>
   <b>OpenPegasus (also referred to as Pegasus):</b>
 <p>OpenPegasus (also referred to as Pegasus):  Pegasus is an open-source CIM Server for DMTF CIM objects. It is
   written
 Pegasus is an open-source object manager (CIMOM) for DMTF CIM objects. It is written  in C++ and includes the Object manager (CIMOM), a set of defined
 in C++ and includes the Object manager, a set of defined interfaces, and  interfaces, an implementation of the CIMOperations over HTTP operations
 Interface libraries  and their cimxml HTTP encodings, and Interface libraries
 for both client and providers. It is maintained for both client and providers. It is maintained
 consistent with the DMTF CIM and WBEM specifications except for&nbsp; exceptions  consistent with the DMTF CIM and WBEM specifications except for&nbsp;
 noted in the documentation.  exceptions
 <P>  noted in the documentation.<br>
 Pegasus is open source and is covered under the MIT open-source license.  <br>
 <P>  <span class="norm"></span>OpenPegasus includes components for: <br>
 Pegasus is being developed and maintained under the auspices of The Open  <ol>
 Group. Pegasus is maintained under the license defined in the doc directory    <li>DMTF compliant CIMServer that processes CIM operations, CIM
 (LICENSE) of this release. This licensing is intended to support as wide a  Indications, and
 distribution as possible with minimal demands on the users.  includes class and instance repositories and interfaces for creating
 <P>  CIM
 More information on this project, access to the CVS, and documentation on  Providers and CIM Clients.</li>
 Pegasus are available from the OpenGroup WEB site.    <li>Provider interfaces so that providers may be developed in multiple
 <P>  languages (i.e.
 &nbsp;&nbsp;&nbsp; <a href="http://www.opengroup.org">http://www.openpegaus.org</a><p>  C++, C, Java).</li>
 There are separate documents    <li>A number of CIM clients and providers for basic instrumentation.</li>
 <ul>          <li>A number of CIM server administration commands.</li>
 <li>What's new for this release - WHATSNEW and the release notes for each    <li>A MOF compiler.</li>
 release.<li>What's Broken - BUGS - See the ReleaseNotes for this release in the CVS and    <li>A number of sample CIM clients and providers to provide usage examples,</li>
 the web site as a Pegasus PEP.<li>Release Notes for each released version</ul>          <li>CIM server test functions providing both unit tests and end-to-end
           system tests.</li>
     <li>More complete information on the exact functions
 <p>The release notes are available on the WEB site as Pegasus PEP documents and  and their functional state is available from the release notes for each
 in the CVS for each release.</p>  OpenPegasus release.</li>
 <table border="1" cellspacing="1" width="31%" id="AutoNumber3">  </ol>
   <tr>  OpenPegasus is open source and is covered under the MIT open-source
     <td width="42%">Release</td>  license.
     <td width="58%">Release Notes PEP</td>  OpenPegasus is being developed and maintained under the auspices of The Open
   </tr>  Group.&nbsp; OpenPegasus is maintained under the license defined in <font style="color: rgb(0, 0, 0);">pegasus/doc/license.txt</font>.&nbsp;
   <tr>  This licensing is intended to support as
     <td width="42%">2.0</td>  wide a
     <td width="58%">None</td>  distribution as possible with minimal demands on the users.<br>
   </tr>  <br>
   <tr>  More information on this project, access to the CVS, and
     <td width="42%">2.1</td>  documentation on
     <td width="58%">None</td>  Pegasus are available from the OpenGroup WEB site - &nbsp;&nbsp;&nbsp; <a target="blank" href="http://www.openpegasus.org/">http://www.openpegasus.org</a><br>
   </tr>  <h4><a name="peg_sup_plat">Pegasus Supported Platforms</a></h4>
   <tr>  <p>
     <td width="42%">2.2</td>  Pegasus is regularly tested against a variety of platforms by the
     <td width="58%">PEP 57</td>  development group.&nbsp; The results of the nightly tests can be found
   </tr>  here: <a href="http://cvs.opengroup.org/cgi-bin/pegasus-build-status.cgi">Nightly
   <tr>  test status</a> .&nbsp; The Release notes provides additional details
     <td width="42%">2.3</td>  regarding the platforms.&nbsp;
     <td width="58%">PEP 98</td>  PEP 249 is the Release Notes PEP for 2.5.x.<br>
   </tr>  </p>
 </table>  <h4><a name="cmnd">Commands</a></h4>
   <p></p>The manpages for each of the commands can be found in the Pegasus source
   tree in the pegasus/rpm/manLinux/ directory.<p></p>
 <h1><a name="Availability of Pegasus">Availability of Pegasus</a></h1>  <p>To see simple help for a command, invoke it with the "--help" option.</p>
   <p><font face="Verdana">Here is a list of useful
 <p>Pegasus is distributed as open source under the MIT open-source license. The distribution is available via  commands:</font></p>
 CVS and snapshot images in tar and zip file formats.  <span style="font-weight: bold;" class="norm"></span><span style="font-family: times new roman; font-weight: bold;"><span class="norm"></span></span><span style="font-weight: bold;">Some of
 The source code from CVS can be found at the following Open Group CVS server;  the basic commands:</span>
 <p>  <br>
 <font face="Courier New">&nbsp;&nbsp;&nbsp;  NOTE: Refer to the admin guide in pegasus/doc/Admin_Guide_Release.pdf
 cvs.opengroup.org:/cvs/MSB </font>  for
 <p>  more information about administering the Pegasus CIMServer.<br>
 using the password authenticating server option (pserve).  
 <p>  
 Anonymous access for read is with the name and password &quot;anon&quot; as follows:  
 <blockquote>  
 <p style="margin-top: 0; margin-bottom: 0">  
 <font face="Courier New">%export CVSROOT=:pserver:anon@cvs.opengroup.org:/cvs/MSB  
 </font>  
 <p style="margin-top: 0; margin-bottom: 0"><font face="Courier New">%cvs login  
 </font>  
 </blockquote>  
 <p>  
 When requested, enter the password &quot;anon&quot;.  
 The source tree is in the directory pegasus. To check out the complete Pegasus  
 source tree just type:  
 <p>  
 <font face="Courier New">&nbsp;&nbsp;&nbsp;  
 cvs co pegasus </font>  
 <p>  
 A Pegasus directory will be created under the current directory and populated  
 with the complete source tree and documentation. To get the latest updates  
 after a checkout just type this from Pegasus root:  
 <p>  
 <font face="Courier New">&nbsp;&nbsp;&nbsp;  
 cvs update -d </font>  
   
 <p>  
 Active contributors to Pegasus have write access to the CVS repository.  
 If you are interested in contributing back to the Pegasus project,  
 (i.e. write (checkin) access to CVS) please request access from either  
 Martin Kirk (m.kirk@opengroup.org) or Karl Schopmeyer  
 <a href="mailto:(k.schopmeyer@opengroup.org">(k.schopmeyer@opengroup.org</a>).  
   
 <h1>  
 <a name="Pegasus Major Components">Pegasus Major Components</a></h1>  
   
 <p>The major components of Pegasus are:  
 <ul> <ul>
   <li><b>Pegasus Server</b> - WBEM/CIM Server with interfaces for providers and clients    <li>cimserver daemon=true&nbsp; (Start the server
   </li>  cimserver)</li>
   <li><b>Pegasus Repositories</b> - Today Pegasus provides a defined class repository    <li>cimserver -s&nbsp; (Shuts down the cimserver)</li>
 interface and a simple file based class repository. It also includes    <li>cimserver traceLevel=4 traceComponents=ALL&nbsp; (Starts server
 an instance repository. Note that these repository were created for  with
 functionality, not efficieny. It is expected that they will be replaced  config flags)</li>
 with other implementations of the respository function as the need arises.    <li>cimprovider -l -s&nbsp; (Lists providers and their status)</li>
   </li>    <li>cimprovider -e -m OperatingSystemModule&nbsp; (Enables the
   <li><b>Pegasus Client Library</b> - Tools for building Pegasus clients based on the Pegasus  OperatingSystem provider)</li>
 C++ interfaces and using the WBEM HTTP/XML protocols or directly    <li>cimuser -a -u guest -w &lt;ThePassword&gt; (Adds the user <span style="font-style: italic;">guest</span> with specified password)<br>
 interfacing with Pegasus.    </li>
   </li>    <li>cimuser -l&nbsp; (Lists the users )<br>
   <li><b>Pegasus Test Clients</b> - Simple test clients being developed as part of the    </li>
 Pegasus development process  </ul>
   </li>  Note:&nbsp; there are some differences between windows and other
   <li><b>Pegasus HTML Test Client</b> - To aid in testing we created a test client for  platforms in
 Pegasus that uses a WEB server (ex. Apache) with a set of CGI modules and  starting the server as a daemon/service. Whereas most supported
 HTML to allow the entry of Pegasus operations from a WEB browser as forms  platforms use
 and the receipt of the response as WEB pages. This has proven useful as a  the configuration option daemon to start the server as a service, on
 test tool and can be used for a wide variety of demonstrations.  windows it
   </li>  must be specifically installed as a service (ex. cimserver -install)
   <li><b>Pegasus Provider Library</b> - Tools for building Pegasus providers using the Pegasus  and then
 C++ interfaces.  started as a service (cimserver -start). The cimserver --help option
   </li>  explains the
   <li><b>Pegasus Providers</b> - Providers to illustrate the use of Pegasus services  exact format of the start and stop options.<h4><a name="docs">Pegasus Documentation</a></h4>
 including providers for test and demonstration.  <p>Much of Pegasus
   </li>  is documented in the PEGASUS PEPs which are the basis for approval of
   <li><b>Pegasus Control Providers</b> - Common services for use by other Pegasus  Pegasus functionality, changes, plans, etc.&nbsp; These documents are
 components to extend Pegasus capabilites.  openly available on the PEGASUS web site.&nbsp;The current documentation is
   </li>  maintained both as a manual created
   <li><b>Pegasus MOF Compiler </b>- There&nbsp; standalone compiler (cimmofl) for MOF files that can be used  under the tool DOC++ in the runtime subdirectory manual/html (see
 to install MOF into the Pegasus schema repository and also to check syntax.  doc/devManual to create), as an api document also creatable from the
   There is also a compiler that operates as a Pegasus client(cimmof)  source tree (see doc/apidoc) and as other miscellaneous documentation
 There is also a tool to extract the MOF from the repository.  in the doc directory. Also there is a set of release notes. Normally
   the release notes for the current release are available in the root
   </li>  source directory of CVS.</p>
   </ul>  <p>Note that the Pegasus WEB site at The Open Group will be the source
   of most
 <h1>  documentation in the future and today is the source of most discussion
 <a name="Pegasus Supported Platforms">Pegasus Supported Platforms</a></h1>  and
   design documentation. </p>
 <p>  <h4><a name="part">How to Participate</a></h4>
 Pegasus is regularly tested against a variety of platforms by the development  <p><span class="norm"></span><font style="color: rgb(0, 0, 0);">Contributors
 group.&nbsp; The set of platforms and exact set of compilers for any given  are welcome to participate in the OpenPegasus development effort. Join
 release is documented in the Release notes for that release (see the CVS source  the mailing list by visiting <a href="http://www.openpegasus.org/">http://www.openpegasus.org</a> and clicking on
 tree root directory or the Pegasus PEP defining the ReleaseNotes for any  Mailing Lists. Joining the pegasus-l mailing list will provide a login/password
 particular release).</p>  for the website.</font></p>
   <h1>
 <p>  <a name="inst_peg">Installing Pegasus</a> </h1>
 Generally Pegasus is supported on the following Platforms and Compilers.</p>  <h4><a name="download">Obtain Pegasus in Source Code or Binary Executable Format</a></h4>
 <table border="1" cellspacing="1" id="AutoNumber2" width="728">  <h2></h2>
   <tr>  <h2></h2>
     <td width="169" bgcolor="#99FF99"><b>Platform and OS</b></td>  <ol>
     <td width="556" bgcolor="#99FF99"><b>Compilers</b></td>  Pegasus can be obtained via any of the following:<br>
   </tr>    <ol>
   <tr>      <li>Released tarballs (see
     <td width="169">AIX</td>          <a href="http://www.openpegasus.org/page.tpl?ggid=392">Release
     <td width="556">VisualAge C++ Version</td>  tarballs link</a>)</li>
   </tr>      <li>CVS (See <a href="http://www.openpegasus.org/page.tpl?ggid=667">CVS
   <tr>  code repository</a> for
     <td width="169">HP-UX</td>  more information.)</li>
     <td width="556">HP aC++ </td>      <li>Linux RPMs. See
   </tr>  (<a href="http://www.openpegasus.org/pr">RPM
   <tr>  link</a> for
     <td width="169">Linux Itanium</td>  more information
     <td width="556">gcc</td>  )</li>
   </tr>    </ol>
   <tr>  </ol>
     <td width="169">Linux IA-32</td>  <p>NOTE: Linux RPMs are only available for a limited set of releases.
     <td width="556">gcc (versions 2.9x and 3.xx)</td>  </p>
   </tr>  <p>The distribution is available via CVS and snapshot images in
   <tr>  tar and zip file formats on the web site.
     <td width="169">Windows 2000</td>  The source code from CVS can be found at the Open Group CVS server -
     <td width="556">Microsoft Visual C++ Ver 6 and Microsoft .Net compiler  cvs.opengroup.org. The source can be checked out anonymously using the
     Version <font color="#FF0000">7</font></td>  instructions at <a href="http://www.openpegasus.org/protected/page.tpl?ggid=667">
   </tr>  http://www.openpegasus.org/page.tpl?ggid=667</a></p>
   <tr>  <p><span class="norm"></span><font style="color: rgb(0, 0, 0);">CVS
     <td width="169">Windows XP</td>  write accounts are managed by Martin Kirk of The Open Group&nbsp;</font>
     <td width="556">Microsoft Visual C++ Ver. 6 and Microsoft .Net compiler  (<a href="mailto:%28k.m.kirk@opengroup.org">m.kirk@opengroup.org</a>)&nbsp;
     Version <font color="#FF0000">7</font></td>  </p>
   </tr>  <p>RPM installation instructions can be found here: <a href="http://www.openpegasus.org/pr/">http://www.openpegasus.org/pr</a><br>
   </table>  </p>
   <strong></strong>
 <h1>  <p></p>
 <a name="Pegasus Dependencies">Pegasus Dependencies </a></h1>  <h4><a name="peg_dep">Verify Dependencies</a></h4>
   
 <p> <p>
 We have worked to minimize the dependence of Pegasus on other software We have worked to minimize the dependence of Pegasus on other software
 packages and tools. Currently Pegasus has the following dependencies: packages and tools. Currently Pegasus has the following dependencies:
 <p>  </p>
 <b>1. GNUMAKE</b> - To simplify the building of Pegasus across multiple platforms we  <p><b>1. GNUMAKE</b> - To simplify the building of Pegasus across
   multiple platforms we
 have standardized on a set of build tools including: GNUMAKE. We are using  have standardized on a set of build tools including: GNUMAKE. We are
 GNUMAKE 3.79.1 successfully both in Windows and Linux environments.  using GNUMAKE 3.79.1 successfully both in Windows and Linux
 <p>  environments.
 GNUMAKE is available from :<p>  </p>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www.gnu.org">http://www.gnu.org</a>  <p>GNUMAKE is available from :</p>
   <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a target="blank" href="http://www.gnu.org/">http://www.gnu.org</a>
 <p>  </p>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NOTE: A set of the required tools for  <p><b>2. FLEX and BISON</b> - These tools were used to develop the
 windows platforms is available on the openpegasus web site.<p>  MOF
 <b>2. MU.EXE </b>- To minimize the difference between Linux and Windows for GNUMAKE,  compiler and WQL
 we have created a utility called MU.exe. This utility is required for  parser.&nbsp; <span class="norm"></span><font style="color: rgb(0, 0, 0);">These tools are required only for
 Pegasus make with ONLY Windows environment. It is provided as an alternative to  development of the parsers, not for building Pegasus.</font></p>
 requiring a number of UNIX utilities (SH, RM, etc.) on the windows platform  <p><b>3. DOC++ </b>- The Pegasus documentation is taken from a
 and effectively provides the functions of these utilities that GNUMAKE  combination of text files
 needs. MU is not required on UNIX or LINUX platforms.  and the Pegasus header files themselves. This documentation is
 <p>  formatted with DOC++ and GAWK.&nbsp;&nbsp; <span class="norm"></span><font style="color: rgb(0, 0, 0);">These tools are required to build the
 NOTE: The binary for MU.EXE is not distributed in the Pegasus bin directory.  interface documentation set.</font>
 You must build it separately. MU source code is part of the distribution  </p>
 in the directory src/utils/MU with its own make file. You must compile MU  <p><b>4. ICU Internationalization libraries</b> - These libraries are
 before you initiate the Pegausu make.  used as the basis for message catalogs for message
 <p>  internationalization. See the ICU website
 NOTE: A copy of the binary is made available as a zip file on the Pegasus  (http://oss.software.ibm.com/icu/) for more information on these
 WEB site.  libraries</p>
 <p>  <p><span style="font-weight: bold;">5</span>. <b>OpenSSL </b>- If it
 Again, MU is used ONLY if you are using Windows.  is intended to use SSL on the
   communication protocol, the OpenSSL libraries are required.<br>
 <p>  </p>
 <b>3. FLEX and BISON</b> - These tools were used to develop the MOF compiler and WQL  <p>&nbsp; NOTE: A set of the required
 parser. Anybody intending to recompile the compiler or parser from scratch  tools for windows platforms is available on the openpegasus web
 will be required to have these tools. They are only required if changes need  site.&nbsp; <a href="http://www.openpegasus.org/pp/uploads/40/Pegasus24/www.openpegasus.org">www.openpegasus.org</a></p>
 to be made to the files for parsing and compiling.  <h4><a name="set_envt_var"><strong>Set the Environment
 <p><b>4. DOC++ </b>- The Pegasus documentation is taken from a combination of text files  Variables</strong></a></h4>
 and the Pegasus header files themselves. This documentation is formatted  <p>Before installing or running OpenPegasus, environment variables may
 with DOC++ and GAWK. These tools are required if the documentation is to  have to be defined or updated.&nbsp; <br>
 be recreated but we expect that only the core team will be recreating  </p>
 documentation.  <p>PEP 237 contains the list of environment variables and setup necessary
   to use OpenPegasus.</p>
 <p><b>5. ICU Internationalization libraries</b> - These libraries are used as  <p></p>At a minimum, the following need to be set:<p></p>
 the basis for message catalogs for message internationalization. See the ICU  
 website (http://oss.software.ibm.com/icu/) for more information on these  
 libraries<p>6. <b>OpenSSL </b>- If it is intended to use SSL on the  
 communication protocol, the OpenSSL libraries are required.<h1>  
 <a name="The Pegasus Directory Structure">The Pegasus Directory Structure</a></h1>  
 <p>  
 Pegasus is distributed as a complete source directory structure that should be  
 installed either from one of the snapshots or from CVS.  
 <p>  
 This structure is generally as follows:<p>  
 <font face="Courier New">Pegasus Source Structure</font><p>  
 <font face="Courier New">Pegasus Root directory (PEGASUS_ROOT environment  
 variable)</font><ul>  
   <li><font face="Courier New"><b>cgi</b> Source for the Pegasus WEB Based Test client  
   </font>  
   <ul>  
     <li><font face="Courier New">cgi-bin CGI Directories for WEB demonstration.  
 This directory is normally empty but can  
 be populated from the runtime with the make  
 from cgi.  
 </font></li>  
     <li><font face="Courier New">htdocs HTML Pages for Pegasus WEB demonstration  
     </font></li>  
     </ul>  
     </li>  
     <li><font face="Courier New"><b>doc</b> Miscellaneous Pegasus Documents.  
     </font>  
     <ul>  
       <li><font face="Courier New">apidoc - Source for the public api  
       documentation.</font></li>  
       <li><font face="Courier New">DevManual Source and build files for developers' manual  
 mak General make files (used by other makes)</font></li>  
       </ul>  
       </li>  
       <li><font face="Courier New"><b>mak</b> - Common make files for Pegasus  
       compilation</font></li>  
   <li><font face="Courier New"><b>Dummy</b> -</font></li>  
   <li><font face="Courier New"><b>InterfaceArchive</b> -</font></li>  
   <li><font face="Courier New"><b>rpm</b> - files for rpm installation for Linux</font></li>  
   <li><font face="Courier New"><b>Schemas</b> - Schemas used in the installation  
   of Pegasus. This includes currently released versions of the DMTF schemas in  
   subdirectories (ex. CIM27) and Pegasus local Schemas (ex. </font></li>  
       <li><font face="Courier New"><b>src</b> All Pegasus Source Files  
 </font>  
       <ul>  
         <li><font face="Courier New"><b>ACEExample</b> Test directrory with examples of the use of ACE (obsolete).  
         </font></li>  
         <li><font face="Courier New"><b>Clients</b> Source for various test  
         clients and demonstration clients.</font></li>  
         <li><font face="Courier New"><b>CGICLIENT</b> Pegasus test client that uses a WEB browser  
 JAVA Java Client support modules  
 </font></li>  
         <li><font face="Courier New"><b>Pegasus</b> - Core pegasus modules.  
         </font>  
         <ul>  
           <li><font face="Courier New"><b>Client</b> Pegasus Client API Tests  
           depends tests </font></li>  
           <li><font face="Courier New"><b>Common</b> Pegasus Common Functions (C++ source and headers  
 tests Test programs for the common functions</font></li>  
           <li><font face="Courier New"><b>Compiler</b> Pegasus MOF compiler  
 </font></li>  
           <li><font face="Courier New"><b>Config</b> Pegasus Configuration  
           functions</font></li>  
           <li><font face="Courier New"><b>Consumer</b> TBD </font></li>  
           <li><font face="Courier New"><b>ControlProviders</b> Implementation of Pegasus internal providers  
           </font></li>  
           <li><font face="Courier New"><b>ExportClient</b> TBD  
 </font></li>  
           <li><font face="Courier New"><b>ExportServer</b> TBD  
 </font></li>  
           <li><font face="Courier New"><b>Handler</b> TBD </font></li>  
           <li><font face="Courier New"><b>HandlerService</b> TBD  
 </font></li>  
           <li><font face="Courier New"><b>IndicationService</b> TBD  
 </font></li>  
           <li><font face="Courier New"><b>Listener</b> TBD </font></li>  
           <li><font face="Courier New"><b>Protocol</b> Pegasus Client HTTP/XML Protocol Modules  
 depends </font></li>  
           <li><font face="Courier New"><b>Provider</b> Pegasus Provider interface functions  
           </font></li>  
           <li><font face="Courier New"><b>ProviderManager</b> Provider Manager service that manages providers  
           </font></li>  
           <li><font face="Courier New"><b>ProviderManager2</b> Pluggable Provider Manager service.  
           Today this is not enabled by default It will become the Pegasus  
           standard provider manager at some time in the future but for now, see  
           the release notes if you want to enable it.</font></li>  
           <li><font face="Courier New"><b>Repository</b> Pegasus Repository  
           Interfaces and Simple Repository tests </font>  
           <ul>  
             <li><font face="Courier New">Tests for Repository Functions </font>  
             </li>  
             </ul>  
           </li>  
           <li><font face="Courier New"><b>Security</b> TBD </font></li>  
           <li><font face="Courier New"><b>Server</b> Pegasus Server Modules  
           </font></li>  
           <li><font face="Courier New"><b>WQL</b> TBD  
 </font></li>  
           </ul>  
           </li>  
           </ul>  
           </li>  
           <li><font face="Courier New"><b>Providers</b> Pegasus test and required providers  
           </font>  
           <ul>  
             <li><font face="Courier New"><b>generic</b> TBD this and following IndicationConsumer  
             </font></li>  
             <li><font face="Courier New"><b>Linux</b> </font></li>  
             <li><font face="Courier New"><b>ManagedSystem</b> Providers  
             associated with managing the Pegasus System</font></li>  
             <li><font face="Courier New"><b>slp</b> -&nbsp; </font></li>  
             <li><font face="Courier New"><b>statistic</b> - Providers for  
             Pegasus statistics.</font></li>  
             <li><font face="Courier New"><b>sample</b> Sample providers for the  
             major provider types.</font></li>  
             <li><font face="Courier New"><b>testproviders</b> </font></li>  
             </ul>  
             </li>  
             <li><font face="Courier New"><b>Server</b> Pegasus executable build  
             </font></li>  
             <li><font face="Courier New"><b>slp</b> - TBD</font></li>  
             <li><font face="Courier New"><b>Standard Includes</b> - TBD</font></li>  
             <li><font face="Courier New"><b>test</b> - Directory of end-end  
             tests that are regularly conducted on Pegasus</font></li>  
             <li><font face="Courier New"><b>tools</b> MU and other utilities written for Pegasus support  
             </font></li>  
             <li><font face="Courier New"><b>Unsupported</b> Code that is made available but is not supported or included  
 in the normal make. </font></li>  
             <li><font face="Courier New"><b>WMIMapper</b> Pegasus implementation that implements mapping to Microsoft  
 WMI objects.  
   
 </font></li>  
             </ul>  
 <p>  
 <font face="Courier New">Pegasus Run Time directory structure (PEGASUS_HOME  
 environment variable). Home directory for runtime. All compiler, linker  
 documentation creation, etc. are put here.  
 </font>  
             <ul>  
               <li><font face="Courier New"><b>bin</b> - Destination for executable and DLL modules from  
 Pegasus build. This directory should be make public so that the test functions,  
               clients, and cimserver can be executed with minimum effort.</font></li>  
               <li><font face="Courier New"><b>DevManualHTML</b> - HTML output of the Pegasus Manual.  
               This is only created when the make file for this manual is  
               executed (doc/DevManual) and then contains the html representing  
               the document.</font></li>  
               <li><font face="Courier New"><b>apidochtml</b> - HTML output of  
               the creation of the public API document.&nbsp; This only exists  
               when the make file for the api document is executed (see doc/apidoc/Makefile)</font></li>  
               <li><font face="Courier New"><b>lib</b> - Destination for Pegasus LIB modules  
               </font></li>  
               <li><font face="Courier New"><b>log</b> - Standard location for  
               Pegasus Logs</font></li>  
               <li><font face="Courier New"><b>obj</b> - Destination for object  
               modules. Note that today, the trace file is located in the  
               PEGASUS_HOME directory, not in the log directory if Pegasus  
               internal tracing is enabled.</font></li>  
               <li><font face="Courier New"><b>repository</b> - This Directory  
               contains the created repository </font></li>  
               </ul>  
   
 <h1>  
 <a name="Pegasus Installation">Pegasus Installation</a> </h1>  
 <p>  
 Pegasus today is provided only as a source distribution.  
 <p>  
 To install Pegasus, you must check it out using CVS (Common Version System)  
 or download a snapshot. You download, compile, and use it.  
 <p>  
 For the snapshot, the installation of Pegasus involves expanding the snapshot  
 distribution files, building the runtime, the test files and test clients, and  
 building the repository.  
 <h1>  
   
 <a name="Building Pegasus">Building Pegasus </a>  
   
               </h1>  
   
 <p>  
 1. Check that you have requisite programs (listed in Pegasus Dependencies).  
   
 These include GNU Make, MU.EXE (if using Windows), Flex, and Bison (Flex  
 and Bison only required if changes will be made to the MOF compiler or WQL  
 parser).  
 <p>  
 Be sure these are on the path.  
   
 <p>  
 2. Define the following three environment variables:  
               <ul>  
                 <li><b>PEGASUS_ROOT</b> - this should be the &quot;pegasus&quot; directory you've pulled from CVS  
                 </li>  
                 <li><b>PEGASUS_HOME</b> - to point to a directory to contain output binary files  
 (e.g., set it to $HOME/pegasus_home). Then the output will go into  
 $HOME/pegasus_home/bin and $HOME/pegasus_home/lib  
                 </li>  
                 <li><b>PEGASUS_PLATFORM</b> - this must be set to a supported platform identifier.  
                 </li>  
                 </ul>  
                 <blockquote>                 <blockquote>
 <p>  PEGASUS_ROOT=&lt;location of your pegasus source tree&gt;
 This identifier has the following form:  <br>
 <p>  PEGASUS_HOME=&lt;location for the built executables, repository, etc&gt;
 <font face="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  
 &lt;Operating-System&gt;_&lt;Architecture&gt;_&lt;Compiler&gt; </font>  
 <p>  
 For example (Linux on IA32 platform using the GNU Compiler):  
 LINUX_IX86_GNU  
 <p>  
 For a complete list of platforms supported and platform support keywords, refer to the platform_ make files found in directory&nbsp;  
 <font face="Courier New">pegasus/mak</font>  
  
   <br>
   PEGASUS_PLATFORM=&lt;your platform&gt;
                 </blockquote>                 </blockquote>
   <p>For a list of valid
 <p>  platforms, enter "make listplatforms" from the root of the Pegasus
 Note: if you plan on doing parallel builds, you might consider setting                  source tree. <br>
 PEGASUS_HOME to something like this:  </p>
 <p>  <h1><a name="build_peg">Building Pegasus</a></h1>
 <font face="Courier New">&nbsp;&nbsp;&nbsp;  <div>
 $HOME/pegasus_home_LINUX_IX86_GNU </font>          <div>
 <p>                  To accept the default build options and get started quickly, use the</div>
 That way, the output of each build will be placed in its own directory.          <div>
 <p>                  following commands from the root of the Pegasus source tree:</div>
 3. Now place $PEGASUS_HOME/bin on your path          <br>
 <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and  &nbsp;<div>
 <p>                  &nbsp;&nbsp; make build</div>
 &nbsp;&nbsp;&nbsp;          <div>
 Place $PEGASUS_HOME/lib on your LD_LIBRARY_PATH (for Unix only).                  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This will build the dependencies, any utilities that are needed,
 For RedHat/SuSE/UL, edit /etc/ld.so.conf and add $PEGASUS_HOME/lib                  all</div>
 <p>          <div>
 4. Change to the root of the Pegasus distrubution and type &quot;make&quot;                  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the Pegasus and test executable code, and do any necessary setup
 (where make refers to GNU make).                  to</div>
 <p>          <div>
 5. Then create the repository, which is needed to serve data.                  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; run the CIM Server.</div>
 &quot;make repository&quot;. Note that to create the additional namespaces, etc.          <br>
 that represent the test support you can also execute &quot;make testrepository:<p>  &nbsp;<div>
 6. To test the build type &quot;make tests&quot;.                  &nbsp;&nbsp; make alltests</div>
 The following make targets are supported:          <div>
 <UL>                  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This will run the unit tests, create the repository by compiling
 <li>&lt;default&gt; - Build everything.                  in</div>
 <li>clean - Clean out all objects, libs, and executables.          <div>
 <li>depend - Create the dependencies.                  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the MOF for the default CIM Schema (2.9 for Pegasus 2.5.1
 <li>repository - Create the repository in $PEGASUS_HOME/repository          and 2.5.2),
 <li>tests - Execute all tests (except client server tests).                  compile</div>
 <li>rebuild - clean, depend, &lt;default&gt;          <div>
 <li>world - depend, &lt;default&gt;                  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; in the MOF for all Pegasus test cases, do any other configuration</div>
 </UL>          <div>
 The Pegasus Client server tests are executed separately from the above because                  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; necessary to run the tests, and then run a large automated test
 they require the initiation of separate process for the Pegasus server and                  suite</div>
 Pegasus client. To execute these tests please refer to the scripts in          <div>
 pegasus/mak/BuildMakefile - refer to the prestarttests and poststarttests.                  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; to verify Pegasus CIM Server functionality.`<p>&nbsp;</p></div>
 <p>          <div>
 For information on particular installation characteristics, tools, etc. for                  There are many variations possible. Refer to PEP 237 for possible build
 each platform see the appropriate sections below:                  and</div>
 <p>          <div>
 Generally the build commands are as follows:                  run-time configuration options. Enter "make usage" for more information
                 <ol>                  on</div>
                   <li>There is a Makefile in the Pegasus root directory. Simply executing          <div>
 make in the Pegasus root directory will make everything. &quot;make rebuild&quot;                  make targets that are available for building and testing Pegasus.</div>
 will clean and rebuild everything. The &quot;make rebuild&quot; will also populate  </div>
 the repository with the current CIM Schemas.  <h4><a name="note_bld_peg_lnx">Building OpenPegasus on Linux </a></h4>
                   </li>  <p>
                   <li>To test a fresh release, go to the pegasus root and type  To build OpenPegasus on Linux, ensure that you you have the environment
 &quot;<font face="Courier New">make world</font>&quot;.&nbsp;  variables set (PEGASUS_HOME, PEGASUS_ROOT, PEGASUS_PLATFORM.&nbsp; For
 This will build dependencies, build binaries, and then run all  32 bit linux, the definition of PEGASUS_PLATFORM is normally
 tests except the Client/Server tests.  LINUX_IX86_GNU).<br>
                   </li>  </p>
                   <li>To execute the basic test suite that is shipped with pegasus type&nbsp;  <h4><a name="note_bld_peg_ssl">Building OpenPegasus with SSL
 &quot;make tests&quot;. This also reinstalls the repository.&nbsp;  </a></h4>
 Running &quot;make -s tests&quot; suppresses extraneous output such as the  <p>
 enter/leave directory messages.  To build with SSL you need the OpenSSL libraries and header files. They
                   </li>  are NOT distributed with OpenPegasus. Make sure you have them in a
                   <li>&quot;make clean&quot; removes all object and library files from the structure.  standard
   directory so OpenPegasus can find them. If that's not
                   </li>  the case, set the environment variable OPENSSL_HOME= to point where
                   <li>A new build system has been added to Pegasus where a new CVS checkout is  your OpenSSL
 done,  installation is.
 built, and tests are run. Do it by: &quot;make -f mak/BuildMakefile cleanbuild&quot;  </p>
   <p>Also have the PEGASUS_HAS_SSL=true variable set. Then just run 'make'
                   </li>  in Pegasus
                   </ol>  directory and you will have OpenPegasus with SSL enabled. See "Creating
   SSL
 <h1>  certificates" below for more information on how to use SSL.
 <a name="Populate the Repository">Populating the Pegasus Repository</a> </h1>  </p>
   Refer to the OpenPegasus SSL Guidelines guide found in the doc directory for details on
 <p>  using OpenPegasus with SSL.<br>
 Before using Pegasus you must populate the repository.. The makefile  <h4><a name="bld_peg_win">Building OpenPegasus on Windows 2k or Windows XP with Microsoft
 does it all for you, but in case you are wondering what it does or how to do it  Visual
   C++ </a></h4>
 manually:  <p>
 <ol>  Use of Windows 2000 SP3 or later is recommended.&nbsp; OpenPegasus is
 <LI>Register the MOF (Managed Object Format) file describing the skeleton of the  regularly tested on both Windows 2000 and Windows XP using the
 object.  Microsoft compilers.</p>
 <li>Register a second MOF which only points out which lib*.so file to be loaded  <p>Today we build OpenPegasus on Windows using a set of make files
 when a  contained
 specific object is activated.  in the source distribution, the Microsoft compilers (DevStudio 5.x is
 </ol>  not supported, Visual Studio 6.0, SP5 is supported) and the GNUMAKE
 This is done automatically for the providers included in Pegasus by doing:  make utility.&nbsp; Note that you MUST have the OpenPegasus <a href="#mu_utility">mu.exe </a>utility compiled and available
 make repository.  before trying to compile OpenPegasus on the normal windows platform.
 <p>  The
 The 'make repository' in pegasus/Schemas does three things  following is the basic setup steps for the environment.
 Runs MOF compiler (cimmofl) on:  </p>
 -Schema v2.7  <p>Setup the environment variables and path for the Micrososft Visual C
 Generates the CIM Schema v2.7 in the repository (skeleton of CIM objects)  compiler.
 -PG_InterOp  Typically this can be done by running the VCVARS32.BAT file supplied
 Internal to Pegasus schema for operating (shutdown, add users, etc)  with Microsoft Visual C++. (contained in the same directory as cl.exe).
 CIM_Indication’s (SNMP, Events, Alert, Threshold, etc)  </p>
 -PG_ManagedSystem  <p>For Windows, try the following for an example environment: </p>
 Registers included CIM Providers (libOSProvider.so, libDNSProvider.so, … )  <blockquote>
 in Pegasus (which are located in src/Providers)    <pre>REM call the standard Microsoft .bat for VC 6 setup. <br>call 'C:/Program Files\Microsoft Visual Studio\VC98\Bin\Vcvars32.bat' <br>REM Set debug to something if you want compile in debug mode <br>set PEGASUS_DEBUG=true <br>REM set PEGASUS_ROOT to top of source tree <br>set PEGASUS_ROOT=C:/cimom/pegasus (Note: <span class="norm">The '/' characters are intentional and required by the OpenPegasus build system)</span><br>REM set PEGASUS_HOME to where you want repository and executables<br>set PEGASUS_HOME=%PEGASUS_ROOT% <br>REM setup the path to the runtime files. <br>set path=%path%;%PEGASUS_HOME%\bin <br></pre>
 <p>  </blockquote>
 For more information about using the MOF compiler, refer to user's manual on the  <h6>
   <a name="mu_utility">The MU Utility </a></h6>
 openpegasus.org.  
   
 <h1>  
 <a name="Testing a Pegasus Installation">Testing a Pegasus Installation</a></h1>  
 <p>  
 Pegasus includes an extensive set of test facilities&nbsp; as part of the CVS  
 enviromentthat can be executed including:<ul>  
   <li><b>Test Clients</b> - There are several clients that have been built  
   specifically to test Pegasus or parts of Pegasus including TestClient, Client,  
   CLI, ipinfo, osinfo, WbemEsec, etc. See the src/Clients directory for more  
   information. These programs require a server complete with repository to be  
   running.&nbsp; Note that some of these tests use classes and instances that  
   are only installed with the &quot;make testrepository&quot; functions including test  
   namespaces and extra classes and instances in those namespaces and additional  
   providers from the providers/sample and proviers/testproviders directories.</li>  
   <li><b>Sample and test providers</b> -&nbsp; Test providers exist for the  
   major provider types in the providers/sample directories and the providers/testProviders  
   directory</li>  
   <li><b>Unit Tests</b> - Most Pegasus functions include unit tests for the  
   functions.&nbsp; These are normally executed with the &quot;make tests&quot; command  
   which can be executed at many different levels of the source tree from the top  
   level to execute all of the unit tests to individual directories.&nbsp;  
   Usually the unit test functions can be found in test directories immediately  
   below their corresponding source code (i.e&nbsp; common/tests is the unit test  
   functions for the common directory). Unit tests are executed without the  
   server being operational and normally do not require the existence of a Class  
   repository.</li>  
   <li><b>An end-to-end Test Suite</b> - the directory &quot;test&quot; contains a set of  
   operations tests that cover the major CIM operations.&nbsp; See the make file  
   TestMakefile in the PEGASUS_ROOT directory to execute these tests.&nbsp; This  
   set of tests executes an extensive set of fixed tests and compares the results  
   against predefined results.</li>  
   </ul>  
   
 <h1>  
 <a name="Registering Providers in the Pegasus Environment">Registering Providers  
 in the Pegasus Environment</a></h1>  
   
 <p>  
 Pegasus registers providers with a set of provider registration classes, not  
 using the provider qualifier as is done in most DMTF CIM CIMOM implementations  
 today. This set of classes is close to but not exactly the same as the current  
 DMTF definition (See the DMTF Interop schema, experimental versions starting  
 with 2.6). This will be harmonized in the future when the DMTF scheme is moved  
 to final status.&nbsp; </p>  
   
 <p>  
 Registration is performed by defining a MOF for the instances of the  
 registration classes that represent the porvider module, providers, classes,  
 etc. to be registered.&nbsp; The easiest way to create a new registration today  
 is to copy from one of the existing registration MOFs.&nbsp; See the  
 providers/sample/load directory for examples of several registration instance  
 implementations that do work with Pegasus today.</p>  
   
 <h1>  
 <a name="The MU Utility">The MU Utility </a></h1>  
   
 <p> <p>
 In order to provide a consistent build structure across multiple platforms, we  In order to provide a consistent build structure across multiple
 developed a small utility to provide a consistent set of small utilities  platforms, we
 across these platforms. The MU utilityis a simple utility that contains many  developed a small utility to provide a consistent set of small
   utilities
   across these platforms. The MU utility is a simple utility that
   contains
   many
 commands. For example: commands. For example:
   </p>
 <p>  <p><font face="Courier New">&nbsp;&nbsp;&nbsp;
 <font face="Courier New">&nbsp;&nbsp;&nbsp;  
 C:\&gt; mu rm myfile.cpp yourfile.cpp </font> C:\&gt; mu rm myfile.cpp yourfile.cpp </font>
   </p>
 <p>  <p>You may type "mu" to get a list of valid commands. Here are some
 You may type &quot;mu&quot; to get a list of valid commands. Here are some  
 of them: of them:
   </p>
 <p>  <p>&nbsp;&nbsp;&nbsp;
 &nbsp;&nbsp;&nbsp;  
 rm, rmdirhier, mkdirhier, echo, touch, pwd, copy, move, compare depend rm, rmdirhier, mkdirhier, echo, touch, pwd, copy, move, compare depend
   </p>
 <p>  <p>The MU utility supports globing (expansion of wildcards) so
 The MU utility supports globing (expansion of wildcards) so  
 you can do things like this: you can do things like this:
 <p>  </p>
   <p><font face="Courier New">&nbsp;&nbsp;&nbsp;
 <font face="Courier New">&nbsp;&nbsp;&nbsp;  
   
 C:\&gt; mu rm *.obj *.exe </font> C:\&gt; mu rm *.obj *.exe </font>
   </p>
   <p>MU is required to build under the Windows environment. MU is
   available as part
   of the distribution of OpenPegasus.<br>
   </p>
   NOTE: The binary for MU.EXE is not distributed in the OpenPegasus bin
   directory.
   You must build it separately. MU source code is part of the
   distribution
   in the directory src/utils/MU with its own make file. You must compile
   MU
   before you initiate the OpenPegasus make.<br>
   A copy of the binary is made available as a zip file on the OpenPegasus
   WEB site.
   <p></p>
   <h1><a name="pop_peg_rep">Populate the Pegasus Repository</a> </h1>
 <p> <p>
 MU is required to build under the Windows environment. MU is available as part  Before using Pegasus you must populate the repository. Typically, this
 of the distribution of Pegasus.  is done during the build process when you run the makefile. However,
   you
 <h1>  can also do it manually after the Pegasus has been built. </p>
 <a name="Notes about Building Pegasus on Linux">Notes about Building Pegasus on  <ol>
 Linux </a></h1>    <li>Register the MOF (Managed Object Format) file describing the
 <p>  skeleton of the object. </li>
 No problem. Just make sure you have the environment variables set (PEASUS_HOME,    <li>Register a second MOF which only points out which lib*.so file to
 PEGASUS_ROOT, PEGASUS_PLATFORM.&nbsp; For 32 bit linux, the defintion of  be loaded when a specific object is activated. </li>
 PEGASUS_PLATFORM is normally LINUX_IX86_GNU.  </ol>
   <p></p>
 <h1><a name="Notes about Building Pegasus with SSL">Notes about Building Pegasus with SSL  
 </a></h1>  
 <p>  
 To build with SSL you need the OpenSSL libraries and header files. They are NOT  
 distributed with Pegasus. Make sure  
 you have them in a standard directory so Pegasus can find them. If that's not  
   
 the case, set the environment variable OPENSSL_HOME= to point where your  
 OpenSSL  
 installation is.  
 <p>  
 Also have the PEGASUS_HAS_SSL=yes variable set. Then just run 'make' in Pegasus  
 directory and you will have Pegasus with SSL enabled. See section &quot;Creating SSL  
   
 certificates&quot; for more information of how to use SSL.  
   
 <h1>  
 <a name="Building Pegasus on Windows 2000 or Windows XP With Microsoft Visual C++">  
 Building Pegasus on Windows 2k  or Windows XP with Microsoft Visual C++ </a></h1>  
   
 <p>  
 Use of Windows 2000 SP3 or later is recommended.&nbsp; Pegasus is regularly  
 tested on both Windows 2000 and Windows XP using the Microsoft compilers.<p>  
 Today we build Pegasus on Windows using a set of make files contained  
 in the source distribution, the Microsoft compilers (DevStudio 5.x is not  
 supported, Visual Studio 6.0, SP5 is supported) and the GNUMAKE make utility.&nbsp;  
 Note that you MUST have the Pegasus <a href="#The MU Utility">mu.exe </a>utility  
 compiled and available before trying to compile Pegasus on the normal windows  
 platform. The  
   
 following is the basic setup steps for the environment.  
 <p> <p>
   The providers included with Pegasus are automatically entered into the
 Setup the environment variables and path for the Micrososft Visual C compiler.  repository
   by running the following command: <tt>make repository</tt>
 Typically this can be done by running the VCVARS32.BAT file supplied with  </p>
 Microsoft Visual C++. (contained in the same directory as cl.exe).  
 <p> <p>
 For Windows, try the following for an example environment:  The 'make repository' in the&nbsp; pegasus directory does three things:
   <blockquote>  </p>
 <pre>REM call the standard Microsoft .bat for VC 6 setup.  <ul>
 call 'C:/Program Files/Microsoft Visual Studio/VC98/Bin/Vcvars32.bat'    <li><span class="norm"></span> Removes the existing repository if one
 REM Set debug to something if you want compile in debug mode  exists.</li>
 set PEGASUS_DEBUG=true    <li>Generates the CIM Schema v2.9 in the repository (skeleton of CIM
 REM set PEGASUS_ROOT to top of source tree  objects).&nbsp; </li>
 set PEGASUS_ROOT=C:/cimom/pegasus    <li><span class="norm"></span><font style="color: rgb(0, 0, 0);">Loads
 REM set PEGASUS_HOME to where you want repository and executables  schema for CIM Server functions </font>(shutdown, add users, etc) and
 set PEGASUS_HOME=%PEGASUS_ROOT%  CIM indications
 REM setup the path to the runtime files.  (SNMP, Events, Alert, Threshold, etc)
 set path=%path%;%PEGASUS_HOME%/bin  internal to the Pegasus. </li>
 </pre>    <li>Registers included CIM Providers (libOSProvider.so,
 </blockquote><h1><a name="Installing the Pegasus HTML Test Client">Installing the Pegasus HTML Test Client</a></h1><p>  libDNSProvider.so, … ) in Pegasus (which are located in
 This is a separate test tool that allows Pegasus requests to be initiated from  src/Providers)&nbsp; </li>
 any WEB browser and that uses a WEB browser, CGI scripts and HTML pages for  </ul>
 the formatting and connections. It requires a WEB server, etc. The  <h1>
 instructions for setting up this environment are maintained in a separate readme in the CGI directory. <h1><a name="Development with Pegasus and Pegasus Tools">Development with Pegasus and Pegasus Tools</a></h1><p>  <a name="reg_prov">Registering
 ATTN: This section needs to be completed. It should reference the more  Providers in the Pegasus Environment</a></h1>
 complete documentation  <p>
 ATTN: Write about providers? <h1><a name="Commands">Commands</a></h1><p>  Pegasus registers providers with a set of provider registration
 The manpages for each of the commands are in rpm/manLinux/man1.Z directory (on  classes, not using the provider qualifier as is done in most DMTF CIM
 CVS) <p>  CIMOM implementations today. This set of classes is close to but not
 To see simple help for each of the commands, use the &quot;-h&quot; flag. <blockquote><pre>Examples:  exactly the same as the experimental DMTF definition (See the DMTF
 bin/cimserver –s (Shuts it down)  Interop
 bin/cimserver traceLevel=4 traceComponents=ALL (starts server with config flags)  schema, experimental versions starting with 2.6). This will be
 bin/cimprovider –l –s (lists providers and their status)  harmonized in the future when the DMTF scheme is moved to final
 bin/cimprovider –e –m OperatingSystemModule (enables the OperatingSystem provider)  status.&nbsp; </p>
 bin/cimuser –a –u guest –w ThePassword  <p><span class="norm"></span><font style="color: rgb(0, 0, 0);">Registration
 bin/cimuser –l (lists the users)  is performed by creating instances</font> of the
 bin/tomof CIM_Config (extract CIM_Config from repository and present it in MOF type)  registration classes that represent the provider module, providers,
 </pre>  classes, etc. to be registered.&nbsp; The easiest way to create a new
 </blockquote><h1><a name="Creating SSL certifications">Creating SSL certifications </a></h1><p>  registration today is to copy from one of the existing registration
 Type these commands in your shell to create the SSL certifications. The PEGASUS_ROOT and PEGASUS_HOME have to be set to your respective installation and source  MOFs.&nbsp; See the providers/sample/load directory for examples of
 directory. <blockquote><pre>CN=&quot;Common Name&quot;  several registration instance implementations that do work with
 EMAIL=&quot;test@email.address&quot;  OpenPegasus
 HOSTNAME=`uname -n`  today.</p>
 sed -e &quot;s/$CN/$HOSTNAME/&quot; \  <h1>
 -e &quot;s/$EMAIL/root@$HOSTNAME/&quot; $PEGASUS_ROOT/ssl.cnf \  <a name="test">Testing an OpenPegasus Installation</a></h1>
 &gt; $PEGASUS_HOME/ssl.cnf  <p>
 chmod 644 $PEGASUS_HOME/ssl.cnf  OpenPegasus includes an extensive set of test facilities as part of the
 chown bin $PEGASUS_HOME/ssl.cnf  CVS
 chgrp bin $PEGASUS_HOME/ssl.cnf  environment, including:
   </p>
 /usr/bin/openssl req -x509 -days 365 -newkey rsa:512 \  <ul>
 -nodes -config $PEGASUS_HOME/ssl.cnf \    <li><b>Test Clients</b> - There are several clients that have been
 -keyout $PEGASUS_HOME/key.pem -out $PEGASUS_HOME/cert.pem  built specifically to test OpenPegasus, or parts of OpenPegasus,
   including
 cat $PEGASUS_HOME/key.pem $PEGASUS_HOME/cert.pem &gt; $PEGASUS_HOME/server.pem  TestClient, Client, CLI, ipinfo, osinfo, wbemexec, etc. See the
 rm $PEGASUS_HOME/key.pem $PEGASUS_HOME/cert.pem          pegasus/src/Clients directory for more information. These programs require a
 cp $PEGASUS_HOME/cert.pem $PEGASUS_HOME/client.pem  server complete with repository to be running.&nbsp; Note that some of
 </pre></blockquote><h1><a name="Testing with ICU enabled">Testing with ICU enabled</a></h1><p>  these tests use classes and instances that are only installed with the
 ICU (International Components for Unicode) refers to the set of libraries that  "make testrepository" functions including test namespaces and extra
 Pegasus uses to run globalized. For example: these libraries are used to  classes and instances in those namespaces and additional providers from
 load messages in different languages, format currency and numbers according to  the pegasus/Providers/sample and pegasus/Providers/TestProviders directories. </li>
 a specific locale etc. In order to enable globalization in Pegasus, Pegasus    <li><b>Sample and test providers</b> -&nbsp; Test providers exist for
 must be built with ICU enabled, ie. the right environment variables must be  the major provider types in the pegasus/Providers/sample directories and the
 set prior to running &quot;make&quot;. Refer to the GlobalizationHOWTO.htm in the docs          pegasus/Providers/TestProviders directory </li>
 directory for details. That said, when users run &quot;make poststarttests&quot;    <li><b>Unit Tests</b> - Most OpenPegasus functions include unit tests
 to verify the integrity of a Pegasus download, a series of tests are run that  for
   the functions.&nbsp; These are normally executed with the "make tests"
 require the cimserver to be running. These tests currently depend on specific  command which can be executed at many different levels of the source
   tree from the top level to execute all of the unit tests to individual
 messages returned from the server. When ICU is enabled, all messages come  directories.&nbsp; Usually the unit test functions can be found in test
 from the resource bundles and these usually do not match the hardcoded default messages within Pegasus. These hardcoded default messages  directories immediately below their corresponding source code
 are what the various test programs expect in order to complete  (i.e&nbsp; common/tests is the unit test functions for the common
   directory). Unit tests are executed without the server being
   operational and normally do not require the existence of a Class
   repository. </li>
     <li><b>An end-to-end Test Suite</b> - the directory "test" contains a
   set of operations tests that cover the major CIM operations.&nbsp; See
   the make file TestMakefile in the PEGASUS_ROOT directory to execute
   these tests.&nbsp; This set of tests executes an extensive set of fixed
   tests and compares the results against predefined results.</li>
   </ul>
   <h4><a name="test_icu">Testing with ICU enabled</a></h4>
   <p>ICU (International Components for Unicode) refers to the set of
   libraries that OpenPegasus uses to run globalized. For example: these
   libraries are used
   to
   load messages in different languages, format currency and numbers
   according to
   a specific locale etc. In order to enable globalization in OpenPegasus,
   OpenPegasus
   must be built with ICU enabled, ie. the right environment variables
   must be
   set prior to running "make". Refer to the GlobalizationHOWTO.htm in the
   docs
   directory for details.<br>
   </p>
   <p>&nbsp;When users run "make poststarttests"
   to verify the integrity of a OpenPegasus download, a series of tests
   are
   run that
   require the cimserver to be running. These tests currently depend on
   specific
   messages returned from the server. When ICU is enabled, all messages
   come from the resource bundles and these usually do not match the
   hardcoded default messages within OpenPegasus. These hardcoded default
   messages are what the various test programs expect in order to complete
 successfully. If the ICU enabled server is started without successfully. If the ICU enabled server is started without
 disabling message loading from the bundles, &quot;make poststartests&quot; will fail.  disabling message loading from the bundles, "make poststartests" will
 In order to run &quot;make poststarttests&quot; successfully with ICU enabled, an  fail.
 environment variable called PEGASUS_USE_DEFAULT_MESSAGES must exist prior to  In order to run "make poststarttests" successfully with ICU enabled, an
 starting the server. Once this is defined, when the cimserver starts, all  environment variable called PEGASUS_USE_DEFAULT_MESSAGES must exist
 messages generated will be the default hardcoded messages. This will enable  prior to
 &quot;make poststarttests&quot; to complete successfully. Once &quot;make poststarttests&quot; is  starting the server. Once this is defined, when the cimserver starts,
 complete, you should stop the cimserver and then undefine PEGASUS_USE_DEFAULT_MESSAGES.  all
 If this variable is left defined, Pegasus will not be able to load messages  messages generated will be the default hardcoded messages. This will
 using ICU resource bundles. <h1><a name="Pegasus Documentation">Pegasus Documentation</a></h1><p>  enable
 The documentation is currently in preparation.&nbsp; Much of Pegasus is  "make poststarttests" to complete successfully. Once "make
 documented in the PEGASUS PEPs which are the basis for approval of Pegasus  poststarttests" is
 functioanlity, changes, plans, etc.&nbsp; These documents are openly available  complete, you should stop the cimserver and then undefine
 on the PEGASUS web site.&nbsp; The preliminary documentation  PEGASUS_USE_DEFAULT_MESSAGES. If this variable is left defined,
 is not provided with this release. The current documentation is maintained both as a manual created  OpenPegasus
 under the tool DOC++ in the runtime subdirectory manual/html (see doc/devManual  will not be able to load messages
 to create), as an api document also creatable from the source tree (see doc/apidoc)  using ICU resource bundles.<br>
 and as other miscellaneous documentation in the doc directory. Also there is a  </p>
 set of release notes. Normally the release notes for the current release are  <p><span class="norm"></span><font style="color: rgb(0, 0, 0);">When
 available in the root source directory of CVS.<p>  running the make tests command with ICU enabled, the PEGASUS_MSG_HOME
 Note that the Pegasus WEB site at The Open Group will be the source of most  environment variable must be set to the home directory where the ICU
 documentation in the future and today is the source of most discussion and  resource bundles are built. By default the resource bundles are built
 design documentation. <h1><a name="Participate!">Participate!</a></h1><p>  into directories below PEGASUS_HOME/msg, so that should be the setting
 We are looking for people who want to join the Pegasus work group and  for PEGASUS_MSG_HOME.</font></p>
 contribute to effort of getting this Pegasus off the ground. Please join  <p></p>
 the mailing list by visiting www.openpegasus.org, and click on Mailing Lists.  <h1>
 &nbsp;</p>  <a name="sec0">Security Considerations</a></h1>
   <p>Some of the steps of installing and running Pegasus have
 </body>  security properties that you should be aware of. If you plan to administer a
   Pegasus server, see the 'security considerations' section of the administrators
   guide <pointer>. If you plan to write clients or providers for integration into
   Pegasus, see the developer's security guidance.<br>
   </pointer></p>
   <hr>
   <p><font size="2"><i>Copyright (c) 2006 Hewlett-Packard Development Company,
   L.P.; IBM Corp.;<br>
   EMC Corporation; Symantec Corporation; The Open Group.<br>
   <br>
   Permission is hereby granted, free of charge, to any person obtaining a copy<br>
   of this software and associated documentation files (the "Software"), to<br>
   deal in the Software without restriction, including without limitation the<br>
   rights to use, copy, modify, merge, publish, distribute, sublicense, and/or<br>
   sell copies of the Software, and to permit persons to whom the Software is<br>
   furnished to do so, subject to the following conditions:<br>
   <br>
   THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN<br>
   ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED<br>
   "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT<br>
   LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR<br>
   PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT<br>
   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN<br>
   ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION<br>
   WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</i></font></p>
   <hr>
   <p><i><font size="1"><big><big><span style="font-family: arial;">End of Document<br>
   </span></big></big></font></i></p>
   <p><span style="color: rgb(0, 0, 0);"></span> </p>
  
 </html>  
   <script language="javascript">postamble();</script>
   </body></html>


Legend:
Removed from v.1.1  
changed lines
  Added in v.1.11.2.3

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2