version 1.5, 2001/02/26 10:36:34
|
version 1.9, 2001/12/13 14:53:05
|
|
|
| |
Author: Mike Brasher, Karl Schopmeyer | Author: Mike Brasher, Karl Schopmeyer |
| |
------------------------------------------------------------------------------ |
|
-- |
|
|
|
$Log$ |
|
Revision 1.5 2001/02/26 10:36:34 karl |
|
Clean Up Text |
|
|
|
Revision 1.4 2001/01/26 20:20:36 karl |
|
Clean up Readme with MB comments |
|
|
|
Revision 1.3 2001/01/22 15:09:29 mike |
|
Reworking indentation and breaking width of lines below 80 columns (not |
|
finished). Also |
|
inserted comments and suggestions following "MEB:" annotations. |
|
|
|
|
|
Revision 1.1 2001/01/15 04:26:04 karl |
|
added Readme |
|
|
|
------------------------------------------------------------------------------ |
|
-- |
|
|
|
Tagline: Pegasus is an object manager for DMTF CIM objects written in C++ | Tagline: Pegasus is an object manager for DMTF CIM objects written in C++ |
and supported by The Open Group | and supported by The Open Group |
| |
|
Overview: |
|
========= |
|
|
Pegasus is an open-source object manager for DMTF CIM objects. It is written | Pegasus is an open-source object manager for DMTF CIM objects. It is written |
in C++ and includes the Object manager, a set of defined interfaces, and SDKs | in C++ and includes the Object manager, a set of defined interfaces, and SDKs |
for both client, providers, and services extensions. It is maintained | for both client, providers, and services extensions. It is maintained |
|
|
| |
http://www.opengroup.org/MSB | http://www.opengroup.org/MSB |
| |
Availability of Pegasus |
Availability of Pegasus: |
======================= |
======================== |
| |
Pegasus is distributed as open source. Today the distribution is limited | Pegasus is distributed as open source. Today the distribution is limited |
because we want to reach a predefined level of development before making the | because we want to reach a predefined level of development before making the |
|
|
| |
k.schopmeyer@opengroup.org | k.schopmeyer@opengroup.org |
| |
Pegasus Major Components |
Pegasus Major Components: |
======================== |
========================= |
| |
The major components of Pegasus are: | The major components of Pegasus are: |
| |
|
|
Pegasus MOF Compiler - FA standalone compiler for MOF files that can be used | Pegasus MOF Compiler - FA standalone compiler for MOF files that can be used |
to install MOF into the Pegasus schema repository and also to check syntax | to install MOF into the Pegasus schema repository and also to check syntax |
| |
Pegasus Dependencies |
Pegasus Dependencies: |
==================== |
===================== |
| |
We have worked to minimize the dependence of Pegasus on other software | We have worked to minimize the dependence of Pegasus on other software |
packages and tools. Currently Pegasus has the following dependencies | packages and tools. Currently Pegasus has the following dependencies |
| |
1. ACE_Wrappers communication package - The ACE Wrappers package is used for |
1. GNUMAKE - To simplify the building of Pegasus across multiple platforms we |
communication and some low level functions within the MSB, the Pegasus client |
have standardized on a set of build tools including: GNUMAKE. We are using |
SDK, and the Pegasus Provider SDK. ACE is available from the following site. |
GNUAKE 4.79.1 successfully both in Windows and Linux environments. |
|
|
http://ace.cs.wustl.edu/cvsweb/ace-cvs.cgi/ACE_wrappers/ |
|
|
|
Currently we are using version 5.1 of ACE_Wrappers both in Linux and Windows. |
|
|
|
http://www.cs.wustl.edu/~schmidt/ACE_wrappers/ACE-5.1.tar.gz |
|
|
|
COMMENTS: Pegasus only uses limited facilities from ACE. We actively |
|
discourage the Pegasus team from using other functions of ACE. We expect to |
|
eliminate our dependence on ACE as the only TCP tool in the near future. |
|
However, today we |
|
demand the installation of the complete ACE library. One of the action items |
|
for the future is to provide a more limited ACE library and possibly even to |
|
provide an environment independent of ACE. |
|
|
|
2. To simplify the building of Pegasus across multiple platforms we have |
|
standardized on a set of build tools including: GNUMAKE. We are using GNUAKE |
|
4.79.1 successfully both in Windows and Linux environments. |
|
| |
GNUMAKE is available from | GNUMAKE is available from |
| |
|
|
| |
ATTN: I think we need to make our version available on the TOG site. | ATTN: I think we need to make our version available on the TOG site. |
| |
COMMENT: Unless other users of Pegasus demand it, we will NOT create any build |
COMMENT: Unless other users of Pegasus demand it, we will NOT create |
environment for Pegasus that does not require GNUMAKE (e.g., Visual C++). We |
any build environment for Pegasus that does not require GNUMAKE (e.g., |
are open to other developers who want to contribute other build structures for |
Visual C++). We are open to other developers who want to contribute |
particular environments. |
other build structures for particular environments. |
|
|
|
2. MU.EXE - To minimize the difference between Linux and Windows for GUNMAKE, |
3. MU.EXE - To minimize the difference between Linux and Windows for GUNMAKE, |
we have created a utility called MU.exe. This utility is required for |
we have created a utility called MU.exe. This utility is required for Pegasus |
Pegasus make with Windows environment. It is provided as an alternative to |
make with Windows environment. It is provided as an alternative to requiring a |
requiring a number of UNIX utilities (SH, RM, etc.) on the windows platform |
number of UNIX utilities (SH, RM, etc.) on the windows platform and |
and effectively provides the functions of these utilities that GNUMAKE |
effectively provides the functions of these utilities that GNUMAKE needs. |
needs. MU is not required on UNIX or LINUX platforms. |
MU is not required on UNIX or LINUX platforms. |
|
| |
NOTE: The binary for MU.EXE is not distributed in the Pegasus bin directory. | NOTE: The binary for MU.EXE is not distributed in the Pegasus bin directory. |
You must build it separately. MU source code is part of the distribution | You must build it separately. MU source code is part of the distribution |
|
|
NOTE: We will make a copy of the binary available on the MSB WEB site to | NOTE: We will make a copy of the binary available on the MSB WEB site to |
eliminate the requirement to build this utility. | eliminate the requirement to build this utility. |
| |
4. FLEX and BISON - These tools were used to develop the compiler, anybody |
3. FLEX and BISON - These tools were used to develop the compiler, anybody |
intending to recompile the compiler from scratch will be required to have | intending to recompile the compiler from scratch will be required to have |
these tools. | these tools. |
| |
5. DOC++ - The Pegasus documentation is taken from a combination of text files |
4. DOC++ - The Pegasus documentation is taken from a combination of text files |
and the Pegasus header files themselves. This documentation is formatted with |
and the Pegasus header files themselves. This documentation is formatted |
DOC++ and GAWK. These tools are required if the documentation is to be |
with DOC++ and GAWK. These tools are required if the documentation is to |
recreated but we expect that only the core team will be recreating |
be recreated but we expect that only the core team will be recreating |
documentaiton. | documentaiton. |
| |
|
|
The Pegasus Directory Structure | The Pegasus Directory Structure |
=============================== | =============================== |
| |
|
|
Service Extensions | Service Extensions |
Servers - Today the server executable is built from /server/test. | Servers - Today the server executable is built from /server/test. |
| |
Installation |
Installation: |
============ |
============= |
| |
Pegasus today is provided only as a source distribution. You download compile | Pegasus today is provided only as a source distribution. You download compile |
and use it. Pegasus currently compiles and runs under both Linux and Windows |
and use it. Pegasus currently compiles and runs under Linux, AIX, HPUX, |
NT environments. |
Windows NT, and Windows 2000. |
| |
The installation of Pegasus involves expanding the snapshot distribution | The installation of Pegasus involves expanding the snapshot distribution |
files, building the runtime, the test files and test clients, and building the | files, building the runtime, the test files and test clients, and building the |
repository. | repository. |
| |
NOTE: Since the compiler integration is not complete today, the class |
Building Pegasus: |
repository is populated from the XML defintions for the complete CIM schema. |
================= |
This process is included in the build process so that at the end of a complete |
|
build, the class repository is completely populated from the CIM 2.4 release |
|
schema. |
|
| |
|
1. Check that you have requisite programs (listed in Pegasus Dependencies). |
| |
Building from a Distribution --- General |
These include GNU Make, MU.EXE, Flex, and Bison |
======================================== |
|
| |
Pegasus is buildable and runnable on either Linux or WIndows Platforms today. |
Be sure these are on your path. |
It uses a common build system for the two platforms based on build files in |
|
each directory, a recursive build strucutre to execute the multiple makes and |
|
GUNMAKE. |
|
|
|
Generally we support the followingtargets in our make system: |
|
| |
|
2. Define the following two environment variables: |
| |
C:\> make clean - Clean out all objects, libs, and executables |
PEGASUS_HOME - to point to a directory to contain output binary files |
C:\> make depend - Create the dependencies |
(e.g., set it to $HOME/pegasus_home). |
C:\> make |
|
C:\> make tests - Execute all tests except client server tests |
|
C:\> make rebuild - Clean and rebuild including the respository |
|
C:\> make world |
|
| |
The Pegasus Client server tests are executed separately from the above because |
PEGASUS_PLATFORM - this must be set to a supported platform identifier. |
they require the initiation of separate process for the Pegasus server and |
The following are supported: |
Pegasus client. These tests can be executed as follows: |
|
| |
ATTN: Add the procedure for Client/Server Test start here. |
WIN32_IX86_MSVC |
|
LINUX_IX86_GNU |
|
AIX_RS_IBMCXX |
|
HPUX_PARISC_ACC |
| |
|
This identifier has the following form: |
| |
For information on particular installation characteristics, tools, etc. for |
<Operating-System>_<Architecture>_<Compiler> |
each platform see |
|
the appropriate sections below: |
|
| |
Generally the build commands are as follows: |
Note: if you plan on doing parallel builds, you might consider setting |
|
PEGASUS_HOME to something like this: |
| |
1. There is a Makefile in the Pegasus root. Simply executing make in the |
$HOME/pegasus_home_LINUX_IX86_GNU |
Pegasus root directory will make everything. Make rebuild will clean and |
|
rebuild everything. |
|
| |
2. In order to provide a working class repository for Pegasus until the |
That way, the output of each build will be placed in its own directory. |
MOF compiler is integrated, There is a utility to load the CIM Schema from |
|
XML into the repository. This executes the LoadRepository executable which |
|
is defined in |
|
| |
pegasus/src/Pegasus/Repository/tests/LoadRepository |
3. Now place $PEGASUS_HOME/bin on your path |
| |
with the binary in pegasus/bin. This program will load the CIM XML |
and |
repository definitions into the class repository. |
|
| |
3. To test a fresh release, go to the pegasus root and type |
Placd $PEGASUS_HOME/lib on your LD_LIBRARY_PATH (for Unix only). |
| |
"make world". |
4. Now change to the root of the Pegasus distrubution and type "make" |
|
(where make referes to GNU make). |
| |
|
5. Then create the repository, which is needed for some test cases - |
|
"make repository" |
| |
This will clean, build dependencies, build binaries, and then run all |
6. To test the build type "make tests". |
tests except the Client/Server tests. |
|
|
The following make targets are supported: |
| |
4. To execute the basic test suite that is shipped with pegasus type |
<default> - Build everything. |
|
clean - Clean out all objects, libs, and executables. |
|
depend - Create the dependencies. |
|
repository - Create the repository in $PEGASUS_HOME/repository |
|
tests - Execute all tests (except client server tests). |
|
rebuild - clean, depend, <default> |
|
world - depend, <default> |
| |
"make tests" |
The Pegasus Client server tests are executed separately from the above because |
|
they require the initiation of separate process for the Pegasus server and |
|
Pegasus client. These tests can be executed as follows: |
| |
5. To run the integral unit code tests provided, simply type |
ATTN: Add the procedure for Client/Server Test start here. |
| |
"make tests" |
For information on particular installation characteristics, tools, etc. for |
|
each platform see the appropriate sections below: |
| |
Running "make -s tests" suppresses extraneous output such as the |
Generally the build commands are as follows: |
enter/leave directory messages. |
|
|
1. There is a Makefile in the Pegasus root directory. Simply executing |
|
make in the Pegasus root directory will make everything. "Make rebuild" |
|
will clean and rebuild everything. The "make rebuild" will also populate |
|
the repository with the current CIM Schemas. |
| |
6. "Make Clean" removes all object and library files from the structure. |
2. To test a fresh release, go to the pegasus root and type |
| |
Build Variables |
"make world". |
=============== |
|
| |
The build system depends on the following environment variables build set. |
|
These variables must be set as part of the installation of the Pegasus source |
|
tree before you can compile or run Pegasus. |
|
| |
PEGASUS_ACE_ROOT - required (points to ACE_wrappers directory). This must |
This will build dependencies, build binaries, and then run all |
be set before you initiate make |
tests except the Client/Server tests. |
| |
PEGASUS_OS_TYPE - optional. The is currently set to windows. If you build |
3. To execute the basic test suite that is shipped with pegasus type |
on any platform except windows you must change this before initiating |
|
make. |
|
| |
PEGASUS_ROOT - Root directory of the Pegasus tree. |
"make tests". This also reintalls the repository. |
PEGASUS_HOME - Home directory for all of the Pegasus runtime elements. |
|
If this does not exist, $PEGASUS_ROOT$/build is assumed. |
|
| |
COMMENTS: In the future, we will probably automate this more. However, |
Running "make -s tests" suppresses extraneous output such as the |
setting these variables today is manual. |
enter/leave directory messages. |
| |
|
4. "Make Clean" removes all object and library files from the structure. |
| |
The MU Utility | The MU Utility |
============== | ============== |
|
|
MU is required to build under the Windows environment.MU is available as part | MU is required to build under the Windows environment.MU is available as part |
of the distribution of Pegasus. | of the distribution of Pegasus. |
| |
Building Pegausu on Linux |
Notes about Building Pegasus on Linux: |
========================= |
====================================== |
|
|
1. Obtain, unpack and build the ACE_Wrappers package for Linux. |
|
|
|
2. Define an environment variable called ACE_ROOT that points to the |
|
root of the ACE_WRAPPERS distribution. For example |
|
|
|
IMPORT PEGASUS_ACE_ROOT=\local\ACE_Wrappers |
|
|
|
ATTN: Mike. what is a viable directory for Linux (what do you use) |
|
|
|
3. Define an environment variable PEGASUS_ROOT that points to the |
|
root of the Pegasus Distribution |
|
| |
|
ATTN: put something here (but only what is not mentioned above). |
4. Define the environment variable PEGASUS_HOME where you want the |
|
runtime elements (executables, objects, libraries, etc.) to go. |
|
5. Unpack the ace distribution. |
|
|
|
|
|
6. Append %PEGASUS_ROOT%/bin to your path |
|
|
|
7. From the %PEGASUS_ROOT% directory build using the make commands |
|
defined in the section on General Build. |
|
|
|
make world |
|
make tests |
|
| |
Building Pegasus on NT or Windows 2000 With Microsoft Visual C++ | Building Pegasus on NT or Windows 2000 With Microsoft Visual C++ |
================================================================ | ================================================================ |
|
|
versions 5 and 6) and the GNUMAKE make utility. The following is the basic | versions 5 and 6) and the GNUMAKE make utility. The following is the basic |
set up steps for the | set up steps for the |
| |
|
Setup the environment variables and path for the Micrososft Visual C |
1. Setup the environment variables and path for the Micrososft Visual C |
|
compiler. Typically this can be done by running the VCVARS32.BAT file | compiler. Typically this can be done by running the VCVARS32.BAT file |
supplied with Microsoft Visual C++. (contained in the same directory | supplied with Microsoft Visual C++. (contained in the same directory |
as cl.exe). | as cl.exe). |
| |
2. Define an environment variable called ACE_ROOT that points to the |
Installing the Pegasus HTML Test Client: |
root of the ACE_Wrappers distribution. For example: |
======================================== |
|
|
C:\> set PEGASUS_ACE_ROOT=c:/ACE_wrappers |
|
|
|
Now append %ACE_ROOT%/bin to the path like this: |
|
|
|
C:\> set path=%path%;%PEGASUS_ACE_ROOT%/bin |
|
|
|
3. Define an environment variable called PEGASUS_ROOT that points to |
|
the root of the Pegasus distribution. For example: |
|
|
|
C:\> set PEGASUS_ROOT=c:/pegasus |
|
|
|
|
|
4. Setup the PEGASUS_HOME environment variable |
|
set PEGASUS_HOME=c:/PegasusRun |
|
|
|
Now append %PEGASUS_HOME%/bin to your path like this: |
|
|
|
set path=%path%;%PEGASUS_HOME%/bin |
|
|
|
5. Unpack and build the ACE_Wrappers distribution for windows. |
|
|
|
As an example, we created a file called %ACE_ROOT%/ace/config.h |
|
containing the following: |
|
|
|
#include "ace/config-win32.h" |
|
|
|
and then opened this DSW file in MSVC++ IDE: |
|
|
|
%ACE_ROOT%/ace/ace.dsw |
|
|
|
From the build menu we picked "ace.dll". For me it built without |
|
complaint. |
|
|
|
The ACE package can be built in several configurations: |
|
|
|
ace.dll - The basic package without debugging |
|
aced.dll - debugging added to the basic package |
|
acemfc.dll - ACE with Microsoft MFC support |
|
acemfcd.dll - The ACE MFC version with debugging. |
|
|
|
ace.dll is used for the server build acemfc is used for the client |
|
builds. |
|
|
|
NOTE: In the near future we will be building debugging options into |
|
Pegasus and at that time the aced and acemfcd libraries will also be |
|
required. |
|
|
|
Each library can be built separately from Microsoft Visual C++. |
|
|
|
6. Unpack the Pegasus distribution. On Windows systems, PKzip25 or |
|
WINZIP can be used. Be certain to use the option that expands the |
|
directory tree of the files. This expansion will create a directory |
|
called ./pegasus |
|
|
|
If you are using pkzip25.exe do this: |
|
C:\> pkzip25 -extract -recurse -directories pegasus.zip |
|
|
|
This will create a directory tree called ./pegasus under the |
|
current directory. |
|
|
|
|
|
7. Change directory to %PEGASUS_ROOT% and type "make world". See the |
|
general build section for the full set of make commands. |
|
|
|
This builds Pegasus and all of its examples. |
|
|
|
7. To verify that it built okay, run the tests |
|
|
|
make tests |
|
|
|
Installing the Pegasus HTML Test Client |
|
======================================= |
|
| |
This is a separate test tool that allows Pegasus requests to be initiated from | This is a separate test tool that allows Pegasus requests to be initiated from |
any WEB browser and that uses a WEB browser, CGI scritps and HTML pages for | any WEB browser and that uses a WEB browser, CGI scritps and HTML pages for |
|
|
instructions for setting up this environment are maintained in a separate | instructions for setting up this environment are maintained in a separate |
readme in the CGI directory. | readme in the CGI directory. |
| |
Development with Pegasus and Pegasus Tools |
Development with Pegasus and Pegasus Tools: |
========================================== |
=========================================== |
| |
ATTN: This section needs to be completed. It should reference the more | ATTN: This section needs to be completed. It should reference the more |
complete documentation | complete documentation |
| |
=================== |
Documentation: |
Documentation |
============== |
| |
The documentation is currently in preperation. The preliminary documentation | The documentation is currently in preperation. The preliminary documentation |
is not provided with this snapshot but is avialable from the OpenGroup Pegasus | is not provided with this snapshot but is avialable from the OpenGroup Pegasus |
|
|
| |
Participate! | Participate! |
============ | ============ |
|
|
We are looking for people who want to join the Pegasus work group and | We are looking for people who want to join the Pegasus work group and |
contribute to effort of getting this Pegasus off the ground. Please send | contribute to effort of getting this Pegasus off the ground. Please send |
email for details to k.schopmeyer@opengroup.org or m.kirk@opengroup.org or | email for details to k.schopmeyer@opengroup.org or m.kirk@opengroup.org or |
m.brasher@opengroup.org | m.brasher@opengroup.org |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|