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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2