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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2