1 karl 1.1 Pegasus - A Manageability Services Broker for the DMTF CIM/WBEM Standards
2
3
4 Author: Mike Brasher, Karl Schopmeyer
5 $Log$
6
7 Tagline: Pegasus is an object manager for DMTF CIM objects written in C++
8 and supported but The Open Group
9
10
11 Pegasus is an object manager for DMTF CIM objects It is written in C++ and
12 includes the Object manager, a set of defined interfaces, and SDKs for both
13 client, providers, and services extensions. It is maintained consistent with
14 the DMTF CIM and WBEM specifications except for any exceptions noted in the
15 documentation.
16
17 This distribution represents a work in progress towards building a Pegasus
18 release. Pegasus is open source and is covered under the following licnese.
19 This version is incomplete and is directed towards evaluators and developers
20 of the Pegasus Architecture.
21
22 karl 1.1 Pegasus is being developed and maintained under the auspices of The Open
23 Group. Pegasus is maintained under the license defined in the doc directory
24 (LICENSE) of this release. This licensing is intended to support as wide a
25 distribution as possible with minimal demands on the users.
26
27 This distribution represnts a snapshot of the current work. Currently Pegasus
28 is in phase 1 of a multiphase development project. This snapshot is primarily
29 for developers and for evaluation of the project.
30
31 More information and on this project, access to the CVS, and documentation on
32 Pegasus is available from the OpenGroup WEB site.
33
34 There are separate files in the release for
35
36 History of releases - HISTORY
37 What's new for this release - WHATSNEW
38 What's Broken - BUGS
39
40 In addition, the roadmap for Pegasus and further information on the project is
41 available on The Opengroup Pegasus WEB Site.
42
43 karl 1.1 http://www.opengroup.org/MSB
44
45 Availability of Pegasus
46 =======================
47
48 Pegasus is distributed as open source. Today the distribution is limited
49 because we want to reach a predefined level of development before making the
50 project publically available. The move from limited to open distribution will
51 be a decision of the Pegasus development team and The Open Group and should
52 occur before March 2001.
53
54 To get on the distribution list for Pegasus today, send an email to
55
56 m.kirk@opengroup.org
57 or
58 k.schopmeyer@opengroup.org
59
60 Pegasus Dependencies
61 ===========
62
63 We have worked to minimize the dependence of Pegasus on other software
64 karl 1.1 packages and tools. Currently Pegasus has the following dependencies
65
66 1. ACE_Wrappers - The ACE Wrappers package is used for communication and some
67 low level functions within the MSB, the Pegasus client SDK, and the Pegasus
68 Provider SDK. ACE is available from the following site.
69
70
71 http://ace.cs.wustl.edu/cvsweb/ace-cvs.cgi/ACE_wrappers/
72
73 Currently we are using version 5.1
74
75 http://www.cs.wustl.edu/~schmidt/ACE_wrappers/ACE-5.1.tar.gz
76
77
78 2. To simplify the building of Pegasus across multiple platforms we have
79 stnadardized on a set of build tools including: GNUMAKE. We are using GNUAKE
80 4.79.1 successfully both in Windows and Linux environments.
81
82 GNUMAKE is available from
83
84 http://www.gnu.org
85 karl 1.1
86 ATTN: I think we need to make our version available on the TOG site for now.
87
88
89 3. MU.EXE - To minimize the difference between Linux and Windows for GUNMAKE,
90 we have created a utility called MU.exe. The source for this is available
91 with the distribution and the binary is distributed in the bin directory of
92 the the snapshots for now.
93
94
95 Installation
96 ============
97
98 Pegasus currently compiles and runs under both Linux and Windows NT
99 environments.
100
101 The installation of Pegasus involves expanding the snapshot distribution files
102 and building the runtime, the test files and test clients, and building the repository.
103
104 NOTE: Since the compiler integration is not complete today, the class repository is populated
105 from the XML defintions for the complete CIM schema. This process is included in the build
106 karl 1.1 process so that at the end of a complete build, the class repository is completely populated
107 from the CIM 2.4 release schema.
108
109 Building from a Distribution --- General
110 ========================================
111
112
113 Pegasus is buildable and runnable on either Linux or WIndows Platforms today.
114 It uses a common build system for the two platforms based on build files and
115 GUNMAKE.
116
117 Generally we support four targets in our make system:
118
119
120 C:\> make clean
121 C:\> make depend
122 C:\> make
123 C:\> make tests
124
125
126 For information on particular installation characteristics, tools, etc. for each platform see
127 karl 1.1 the appropriate sections below:
128
129 Generally the build commands are as follows:
130
131 1. There is a Makefile in the Pegasus root. Simply executing make in the Pegasus
132 root directory will make everything.
133
134 2. In order to provide a working class repository for Pegasus until the MOF compiler
135 is integrated, There is a utility to load the CIM Schema from XML into the repository.
136 This executes the LoadRepository executable which is defined in
137
138 pegasus/src/Pegasus/Repository/tests/LoadRepository
139
140 with the binary in pegasus/bin. This program will load the CIM XML repository
141 definitions into the class repository.
142
143 3. To test a fresh release, go to the pegasus root and type
144
145 "make world".
146
147
148 karl 1.1 This will clean, build dependencies, build binaries, and then run all
149 tests except the Client/Server tests.
150
151 4. To execute the basic test suite that is shipped with pegasus type
152
153 "make tests"
154
155 5. To run the Client/Server tests provided, simply type
156
157 "make tests"
158
159 Running "make -s tests" suppresses extraneous output such as the
160 enter/leave directory messages.
161
162 6. "Make Clean" removes all object and library files from the
163 structure.
164
165 The MU Utility
166 ==============
167
168 In order to provide a consistent build structure across multiple platforms, we developed a
169 karl 1.1 small utility to provide a consistent set of small utilities across these platforms. The MU
170 utilityis a simple utility that contains many commands. For example:
171
172
173 C:\> mu rm myfile.cpp yourfile.cpp
174
175
176 You may type "mu" to get a list of valid commands. Here are some
177 of them:
178
179
180 echo, rm, rmdirhier, mkdirhier, copy, pwd, depend
181
182
183 The MU utility supports globing (expansion of wildcards) so
184 you can do things like this:
185
186
187 C:\> mu rm *.obj *.exe
188
189 MU is required to build under the Windows environment.MU is available as part of the
190 karl 1.1 distribution of Pegasus.
191
192 Building Pegausu on Linux
193 =========================
194
195 1. Obtain, unpack and build the ACE_Wrappers package for Linux.
196
197 2. Define an environment variable called ACE_ROOT that points to the root of the ACE_WRAPPERS
198 distribution. For example
199
200 IMPORT ACE_ROOT=\local\ACE_Wrappers
201
202 ATTN: Mike. what is a viable directory for Linux (what do you use)
203
204 3. Define an environment variable PEGASUS_ROOT that points to the
205 root of the Pegasus Distribution
206
207 4. Append %PEGASUS_ROOT%/bin to your path
208
209 5. Unpack the ace distribution.
210
211 karl 1.1 ATTN: Unpack with what since ZIP.
212
213 5. Build using the make commands defined in the section on General Build.
214
215 make world
216 make tests
217
218 Building Pegasus on NT or Windows 2000 With Visual C++
219 =======================================================
220
221 Today we build Pegasus on Windows NT using a set of make files contained
222 in the source distribution, the Microsoft compilers (tested so far with
223 versions 5 and 6) and the GNUMAKE make utility. The following is the basic
224 set up steps for the
225
226
227 1. Setup the environment variables and path for the Micrososft Visual C compiler.
228 Typically this can be done by running the VCVARS32.BAT file supplied with Microsoft Visual
229 C++. (contained in the same directory as cl.exe).
230
231 2. Define an environment variable called ACE_ROOT that points to the
232 karl 1.1 root of the ACE_Wrappers distribution. For example:
233
234 C:\> set ACE_ROOT=c:/ACE_wrappers
235
236 Now append %ACE_ROOT%/bin to the path like this:
237
238 C:\> set path=%path%;%ACE_ROOT%/bin
239
240 3. Define an environment variable called PEGASUS_ROOT that points to
241 the root of the Pegasus distribution. For example:
242
243 C:\> set PEGASUS_ROOT=c:/pegasus
244
245 Now append %PEGASUS_ROOT%/bin to your path like this:
246
247 set path=%path%;%PEGASUS_ROOT%/bin
248
249 4. Unpack and build the ACE_Wrappers distribution for windows.
250
251 As an example, we created a file called %ACE_ROOT%/ace/config.h
252 containing the following:
253 karl 1.1
254 #include "ace/config-win32.h"
255
256 and then opened this DSW file in MSVC++ IDE:
257
258 %ACE_ROOT%/ace/ace.dsw
259
260 From the build menu we picked "aced.dll". For me it built without complaint.
261
262 BUG: there is still one open problem that has not been resolved. With
263 the Visucal C++ version 6 compiler, the ace libraries default to
264
265 acemfc.dll
266
267 With the version 5 visual C, apparently they default to the names
268
269 ace.dll
270 or
271 aced.dll (debug verions
272
273 We will correct this in a future snapshot.
274 karl 1.1
275
276 5. Unpack the Pegasus distribution. On Windows systems, PKzip25 or WINZIP can be used.
277 Be certain to use the option that expands the directory tree of the files. This expansionwill
278 create a directory called ./pegasus
279
280 If you are using pkzip25.exe do this:
281 C:\> pkzip25 -extract -recurse -directories pegasus.zip
282
283 This will create a directory tree called ./pegasus under the
284 current directory.
285
286 ATTN: Define for Linux also
287
288 6. Change directory to %PEGASUS_ROOT% and type "make world". See the general build section
289 for the full set of make commands.
290
291 This builds Pegasus and all of its examples.
292
293 7. To verify that it built okay, run the tests
294
295 karl 1.1 make tests
296
297
298 Development with Pegasus and Pegasus Tools
299 ==========================================
300
301 ATTN: This section needs to be completed. It should reference the more
302 complete documentation
303
304 ===================
305 Documentation
306
307 The documentation is currently in preperation. The preliminary documentation is not provided
308 with this snapshot but is avialable from the OpenGroup Pegasus WEB pages.
309
310 Participate!
311 ============
312 We are looking for people who want to join the effort of getting this
313 next release off the ground. Please send me email for details.
314
315
316 karl 1.1
317
318
319
320
321
322
|