(file) Return to readme.txt CVS log (file) (dir) Up to [Pegasus] / pegasus / Attic

Diff for /pegasus/Attic/readme.txt between version 1.4 and 1.8.2.1

version 1.4, 2001/01/26 20:20:36 version 1.8.2.1, 2001/09/24 11:25:53
Line 2 
Line 2 
  
 Author: Mike Brasher, Karl Schopmeyer Author: Mike Brasher, Karl Schopmeyer
  
 ------------------------------------------------------------------------------  
 --  
   
 $Log$  
 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 buy The Open Group           and supported by The Open Group
  
 Pegasus is an object manager for DMTF CIM objects. It is written in C++ and  Overview:
 includes the Object manager, a set of defined interfaces, and SDKs for both  =========
 client, providers, and services extensions.  It is maintained consistent with  
 the DMTF CIM and WBEM specifications except for any exceptions noted in the  Pegasus is an open-source object manager for DMTF CIM objects. It is written
 documentation.  in C++ and includes the Object manager, a set of defined interfaces, and SDKs
   for both client, providers, and services extensions.  It is maintained
   consistent with the DMTF CIM and WBEM specifications except for any exceptions
   noted in the documentation.
  
 This distribution represents a work in progress towards building a Pegasus This distribution represents a work in progress towards building a Pegasus
 release. Pegasus is open source and is covered under the following license. release. Pegasus is open source and is covered under the following license.
Line 58 
Line 42 
  
 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
Line 75 
Line 59 
  
 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 Server - WBEM/CIM Server with interfaces for providers and clients Pegasus Server - WBEM/CIM Server with interfaces for providers and clients
  
 Pegasus Repository - Today Pegasus provides a defined class repository  Pegasus Repositories - Today Pegasus provides a defined class repository
     interface and a simple file based class repository. Future will include      interface and a simple file based class repository. It also includes
     the object [MEB: instance?] repository      an instance repository. Note that these repository were created for
       functionality, not efficieny. It is expected that they will be replaced
       with other implementations of the respository function as the need arrses.
  
 Pegasus Client SDK - Tools for building Pegasus clients based on the Pegasus Pegasus Client SDK - Tools for building Pegasus clients based on the Pegasus
     C++ interfaces and using the WBEM HTTP/XML protocols or directly     C++ interfaces and using the WBEM HTTP/XML protocols or directly
Line 99 
Line 85 
     and the recept of the response as WEB pages. This has proven useful as a     and the recept of the response as WEB pages. This has proven useful as a
     test tool and can be used for a wide variety of demonstrations.     test tool and can be used for a wide variety of demonstrations.
  
 Pegasus Providers - Future (Version 1.0)  Pegasus Provider SDK - Tools for build Pegasus clients based on the Pegasus
       C++ interfaces.
   
   Pegasus Providers - A sampling of key providers to make the environment
   complete as well as test providers and demonstration providers for the
   Pegasus.
  
 Pegasus Service Extensions -  Future (version 1.0) Pegasus Service Extensions -  Future (version 1.0)
  
 Pegasus MOF Compiler - Future (Version 0.9)  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
  
 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.  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. This will depend on the demands of  
 the users.  
   
 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
  
Line 137 
Line 113 
  
 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
Line 158 
Line 133 
 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.
  
   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
       these tools.
   
   4.  DOC++ - The Pegasus documentation is taken from a combination of text files
       and the Pegasus header files themselves.  This documentation is formatted
       with DOC++ and GAWK.  These tools are required if the documentation is to
       be recreated but we expect that only the core team will be recreating
       documentaiton.
  
 The Pegasus Directory Structure The Pegasus Directory Structure
 =============================== ===============================
Line 168 
Line 152 
 This structure is generally as follows This structure is generally as follows
  
 Pegasus                     Pegasus Root directory Pegasus                     Pegasus Root directory
     build                   Destination for all intermediate files from build  
         bin                 Destination for executable and DLL modules from  
                             Pegasus build      build                   Default destination for runtime if PEGASUS_HOME
         lib                 Destination for Pegasus LIB modules                              is not specified.  Does not exist if PEGASUS_HOME
         obj                 Destination for object modules                              is specified
     cgi-bin                 Source for the Pegasus WEB Based Test client  
     doc                     Miscelaneous Pegasus Documents.  
       cgi                     Source for the Pegasus WEB Based Test client
           cgi-bin             CGI Directories for WEB demonstration.
                               This directory is normally empty but can
                               be populated from the runtime with the make
                               from cgi.
           htdocs              HTML Pages for Pegasus WEB emonstration
       doc                     Miscellaneous Pegasus Documents.
         DevManual           Source and build files for developes manual         DevManual           Source and build files for developes manual
     html                    HTML files for the Browser test client.  
     mak                     General make files (used by other makes)     mak                     General make files (used by other makes)
     Repository              This Directory containes the created repository  
     src                     All Pegasus Source Files     src                     All Pegasus Source Files
         ACEExample         Test directrory with examples of the use of ACE         ACEExample         Test directrory with examples of the use of ACE
         Clients             Source for various test clients and client SDK         Clients             Source for various test clients and client SDK
Line 196 
Line 185 
             Repository             Repository
                 tests       Tests for Repository Functions                 tests       Tests for Repository Functions
             Server          Pegasus Server Modules             Server          Pegasus Server Modules
         Providers           Pegasus Provider SDK and tes providers          Providers           Pegasus test and required providers
   
         Utils         Utils
         html               Output from the Pegasus Manual compilartion.  
   Runtime Directories
        $PEGASUS_HOME$         Home directory for runtime.  All compiler, linker
                               documentation creation, etc. is put here.
           bin                 Destination for executable and DLL modules from
                                       Pegasus build
           Manual              HTML output of the Pegasus Manual
           lib                 Destination for Pegasus LIB modules
           obj                 Destination for object modules
           Repository          This Directory containes the created repository
   
  
 In the near future we will add directories for: In the near future we will add directories for:
  
     Service Extensions     Service Extensions
       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 and  
 GUNMAKE.  
  
 Generally we support four targets in our make system:  2.  Define the following two environment variables:
  
       PEGASUS_HOME - to point to a directory to contain output binary files
       (e.g., set it to $HOME/pegasus_home).
  
             C:\> make clean      PEGASUS_PLATFORM - this must be set to a supported platform identifier.
             C:\> make depend      The following are supported:
             C:\> make  
             C:\> make tests  
  
 The Pegasus Client server tests are executed separately from the above because          WIN32_IX86_MSVC
 they require the initiation of separate process for the Pegasus server and          LINUX_IX86_GNU
 Pegasus client. These tests can be executed as follows:          AIX_RS_IBMCXX
           HPUX_PARISC_ACC
  
     ATTN: Add the procedure for Client/Server Test start here.      This identifier has the following form:
  
           <Operating-System>_<Architecture>_<Compiler>
  
 For information on particular installation characteristics, tools, etc. for      Note: if you plan on doing parallel builds, you might consider setting
 each platform see      PEGASUS_HOME to something like this:
 the appropriate sections below:  
  
 Generally the build commands are as follows:          $HOME/pegasus_home_LINUX_IX86_GNU
  
     1. There is a Makefile in the Pegasus root.   Simply executing make in the      That way, the output of each build will be placed in its own directory.
     Pegasus root directory will make everything.  
  
     2. In order to provide a working class repository for Pegasus until the  3.  Now place $PEGASUS_HOME/bin on your path
     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      and
  
     with the binary in pegasus/bin. This program will load the CIM XML      Placd $PEGASUS_HOME/lib on your LD_LIBRARY_PATH (for Unix only).
     repository definitions into the class repository.  
  
     3. To test a fresh release, go to the pegasus root and type  4.  Now change to the root of the Pegasus distrubution and type "make"
       (where make referes to GNU make).
  
                 "make world".  5.  Then create the repository, which is needed for some test cases -
       "make repository"
  
   6.  To test the build type "make tests".
  
     This will clean, build dependencies, build binaries, and then run all  The following make targets are supported:
     tests except the Client/Server tests.  
  
     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 Client/Server 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.  
  
     6. "Make Clean" removes all object and library files from the structure.      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.
  
 Build Variables      2. To test a fresh release, go to the pegasus root and type
 ===============  
  
 The build system depends on the following environment variables                  "make world".
  
     PEGASUS_ACE_ROOT - required (points to ACE_wrappers directory). This must  
     be set before you initiate make  
  
     PEGASUS_BUILD - optional (points to build directory; defaults to build      This will build dependencies, build binaries, and then run all
     directory under root of pegasus distribution). This must be set before you      tests except the Client/Server tests.
     iniiate  
     make  
  
     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 Linux you must change this before initiating make.  
  
     PEGASUS_ROOT - Points to the root directory of the Pegasus tree.             "make tests". This also reintalls the repository.
  
  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
 ============== ==============
Line 334 
Line 334 
 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  
   
 4. Append %PEGASUS_ROOT%/bin to your path  
  
 5. Unpack the ace distribution.  ATTN: put something here (but only what is not mentioned above).
  
 ATTN: Unpack with what since ZIP.  Building Pegasus on NT or Windows 2000 With Microsoft Visual C++
   ================================================================
 5. Build using the make commands defined in the section on General Build.  
   
         make world  
         make tests  
   
 Building Pegasus on NT or Windows 2000 With Visual C++  
 =======================================================  
  
 Today we build Pegasus on Windows NT using a set of make files contained Today we build Pegasus on Windows NT using a set of make files contained
 in the source distribution, the Microsoft compilers (tested so far with in the source distribution, the Microsoft compilers (tested so far with
 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
   compiler. Typically this can be done by running the VCVARS32.BAT file
   supplied with Microsoft Visual C++. (contained in the same directory
   as cl.exe).
  
 1.      Setup the environment variables and path for the Micrososft Visual C  Installing the Pegasus HTML Test Client:
 compiler.  ========================================
 Typically this can be done by running the VCVARS32.BAT file supplied with  
 Microsoft Visual  
 C++. (contained in the same directory as cl.exe).  
   
 2.      Define an environment variable called ACE_ROOT that points to the  
 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  
   
 Now append %PEGASUS_ROOT%/bin to your path like this:  
   
     set path=%path%;%PEGASUS_ROOT%/bin  
   
 4.  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++.  
   
 5. 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.  
   
 ATTN: Define for Linux also  
   
 6.  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
Line 450 
Line 361 
 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
 WEB pages. The current documentation is maintained both as a manual created WEB pages. The current documentation is maintained both as a manual created
 under the tool DOC++ in the subdirectory manual/html and as other miscelaneous  under the tool DOC++ in the runtime subdirectory manual/html and as other
 documentation in the doc directory.  miscelaneous documentation in the doc directory.
  
 Note that the Pegasus WEB site at The Open Group will be the source of most Note that the Pegasus WEB site at The Open Group will be the source of most
 documentation in the future and today is the source of most discussion and documentation in the future and today is the source of most discussion and
Line 471 
Line 382 
  
 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
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   


Legend:
Removed from v.1.4  
changed lines
  Added in v.1.8.2.1

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2