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.8 <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> Installation, build,
24 and operation
|
25 dave.sudlik 1.1 information on
|
26 lawrence.luo 1.8 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&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. OpenPegasus is maintained under the license defined in
131 the
|
132 dave.sudlik 1.1 doc
|
133 karl 1.7 directory of this release. The specific file is: <font
134 style="color: rgb(0, 0, 0);">pegasus/doc/license.txt</font>.
|
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;">
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 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. 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&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&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&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 </font>
195 (<a href="mailto:%28k.m.kirk@opengroup.org">m.kirk@opengroup.org</a>)
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. 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. The Release Notes for each
206 release
|
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 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. These tools are required <b>ONLY</b>
233 for
234 development of the parsers, not for building OpenPegasus.
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. This
240 is required <b>ONLY</b> if you want to build documentation
|
241 karl 1.7 from the source tree. <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> (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>
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> (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>
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.8 -a -u guest -w <ThePassword></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> (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. 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. 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. 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 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. <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 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). Refer to PEGASUS_CIM_SCHEMA environment
519 variable in Pegasus PEP 308 to
520 set 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, … ) 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. </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. The easiest way to create a new
544 registration today is to copy from one of the existing registration
|
545 karl 1.7 MOFs. 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. 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).
|
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. For 64 bit IX86 Linux the
566 definition
567 of
|
568 karl 1.3 PEGASUS_PLATFORM is normally LINUX_IX86_64_GNU. 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 make files with the
574 definition:</p>
|
575 karl 1.7 <p style="margin-left: 40px;"> <span
576 style="font-family: monospace;">
|
577 karl 1.6 platform_<operatingSystem>_<architecture>_<compiler></span></p>
578 <p style="margin-left: 40px;">The
579 <operatingSystem>_<architecture>_<compiler>
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. 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. 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 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">
|
645 karl 1.6 </font><span style="font-family: monospace;">C:\>
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;">
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"> </font><span
661 style="font-family: monospace;">
|
662 karl 1.6 C:\> 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. 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> -
|
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. 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. Usually the unit test functions can be found
759 in test
760 directories immediately below their corresponding source code
761 (i.e 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. See
|
774 dave.sudlik 1.1 TestMakefile in the PEGASUS_ROOT directory to execute
|
775 karl 1.6 these tests. 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>
780 Once OpenPegasus is
781 successfully built, the 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. 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. 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>
|