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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2