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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2