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

  1 dave.sudlik 1.1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2 karl        1.6.8.1 <html>
  3                     <head>
  4                       <meta http-equiv="Content-Language" content="en-us">
  5                       <meta name="GENERATOR" content="Microsoft FrontPage 6.0">
  6                       <meta name="ProgId" content="FrontPage.Editor.Document">
  7                       <meta http-equiv="Content-Type"
  8                      content="text/html; charset=windows-1252">
  9 karl        1.6.8.2   <title>OpenPegasus README</title>
 10 karl        1.6.8.1   <link rel="stylesheet"
 11                      href="http://www.opengroup.org/stylesheets/info1+margins.css">
 12                       <style>
 13 karl        1.3     <!--
 14 karl        1.6     table.MsoNormalTable
 15                     {mso-style-parent:"";
 16                     font-size:10.0pt;
 17                     font-family:"Times New Roman"}
 18 karl        1.3     -->
 19 karl        1.6.8.1   </style>
 20 dave.sudlik 1.1     </head>
 21                     <body>
 22                     <hr>
 23 karl        1.6     <p><b>Abstract:</b>&nbsp; Installation, build,
 24 karl        1.6.8.2 and operation information on
 25                     the OpenPegasus . Note that if this readme
 26 dave.sudlik 1.1     conflicts with the documentation in the release notes or interface
 27                     definition documents for a particular release, those documents should
 28                     be considered authoritative. This is a simplified
 29                     overview to act as an
 30                     introduction to OpenPegasus.</p>
 31                     <hr>
 32 karl        1.6     <p align="center"><b><font size="5">OpenPegasus
 33                     - A Manageability
 34 dave.sudlik 1.1     Services Broker for the DMTF CIM/WBEM Standards
 35                     </font></b></p>
 36 karl        1.6     <p align="left"><b>Tagline:</b> OpenPegasus is
 37                     an object manager for
 38 dave.sudlik 1.1     DMTF CIM objects written in C++
 39                     and hosted by The Open Group </p>
 40                     <a href="#Overview">OpenPegasus Overview</a>
 41 karl        1.6.8.1 <blockquote style="margin-top: 0pt; margin-bottom: 0pt;"> <a
 42                      href="#avail_of_peg">Availability</a><br>
 43                       <a href="#peg_sup_plat">Supported Platforms</a><br>
 44                       <a href="#peg_dep">Dependencies</a><br>
 45                       <a href="#cmnd">Commands</a><br>
 46                       <a href="#docs">Documentation</a><br>
 47                       <a href="#part">How to Participate</a><br>
 48 dave.sudlik 1.1     </blockquote>
 49                     <a href="#inst_peg">Installing OpenPegasus</a>
 50 karl        1.6.8.1 <blockquote style="margin-top: 0pt; margin-bottom: 0pt;"><a
 51                      href="#download">Download or Checkout</a><br>
 52                       <a href="#vfy_req_sw">Verify Dependencies</a><br>
 53                       <a href="#set_envt_var">Set the Environment Variables</a><br>
 54                       <a href="#bld_peg">Build the Executables</a><br>
 55                       <a href="#pop_peg_rep">Populate the Repository</a><br>
 56                       <a href="#reg_prov">Register Providers</a><br>
 57                       <a href="#note_bld_peg_lnx">Notes
 58 dave.sudlik 1.1     about Building on Linux</a><br>
 59 karl        1.6.8.1   <a href="#bld_peg_win">Notes about Building
 60 dave.sudlik 1.1     on Windows</a><br>
 61 karl        1.6.8.1   <blockquote style="margin-top: 0pt; margin-bottom: 0pt;">
 62                         <a href="#mu_utility">The MU Utility</a><br>
 63                       </blockquote>
 64                       <a href="#note_bld_peg_ssl">Notes about
 65 dave.sudlik 1.1     Building with SSL</a><br>
 66                     </blockquote>
 67                     <a href="#test">Testing an OpenPegasus installation</a><br>
 68 karl        1.6.8.1 <blockquote style="margin-top: 0pt; margin-bottom: 0pt;"> <a
 69                      href="#test_icu">Testing with ICU enabled</a><br>
 70 dave.sudlik 1.1     </blockquote>
 71                     <hr>
 72 karl        1.6     <h1><a name="Overview">OpenPegasus Overview</a>
 73                     </h1>
 74                     <div style="margin-left: 40px;"><b>OpenPegasus </b>(also
 75                     referred to
 76                     as <b>Pegasus</b>) is an open-source CIM Server for DMTF
 77                     CIM objects.
 78 dave.sudlik 1.1     It is
 79                     written
 80                     in C++ and includes the Object manager (CIMOM), a set of defined
 81                     interfaces, an implementation of the CIM Operations over HTTP
 82                     operations
 83                     and their cimxml HTTP encodings, and Interface libraries
 84                     for both clients and providers. It is maintained
 85                     to be compliant with
 86                     the DMTF CIM and WBEM specifications with
 87                     exceptions
 88                     noted in the documentation.<br>
 89                     <br>
 90 karl        1.6     <span class="norm"></span>OpenPegasus includes
 91                     components for: <br>
 92 dave.sudlik 1.1     </div>
 93 karl        1.3     <blockquote>
 94 karl        1.6.8.1   <ol style="margin-left: 40px;">
 95                         <li>A DMTF compliant CIM Server that processes CIM
 96 karl        1.6     operations, CIM
 97 dave.sudlik 1.1     Indications, and
 98                     includes class and instance repositories and interfaces for creating
 99                     CIM
100                     Providers and CIM Clients.</li>
101 karl        1.6.8.1     <li>Provider interfaces so that providers may be build in
102 karl        1.6     multiple
103 dave.sudlik 1.1     languages (i.e.
104                     C++, C, Java).</li>
105 karl        1.6.8.1     <li>A number of CIM Providers.</li>
106                         <li>A MOF compiler.</li>
107                         <li>A number of CIM Clients to provide usage examples, CIM
108 karl        1.6     Server
109 dave.sudlik 1.1     test functions,
110                     and administrative
111                     functions.</li>
112 karl        1.6.8.1     <li>More complete information on the exact functions
113 kumpf       1.2     and their functional state is available from the Release Notes
114 karl        1.6.8.1 (pegasus/ReleaseNotes.htm) and the OpenPegasus <a
115                      href="http://www.openpegasus.org/page.tpl?CALLER=index.tpl&amp;ggid=799">Feature
116 dave.sudlik 1.1     Status Page</a>.</li>
117 karl        1.6.8.1   </ol>
118 karl        1.3     </blockquote>
119 karl        1.6     <div style="margin-left: 40px;">OpenPegasus is open source
120                     and is
121 dave.sudlik 1.1     covered under the MIT open-source
122                     license.
123                     </div>
124 karl        1.6     <p style="margin-left: 40px;">OpenPegasus is being
125                     developed and
126 dave.sudlik 1.1     maintained under the auspices of
127                     The
128                     Open
129 karl        1.6     Group.&nbsp; OpenPegasus is maintained under the license defined in
130                     the
131 dave.sudlik 1.1     doc
132 karl        1.6.8.1 directory of this release.&nbsp; The specific file is: <font
133                      style="color: rgb(0, 0, 0);">pegasus/doc/license.txt</font>.&nbsp;
134 dave.sudlik 1.1     This licensing is intended to support as
135                     wide a
136                     distribution as possible with minimal demands on the users.
137                     </p>
138 karl        1.6     <p style="margin-left: 40px;">More information on this
139                     project, access
140 dave.sudlik 1.1     to the CVS, and
141 karl        1.6.8.1 documentation<span style="color: rgb(255, 0, 0);"><span
142                      style="text-decoration: line-through;"></span></span>
143 karl        1.6     is available
144 karl        1.6.8.1 from the Ope<span style="color: rgb(255, 0, 0);"><span
145                      style="text-decoration: line-through;"></span></span>nPegasus
146 karl        1.6     web
147 dave.sudlik 1.1     site.
148                     </p>
149 karl        1.6     <p style="margin-left: 40px;">&nbsp;&nbsp;&nbsp;
150                     <a target="blank" href="http://www.openpegasus.org/">http://www.openpegasus.org</a><br>
151 dave.sudlik 1.1     </p>
152                     <p style="margin-left: 40px;">Note
153                     that all references in this readme to files in the OpenPegasus source
154                     tree are of the form pegasus/..., where "pegasus" is the top-level
155 karl        1.6     directory and also the name of the OpenPegasus module in the Pegasus
156                     CVS
157                     repository. There are also&nbsp; other CVS modules for the
158                     OpenPegasus Java client (pegasus-JavaCIMClient)
159                     and for unsupported components and utilities for Pegasus that may be
160                     checked out
161 karl        1.3     separately.&nbsp; You can use
162 karl        1.6     <a href="http://cvs.opengroup.org/cgi-bin/viewcvs.cgi/">viewCVS</a>
163                     to view the
164 karl        1.3     Pegasus CVS tree<br>
165 dave.sudlik 1.1     </p>
166                     <h2><a name="avail_of_peg">Availability</a></h2>
167 karl        1.6     <div style="margin-left: 40px;">OpenPegasus is distributed
168                     as open
169 dave.sudlik 1.1     source under the MIT open-source
170                     license. The distribution is available via CVS, and as snapshot images
171                     in
172                     tar, zip, and (self-extracting) exe
173                     file
174                     formats on the OpenPegasus web site.</div>
175                     <ol style="color: rgb(0, 0, 0);">
176                     OpenPegasus can be obtained via any of the following:<br>
177 karl        1.6.8.1   <ol>
178                         <li>Released tarballs (see <a
179                      href="http://www.openpegasus.org/page.tpl?CALLER=page.tpl&amp;ggid=392">ZIP/GZ/EXE
180 dave.sudlik 1.1     link for this release</a>)</li>
181 karl        1.6.8.1     <li>CVS (See <a
182                      href="http://www.openpegasus.org/protected/page.tpl?CALLER=index.tpl&amp;ggid=667">CVS
183 dave.sudlik 1.1     code repository</a> for
184                     more information)</li>
185 karl        1.6.8.1     <li>Linux RPMs
186                     (see <a
187                      href="http://www.openpegasus.org/page.tpl?CALLER=page.tpl&amp;ggid=392">RPM
188 dave.sudlik 1.1     link for this release</a>)</li>
189 karl        1.6.8.1   </ol>
190 dave.sudlik 1.1     </ol>
191 karl        1.6.8.1 <p style="margin-left: 40px;"><span class="norm"></span><font
192                      style="color: rgb(0, 0, 0);">CVS
193 dave.sudlik 1.1     write accounts are managed by Martin Kirk of The Open Group&nbsp;</font>
194                     (<a href="mailto:%28k.m.kirk@opengroup.org">m.kirk@opengroup.org</a>)&nbsp;
195                     </p>
196                     <h2><a name="peg_sup_plat">Supported Platforms</a></h2>
197 karl        1.6     <p style="margin-left: 40px;">OpenPegasus is regularly
198                     tested against a
199 dave.sudlik 1.1     variety of platforms by the
200 karl        1.6     development group.&nbsp; The results of the nightly tests can be
201                     found
202 karl        1.6.8.1 here on our <a
203                      href="http://cvs.opengroup.org/cgi-bin/pegasus-build-status.cgi">Nightly
204                     Build and Test Status</a> page.&nbsp; The Release Notes for each
205                     release&nbsp;
206 kumpf       1.2     (pegasus/ReleaseNotes.htm) provide additional details
207 karl        1.6.8.1 regarding the platforms, compilers, etc. for the current release.<br>
208 dave.sudlik 1.1     </p>
209                     <h2><a name="peg_dep">Dependencies</a></h2>
210                     <p style="margin-left: 40px;">
211                     We have worked to minimize the dependence of OpenPegasus on other
212                     software
213                     packages and tools. Currently OpenPegasus has the following
214 karl        1.6     dependencies. Note that all of the dependencis listed below are
215                     required only if selected options are enabled except for GNUMAKE which
216                     is the required make tool:
217 dave.sudlik 1.1     </p>
218                     <ol style="margin-left: 40px;">
219 karl        1.6.8.1   <li><b>GNUMAKE</b> - To simplify the building of
220 karl        1.6     OpenPegasus across
221 dave.sudlik 1.1     multiple platforms we
222                     have standardized on a set of build tools including: GNUMAKE. We are
223                     using GNUMAKE 3.79.1 successfully both in Windows and Linux
224                     environments. It is available from <a href="http://www.gnu.org">http://www.gnu.org</a>.
225 karl        1.6     The windows version&nbsp; of GNUMAKE is available on the Pegasus
226 karl        1.6.8.1 web site <a
227                      href="http://www.openpegasus.org/pb/protected/index.tpl?CALLER=index.tpl">
228 karl        1.6     tools page</a>.</li>
229 karl        1.6.8.1   <li><b>FLEX</b> and <b>BISON</b> -
230 karl        1.6     These tools were used to develop the MOF
231                     compiler and WQL and CQL parsers.&nbsp; These tools are required <b>ONLY</b>
232                     for
233                     development of the parsers, not for building OpenPegasus.&nbsp;
234                     Bison
235 kumpf       1.2     version 2.3 or later and flex version 2.5.4 or later are required.</li>
236 karl        1.6.8.1   <li><b>Doxygen </b>- The OpenPegasus documentation
237 karl        1.6     is taken from a combination of text files and header files themselves.
238                     This documentation is formatted with Doxygen and GAWK.&nbsp; This
239                     is required <b>ONLY</b> if you want to build documentation
240 karl        1.6.8.1 from the source tree.&nbsp; <span class="norm"></span><font
241                      style="color: rgb(0, 0, 0);">These tools are required to
242 karl        1.6     build the
243 dave.sudlik 1.1     interface documentation set.</font> </li>
244 karl        1.6.8.1   <li><b>ICU Internationalization libraries</b> -
245 karl        1.6     These libraries are
246 dave.sudlik 1.1     used as the basis for message catalogs for message
247                     internationalization. See the ICU website
248                     (<a href="http://icu.sourceforge.net/">http://icu.sourceforge.net</a>)
249                     for more information on these
250 karl        1.6     libraries.<span style="color: rgb(255, 0, 0);"> These
251                     libraries are used ONLY if you set the requisite environment variable (
252                     PEGASUS_HAS_ICU) to use ICU</span><br>
253 karl        1.6.8.1   </li>
254                       <li><b>OpenSSL
255                         </b>- If it
256 dave.sudlik 1.1     is intended to use SSL on the
257 karl        1.6.8.1 communication protocol, the OpenSSL libraries are required (<a
258                      href="http://www.openssl.org">http://www.openssl.org</a>).</li>
259                       <li><span style="font-weight: bold;">OpenSLP</span>
260 karl        1.6     - If you choose
261 dave.sudlik 1.1     to use
262                     OpenSLP as your choice of SLP implementations, then it will need to be
263                     installed and available to OpenPegasus. Refer to the
264 karl        1.6     PEGASUS_USE_OPENSLP and PEGASUS_OPENSLP_HOME build variables in the
265 karl        1.6.8.1 doc/BuildAndReleaseOptions.html file, and the OpenSLP web site (<a
266                      href="http://www.openslp.org">http://www.openslp.org</a>).</li>
267                       <li><span style="font-weight: bold;">zlib
268                         </span>- If you choose to
269 dave.sudlik 1.1     enable the compressed repository feature with the
270                     PEGASUS_ENABLE_COMPRESSED_REPOSITORY build variable, you will need to
271                     install the gzip (GNU zip) compression utility. Refer to
272                     readme.compressed_repository in OpenPegasus source tree, and the gzip
273 karl        1.6.8.1 web site (<a style="color: rgb(204, 51, 204);"
274                      href="http://www.gzip.org">http://www.gzip.org</a>).</li>
275                       <li><span style="font-weight: bold;">sqlite</span>
276 karl        1.6     - If you choose to enable the use of sqlite for the repository, refer
277                     to the doc/BuildAndReleaseOptions.html file for the defintion of the
278                     build variables and the sqlite implementation which may be obtained
279 karl        1.6.8.1 either as part of a standard distribution or from <a
280                      href="http://www.sqlite.org">http://www.sqlite.org</a>.</li>
281 dave.sudlik 1.1     </ol>
282                     <p style="margin-left: 40px;"><span style="font-weight: bold;">NOTE</span>:
283                     A set of the required
284                     tools for building on the Windows platform is available on the
285 karl        1.6.8.1 OpenPegasus <a
286                      href="http://www.openpegasus.org/pb/index.tpl?CALLER=index.tpl">Tools</a>
287 dave.sudlik 1.1     web page.<br>
288                     </p>
289                     <h2><a name="cmnd">Commands</a></h2>
290                     <p style="margin-left: 40px;">
291 karl        1.6     Pegasus includes the server which can be controlled from the command
292                     line and a
293 karl        1.3     set of clients that provide adminstrative functions</p>
294                     <p style="margin-left: 40px;">
295 dave.sudlik 1.1     The manpages for each of the commands are in the pegasus/rpm/manLinux/
296                     directory (from CVS). </p>
297 karl        1.6     <p style="margin-left: 40px;">To see simple help for each
298                     command,
299 dave.sudlik 1.1     invoke it with the "--help" option.<br>
300                     </p>
301 karl        1.6.8.1 <div style="margin-left: 40px;"><span style="font-weight: bold;">Some
302                     of
303 dave.sudlik 1.1     the basic commands:</span>
304                     <br>
305                     </div>
306                     <ul>
307 karl        1.6.8.1   <ul>
308                         <li><span style="font-family: monospace;">cimserve</span>r
309 karl        1.6     (Start the server
310 dave.sudlik 1.1     cimserver)</li>
311 karl        1.6.8.1     <li><span style="font-family: monospace;">cimserver
312 karl        1.6     -s</span>&nbsp; (Shuts down the cimserver)</li>
313 karl        1.6.8.1     <li><span style="font-family: monospace;">cimserver
314 karl        1.6     traceLevel=4 traceComponents=ALL</span>&nbsp;
315                     (Starts server
316 dave.sudlik 1.1     with
317                     config flags)</li>
318 karl        1.6.8.1   </ul>
319                       <ul>
320                         <li><span style="font-family: monospace;">cimprovider
321 karl        1.6     -l -s</span>&nbsp; (Lists providers and their
322                     status)</li>
323 karl        1.6.8.1     <li><span style="font-family: monospace;">cimprovider
324 karl        1.6     -e -m OperatingSystemModule</span>&nbsp;
325                     (Enables the
326 dave.sudlik 1.1     OperatingSystem provider)</li>
327 karl        1.6.8.1     <li><span style="font-family: monospace;">cimuser
328 karl        1.6.8.2 -a -u guest -w &lt;ThePassword&gt;</span> (Adds
329 karl        1.6     the user <span style="font-style: italic;">guest</span>
330                     with specified password)<br>
331 karl        1.6.8.1     </li>
332                         <li><span style="font-family: monospace;">cimuser
333 karl        1.6     -l</span>&nbsp; (Lists the users )</li>
334 karl        1.6.8.1     <li><span style="font-family: monospace;">cimconfig
335 karl        1.6     -l -c</span> (Lists the
336                     current config options and their current values)<br>
337 karl        1.6.8.1     </li>
338                       </ul>
339 dave.sudlik 1.1     </ul>
340 karl        1.3     <div style="margin-left: 40px;"><span style="font-weight: bold;">NOTES</span>:
341 dave.sudlik 1.1     <br>
342                     </div>
343 karl        1.3     <blockquote>
344 karl        1.6.8.1   <ol style="margin-left: 40px;">
345                         <li>Refer to the admin guide in
346 karl        1.6     pegasus/doc/Admin_Guide_Release.pdf
347 dave.sudlik 1.1     for
348                     more information about administering the OpenPegasus CIM Server.</li>
349 karl        1.6.8.1     <li>There are differences between Windows and other
350 dave.sudlik 1.1     platforms in
351 karl        1.6     starting the CIMserver as a daemon/service. Whereas most supported
352 dave.sudlik 1.1     platforms use
353                     the OpenPegasus <span style="font-weight: bold;">daemon</span>
354                     configuration option to start the CIM Server as a daemon, on
355                     Windows it
356                     must be specifically installed as a service (ex. cimserver -install)
357                     and then
358                     started as a service (cimserver -start). The cimserver --help option
359                     explains the
360                     exact format of the start and stop options.</li>
361 karl        1.6.8.1     <li>The cimuser command is used to manage OpenPegasus users
362 karl        1.6     only when
363                     the CIM Server is compiled without the PEGASUS_PAM_AUTHENTICATION
364 karl        1.6.8.1 environment variable defined. See <a
365                      href="http://www.openpegasus.org/pp/uploads/40/16781/PEP308_RecommendedReleaseOptions.htm">
366 karl        1.6     PEP 308</a> for more information on these configuration options.<br>
367 karl        1.6.8.1     </li>
368                       </ol>
369 karl        1.3     </blockquote>
370 karl        1.6     <a name="docs">Documentation</a>
371                     <p style="margin-left: 40px;">Much
372 dave.sudlik 1.1     of
373                     OpenPegasus
374 karl        1.6.8.1 is documented in the <a
375                      href="http://www.openpegasus.org/pp/index.tpl?CALLER=index.tpl">Pegasus
376 karl        1.6     Enhancement Process (PEPs)</a> which are the basis for approval
377                     of
378                     OpenPegasus functionality, changes, plans, etc.&nbsp; The approved
379                     PEPs
380 karl        1.6.8.1 are publicly available on the OpenPegasus web site.<span
381                      style="color: rgb(255, 0, 0);"><br>
382 dave.sudlik 1.1     </span></p>
383                     <p style="margin-left: 40px;">Other
384                     documentation available
385                     is an api document (creatable
386                     from the
387                     source tree, see pegasus/doc/apidoc) and other miscellaneous
388                     documentation
389 karl        1.6.8.1 in the CVS doc directory and the pegasus CVS root as readme files.
390                     Also, there is a set of Release Notes for each
391 karl        1.3     release in the OpenPegasus root
392 karl        1.6.8.1 source directory of CVS and as a Pegasus PEP.</p>
393 dave.sudlik 1.1     <h2><a name="part">How to Participate</a></h2>
394 karl        1.6     <p style="margin-left: 40px;"><font style="color: rgb(0, 0, 0);">Contributors
395 dave.sudlik 1.1     are welcome to participate in the OpenPegasus development effort. Join
396 karl        1.6.8.1 the mailing list by going to the <a
397                      href="http://www.openpegasus.org/mailinglists.tpl?CALLER=index.tpl">Mailing
398 dave.sudlik 1.1     Lists</a> web page from the OpenPegasus site.</font></p>
399                     <h1>
400                     <a name="inst_peg">Installing OpenPegasus</a> </h1>
401                     <h2><a name="download"></a>Download or Checkout</h2>
402                     <p style="margin-left: 40px;">Refer to the <a href="#avail_of_peg">Availability</a>
403                     section for instructions on obtaining source code.<br>
404                     </p>
405 karl        1.6     <p style="margin-left: 40px;">If you want to install
406                     pre-built Pegasus
407 karl        1.6.8.1 executables instead of building from source code, then refer to the <a
408                      href="http://www.openpegasus.org/pr/">RPM installation
409 karl        1.6     instructions</a>.<br>
410                     </p>
411                     <h2><strong><strong><a name="vfy_req_sw"></a>Verify
412 karl        1.6.8.1 Dependencies</strong></strong><strong><strong><span
413                      style="font-weight: normal;"></span></strong></strong></h2>
414                     <p style="margin-left: 40px;"><strong><strong><span
415                      style="font-weight: normal;">Be</span></strong></strong>fore
416 dave.sudlik 1.1     you build, install, or run OpenPegasus, be sure you have the proper set
417                     of software
418                     it depends on.&nbsp; Refer to the section <a href="#peg_dep">Dependencies</a>
419                     for
420                     the complete list.<br>
421                     </p>
422                     <strong></strong>
423 karl        1.6     <h2><a name="set_envt_var"><strong>Set the
424                     Environment
425 dave.sudlik 1.1     Variables</strong></a></h2>
426 karl        1.6     <p style="margin-left: 40px;">Before building, installing,
427                     or running
428 dave.sudlik 1.1     OpenPegasus, some environment variables may
429 karl        1.6     have to be defined or updated.&nbsp; See PEP 292 for the full list
430                     of
431 dave.sudlik 1.1     environment variables and configuration options for OpenPegasus. The
432                     minimum set is:<br>
433                     </p>
434                     <ul>
435 karl        1.6.8.1   <ul>
436                         <li>PEGASUS_ROOT -- The directory
437 karl        1.3     containing the OpenPegasus root directory from CVS.</li>
438 karl        1.6.8.1     <li>PEGASUS_HOME -- The directory
439 dave.sudlik 1.1     that will contain all output from building and running OpenPegasus, it
440                     can be the same as PEGASUS_ROOT if desired.</li>
441 karl        1.6.8.1     <li>PEGASUS_PLATFORM -- The
442                     platform on which OpenPegasus is being built.</li>
443                       </ul>
444                     </ul>
445                     <div style="margin-left: 40px;">There are a significant number of
446                     environment variables that control the compile and test of features in
447                     the OpenPegasus package in addition to the 3 variables described above.
448                     These variables are documented in the Pegasus documentation in CVS (see
449                     the pegasus/doc directory).</div>
450 dave.sudlik 1.1     <h2><a name="bld_peg"></a>Build the Executables<br>
451                     </h2>
452                     <div style="margin-left: 40px;">OpenPegasus
453 karl        1.6     is compiled and linked using a make structure that recurses through
454                     the&nbsp; OpenPegasus source tree.<br>
455 karl        1.6.8.1 <font><font color="RED"><span
456                      style="color: rgb(0, 0, 0); font-weight: bold;"><br>
457 dave.sudlik 1.1     Makefile commands
458                     </span></font></font><br>
459                     <br>
460 karl        1.6     OpenPegasus
461 dave.sudlik 1.1     includes several Makefiles that enable
462                     you to quickly build or
463                     refresh files for the server, clients, providers, test cases, and
464                     repository. To use these Makefiles, type "make" followed by one of the
465                     supplied targets.&nbsp; <br>
466                     <br>
467                     For more information on the
468                     available make targets, enter "make usage" from the PEGASUS_ROOT
469                     directory. A recommended minimum set
470                     to know are:
471                     <br>
472                     <ul>
473 karl        1.6.8.1   <li>usage -- Explains the
474 dave.sudlik 1.1     available make targets in some detail.</li>
475 karl        1.6.8.1   <li>new -- Clean out all
476 dave.sudlik 1.1     objects, libs, executables, and the repository.</li>
477 karl        1.6.8.1   <li>build -- Builds
478 dave.sudlik 1.1     dependencies, compiles, links, and installs the server. After this
479                     OpenPegasus is ready to run.</li>
480 karl        1.6.8.1   <li>alltests - Builds the
481 dave.sudlik 1.1     repository entries and other resources required by the tests, and then
482                     executes all automated tests.</li>
483 karl        1.6.8.1   <li>world - Builds the complete environment and runs the test suite.</li>
484 dave.sudlik 1.1     </ul>
485 karl        1.6     For a comprehensive
486 dave.sudlik 1.1     list of&nbsp; the
487 karl        1.6.8.1 make targets, refer to <big><span
488                      style="font-family: Courier New,Courier,monospace;">pegasus/Makefile</span></big>
489 karl        1.6     at the top of the OpenPegasus source directory.<br>
490 dave.sudlik 1.1     </div>
491                     <ul>
492                     </ul>
493 karl        1.6     <h2><a name="pop_peg_rep">Populate the Repository</a>
494                     </h2>
495 dave.sudlik 1.1     <p style="margin-left: 40px;">
496                     Before using OpenPegasus you must populate the repository. Typically,
497                     this
498 karl        1.6     is done during the build process by the 'make repository' target.
499                     However,
500 dave.sudlik 1.1     you
501                     can also compile MOF (Managed Object Format) code manually with the
502                     cimmof compiler.<br>
503                     </p>
504 karl        1.6     <p style="margin-left: 40px;">The 'make repository' target
505 karl        1.6.8.1 in the makefile <big><span
506                      style="font-family: Courier New,Courier,monospace;">pegasus/Makefile</span></big>
507 karl        1.6     performs several functions including:
508 dave.sudlik 1.1     </p>
509                     <ul>
510 karl        1.6.8.1   <li><span style="color: rgb(0, 0, 0);">Removes
511 karl        1.6     the existing
512 dave.sudlik 1.1     repository (if one exists).</span><br>
513 karl        1.6.8.1   </li>
514                       <li>Generates the default
515 karl        1.3     CIM Schema (defined in pegasus/mak/config.mak)
516 dave.sudlik 1.1     in the repository (skeleton of CIM
517 karl        1.6     objects).&nbsp; Refer to PEGASUS_CIM_SCHEMA environment
518                     variable&nbsp; in&nbsp; Pegasus PEP 308&nbsp; to
519                     set&nbsp; alternate schema versions.<br>
520 karl        1.6.8.1   </li>
521                       <li>Loads
522 dave.sudlik 1.1     schema for CIM Server functions (shutdown, add users, etc) and
523                     CIM indications
524                     (SNMP, Events, Alert, Threshold, etc)
525                     internal to Pegasus. </li>
526 karl        1.6.8.1   <li>Registers included CIM Providers (libOSProvider.so,
527                     libDNSProvider.so, &hellip; ) in OpenPegasus (which are located in
528 dave.sudlik 1.1     src/Providers) <br>
529 karl        1.6.8.1   </li>
530 dave.sudlik 1.1     </ul>
531                     <h2><a name="reg_prov">Register
532                     Providers</a></h2>
533 karl        1.6     <p style="margin-left: 40px;">OpenPegasus registers
534                     Providers using a
535 dave.sudlik 1.1     set of provider registration classes
536 karl        1.6.8.1 encoded in MOF. This classes are proprietary to OpenPegasus
537                     today.&nbsp; </p>
538 dave.sudlik 1.1     <p style="margin-left: 40px;">Registration
539                     is performed by creating instances of the
540                     registration classes that represent the provider module, providers,
541                     capabilities, etc. to be
542                     registered.&nbsp; The easiest way to create a new
543                     registration today is to copy from one of the existing registration
544 karl        1.6.8.1 MOFs.&nbsp; See the <big><span
545                      style="font-family: Courier New,Courier,monospace;">pegasus/src/Providers/sample/Load</span></big>
546 karl        1.6     directory for examples of
547 dave.sudlik 1.1     several registration instance implementations that do work with
548                     OpenPegasus
549                     today.</p>
550 karl        1.6.8.1 <p style="margin-left: 40px;">Registration may be performed by creating
551                     compiling the registration mof with either the on-line or off-line
552                     Pegasus mof compiler. &nbsp;It is recommended that providers be
553                     registered with the on-line compiler because this allows pegasus to
554                     validate the registration information.</p>
555 dave.sudlik 1.1     <h2><a name="note_bld_peg_lnx">Notes about
556                     Building on Linux </a></h2>
557                     <p style="margin-left: 40px;">
558                     To build OpenPegasus on Linux, ensure that you you have the necessary
559                     environment
560 karl        1.6     variables set (eg. PEGASUS_HOME, PEGASUS_ROOT,
561                     PEGASUS_PLATFORM).&nbsp;
562 dave.sudlik 1.1     For
563 karl        1.3     32 bit Linux, the definition of PEGASUS_PLATFORM is normally
564 karl        1.6     LINUX_IX86_GNU.&nbsp;&nbsp; For 64 bit IX86&nbsp; Linux the
565                     definition
566                     of
567 karl        1.3     PEGASUS_PLATFORM is normally LINUX_IX86_64_GNU.&nbsp; Use the g++
568 karl        1.6     compiler to compile and link the executables. All of the supported
569                     platform
570 karl        1.6.8.1 definitions are defined in <big><span
571                      style="font-family: Courier New,Courier,monospace;">pegasus/mak</span></big>
572 karl        1.6     as&nbsp; make files with the
573                     definition:</p>
574 karl        1.6.8.1 <p style="margin-left: 40px;">&nbsp; &nbsp; <span
575                      style="font-family: monospace;">&nbsp; &nbsp;
576 karl        1.6     platform_&lt;operatingSystem&gt;_&lt;architecture&gt;_&lt;compiler&gt;</span></p>
577                     <p style="margin-left: 40px;">The
578                     &lt;operatingSystem&gt;_&lt;architecture&gt;_&lt;compiler&gt;
579                     component is what forms the PEGASUS_PLATFORM environment variable so
580                     that the
581 karl        1.3     appropriate platform make file can be found during the build process.<br>
582 dave.sudlik 1.1     </p>
583                     <h2><a name="bld_peg_win">Notes
584                     about Building on Windows </a></h2>
585                     <p style="margin-left: 40px;">
586 karl        1.6     Use of Windows 2000 SP3 or later is recommended.&nbsp; OpenPegasus
587                     is
588 karl        1.6.8.1 regularly tested on mulitple windows platforms.</p>
589                     <p style="margin-left: 40px;">We build OpenPegasus
590 karl        1.6     on Windows
591 dave.sudlik 1.1     using a set of Makefiles
592                     contained
593                     in the source distribution, the Microsoft compilers (DevStudio 5.x is
594                     not supported, Visual Studio 6.0 (SP5) or later is supported) and the
595                     GNUMAKE
596 karl        1.6.8.1 make utility.&nbsp; Note that you MUST have the OpenPegasus <a
597                      href="#mu_utility">mu.exe </a>utility compiled and
598 karl        1.6     available
599 karl        1.6.8.1 before trying to compile OpenPegasus on the normal windows platform
600                     (This utility allows use of unix command line semantics for certain
601                     operations in windows).
602 dave.sudlik 1.1     The
603                     following is the basic setup steps for the environment.
604                     </p>
605 karl        1.6     <p style="margin-left: 40px;">Setup the environment
606                     variables and path
607 dave.sudlik 1.1     for the Micrososft Visual C
608                     compiler.
609                     Typically this can be done by running the VCVARS32.BAT file supplied
610                     with Microsoft Visual C++. (contained in the same directory as cl.exe).
611                     </p>
612 karl        1.6     <p style="margin-left: 40px;">For Windows, try the
613                     following for an
614 dave.sudlik 1.1     example environment: </p>
615                     <blockquote>
616 karl        1.6.8.1   <pre style="margin-left: 40px;"><span style="font-family: monospace;">REM call the standard Microsoft .bat for VC 6 setup. </span><br
617                      style="font-family: monospace;"><span style="font-family: monospace;">call 'C:/Program Files\Microsoft Visual Studio\VC98\Bin\Vcvars32.bat' </span><br
618                      style="font-family: monospace;"><span style="font-family: monospace;">REM Set debug to something if you want to compile in debug mode </span><br
619                      style="font-family: monospace;"><span style="font-family: monospace;">set PEGASUS_DEBUG=true </span><br
620                      style="font-family: monospace;"><span style="font-family: monospace;">REM set PEGASUS_ROOT to top of source tree </span><br
621                      style="font-family: monospace;"><span style="font-family: monospace;">set PEGASUS_ROOT=C:/cimom/pegasus </span><br
622                      style="font-family: monospace;"><span style="font-family: monospace;">REM (Note: </span><span
623                      style="font-family: monospace;" class="norm">The '/' characters are intentional and required by the OpenPegasus build system). <br>REM     Also the disk designator (C:) is required for at least some newer versions of the Microsoft<br>REM&nbsp;    compilers to avoid confusion between options and paths<br></span><span
624                      style="font-family: monospace;">REM set PEGASUS_HOME to where you want repository and executables, it can be the same as PEGASUS_ROOT</span><br
625                      style="font-family: monospace;"><span style="font-family: monospace;">set PEGASUS_HOME=%PEGASUS_ROOT% </span><br
626                      style="font-family: monospace;"><span style="font-family: monospace;">REM set PEGASUS_PLATFORM for Windows</span><br
627                      style="color: rgb(255, 0, 0); font-family: monospace;"><span
628                      style="font-family: monospace;">set PEGASUS_PLATFORM=WIN32_IX86_MSVC</span><br
629                      style="font-family: monospace;"><span style="font-family: monospace;">REM setup the path to the runtime files. </span><br
630                      style="font-family: monospace;"><span style="font-family: monospace;">set path=%path%;%PEGASUS_HOME%\bin </span><br></pre>
631 dave.sudlik 1.1     </blockquote>
632                     <h3>
633                     <a name="mu_utility">The MU Utility </a></h3>
634                     <p style="margin-left: 40px;">
635                     In order to provide a consistent build structure across multiple
636                     platforms, we
637                     developed a utility to provide a consistent set of functions across
638                     these platforms. The MU utility is a simple utility that
639                     contains
640                     many
641                     commands. For example:
642                     </p>
643                     <p style="margin-left: 40px;"><font face="Courier New">&nbsp;&nbsp;&nbsp;
644 karl        1.6     </font><span style="font-family: monospace;">C:\&gt;
645                     mu rm myfile.cpp yourfile.cpp</span> </p>
646                     <p style="margin-left: 40px;">You may type "mu" to get a
647                     list of valid
648 dave.sudlik 1.1     commands. Here are some
649                     of them:
650                     </p>
651                     <p style="margin-left: 40px;">&nbsp;&nbsp;&nbsp;
652                     rm, rmdirhier, mkdirhier, echo, touch, pwd, copy, move, compare depend
653                     </p>
654 karl        1.6     <p style="margin-left: 40px;">The MU utility supports
655                     globing
656 dave.sudlik 1.1     (expansion of wildcards) so
657                     you can do things like this:
658                     </p>
659 karl        1.6.8.1 <p style="margin-left: 40px;"><font face="Courier New">&nbsp;&nbsp;&nbsp;</font><span
660                      style="font-family: monospace;">
661 karl        1.6     C:\&gt; mu rm *.obj *.exe</span> </p>
662                     <p style="margin-left: 40px;">MU is required to build
663                     under the Windows
664 dave.sudlik 1.1     environment. MU is
665                     available as part
666                     of the distribution of OpenPegasus.<br>
667                     </p>
668 karl        1.6.8.1 <div style="margin-left: 40px;"><span style="font-weight: bold;">NOTE:</span>
669                     The binary for
670 karl        1.6     MU.EXE is not
671 dave.sudlik 1.1     distributed in the OpenPegasus bin
672                     directory.
673                     You must build it separately. MU source code is part of the
674                     distribution
675                     in the directory src/utils/MU with its own make file. You must compile
676                     MU
677                     before you initiate the OpenPegasus make. A copy of the binary is made
678 karl        1.6.8.1 available as a zip file on the OpenPegasus <a
679                      href="http://www.openpegasus.org/pb/index.tpl?CALLER=index.tpl">Tools</a>
680 dave.sudlik 1.1     web page.<br>
681                     </div>
682                     <h2><a name="note_bld_peg_ssl">Notes about
683                     Building with SSL
684                     </a></h2>
685                     <p style="margin-left: 40px;">
686                     To build with SSL you need the OpenSSL libraries and header files. They
687                     are NOT distributed with OpenPegasus. Make sure you have them in a
688                     standard
689                     directory so OpenPegasus can find them. If that's not
690                     the case, set the environment variable OPENSSL_HOME= to point where
691                     your OpenSSL
692 kumpf       1.2     installation is (refer to PEP 292
693 dave.sudlik 1.1     for more details on build variables).<br>
694                     </p>
695                     <p style="margin-left: 40px;">You
696 karl        1.6     must also have the PEGASUS_HAS_SSL environment variable defined. Then
697                     when you
698 dave.sudlik 1.1     build
699                     OpenPegasus, it
700                     will include the SSL support.
701                     </p>
702 karl        1.6     <div style="margin-left: 40px;">Refer to the OpenPegasus
703                     SSL Guide
704 dave.sudlik 1.1     (found in doc/PegasusSSLGuidelines.htm)
705                     for details on
706                     using OpenPegasus with SSL,
707                     creating SSL certificates, etc.<br>
708                     </div>
709                     <h1>
710                     <a name="test">Testing an OpenPegasus Installation</a></h1>
711                     <p style="margin-left: 40px;">
712                     OpenPegasus includes an extensive set of test facilities as part of the
713                     CVS
714                     environment, including:
715                     </p>
716 karl        1.6     <div style="margin-left: 40px;">
717 dave.sudlik 1.1     <ul>
718 karl        1.6.8.1   <li><b>Test Clients</b> - There are several
719 karl        1.6     clients that have been
720 dave.sudlik 1.1     built specifically to test OpenPegasus, or parts of OpenPegasus,
721                     including
722                     TestClient, Client, cimcli, ipinfo,
723                     osinfo, wbemexec,
724                     etc. See the
725                     src/Clients directory for more information. These programs require a
726                     running CIM Server with a
727                     complete repository.&nbsp; Note that some of
728                     these tests use classes and instances that are only installed with the
729                     "make testrepository" target including: test namespaces, extra
730                     classes and instances in those namespaces, and additional sample and
731 karl        1.6     test providers.</li>
732                     </ul>
733                     </div>
734                     <div style="margin-left: 40px;">
735                     <ul>
736 karl        1.6.8.1   <li><b>Sample and Test Providers</b> -&nbsp;
737 karl        1.6     Test providers exist
738 dave.sudlik 1.1     for
739                     the major provider types in the src/Providers/sample
740 karl        1.6     and src/Providers/TestProviders directories.</li>
741                     </ul>
742                     </div>
743                     <ul>
744 karl        1.6.8.1   <ul>
745                       </ul>
746 karl        1.6     </ul>
747                     <div style="margin-left: 40px;">
748                     <ul>
749 karl        1.6.8.1   <li><b>Unit Tests</b> - Most OpenPegasus
750 karl        1.6     functions include unit
751 dave.sudlik 1.1     tests
752                     for
753                     the functions.&nbsp; These are normally executed with the "make
754                     unittests"
755                     top-level target, or "make tests"
756                     which can be executed at many different levels of the source
757                     tree.&nbsp; Usually the unit test functions can be found
758                     in test
759                     directories immediately below their corresponding source code
760                     (i.e&nbsp; Common/tests contains the unit test
761                     functions for the Common
762                     directory). Unit tests are executed with the CIM Server shutdown and
763                     normally do not require the existence of class definitions in the
764 karl        1.6     repository.</li>
765                     </ul>
766                     </div>
767                     <ul style="margin-left: 40px;">
768 karl        1.6.8.1   <li><b>End-to-end Test Suite</b> - the directory
769 karl        1.6     "test" contains
770 dave.sudlik 1.1     a
771 karl        1.6     set of operation
772                     tests that cover the major CIM Operations.&nbsp; See
773 dave.sudlik 1.1     TestMakefile in the PEGASUS_ROOT directory to execute
774 karl        1.6     these tests.&nbsp; This set of tests executes an extensive set of
775                     fixed
776 dave.sudlik 1.1     tests and compares the results against predefined results.</li>
777                     </ul>
778 karl        1.6     <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
779                     Once OpenPegasus is
780                     successfully built, the&nbsp; tests can be executed through the
781                     root Makefile
782 karl        1.3     with targets such as:</p>
783                     <blockquote>
784 karl        1.6.8.1   <ul>
785                       </ul>
786                       <ul>
787                         <li><b>make unittests </b>- Execute the unit
788 karl        1.6     tests. These do not depend on having a running server or repository
789                     installed.&nbsp; They test components of the OpenPegasus code.
790                     These tests run to completion if successful but normally stop on the
791                     first error found by a test program.</li>
792 karl        1.6.8.1     <ul>
793                         </ul>
794                       </ul>
795 karl        1.6     </blockquote>
796                     <blockquote>
797 karl        1.6.8.1   <ul>
798                         <li><b>make servertests</b> - Executes the
799 karl        1.6     OpenPegasus end-to-end test suite against a running OpenPegasus server
800                     starting and stopping the server as required to modify configuration
801                     parameters. The repository must be installed for these tests to execute
802                     and they are tested against the default repository as part of regular
803                     OpenPegasus development and release testing. These tests will run to
804                     successful completion if there are not errors detected but will
805                     normally stop on the first error.&nbsp; There is a subset of these
806                     tests that can be run in an environment that does not have root
807                     privileges but root privileges are required to run the complete suite.</li>
808 karl        1.6.8.1   </ul>
809 karl        1.3     </blockquote>
810 karl        1.6     <ul>
811                     </ul>
812                     <ul style="margin-left: 40px;">
813 karl        1.6.8.1   <li><b>make alltests</b> - execute both the
814 karl        1.6     unit and end-to-end tests.</li>
815                     </ul>
816 dave.sudlik 1.1     <h2><a name="test_icu">Testing with ICU enabled</a></h2>
817 karl        1.6     <p style="margin-left: 40px;">ICU (International
818                     Components for
819 dave.sudlik 1.1     Unicode) refers to the set of
820                     libraries that OpenPegasus uses to run with globalization support. For
821                     example, these
822                     libraries are used
823                     to
824                     load messages in different languages, format currency and numbers
825                     according to
826                     a specific locale etc. In order to enable globalization, OpenPegasus
827                     must be built with ICU enabled, ie. the right environment variables
828                     must be
829                     set prior to running "make". Refer to the GlobalizationHOWTO.htm in the
830                     pegasus/docs
831                     directory for details.<br>
832                     </p>
833 karl        1.6     <p style="margin-left: 40px;">When users run "make
834                     servertests"
835 dave.sudlik 1.1     to verify the integrity of an OpenPegasus download, a series of tests
836                     are
837                     run that
838                     require the CIM Server to be running. These tests currently depend on
839                     specific
840                     messages returned from the CIM Server. When ICU is enabled, all
841                     messages
842                     come from the resource bundles and these usually do not match the
843                     hardcoded default messages within OpenPegasus. These hardcoded default
844                     messages are what the various test programs expect in order to complete
845                     successfully. If the ICU-enabled CIM Server is started without
846                     disabling message loading from the bundles, "make servertests"
847                     will
848                     fail.
849                     In order to run "make servertests"
850                     successfully with ICU enabled, an
851                     environment variable called PEGASUS_USE_DEFAULT_MESSAGES must be
852                     defined
853                     prior to
854                     starting OpenPegasus. Once
855                     this is defined, when OpenPegasus starts,
856 dave.sudlik 1.1     all
857                     messages generated will be the default hardcoded messages. This will
858                     enable
859                     "make servertests"
860                     to complete successfully. Once "make
861                     servertests"
862                     is
863                     complete, you should stop OpenPegasus and
864                     then undefine
865                     PEGASUS_USE_DEFAULT_MESSAGES. If this variable is left defined,
866                     OpenPegasus
867                     will not be able to load messages
868                     using ICU resource bundles.<br>
869                     </p>
870                     <p style="margin-left: 40px;">When
871                     running the "make unittests"
872                     command with ICU enabled, the PEGASUS_MSG_HOME
873                     environment variable must be set to the home directory where the ICU
874                     resource bundles are built. By default the resource bundles are built
875                     into directories below PEGASUS_HOME/msg, so that should be the setting
876                     for PEGASUS_MSG_HOME.<font style="color: rgb(0, 0, 0);"><br>
877 dave.sudlik 1.1     </font></p>
878                     <hr>
879 karl        1.6     <p>Licensed to The Open Group (TOG) under one or more contributor
880                     license
881                     agreements. Refer to the OpenPegasusNOTICE.txt file distributed with
882 martin      1.5     this work for additional information regarding copyright ownership.
883                     Each contributor licenses this file to you under the OpenPegasus Open
884                     Source License; you may not use this file except in compliance with the
885                     License.</p>
886 karl        1.6     <p>Permission is hereby granted, free of charge, to any person
887                     obtaining a
888                     copy of this software and associated documentation files (the
889                     "Software"),
890                     to deal in the Software without restriction, including without
891                     limitation
892                     the rights to use, copy, modify, merge, publish, distribute,
893                     sublicense,
894 martin      1.5     and/or sell copies of the Software, and to permit persons to whom the
895                     Software is furnished to do so, subject to the following conditions:</p>
896 karl        1.6     <p>The above copyright notice and this permission notice shall be
897                     included
898 martin      1.5     in all copies or substantial portions of the Software.</p>
899 karl        1.6     <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
900                     KIND, EXPRESS
901 martin      1.5     OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
902                     MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
903                     IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
904                     CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
905                     TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
906                     SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
907 dave.sudlik 1.1     <hr>
908 karl        1.6.8.1 </body>
909                     </html>

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2