PEP

OpenPegasus Packaging Definition for Selected Platforms

Table of Contents

  Abstract
  Definition of the Problem
  Proposed Solution

  OpenPegasus Directory Structure
  OpenPegasus Packaged Files

  Library Files

  Library-level Versioning Strategy
  OpenPegasus Libraries
  OpenPegasus Provider Managers
  OpenPegasus Provider Libraries

  Executables Files

  OpenPegasus Administrative Commands
  OpenPegasus Administrative Scripts
  OpenPegasus User Commands

  Documentation Files

  Unix Style Man Pages

  Data Files

  Static Data Files
  Variable Data Files
  OpenPegasus Configuration Files
  PAM Configuration Files

  OpenPegasus Build and Install Steps
    Step 1: Create OpenPegasus Directory Structure
    Step 2: Copy OpenPegasus Files
    Step 3: Create OpenPegasus Host-Specific Files
    Step 4: Create OpenPegasus Repository
    Step 5: Update System Files

Abstract: This document defines the recommended set of files for inclusion in this release of OpenPegasus. In this version of the document, platform-specific options have been documented for the following platforms: Linux, HP-UX and Open VMS.

Note 1: The recommendations defined in this document are not intended to document the feature set included in any vendor's OpenPegasus-based product. Rather, the purpose of this document is to provide input to vendors when making product decisions.

The purpose of this document is to provide vendors with a recommended set of configuration files, libraries, programs and documentation files for inclusion in an OpenPegasus Release. Please refer to PEP 204 for instructions on creating OpenPegasus Linux binary and source RPMS.

### OpenPegasus Configure

Please consult the "Recommended OpenPegasus Build and Configuration Options for Selected Platforms" document, BuildAndReleaseOptions.html , in the pegasus/doc directory in CVS for the recommended environment and configuration settings for building OpenPegasus.

### OpenPegasus Directory Structure

This section describes the recommended OpenPegasus runtime directory structure. In addition, it describes the recommended directory permissions.

There are three classes of OpenPegasus runtime directories:

1. FIXED LOCATION. Directory locations that are used by the CIM Server and fixed at build time. A rebuild is required to change a FIXED LOCATION directory. The runtime directory structure MUST be consistent with the build time definition of FIXED LOCATION directories. Refer to PEP 308 for recommended default values.
2. CONFIGURABLE LOCATION. Directory locations that are used by the CIM Server and configurable using the cimconfig command. All CONFIGURABLE LOCATION directories are assigned a default value for the directory location. The runtime directory structure WILL assume the default value. Refer to PEP 308 for recommended default values.
3. INSTALLATION DEFINED LOCATION. Directory locations that are NOT used by the CIM Server but exist as part of the CIM Server runtime environment. A default location will be defined and used for the directory location.

The following default installation directories will change if the PEGASUS_FLAVOR option is set. See PEP#350 for more details.

Document Designation | Type | Build Configuration Option
--- | --- | ---
$(PEGASUS_PROD_DIR) | INSTALLATION |
$(PEGASUS_DEST_LIB_DIR) | INSTALLATION | Link option (e.g., -Wl,+b/opt/wbem/lib:/usr/lib)
$(PEGASUS_SBIN_DIR) | INSTALLATION |
$(PEGASUS_BIN_DIR) | INSTALLATION |
$(PEGASUS_MAN_DIR) | INSTALLATION |
$(PEGASUS_VARDATA_DIR) | INSTALLATION |

Document Designation Configuration Option | Operating System | Location | Directory
--- | --- | --- | ---
Owner Group | Permissions | Package Owner
$(PEGASUS_BIN_DIR) | Linux | /usr/bin | root/root | drwxr-xr-x | System
HP-UX | /opt/wbem/bin | bin/bin | dr-xr-xr-x | OpenPegasus
OpenVMS | /opt/wbem/bin | system | S:wred,O:re,G:re,W:e | OpenPegasus
$(PEGASUS_CONFIG_DIR) | Linux | /etc/Pegasus | root/pegasus | drwxr-xr-x | OpenPegasus
HP-UX | /etc/opt/wbem | bin/bin | dr-xr-xr-x | OpenPegasus
OpenVMS | /etc/opt/wbem | system | S:wred,O:re,G:re,W:e | OpenPegasus
$(PEGASUS_DEST_LIB_DIR) | Linux | /usr/%{_lib} | root/root | drwxr-xr-x | System
HP-UX | /opt/wbem/lib | bin/bin | dr-xr-xr-x | OpenPegasus
OpenVMS | /opt/wbem/lib | system | S:wred,O:re,G:re,W:e | OpenPegasus
$(PEGASUS_MAN_DIR) | Linux | /usr/share/man | root/root | drwxr-xr-x | System
HP-UX | /opt/wbem/share/man | bin/bin | dr-xr-xr-x | OpenPegasus
OpenVMS | /opt/wbem/share/man | system | S:wred,O:re,G:re,W:e | OpenPegasus
$(PEGASUS_PEM_DIR) | Linux | /etc/Pegasus | root/pegasus | drwxr-xr-x | OpenPegasus
HP-UX | /etc/opt/hp/sslshare | bin/bin | dr-xr-xr-x | OpenPegasus
OpenVMS |  | system | S:wred,O:re,G:re,W:e |
$(PEGASUS_PROD_DIR) | Linux | /usr | root/root | drwxr-xr-x | System
HP-UX | /opt/wbem | bin/bin | dr-xr-xr-x | OpenPegasus
OpenVMS | /opt/wbem | system | S:wred,O:re,G:re,W:e | OpenPegasus
$(PEGASUS_PROVIDER_LIB_DIR) | Linux | /usr/%{_lib}/Pegasus/providers | root/pegasus | drwxr-xr-x | OpenPegasus
HP-UX | /opt/wbem/providers/lib | bin/bin | dr-xr-xr-x | OpenPegasus
OpenVMS | /opt/wbem/providers/lib | system | S:wred,O:re,G:re,W:e | OpenPegasus
$(PEGASUS_PROVIDER_MANAGER_LIB_DIR) | Linux | /usr/%{_lib}/Pegasus/providerManagers | root/pegasus | drwxr-xr-x | OpenPegasus
HP-UX |  |  |  | OpenPegasus
OpenVMS |  |  |  | OpenPegasus
$(PEGASUS_REPOSITORY_DIR) | Linux | /var/lib/Pegasus/repository /var/lib/Pegasus/repository(PS) | root/pegasus cimsvr/cimsvr | drwx------ drwx------ | OpenPegasus OpenPegasus
HP-UX | /var/opt/wbem/repository | root/root | dr-xr-xr-x | OpenPegasus
OpenVMS | /var/opt/wbem/repository | system | S:wred,O:re,G:re,W:e | OpenPegasus
$(PEGASUS_SBIN_DIR) | Linux | /usr/sbin | root/root | drwxr-xr-x | System
HP-UX | /opt/wbem/sbin | bin/bin | dr-xr-xr-x | OpenPegasus
OpenVMS | /opt/wbem/sbin | system | S:wred,O:re,G:re,W:e | OpenPegasus
$(PEGASUS_SCRIPTS_DIR) | Linux | /usr/share/Pegasus/scripts | root/pegasus | drwxr-xr-x | OpenPegasus
HP-UX |  |  |  |
OpenVMS |  |  |  |
$(PEGASUS_VARDATA_DIR) | Linux | /var/lib/Pegasus | root/pegasus | drwxr-xr-x | OpenPegasus
HP-UX | /var/opt/wbem | bin/bin | dr-xr-xr-x | OpenPegasus
OpenVMS | /var/opt/wbem | system | S:wred,O:re,G:re,W:e | OpenPegasus
$(PEGASUS_DOC_DIR) | Linux | /usr/share/doc/tog-pegasus-2.11 | root/pegasus | drwxr-xr-x | OpenPegasus
HP-UX | /opt/wbem/doc |  |  | OpenPegasus
OpenVMS |  |  |  |
$(PAM_CONFIG_DIR) | Linux | /etc/pam.d | root/root | drwxr-xr-x | System
HP-UX |  |  |  |
OpenVMS |  |  |  |

Although not included in this release, the following directories are planned for future release.

Document Designation | Operating System | Location | Directory
--- | --- | --- | ---
Owner Group | Permissions
$(PEGASUS_MSG_DIR) | Linux | /usr/share/locale | root/root | drwxr-xr-x
HP-UX |  |  |
OpenVMS |  |  |

### OpenPegasus Packaged Files

#### Library Files

##### Library-level Versioning Strategy

Support for forward-compatibility is a fundamental design principle for the OpenPegasus project. Our expectation is that well-behaved OpenPegasus Providers or Clients will continue to work with a minor version upgrade of OpenPegasus. However, in the future, we do anticipate that there will be a need to release changes that do not support forward-compatibility. This would happen in situations where the cost (i.e., development effort, performance, resource utilization) of supporting compatibility has become prohibitive. To minimize the impact of major version upgrades, OpenPegasus has been designed to allow multiple versions of a library to coexist in the same runtime environment. This way, new programs will be allowed to take advantage of the new features and old programs will continue to run.

To allow multiple versions of a library, OpenPegasus recommends the use of library-level versioning strategy. With this strategy, a library file is created with a version suffix, $(VER_SUFFIX) (e.g., .1). This version suffix is changed only when the new version of the library will not support CIM Providers and/or CIM Clients developed using early versions of the library (i.e., SDK). It is important to note that the library version suffix is NOT the same as the product version.

In addition to the library file, a symbolic link, that points to the latest version of the library, is created using the standard library suffix for the target operating system, $(LIB_SUFFIX) (e.g., .so). CIM Client and Provider developers would use this link to ensure that they are linking with the most recent version of the library. When building a CIM Client or CIM Provider, developers should use include the appropriate link option (e.g., -h on Linux) to ensure that the specific version of the library used to build the product will be loaded during runtime.

The following table describes the OpenPegasus library versions and suffixes.

Operating System | $(VER_SUFFIX) | $(LIB_SUFFIX)
--- | --- | ---
Linux | .1 | .so
HP-UX (PA) | .1 | .sl
HP-UX (IA) | .1 | .so
OpenVMS |  | .olb

##### OpenPegasus Libraries

This section documents the recommended set of library files to be included with this release of OpenPegasus. Files in this section are expected to be rooted in a single directory $(PEGASUS_DEST_LIB_DIR).

Source Location: $(PEGASUS_HOME)/lib

The following table describes the permissions that should be assigned to the files in the $(PEGASUS_DEST_LIB_DIR) directory.

Operating System | File
--- | ---
Owner/Group | Permissions
Linux | root/pegasus | -rwxr-xr-x
HP-UX | bin/bin | -r-xr-xr-x
OpenVMS | system | S:wred,O:re,G:re,W:e

The following files should be included in the $(PEGASUS_DEST_LIB_DIR) directory.

libCIMxmlIndicationHandler.$(LIB_SUFFIX).$(VER_SUFFIX)
libFileListenerDestination.$(LIB_SUFFIX).$(VER_SUFFIX)
libpegwebserver.$(LIB_SUFFIX).$(VER_SUFFIX)
libcimrsserver.$(LIB_SUFFIX).$(VER_SUFFIX)
libCertificateProvider.$(LIB_SUFFIX).$(VER_SUFFIX)
libConfigSettingProvider.$(LIB_SUFFIX).$(VER_SUFFIX)
libDefaultProviderManager.$(LIB_SUFFIX).$(VER_SUFFIX)
libNamespaceProvider.$(LIB_SUFFIX).$(VER_SUFFIX)
libProviderRegistrationProvider.$(LIB_SUFFIX).$(VER_SUFFIX)
libUserAuthProvider.$(LIB_SUFFIX).$(VER_SUFFIX)
libcmpiCppImpl.$(LIB_SUFFIX).$(VER_SUFFIX)
libpegauthentication.$(LIB_SUFFIX).$(VER_SUFFIX)
libpegclient.$(LIB_SUFFIX).$(VER_SUFFIX)
libpegcliutils.$(LIB_SUFFIX).$(VER_SUFFIX)
libpegcommon.$(LIB_SUFFIX).$(VER_SUFFIX)
libpegcompiler.$(LIB_SUFFIX).$(VER_SUFFIX)
libpegconfig.$(LIB_SUFFIX).$(VER_SUFFIX)
libpegexportclient.$(LIB_SUFFIX).$(VER_SUFFIX)
libpegexportserver.$(LIB_SUFFIX).$(VER_SUFFIX)
libpeggeneral.$(LIB_SUFFIX).$(VER_SUFFIX)
libpeghandler.$(LIB_SUFFIX).$(VER_SUFFIX)
libpeggetoopt.$(LIB_SUFFIX).$(VER_SUFFIX)
libpeghandlerservice.$(LIB_SUFFIX).$(VER_SUFFIX)
libpegindicationservice.$(LIB_SUFFIX).$(VER_SUFFIX)
libpeglistener.$(LIB_SUFFIX).$(VER_SUFFIX)
libpegpmservice.$(LIB_SUFFIX).$(VER_SUFFIX)
libpegprm.$(LIB_SUFFIX).$(VER_SUFFIX)
libpegprovider.$(LIB_SUFFIX).$(VER_SUFFIX)
libpegprovidermanager.$(LIB_SUFFIX).$(VER_SUFFIX)
libpegquerycommon.$(LIB_SUFFIX).$(VER_SUFFIX)
libpegqueryexpression.$(LIB_SUFFIX).$(VER_SUFFIX)
libpegrepository.$(LIB_SUFFIX).$(VER_SUFFIX)
libpegserver.$(LIB_SUFFIX).$(VER_SUFFIX)
libpegservice.$(LIB_SUFFIX).$(VER_SUFFIX)
libpeguser.$(LIB_SUFFIX).$(VER_SUFFIX)
libpegwql.$(LIB_SUFFIX).$(VER_SUFFIX)
libsnmpIndicationHandler.$(LIB_SUFFIX).$(VER_SUFFIX)

In addition, the following links should be included in the $(PEGASUS_DEST_LIB_DIR) directory.
libCIMxmlIndicationHandler.$(LIB_SUFFIX) -> libCIMxmlIndicationHandler.$(LIB_SUFFIX).$(VER_SUFFIX)
libDefaultProviderManager.$(LIB_SUFFIX) -> libDefaultProviderManager.$(LIB_SUFFIX).$(VER_SUFFIX)
libpegclient.$(LIB_SUFFIX) -> libpegclient.$(LIB_SUFFIX).$(VER_SUFFIX)
libpegcommon.$(LIB_SUFFIX) -> libpegcommon.$(LIB_SUFFIX).$(VER_SUFFIX)
libpegprovider.$(LIB_SUFFIX) -> libpegprovider.$(LIB_SUFFIX).$(VER_SUFFIX)
libsnmpIndicationHandler.$(LIB_SUFFIX) -> libsnmpIndicationHandler.$(LIB_SUFFIX).$(VER_SUFFIX)

The following table describes the recommended install, upgrade and remove behavior for the OpenPegasus libraries and links.

| install | upgrade | remove
--- | --- | --- | ---
*.$(VER_SUFFIX) | new libraries installed | existing libraries replaced with new libraries | existing libraries removed
*.$(LIB_SUFFIX) | new links installed | existing links replaced with new links | existing links removed

##### OpenPegasus Provider Managers

This section documents the dynamically loaded provider managers packaged with OpenPegasus. Files in this section are expected to be rooted in a single directory $(PEGASUS_PROVIDER_MANAGER_LIB_DIR).

Source Location: $(PEGASUS_HOME)/lib

The following table describes the permissions that should be assigned to the files in the $(PEGASUS_PROVIDER_MANAGER_LIB_DIR) directory.

Operating System | File
--- | ---
Owner/Group | Permissions
Linux | root/pegasus | -rwxr-xr-x
HP-UX | bin/bin | -r-xr-xr-x
OpenVMS | system | S:wred,O:re,G:re,W:e

The following files should be included in the $(PEGASUS_PROVIDER_MANAGER_LIB_DIR) directory.

libCMPIProviderManager.$(LIB_SUFFIX).$(VER_SUFFIX)

In addition, the following links should be included in the $(PEGASUS_DEST_LIB_DIR) directory.
libCMPIProviderManager.$(LIB_SUFFIX) -> libCMPIProviderManager.$(LIB_SUFFIX).$(VER_SUFFIX)

##### OpenPegasus Provider Libraries

This section documents the Providers packaged with OpenPegasus. Files in this section are expected to be rooted in a single directory $(PEGASUS_PROVIDER_LIB_DIR). Note that the $(PEGASUS_PROVIDER_LIB_DIR) directory MUST be included as one of the values of the providerDir configuration parameter. Note that this directory may contain symbolic links to the actual files, there is no requirement for the actual library file to be placed in this directory.

Packaged Providers

  Operating System Provider
  Computer System Provider
  Process Provider
  IP Provider

Additionally on HP-UX, following are the packaged Providers
  DNS Provider
  NTP Provider
  NIS Provider

  The following table describes the permissions that should be assigned to the links or files in the $(PEGASUS_PROVIDER_LIB_DIR) directory.

  Operating System | File
  --- | ---
  Owner/Group | Permissions
  Linux | root/pegasus | -rwxr-xr-x
  HP-UX | bin/bin | -r-xr-xr-x
  OpenVMS | system | S:wred,O:re,G:re,W:e

  The following files should be included in the $(PEGASUS_PROVIDER_LIB_DIR) directory.

    libComputerSystemProvider.$(LIB_SUFFIX).$(VER_SUFFIX)
    libOSProvider.$(LIB_SUFFIX).$(VER_SUFFIX)
    libProcessProvider.$(LIB_SUFFIX).(VER_SUFFIX)

  Provider Library Versioning

  The CIM Server will use the $(LIB_SUFFIX) when attempting to dynamically load a Provider. This allows Provider developers to use a resource-specific library versioning strategy. Providers are not required to use this same version suffix as the OpenPegasus libraries.

  The following links should be included in the $(PEGASUS_PROVIDER_LIB_DIR) directory.

  libComputerSystemProvider.$(LIB_SUFFIX) ->
  $(PEGASUS_PROVIDER_LIB_DIR)/libComputerSystemProvider.$(LIB_SUFFIX).$(VER_SUFFIX)
  libOSProvider.$(LIB_SUFFIX) ->

  $(PEGASUS_PROVIDER_LIB_DIR)/libOSProvider.$(LIB_SUFFIX).$(VER_SUFFIX)
  libProcessProvider.$(LIB_SUFFIX) ->
  $(PEGASUS_PROVIDER_LIB_DIR)/libProcessProvider.$(LIB_SUFFIX).$(VER_SUFFIX)

  The following table describes the recommended install, upgrade and remove behavior for the packaged Provider libraries and links.

  | install | upgrade | remove
  --- | --- | --- | ---
  *.$(VER_SUFFIX) | new libraries installed | existing libraries replaced with new libraries | existing libraries removed
  *.$(LIB_SUFFIX) | new links installed | existing links replaced with new links | existing links removed

  #### Executable Files

  The following table describes the OpenPegasus executable suffixes.

  Operating System | $(EXE_SUFFIX)
  --- | ---
  Linux | NA
  HP-UX (PA) | NA
  HP-UX (IA) | NA
  OpenVMS | .exe

  ##### OpenPegasus Administrative Commands

  This section documents the maintenance or administrative commands included with this release of OpenPegasus. Files in this section are expected to be rooted in a single directory $(PEGASUS_SBIN_DIR).

  Source Location: $(PEGASUS_HOME)/sbin

  The following table describes the permissions that should be assigned to the files in the $(PEGASUS_SBIN_DIR) directory.

  Operating System | File
  --- | ---
  Owner/Group | Permissions
  Linux | root/pegasus | -rwxr-xr-x
  HP-UX | bin/bin | -r-xr--r--
  OpenVMS | system | S:wred,O:re,G:re,W:e

  The following files should be included in the $(PEGASUS_SBIN_DIR) directory.

  cimauth
  cimconfig
  cimprovagt

  cimreparchive
  cimserver
  cimservera
  cimservermain
  cimshutdown
  cimtrust
  repupgrade

  The following table describes the recommended install, upgrade and remove behavior for the OpenPegasus commands.

  install | upgrade | remove
  --- | --- | ---
  new executables installed | existing executables replaced with new executables | existing executables removed

  ##### OpenPegasus Administrative Scripts

  This section documents the scripts included with this release of OpenPegasus. Files in this section are expected to be rooted in a single directory $(PEGASUS_SCRIPTS_DIR).

  Source Location: pegasus/rpm/tog-specfiles

  The following table describes the permissions that should be assigned to the files in the $(PEGASUS_SCRIPTS_DIR) directory.

  Operating System | File
  --- | ---
  Owner/Group | Permissions
  Linux | root/pegasus | -rwxr-x---
  HP-UX |  |
  OpenVMS |  |

  The following files should be included in the $(PEGASUS_SCRIPTS_DIR) directory.

  genOpenPegasusSSLCerts

  The following table describes the recommended install, upgrade and remove behavior for the OpenPegasus commands.

  install | upgrade | remove
  --- | --- | ---
  new scripts installed | existing scripts replaced with new scripts | existing scripts removed

  ##### OpenPegasus User Commands

  This section documents the user commands included with this release of OpenPegasus. Files in this section are expected to be rooted in a single directory $(PEGASUS_BIN_DIR).

  Source Location: $(PEGASUS_HOME)/bin

  The following table describes the permissions that should be assigned to the files in the $(PEGASUS_BIN_DIR) directory.

  Operating System | File
  --- | ---
  Owner/Group | Permissions
  Linux | root/pegasus | -rwxr-xr-x
  HP-UX | bin/bin | -r-xr-xr-x
  OpenVMS | system | S:wred,O:re,G:re,W:e

  The following files should be included in the $(PEGASUS_BIN_DIR) directory.

  cimmof

  cimmofl
  cimprovider
  cimsub
  osinfo
  wbemexec

  The following table describes the recommended install, upgrade and remove behavior for the OpenPegasus commands.

  install | upgrade | remove
  --- | --- | ---
  new executables installed | existing executables replaced with new executables | existing executables removed

  #### Documentation Files

  ##### Unix Style Man Pages

  This section describes the packaging for Operating Systems that support Unix style man pages. Files in this section are expected to be rooted in a single directory $(PEGASUS_MAN_DIR).

  Source Location: $(ROOT)/rpm/manLinux/man1.Z/
  $(ROOT)/rpm/manLinux/man8.Z

  The following table describes the permissions that should be assigned to the files in the $(PEGASUS_MAN_DIR) subdirectories.

  Operating System | File
  --- | ---
  Owner/Group | Permissions
  Linux | root/pegasus | -rw-r--r--
  HP-UX | bin/bin | -r--r--r--
  OpenVMS | system | S:wred,O:r,G:r,W:r

  The following man pages should be included in the $(PEGASUS_MAN_DIR)/man1 directory.

  cimmof.1(.gz)
  cimprovider.1(.gz)
  cimsub.1(.gz)
  osinfo.1(.gz)
  wbemexec.1(.gz)

  The following man pages should be included in the $(PEGASUS_MAN_DIR)/man8 directory.

  cimauth.8(.gz)
  cimconfig.8(.gz)
  cimreparchive.8(.gz)

  cimtrust.8(.gz)
  cimserver.8(.gz)

  The following table describes the recommended install, upgrade and remove behavior for the OpenPegasus man pages.

  install | upgrade | remove
  --- | --- | ---
  new man pages installed | existing man pages replaced with new man pages | existing man pages removed

  ##### User Documentation

  Files in this section are expected to be rooted in a single directory $(PEGASUS_DOC_DIR).

  The following table describes the permissions that should be assigned to the files in the $(PEGASUS_DOC_DIR) directory.

  Operating System | File
  --- | ---
  Owner/Group | Permissions
  Linux | root/pegasus | -r--r--r--
  HP-UX | bin/bin |
  OpenVMS | system |

  The following documents are included with OpenPegasus.

  Staging Location: $(PEGASUS_HOME)/$(PEGASUS_STAGING_DIR)/$(PEGASUS_DOC_DIR)

  Target Location: $(PEGASUS_DOC_DIR)

  File Name | Source Location
  --- | ---
  Admin_Guide_Release.pdf | pegasus/doc
  PegasusSSLGuidelines.htm | pegasus/doc
  license.txt | pegasus/doc
  OpenPegasusNOTICE.txt | pegasus

  The following table describes the recommended install, upgrade and remove behavior for the OpenPegasus documentation files.

  install | upgrade | remove
  --- | --- | ---
  New documents installed. | Existing documents removed and new documents installed. | Existing documents removed.

  #### Data Files

  This section describes the OpenPegasus data files.

  There are three classes of OpenPegasus data files:

  1. FIXED LOCATION. Absolute names that are used by the CIM Server and fixed at build time. A rebuild is required to change the file name. The runtime file structure MUST be consistent with the build time definition of the FIXED LOCATION files. Refer to PEP 308 for recommended default values.
  2. CONFIGURABLE LOCATION. Absolute file names that are used by the CIM Server and configurable using the cimconfig command. All CONFIGURABLE LOCATION files are assigned a default value for the absolute file name. The runtime file structure WILL assume the default value. Refer to PEP 308 for recommended default values.
  3. INSTALLATION DEFINED LOCATION. Files that are NOT used by the CIM Server but exist as part of the CIM Server runtime environment. Default absolute file names will be defined for these directories.

  Document Designation | Type | Build Configuration Option
  --- | --- | ---
  $(PEGASUS_LOCAL_AUTH_DIR) | FIXED | PEGASUS_LOCAL_AUTH_DIR
  $(PEGASUS_MOF_DIR) | INSTALL |
  $(PEGASUS_LOCAL_DOMAIN_SOCKET_DIR) | FIXED | PEGASUS_LOCAL_DOMAIN_SOCKET_PATH
  $(PEGASUS_CURRENT_CONFIG_FILE) | FIXED | CURRENT_CONFIG_FILE []
  $(PEGASUS_PLANNED_CONFIG_FILE) | FIXED | PLANNED_CONFIG_FILE []
  $(PEGASUS_PID_FILE) | FIXED | CIMSERVER_START_FILE []
  $(PEGASUS_CIMSERVER_RANDOMFILE) | FIXED | PEGASUS_SSLSERVER_RANDOMFILE

  ##### Static Data Files

  This section describes OpenPegasus data files that do not change during normal operation.

  ###### Schema Files

  The following table describes the permissions that should be assigned to the $(PEGASUS_MOF_DIR) directory.

  > Document Designation Configuration Option | Operating System | Location | Directory
  > --- | --- | --- | ---
  > Owner Group | Permissions
  > $(PEGASUS_MOF_DIR) | Linux | /usr/share/Pegasus/mof | root/pegasus | drwxr-xr-x
  > HP-UX | /opt/wbem/mof | bin/bin | dr-xr-xr-x
  > OpenVMS | /opt/wbem/mof | system | S:wred,O:re,G:re,W:e

  The following table describes the permissions that should be assigned to the files in the $(PEGASUS_MOF_DIR) subdirectories.

    Operating System | Packaged or Generated? | File
    --- | --- | ---
    Owner/Group | Permissions
    Linux | Packaged | root/pegasus | -rw-r--r--
    HP-UX | Packaged | bin/bin | -r--r--r--
    OpenVMS | Packaged | system | S:wred,O:r,G:r,W:r

  The following OpenPegasus specific mof files are packaged in the directory $(PEGASUS_MOF_DIR)/Pegasus. Note: The class definitions defined in the pegasus/Schemas/Pegasus/Internal/VER20 mof files are for internal use only and subject to change. Please consult the OpenPegasus External Interface Definition document, ExternalInterface.html, in the pegasus/doc directory in CVS for a list of the mof files included in the OpenPegasus external definition.

    Source Location: pegasus/Schemas/Pegasus/Internal/VER20
    PG_Authorization20.mof
    PG_ConfigSetting20.mof
    PG_InternalSchema20.mof
    PG_ShutdownService20.mof

    PG_SSLCertificate20.mof
    PG_SSLCertificateRevocationList20.mof
    PG_User20.mof

    Source Location: pegasus/Schemas/Pegasus/InterOp/VER20
    PG_Events20.mof
    PG_InterOpSchema20.mof
    PG_ProviderModule20.mof

    Source Location: pegasus/Schemas/Pegasus/ManagedSystem/VER20

    PG_ComputerSystem20.mof
    PG_ComputerSystem20R.mof
    PG_ManagedSystemSchema20.mof
    PG_ManagedSystemSchema20R.mof
    PG_OperatingSystem20.mof
    PG_OperatingSystem20R.mof
    PG_UnixProcess20.mof
    PG_UnixProcess20R.mof

  The following table describes the recommended install, upgrade and remove behavior for the OpenPegasus mof files.

  install | upgrade | remove
  --- | --- | ---
  New $(PEGASUS_MOF_DIR) containing packaged mof files created. | Existing $(PEGASUS_MOF_DIR) removed and new $(PEGASUS_MOF_DIR) containing packaged mof files created. | Existing $(PEGASUS_MOF_DIR) removed.

  ##### Variable Data Files

  This section describes OpenPegasus data files that change during normal operation. Files in this section are expected to be rooted in a single directory $(PEGASUS_VARDATA_DIR).

  The following table describes the permissions that should be assigned to the files in the $(PEGASUS_VARDATA_DIR) directory.

  Document Designation Configuration Option | Packaged or Generated? | Operating System | Location | Directory
  --- | --- | --- | --- | ---
  Owner Group | Permissions
  $(PEGASUS_CIMSERVER_START_LOCK_FILE) | Generated | Linux | /var/run/tog-pegasus/ cimserver_start.lock | root/root cimsvr cimsvr (PS) | -rw-------
  HP-UX |  |  |
  OpenVMS |  |  |
  $(PEGASUS_CURRENT _CONFIG_FILE) | Generated | Linux | $(PEGASUS_VARDATA_DIR)/ cimserver_current.conf | root/root | -rw-r--r--
  HP-UX | /var/opt/wbem/pegasus/ cimserver_current.conf | root/root | rw-r--r--
  OpenVMS | /var/opt/wbem/pegasus/ cimserver_current.conf | system | S:wred,O:wr,G:r,W:r
  $(PEGASUS_PLANNED _CONFIG_FILE) | Packaged | Linux | $(PEGASUS_VARDATA_DIR)/ cimserver_planned.conf | root/root | -rw-r--r--
  HP-UX | /var/opt/wbem/ cimserver_planned.conf | root/root | rw-r--r--
  OpenVMS | /var/opt/wbem/ cimserver_planned.conf | system | S:wred,O:wr,G:r,W:r
  $(PEGASUS_PID_FILE) | Generated | Linux | /var/run/tog-pegasus/cimserver.pid | root/root cimsvr/cimsvr (PS) | -rw-------
  HP-UX | /etc/opt/wbem/ cimserver_start.conf | root/root | rw-r--r--
  OpenVMS | /var/opt/wbem/ cimserver_start.conf | system | S:wred,O:wr,G:r,W:r
  $(PEGASUS_LOCAL_AUTH_DIR) | Generated | Linux | /$(PEGASUS_VARDATA_DIR)/cache/localauth | root/pegasus | drwxr-xr-x
  HP-UX | /var/opt/wbem/localauth | bin/bin | dr-xr-xr-x
  OpenVMS | /var/opt/wbem/localauth | system | S:wred,O:re,G:re,W:e
  $(PEGASUS_LOCAL_DOMAIN _SOCKET_DIR) | Generated | Linux | /var/run/tog-pegasus/socket | root/pegasus cimsvr/cimsvr (PS) | drwxr-xr-t
  HP-UX | /var/opt/wbem/socket/ | bin/bin | dr-xr-xr-t
  $(PEGASUS_CIMSERVER _RANDOMFILE) Note: This file is only required on platforms that do not support /dev/(u)random. | Generated | Linux | N/A | N/A | N/A
  HP-UX |  |  |
  OpenVMS | /var/opt/wbem/ssl.rnd | system | S:wred,O:r,G:r,W:
  $(PEGASUS_TRACE_DIR) | Generated | Linux | $(PEGASUS_VARDATA_DIR)/cache/trace | root/pegasus | drwxrwxrwt
  | HP-UX | /var/opt/wbem/trace | cimsrvr/cimsrvr | drwxrwxrwt
  | OpenVMS |  |  |
  $(PEGASUS_CORE_DIR) | Generated | Linux | $(PEGASUS_VARDATA_DIR)/cache/trace | root/pegasus | drwxrwxrwt
  | HP-UX |  |  |
  | OpenVMS |  |  |

  ##### $(PEGASUS_PLANNED_CONFIG_FILE)

  The $(PEGASUS_PLANNED_CONFIG_FILE) file is not intended to be user editable. The cimconfig utility should be used to modify this file. Default settings for configuration options are defined in the source and can vary by vendor, Operating System and release. In order to differentiate between "customer-defined" values and "default-settings", default-settings are not stored in this file. With the exception of the following comment, initial version of the $(PEGASUS_PLANNED_CONFIG_FILE) file is empty.

      ########################################################################
      ##                                                                    ##
      ##                  CIM Server Configuration File                     ##
      ##                                                                    ##
      ########################################################################

      ########################################################################
      #                                                                      #
      # This file contains CIM Server configuration data. The format of      #
      # this file is subject to change. It is strongly recommended that      #
      # users do not edit this file. Instead, the cimconfig command should   #
      # be used to view or to request changes to the CIM Server              #
      # configuration settings. Please refer to the cimconfig documentation  #
      # for additional details.                                              #
      #                                                                      #
      ########################################################################

  The following table describes the upgrade strategy for the PEGASUS_PLANNED_CONFIG_FILE.

  File Name | Operating System | Description | Install Option
  --- | --- | --- | ---
  $(PEGASUS_PLANNED_CONFIG_FILE)
  Linux | Upgrade: If the file has not been modified on disk, the rpm command will overwrite the file. If the file has been modified on disk, the rpm command will copy the new file with an extra file-name extension of .rpmnew. Erase: If the file has not been modified on disk, the file will be removed. If the file has been modified, the rpm command will save the file with an extra file-name extension of .rpmsave. | %config(noreplace)
  HP-UX |  |
  OpenVMS |  |

  The following generated data files and directories are removed on upgrade and erase: $(PEGASUS_PLANNED_CONFIG_FILE), $(PEGASUS_PID_FILE), $(PEGASUS_LOCAL_AUTH_DIR), $(PEGASUS_LOCAL_DOMAIN_SOCKET_DIR) and $(PEGASUS_TRACE_DIR).

  ##### OpenPegasus Configuration Files

  This section describes OpenPegasus configuration files. Files in this section are expected to be rooted in a single directory $(PEGASUS_CONFIG_DIR).

  File Name | Packaged or Generated? | Operating System | File
  --- | --- | --- | ---
  Owner/Group | Permissions
  ssl.cnf | Generated | Linux | root/root | -r--------
  HP-UX | bin/bin | -r--------
  OpenVMS | system | S:wred,O:r,G:,W:

  The following table describes the recommended install, upgrade and remove behavior for the OpenPegasus ssl.cnf file.

  Install Type | Actions
  --- | ---
  Install | The OpenPegasus ssl.cnf file is not created by default. The genOpenPegasusSSLCerts script can be used to a default ssl.cnf file.
  Upgrade | The ssl.cnf file is not updated.
  Remove | The ssl.cnf file is not removed.

  ##### OpenSSL PEM Files

  This section describes the OpenSSL PEM files. Files in this section are expected to be rooted in a single directory $(PEGASUS_PEM_DIR).

  File Name see PEP 308 | Packaged or Generated? | File Name | Operating System | File
  --- | --- | --- | --- | ---
  Owner/Group | Permissions
  sslKeyFilePath $(PEGASUS_SSL_KEY_FILE) | Generated | file.pem | Linux | root/root | -r--------
  | HP-UX | bin/bin | -r--------
  | OpenVMS | system | S:wred,O:r,G:,W
  sslTrustStore $(PEGASUS_SSL_TRUSTSTORE) | Empty File | client.pem | Linux | root/root | -r--r--r--
  | HP-UX | root/sys | -r--------
  | OpenVMS | system | S:wred,O:r,G:,W:
  sslCertificateFilePath $(PEGASUS_SSL_CERT_FILE) | Generated | server.pem | Linux | root/root | -r--r--r--
  | HP-UX | root/sys | -r--------
  | OpenVMS | system | S:wred,O:r,G:,W:

  The following table describes the recommended install, upgrade and remove behavior for the OpenPegasus *.pem files.

Install Type | Actions
--- | ---
Install | The *.pem files are not created by default. The genOpenPegasusSSLCerts script can be used to create self-signed *.pem files.
Upgrade | The *.pem files are not updated.
Remove | The *.pem files are not removed.

##### PAM Configuration Files

This section describes OpenPegasus configuration files.

File Name | Packaged or Generated? | Operating System | File
--- | --- | --- | ---
Owner/Group | Permissions
$(PAM_CONFIG_DIR)/wbem
Packaged | Linux | root/pegasus | -rw-------
HP-UX |  |
OpenVMS |  |
$(PEGASUS_CONFIG_DIR)/access.conf
Packaged | Linux | root/pegasus | -rw-------
HP-UX |  |
OpenVMS |  |

The following table describes the upgrade strategy for the PAM configuration files.

File Name | Operating System | Description | Install Option
--- | --- | --- | ---
$(PAM_CONFIG_DIR)/wbem
Linux | Upgrade: If the file has not been modified on disk, the rpm command will overwrite the file. If the file has been modified on disk, the rpm command will copy the new file with an extra file-name extension of .rpmnew. Erase: If the file has not been modified on disk, the file will be removed. If the file has been modified, the rpm command will save the file with an extra file-name extension of .rpmsave. | %config(noreplace)
HP-UX |  |
OpenVMS |  |
$(PEGASUS_CONFIG_DIR)/ access.conf
Linux | Upgrade: If the file has not been modified on disk, the rpm command will overwrite the file. If the file has been modified on disk, the rpm command will copy the new file with an extra file-name extension of .rpmnew. Erase: If the file has not been modified on disk, the file will be removed. If the file has been modified, the rpm command will save the file with an extra file-name extension of .rpmsave. | %config(noreplace)
HP-UX |  |
OpenVMS |  |

##### Repository Data Files

This section describes the installation of the Repository Data Files. Files in this section are expected to be rooted in a single directory $(PEGASUS_REPOSITORY_DIR).

The following table describes the recommended install, upgrade and remove behavior for the OpenPegasus Repository data files.

Install Type | Actions
--- | ---
Install | The packaged Repository data files are installed in $(PEGASUS_REPOSITORY_DIR).
Upgrade | If $(PEGASUS_REPOSITORY_DIR) exists ... $(PEGASUS_PREV_REPOSITORY_DIR) is saved as an archive file. $(PEGASUS_REPOSITORY_DIR) renamed to $(PEGASUS_PREV_REPOSITORY_DIR). The packaged Repository data files are installed in $(PEGASUS_REPOSITORY_DIR). If $(PEGASUS_PREV_REPOSITORY_DIR) exists, the repupgrade utility is used to merge changes from $(PEGASUS_PREV_REPOSITORY_DIR) to $(PEGASUS_REPOSITORY_DIR). Once the upgrade is complete, $(PEGASUS_PREV_REPOSITORY_DIR) is saved as an archive file.
Remove | If it exists, $(PEGASUS_PREV_REPOSITORY_DIR) is saved as an archive file. If it exists, $(PEGASUS_REPOSITORY_DIR) is saved as an archive.

### OpenPegasus Build & Installs Steps

For supported Operating Systems, pegasus/Makefile.Release can be used to perform the steps necessary to build and place the necessary OpenPegasus release files in a staging directory, PEGASUS_STAGING_DIR.

$(MAKE) -f pegasus/Makefile.Release rebuild

For successful operation, Makefile.Release is dependent on the existence of an operating system dependent file that defines the setting of key environment variables. Two sample files have been placed in the pegasus directory: env_var_HPUX.status and env_var_Linux.status.

Use of this utility has been tested on the following platforms.

- Linux
- HP-UX

## References

Note: Starting with the OpenPegasus 2.9.0 release, the OpenPegasus Build and Configuration Options document is available in OpenPegasus CVS Repository, pegasus/doc/BuildAndReleaseOptions.html.

1. PEP#174 - Recommended OpenPegasus 2.4 Build and Configuration Options
2. PEP#200 - Recommended OpenPegasus 2.5 Build and Configuration Options
3. PEP#237 - Recommended OpenPegasus 2.5.1 Build and Configuration Options
4. PEP#277 - Recommended OpenPegasus 2.6.0 Build and Configuration Options for Selected Platforms
5. PEP#292 - Recommended OpenPegasus 2.7.0 Build and Configuration Options for Selected Platforms
6. PEP#308 - Recommended OpenPegasus 2.8.0 Build and Configuration Options for Selected Platforms

## Rationale

## Schedule

## Discussion

Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
EMC Corporation; Symantec Corporation; The Open Group.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Template last modified: March 26th 2006 by Martin Kirk
Template version: 1.11