rpms/tog-pegasus/devel README.RedHat.Security, NONE, 1.1 access.conf, NONE, 1.1 genSSLcerts, NONE, 1.1 pegasus-2.5-add_cmpi_provider_lib.patch, NONE, 1.1 pegasus-2.5-bz173401.patch, NONE, 1.1 pegasus-2.5-enable_cql.patch, NONE, 1.1 pegasus-2.5-local-or-remote-auth.patch, NONE, 1.1 pegasus-2.5-make_install.patch, NONE, 1.1 pegasus-2.5-redhat.patch, NONE, 1.1 rpm_build_env, NONE, 1.1 tog-pegasus.spec, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2

Jason Vas Dias (jvdias) fedora-extras-commits at redhat.com
Thu Feb 2 00:08:51 UTC 2006


Author: jvdias

Update of /cvs/extras/rpms/tog-pegasus/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv21820/devel

Modified Files:
	.cvsignore sources 
Added Files:
	README.RedHat.Security access.conf genSSLcerts 
	pegasus-2.5-add_cmpi_provider_lib.patch 
	pegasus-2.5-bz173401.patch pegasus-2.5-enable_cql.patch 
	pegasus-2.5-local-or-remote-auth.patch 
	pegasus-2.5-make_install.patch pegasus-2.5-redhat.patch 
	rpm_build_env tog-pegasus.spec 
Log Message:
auto-import tog-pegasus-2.5-1.fe4 on branch devel from tog-pegasus-2.5-1.fe4.src.rpm


--- NEW FILE README.RedHat.Security ---
		Red Hat Security Enhancements for tog-pegasus
		~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 Access to the Pegasus services:
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

   By default, with the configuration as shipped, the upstream Open Group Pegasus
   release allowed any user with an account on the machine (including root) to
   use the network HTTPS port 5989 (by default) and HTTP port 5988 services.
   On authentication failures, though there was the standard PAM authentication
   failure delay, no messages were logged to syslog. This meant that potentially
   a long-running cracker process could try millions of root passwords over the
   network and could possibly discover the root password .  If users were unwise
   enough to enable the HTTP service on port 5988, then root passwords could be
   sent unencrypted over the network.

   This situation was deemed unacceptable by Red Hat RHEL QA test and Security
   Response team engineers.
 
   So for the Red Hat tog-pegasus release, PAM access control was enabled, to 
   remove these vulnerabilities. There is now a "pegasus" user created during
   install, and users are recommended to use only that user to invoke CIM 
   operations over the network.

   By default:

   o root password authentication for CIM operations invoked over the network 
     HTTPS/HTTP services is denied - the root user is unable to invoke pegasus
     services over the network - only the "pegasus" user may do so.

   o the root user may invoke CIM operations over the HTTPS/HTTP ports on the
     local machine.
 
   o any user other than "pegasus" or "root" may not invoke pegasus services
     over the HTTPS/HTTP ports at all.
     
   o any PAM authentication failure will be logged to syslog 

   NOTE: after installation, you must set the password for the pegasus user -
         issue this command as root :
         # passwd pegasus
         - to enable CIM operation network service, if the pegasus user is 
         a local system user.

   Note also that even though a non-root user's password is used to authenticate
   with the cimserver, the cimserver and all CIM Operation Providers run as root.
   This was another reason to restrict use of CIM Operations to only one user.  

   The "pegasus" user may of course be a NIS, Kerberos, or LDAP user, which
   could be used as configured in /etc/nsswitch.conf or with the PAM stack.

   You may configure this differently, and at your own risk, by modifying the
   pam_access configuration file /etc/Pegasus/access.conf, or by removing the
   line:
       account required pam_access.so accessfile=/etc/Pegasus/access.conf
   from /etc/pam.d/wbem - then tog-pegasus' authentication behaviour would
   be the same as that of the upstream release.

 SELinux
 ~~~~~~~
   There is an SELinux policy for tog-pegasus shipped in selinux-policy-targeted-1.17.30-2.110+ .
   When SELinux is enabled in enforcing mode, the cimserver and providers are restricted to the
   operations allowed to the 'pegasus_t' security context. Also only the pegasus_exec_t context
   may modify the repository, and only the pegasus_exec_conf_t context may modify the pegasus 
   configuration files which are of pegasus_conf_t file context.


 ExecShield
 ~~~~~~~~~~
   All tog-pegasus binary executables are compiled with ExecShield enabled, which make it nearly
   impossible to modify them or to poke executable code into them.



--- NEW FILE access.conf ---
##############################################################################
# Pegasus WBEM HTTP/HTTPS Network Service User Access Control Table:
# 
# This file controls access to the Pegasus WBEM Network services by users
# with the PAM pam_access module .
#
# The format of the access control table is three fields separated by a
# ":" character:
# 
# 	permission : users : origins
# 
# The first field should be a "+" (access granted) or "-" (access denied)
# character. 
#
# The second field should be a list of one or more login names, group
# names, or ALL (always matches). A pattern of the form user at host is
# matched when the login name matches the "user" part, and when the
# "host" part matches the local machine name.
#
# If you run NIS you can use @netgroupname in host or user patterns; this
# even works for @usergroup@@hostgroup patterns. Weird.
#
# The EXCEPT operator makes it possible to write very compact rules.
#
# The group file is searched only when a name does not match that of the
# logged-in user. Both the user's primary group is matched, as well as
# groups in which users are explicitly listed.
#
# The third field must be 'wbemNetwork', to control access by users from
# remote hosts, or 'wbemLocal', to control access by users from the local host.
##############################################################################
# 
# Pegasus PAM Access Rules:
# 1. The Remote host user access rule:
#    By default, ONLY the pegasus user can use remote network HTTP/S service:
#
-: ALL EXCEPT pegasus:wbemNetwork
#
#
# 2. The Local host user access rule:
#    By default, ONLY the pegasus and root users can use pegasus local HTTP/S service:
#
-: ALL EXCEPT pegasus root:wbemLocal


--- NEW FILE genSSLcerts ---
#!/bin/bash
#
#  Set up the openssl certificates for the tog-pegasus cimserver
#
#  Arguments:
#    If a single host name argument is given that resolves to a host
#    IP address, then the script will attempt to copy the certificate
#    files from that host name.
#
#  Without any arguments:
# 
#  Modify entries in ssl.cnf, then
#  Generate a self signed node certificate
#
PEGASUS_CONFIG_DIR=${PEGASUS_CONFIG_DIR:=/etc/Pegasus}
INSTALL_LOG=${INSTALL_LOG:=/var/log/Pegasus/install.log}
PEGASUS_SSL_CERT_FILE=${PEGASUS_SSL_CERT_FILE:=server.pem}
PEGASUS_SSL_KEY_FILE=${PEGASUS_SSL_KEY_FILE:=file.pem}
PEGASUS_SSL_TRUSTSTORE=${PEGASUS_SSL_TRUSTSTORE:=client.pem}
cnfChanged=0;
if [ ! -e $PEGASUS_CONFIG_DIR/ssl.cnf ]; then
    mkdir -p ${INSTALL_LOG%/*}
    mkdir -p $PEGASUS_CONFIG_DIR
    echo "[ req ]" > $PEGASUS_CONFIG_DIR/ssl.cnf
    echo "distinguished_name     = req_distinguished_name"  >> $PEGASUS_CONFIG_DIR/ssl.cnf
    echo "prompt                 = no"  >> $PEGASUS_CONFIG_DIR/ssl.cnf
    echo "[ req_distinguished_name ]" >> $PEGASUS_CONFIG_DIR/ssl.cnf
    echo "C                      = UK" >> $PEGASUS_CONFIG_DIR/ssl.cnf
    echo "ST                     = Berkshire" >> $PEGASUS_CONFIG_DIR/ssl.cnf
    echo "L                      = Reading" >> $PEGASUS_CONFIG_DIR/ssl.cnf
    echo "O                      = The Open Group" >> $PEGASUS_CONFIG_DIR/ssl.cnf
    echo "OU                     = The OpenPegasus Project" >> $PEGASUS_CONFIG_DIR/ssl.cnf
    DN=`hostname`;
    if [ -z "$DN" ] || [ "$DN" = "(none)" ]; then
       DN='localhost.localdomain';
    fi;
    FQDN=`{ host -W1 $DN 2>/dev/null || echo "$DN has address "; } | grep 'has address' | head -1 | sed 's/\ .*$//'`;
    if [ -z "$FQDN" ] ; then
	FQDN="$DN";
    fi;
    # cannot use 'hostname --fqdn' because this can hang indefinitely
    echo "CN                     = $FQDN"  >> $PEGASUS_CONFIG_DIR/ssl.cnf
    chmod 400 $PEGASUS_CONFIG_DIR/ssl.cnf
    chown root $PEGASUS_CONFIG_DIR/ssl.cnf
    chgrp root $PEGASUS_CONFIG_DIR/ssl.cnf
    cnfChanged=1;
fi
if [ $cnfChanged -eq 1 ] || [ ! -e /etc/Pegasus/$PEGASUS_SSL_CERT_FILE ] || [ ! -e /etc/Pegasus/$PEGASUS_SSL_KEY_FILE ] || [ ! -e /etc/Pegasus/$PEGASUS_SSL_TRUSTSTORE ]; then
    /usr/bin/openssl req -x509 -days 3650 -newkey rsa:2048 \
       -nodes -config $PEGASUS_CONFIG_DIR/ssl.cnf   \
       -keyout $PEGASUS_CONFIG_DIR/key.pem -out $PEGASUS_CONFIG_DIR/cert.pem 2>>$INSTALL_LOG
    chmod 700 $PEGASUS_CONFIG_DIR/*.pem
    cat $PEGASUS_CONFIG_DIR/key.pem > $PEGASUS_CONFIG_DIR/file_2048.pem
    chmod 400 $PEGASUS_CONFIG_DIR/file_2048.pem
    cat $PEGASUS_CONFIG_DIR/cert.pem > $PEGASUS_CONFIG_DIR/server_2048.pem
    chmod 400 $PEGASUS_CONFIG_DIR/server_2048.pem
    cat $PEGASUS_CONFIG_DIR/cert.pem > $PEGASUS_CONFIG_DIR/client_2048.pem
    chmod 400 $PEGASUS_CONFIG_DIR/client_2048.pem
    rm -f $PEGASUS_CONFIG_DIR/key.pem $PEGASUS_CONFIG_DIR/cert.pem
    cp -fp $PEGASUS_CONFIG_DIR/server_2048.pem $PEGASUS_CONFIG_DIR/$PEGASUS_SSL_CERT_FILE
    cp -fp $PEGASUS_CONFIG_DIR/file_2048.pem $PEGASUS_CONFIG_DIR/$PEGASUS_SSL_KEY_FILE
    chmod 400 $PEGASUS_CONFIG_DIR/$PEGASUS_SSL_KEY_FILE
    chmod 444 $PEGASUS_CONFIG_DIR/$PEGASUS_SSL_CERT_FILE 
    cp -fp $PEGASUS_CONFIG_DIR/client_2048.pem $PEGASUS_CONFIG_DIR/$PEGASUS_SSL_TRUSTSTORE
    chmod 444 $PEGASUS_CONFIG_DIR/$PEGASUS_SSL_TRUSTSTORE;
fi;

pegasus-2.5-add_cmpi_provider_lib.patch:

--- NEW FILE pegasus-2.5-add_cmpi_provider_lib.patch ---
--- pegasus-2.5/src/Pegasus/Config/FixedPropertyTableLinux.h.add_cmpi_provider_lib	2005-10-03 17:15:32.000000000 -0400
+++ pegasus-2.5/src/Pegasus/Config/FixedPropertyTableLinux.h	2005-10-31 12:58:45.000000000 -0500
@@ -56,7 +56,7 @@
     {"exportSSLTrustStore", "/etc/Pegasus/indication_trust"},
     {"crlStore",            "/etc/Pegasus/crl"},
     {"repositoryDir",       "/var/lib/Pegasus/repository"},
-    {"providerDir",         PEGASUS_DEST_LIB_DIR "/Pegasus/providers"},
+    {"providerDir",         PEGASUS_DEST_LIB_DIR "/Pegasus/providers:" PEGASUS_DEST_LIB_DIR "/cmpi" },
     {"messageDir",         "/usr/share/locale"},
 #endif
 #if defined(PEGASUS_USE_RELEASE_DIRS) && defined(PEGASUS_OS_LSB)

pegasus-2.5-bz173401.patch:

--- NEW FILE pegasus-2.5-bz173401.patch ---
--- pegasus-2.5/src/Pegasus/Common/SSLContext.cpp.bz173401	2005-11-16 14:53:24.000000000 -0500
+++ pegasus-2.5/src/Pegasus/Common/SSLContext.cpp	2005-11-16 18:12:59.000000000 -0500
@@ -810,7 +810,8 @@
     // create SSL Context Area
     //
 
-    if (!( sslContext = SSL_CTX_new(SSLv23_method()) ))
+//    if (!( sslContext = SSL_CTX_new(SSLv23_method()) ))
+    if (!( sslContext = SSL_CTX_new(SSLv3_method()) ))
     {
         PEG_METHOD_EXIT();
         //l10n
@@ -839,9 +840,9 @@
     SSL_CTX_set_session_cache_mode(sslContext, SSL_SESS_CACHE_OFF);
 
     int options = SSL_OP_ALL;
-#ifndef PEGASUS_ENABLE_SSLV2 //SSLv2 is disabled by default
-    options |= SSL_OP_NO_SSLv2;
-#endif
+//#ifndef PEGASUS_ENABLE_SSLV2 //SSLv2 is disabled by default
+//    options |= SSL_OP_NO_SSLv2;
+//#endif
     SSL_CTX_set_options(sslContext, options);
 
     if (_verifyPeer)

pegasus-2.5-enable_cql.patch:

--- NEW FILE pegasus-2.5-enable_cql.patch ---
--- pegasus-2.5/env_var_Linux.status.ENABLE_CQL	2005-10-31 13:05:39.000000000 -0500
+++ pegasus-2.5/env_var_Linux.status	2005-11-09 19:40:03.000000000 -0500
@@ -18,7 +18,7 @@
 PEGASUS_STAGING_DIR = $(PEGASUS_HOME)/stagingDir
 endif
 
-PEGASUS_DISABLE_CQL=true
+PEGASUS_ENABLE_CQL=true
 PEGASUS_DISABLE_OBJECT_NORMALIZATION=true
 PEGASUS_ENABLE_CMPI_PROVIDER_MANAGER=true
 PEGASUS_ENABLE_USERGROUP_AUTHORIZATION=true

pegasus-2.5-local-or-remote-auth.patch:

--- NEW FILE pegasus-2.5-local-or-remote-auth.patch ---
--- pegasus-2.5/src/Pegasus/Server/HTTPAuthenticatorDelegator.cpp.local_or_remote_auth	2005-08-13 20:28:32.000000000 -0400
+++ pegasus-2.5/src/Pegasus/Server/HTTPAuthenticatorDelegator.cpp	2005-09-28 16:18:58.000000000 -0400
@@ -364,6 +364,9 @@
         }
     }
 
+    // Let Authenticators know whether this user is Local or Remote:
+    httpMessage->authInfo->setRemoteUser( httpMessage->fromRemoteHost );
+
     //
     // Handle authentication:
     //
--- pegasus-2.5/src/Pegasus/Security/Authentication/PAMBasicAuthenticatorStub.cpp.local_or_remote_auth	2005-07-12 14:05:09.000000000 -0400
+++ pegasus-2.5/src/Pegasus/Security/Authentication/PAMBasicAuthenticatorStub.cpp	2005-09-28 16:18:58.000000000 -0400
@@ -90,7 +90,8 @@
 
 Boolean PAMBasicAuthenticator::authenticate(
     const String& userName, 
-    const String& password) 
+    const String& password,
+    Boolean isRemoteUser) 
 {
     PEG_METHOD_ENTER(TRC_AUTHENTICATION,
         "PAMBasicAuthenticator::authenticate()");
--- pegasus-2.5/src/Pegasus/Security/Authentication/PAMBasicAuthenticator.h.local_or_remote_auth	2005-07-12 14:05:09.000000000 -0400
+++ pegasus-2.5/src/Pegasus/Security/Authentication/PAMBasicAuthenticator.h	2005-09-28 16:18:58.000000000 -0400
@@ -71,7 +71,8 @@
     */
     Boolean authenticate(
         const String& userName,
-        const String& password);
+        const String& password,
+	Boolean isRemoteUser);
 
     /** Verify PAM account management for the requesting user.
         @param userName String containing the user name
@@ -100,7 +101,8 @@
 
     Boolean _authenticateByPAM(
         const String& userName,
-        const String& password);
+        const String& password,
+	Boolean isRemoteUser);
 
     void _createPAMStandalone();
 
@@ -156,7 +158,8 @@
     */
     Boolean authenticate(
         const String& userName, 
-        const String& password);
+        const String& password,
+	Boolean isRemoteUser);
 
     /** Verify whether the user is valid.
         @param userName String containing the user name
@@ -218,7 +221,8 @@
 
     Boolean _authenticateByPAM(
 	const String& userName,
-	const String& password);
+	const String& password,
+	Boolean isRemoteUser);
 
 #if defined(PEGASUS_USE_PAM_STANDALONE_PROC)
     PAMBasicAuthenticatorStandAlone _pamBasicAuthenticatorStandAlone;
--- pegasus-2.5/src/Pegasus/Security/Authentication/BasicAuthenticationHandler.cpp.local_or_remote_auth	2005-07-12 14:05:09.000000000 -0400
+++ pegasus-2.5/src/Pegasus/Security/Authentication/BasicAuthenticationHandler.cpp	2005-09-28 16:18:58.000000000 -0400
@@ -136,7 +136,7 @@
     authInfo->setAuthenticatedUser(userName);
     authInfo->setAuthenticatedPassword(password);
 #else
-    authenticated = _basicAuthenticator->authenticate(userName, password);
+    authenticated = _basicAuthenticator->authenticate(userName, password, authInfo->isRemoteUser());
 
     if (authenticated)
     {
--- pegasus-2.5/src/Pegasus/Security/Authentication/PAMBasicAuthenticatorUnix.cpp.local_or_remote_auth	2005-07-19 15:14:48.000000000 -0400
+++ pegasus-2.5/src/Pegasus/Security/Authentication/PAMBasicAuthenticatorUnix.cpp	2005-09-28 16:47:55.000000000 -0400
@@ -129,7 +129,8 @@
 
 Boolean PAMBasicAuthenticator::authenticate(
     const String& userName, 
-    const String& password) 
+    const String& password,
+    Boolean isRemoteUser) 
 {
     PEG_METHOD_ENTER(TRC_AUTHENTICATION,
         "PAMBasicAuthenticator::authenticate()");
@@ -137,7 +138,7 @@
     Boolean authenticated;
 
 #if !defined(PEGASUS_USE_PAM_STANDALONE_PROC)
-        authenticated = _authenticateByPAM(userName, password);
+    authenticated = _authenticateByPAM(userName, password, isRemoteUser);
 #else
         //
         // Mutex to Serialize Authentication calls.
@@ -145,8 +146,9 @@
         Tracer::trace(TRC_AUTHENTICATION, Tracer::LEVEL4,
            "Authentication Mutex lock.");
         AutoMutex lock(_authSerializeMutex);
-        authenticated = _pamBasicAuthenticatorStandAlone.authenticate(
-            userName, password);
+        authenticated =
+                _pamBasicAuthenticatorStandAlone->authenticate(userName,
+                                                              password);
 #endif
 
     PEG_METHOD_EXIT();
@@ -155,7 +157,8 @@
 
 Boolean PAMBasicAuthenticator::_authenticateByPAM(
     const String& userName, 
-    const String& password) 
+    const String& password,
+    Boolean isRemoteUser) 
 {
     PEG_METHOD_ENTER(TRC_AUTHENTICATION,
         "PAMBasicAuthenticator::_authenticateByPAM()");
@@ -165,6 +168,7 @@
     pam_handle_t *phandle;
     char *name;
     APP_DATA mydata;
+    int retcode;
 
     //
     // Store the password for PAM authentication
@@ -178,21 +182,38 @@
 //    Tracer::trace(TRC_AUTHENTICATION, Tracer::LEVEL4,
 //       "PAMBasicAuthenticator::_authenticateByPAM() - userName = %s; userPassword = %s",
 //       (const char *)userName.getCString(), (const char *)password.getCString());
+    
+    // NOTE: if any pam call should log anything, our syslog socket will be redirected
+    //       to the AUTH facility, so we need to redirect it back after each pam call.
 
     //
     //Call pam_start since you need to before making any other PAM calls
     //
-    if ( ( pam_start(service, 
+
+    if ( (retcode = pam_start(service, 
         (const char *)userName.getCString(), &pconv, &phandle) ) != PAM_SUCCESS ) 
     {
+	closelog();
+	openlog("cimserver", LOG_PID, LOG_DAEMON);
+	syslog( LOG_ERR, "pam_start failed: %s", pam_strerror(phandle, retcode));
         PEG_METHOD_EXIT();
         return (authenticated);
     }
+   
 
+    if ( (retcode = pam_set_item(phandle, PAM_TTY, isRemoteUser ? "wbemNetwork" : "wbemLocal")) != PAM_SUCCESS )
+    {
+	pam_end(phandle, 0);	
+	closelog();
+	openlog("cimserver", LOG_PID, LOG_DAEMON);
+	syslog( LOG_ERR, "pam_set_item(PAM_TTY=wbem) failed: %s", pam_strerror(phandle, retcode));
+        PEG_METHOD_EXIT();
+        return (authenticated);
+    }
     //
     //Call pam_authenticate to authenticate the user
     //
-    if ( ( pam_authenticate(phandle, 0) ) == PAM_SUCCESS ) 
+    if ( ( retcode = pam_authenticate(phandle, 0) ) == PAM_SUCCESS ) 
     {
        Tracer::trace(TRC_AUTHENTICATION, Tracer::LEVEL4,
          "pam_authenticate successful.");
@@ -201,22 +222,40 @@
         //checking for password and account expiration, as well as verifying access 
         //hour restrictions.
         //
-        if ( ( pam_acct_mgmt(phandle, 0) ) == PAM_SUCCESS ) 
+
+        if ( ( retcode = pam_acct_mgmt(phandle, 0) ) == PAM_SUCCESS ) 
         {
            Tracer::trace(TRC_AUTHENTICATION, Tracer::LEVEL4,
               "pam_acct_mgmt successful.");
             authenticated = true;
-        }
+        }else
+	{
+	    closelog();
+	    openlog("cimserver", LOG_PID, LOG_DAEMON);
+	    syslog(LOG_ERR, "pam_acct_mgmt failed: %s",pam_strerror(phandle, retcode));
+	}
+    }else
+    {
+        closelog();
+	openlog("cimserver", LOG_PID, LOG_DAEMON);
+	syslog(LOG_ERR, "pam_authenticate failed: %s",pam_strerror(phandle, retcode));
     }
-
     //
     //Call pam_end to end our PAM work
     //
     pam_end(phandle, 0);
+    closelog();
+    openlog("cimserver", LOG_PID, LOG_DAEMON);
 
-    PEG_METHOD_EXIT();
+    if ( ! authenticated )
+	syslog(LOG_ERR, "PAM authentication failed for %s user: %s",
+	       isRemoteUser ? "remote" : "local",
+	       (const char*)userName.getCString()
+	      );
 
+    PEG_METHOD_EXIT();
     return (authenticated);
+
 }
 
 Boolean PAMBasicAuthenticator::validateUser(const String& userName)
@@ -231,6 +270,7 @@
     pam_handle_t *phandle;
     char *name;
     APP_DATA mydata;
+    int retcode;
 
     const char *service = "wbem";
     pconv.conv = PAMBasicAuthenticator::pamValidateUserCallback;
@@ -239,21 +279,43 @@
     //
     // Call pam_start since you need to before making any other PAM calls
     //
-    if ( pam_start(service,
-     (const char *)userName.getCString(), &pconv, &phandle) != PAM_SUCCESS)
-    {
+    if ( (retcode = 
+	  pam_start(service,(const char *)userName.getCString(), &pconv, &phandle) 
+	 ) != PAM_SUCCESS
+       )
+    {
+	closelog();
+	openlog("cimserver", LOG_PID, LOG_DAEMON);
+	syslog( LOG_ERR, "pam_start() failed: %s", pam_strerror(phandle, retcode));
         PEG_METHOD_EXIT();
         return (authenticated);
     }
 
+    if ( (retcode = pam_set_item(phandle, PAM_TTY, "wbemLocal")) != PAM_SUCCESS )
+    {
+	pam_end(phandle, 0);
+	closelog();
+	openlog("cimserver", LOG_PID, LOG_DAEMON);
+	syslog( LOG_ERR, "pam_set_item(PAM_TTY=wbemLocal) failed: %s", pam_strerror(phandle, retcode));
+        PEG_METHOD_EXIT();
+        return (authenticated);
+    }
     //
     // Call pam_acct_mgmt, to check if the user account is valid. This includes
     // checking for account expiration, as well as verifying access
     // hour restrictions.
     //
-    if ( pam_acct_mgmt(phandle, 0) == PAM_SUCCESS )
-    {
+    if ( (retcode = pam_acct_mgmt(phandle, 0)) == PAM_SUCCESS )
+    {	
         authenticated = true;
+    }else
+    {
+	pam_end(phandle, 0);
+	closelog();
+	openlog("cimserver", LOG_PID, LOG_DAEMON);
+	syslog( LOG_ERR, "pam_acct_mgmt() failed: %s", pam_strerror(phandle, retcode));
+        PEG_METHOD_EXIT();
+        return (authenticated);
     }
 
     //
@@ -261,6 +323,9 @@
     //
     pam_end(phandle, 0);
 
+    closelog();
+    openlog("cimserver", LOG_PID, LOG_DAEMON);
+
 #else
     //
     // Mutex to Serialize Authentication calls.
--- pegasus-2.5/src/Pegasus/Security/Authentication/BasicAuthenticator.h.local_or_remote_auth	2005-07-12 14:05:09.000000000 -0400
+++ pegasus-2.5/src/Pegasus/Security/Authentication/BasicAuthenticator.h	2005-09-28 16:18:58.000000000 -0400
@@ -65,7 +65,8 @@
     */
     virtual Boolean authenticate(
         const String& userName, 
-        const String& password) = 0;
+        const String& password,
+	Boolean isRemoteUser) = 0;
 
     /** Construct and return the HTTP Basic authentication challenge header
         @return A string containing the authentication challenge header.
--- pegasus-2.5/src/Pegasus/Common/HTTPMessage.cpp.local_or_remote_auth	2005-05-31 21:51:53.000000000 -0400
+++ pegasus-2.5/src/Pegasus/Common/HTTPMessage.cpp	2005-09-28 16:18:58.000000000 -0400
@@ -101,7 +101,8 @@
     message(message_),
     queueId(queueId_),
     acceptLanguagesDecoded(false),
-    contentLanguagesDecoded(false)
+    contentLanguagesDecoded(false),
+    fromRemoteHost(true)
 {
 	if (cimException_)
 		cimException = *cimException_;
--- pegasus-2.5/src/Pegasus/Common/HTTPMessage.h.local_or_remote_auth	2005-05-12 02:59:56.000000000 -0400
+++ pegasus-2.5/src/Pegasus/Common/HTTPMessage.h	2005-09-28 16:18:58.000000000 -0400
@@ -77,7 +77,8 @@
       ContentLanguages contentLanguages;
       Boolean acceptLanguagesDecoded;
       Boolean contentLanguagesDecoded;
-			CIMException cimException;
+      Boolean fromRemoteHost;	       
+      CIMException cimException;
 
       void parse(
 	 String& startLine,
--- pegasus-2.5/src/Pegasus/Common/AuthenticationInfoRep.cpp.local_or_remote_auth	2005-02-05 17:59:23.000000000 -0500
+++ pegasus-2.5/src/Pegasus/Common/AuthenticationInfoRep.cpp	2005-09-28 16:18:58.000000000 -0400
@@ -55,7 +55,8 @@
     _privileged(false),
     _authType(String::EMPTY),
     _authStatus(NEW_REQUEST),
-    _exportConnection(false)
+    _exportConnection(false),
+    _remoteUser(true)
 { 
     PEG_METHOD_ENTER(
         TRC_AUTHENTICATION, "AuthenticationInfoRep::AuthenticationInfoRep");
@@ -178,5 +179,14 @@
     PEG_METHOD_EXIT();
 }
 
+void   AuthenticationInfoRep::setRemoteUser(Boolean remoteUser)
+{
+    PEG_METHOD_ENTER(TRC_AUTHENTICATION,
+        "AuthenticationInfoRep::setRemoteUser");
+
+    _remoteUser = remoteUser;
+
+    PEG_METHOD_EXIT();
+}
 
 PEGASUS_NAMESPACE_END
--- pegasus-2.5/src/Pegasus/Common/AuthenticationInfo.h.local_or_remote_auth	2005-02-05 17:59:23.000000000 -0500
+++ pegasus-2.5/src/Pegasus/Common/AuthenticationInfo.h	2005-09-28 16:18:58.000000000 -0400
@@ -329,6 +329,22 @@
         _rep->setClientCertificate(clientCertificate);
 	}
 
+     /** Indicate whether the user is Remote 
+     */
+     Boolean isRemoteUser() const
+     {
+         _checkRep();
+         return _rep->isRemoteUser();
+     }
+
+     /** Set the Remote User flag
+     */
+     void setRemoteUser(Boolean remoteUser)
+     {
+         _checkRep();
+         _rep->setRemoteUser(remoteUser);
+     }
+
 private:
 
     AuthenticationInfo(AuthenticationInfoRep* rep) : _rep(rep)
--- pegasus-2.5/src/Pegasus/Common/AuthenticationInfoRep.h.local_or_remote_auth	2005-02-05 17:59:23.000000000 -0500
+++ pegasus-2.5/src/Pegasus/Common/AuthenticationInfoRep.h	2005-09-28 16:18:58.000000000 -0400
@@ -140,6 +140,14 @@
 
     void setExportConnection(Boolean exportConnection);
 
+    Boolean isRemoteUser() const
+    {
+        return _remoteUser;
+    }
+
+    void setRemoteUser(Boolean remoteUser);
+
+
 	//PEP187
     SSLCertificateInfo* getClientCertificate()
 	{
@@ -170,7 +178,8 @@
 #endif
 
     Boolean _exportConnection;
-	SSLCertificateInfo* _clientCertificate;
+    SSLCertificateInfo* _clientCertificate;
+    Boolean _remoteUser;
 };
 
 PEGASUS_NAMESPACE_END
--- pegasus-2.5/src/Pegasus/Common/HTTPConnection.cpp.local_or_remote_auth	2005-08-18 20:24:32.000000000 -0400
+++ pegasus-2.5/src/Pegasus/Common/HTTPConnection.cpp	2005-09-28 16:18:58.000000000 -0400
@@ -1807,6 +1807,30 @@
             "_requestCount = %d", _requestCount.value());
         message->dest = _outputMessageQueue->getQueueId();
 //        SendForget(message);
+	
+	// Allow authenticators to differentiate Remote and Local users:
+	struct sockaddr_in sin_peer, sin_svr; // don't need to worry about IPv6 yet ...
+	socklen_t slen1=sizeof(struct sockaddr_in), slen2=sizeof(struct sockaddr_in);
+	uint32_t  sock = _socket.get()->getSocket() ;
+	memset(&sin_peer,'\0',slen1);
+	memset(&sin_svr, '\0',slen2);
+	if ( ( ::getpeername( sock, (struct sockaddr*)&sin_peer, &slen1) == 0 )
+	   ||( ::getsockname( sock, (struct sockaddr*)&sin_svr,  &slen2) == 0 )
+	   )
+	{
+	    if( sin_peer.sin_family == AF_INET )
+	    {
+		if( ((ntohl( sin_peer.sin_addr.s_addr ) >> 24) & 0xff) == 127 )
+		    // message was sent FROM localhost interface
+		    message->fromRemoteHost = false;
+	    }
+	    if( sin_svr.sin_family == AF_INET )
+	    {
+		if( ((ntohl( sin_svr.sin_addr.s_addr ) >> 24) & 0xff) == 127 )
+		    // message was sent TO localhost interface
+		    message->fromRemoteHost = false;
+	    }
+	}
 
         //
         // Set the entry status to BUSY.

pegasus-2.5-make_install.patch:

--- NEW FILE pegasus-2.5-make_install.patch ---
--- pegasus-2.5/Makefile.make_install	2005-05-12 11:27:24.000000000 -0400
+++ pegasus-2.5/Makefile	2005-10-03 13:07:31.000000000 -0400
@@ -60,12 +60,44 @@
 world: depend all repository
 	@ $(MAKE) -s tests
 
+install: all repository repository_install sdk_install install_dirs install_scripts
+
+sdk_install:
+ifdef PEGASUS_INSTALL
+	if [ -d $(PEGASUS_SDK_STAGING_DIR) ]; then \
+	   ( cd $(PEGASUS_SDK_STAGING_DIR); tar -cpf - .) | ( cd $(PEGASUS_DESTDIR); tar -xpf -); \
+	fi;
+endif
+
+install_dirs:
+ifdef PEGASUS_INSTALL
+	mkdir -p $(PEGASUS_DESTDIR)/$(PEGASUS_LOG_DIR)
+	mkdir -p $(PEGASUS_DESTDIR)/$(PEGASUS_VARRUN_DIR)
+	mkdir -p $(PEGASUS_DESTDIR)/$(PEGASUS_LOCAL_AUTH_DIR)
+endif
+
+install_scripts:
+ifdef PEGASUS_INSTALL
+	mkdir -p $(PEGASUS_DESTDIR)/$(PEGASUS_SBIN_DIR)
+	echo "#!/bin/bash" > $(PEGASUS_DESTDIR)/$(PEGASUS_SBIN_DIR)/init_repository
+	echo "PEGASUS_MOF_DIR="$(PEGASUS_MOF_DIR) >> $(PEGASUS_DESTDIR)/$(PEGASUS_SBIN_DIR)/init_repository
+	echo "PEGASUS_REPOSITORY_DIR="$(PEGASUS_REPOSITORY_DIR) >> $(PEGASUS_DESTDIR)/$(PEGASUS_SBIN_DIR)/init_repository
+	echo "PEGASUS_BIN_DIR="$(PEGASUS_BIN_DIR) >> $(PEGASUS_DESTDIR)/$(PEGASUS_SBIN_DIR)/init_repository
+	echo "PEGASUS_CIM_SCHEMA=29" >> $(PEGASUS_DESTDIR)/$(PEGASUS_SBIN_DIR)/init_repository
+	cat installs/scripts/init_repository >> $(PEGASUS_DESTDIR)/$(PEGASUS_SBIN_DIR)/init_repository
+	chown root:root $(PEGASUS_DESTDIR)/$(PEGASUS_SBIN_DIR)/init_repository >/dev/null 2>&1 || :;
+	chmod 0755 $(PEGASUS_DESTDIR)/$(PEGASUS_SBIN_DIR)/init_repository
+endif
+
 # The repository Target removes and rebuilds the CIM repository
 
 # Note: Arguments must be quoted to preserve upper case characters in VMS.
 repository: FORCE
 	@ $(MAKE) "-SC" Schemas/Pegasus repository
 
+repository_install: repository
+	@ $(MAKE) "-SC" Schemas/Pegasus install_repository
+
 repositoryclean: FORCE
 	@ $(RMREPOSITORY) $(REPOSITORY_ROOT)
 
--- pegasus-2.5/mak/SDKMakefile.make_install	2005-10-03 12:32:47.000000000 -0400
+++ pegasus-2.5/mak/SDKMakefile	2005-10-03 12:32:47.000000000 -0400
@@ -156,8 +156,7 @@
    Providers/Load \
    mak
 
-DOCSRCPATH1FILES = \
-   SecurityGuidelinesForDevelopers.html
+DOCSRCPATH1FILES =
 
 CLIENTSRCPATH1FILES = \
    Makefile \
@@ -402,3 +401,8 @@
 testSDK:
 	@$(MAKE) --directory=$(PEGASUS_STAGING_DIR)$(PEGASUS_SAMPLES_DIR) -f Makefile  tests \
              PEGASUS_SAMPLES_DIR=$(PEGASUS_STAGING_DIR)$(PEGASUS_SAMPLES_DIR)
+
+install:
+ifdef PEGASUS_INSTALL
+	(cd $(PEGASUS_STAGING_DIR); tar -cpf - .) | ( cd $(PEGASUS_DESTDIR)/; tar -xpf -)
+endif
\ No newline at end of file
--- pegasus-2.5/mak/program-unix.mak.make_install	2005-10-03 12:32:47.000000000 -0400
+++ pegasus-2.5/mak/program-unix.mak	2005-10-03 12:32:47.000000000 -0400
@@ -154,4 +154,4 @@
 
 include $(ROOT)/mak/misc.mak
 
-include $(ROOT)/mak/install-program-unix.mak
+include $(PEGASUS_ROOT)/mak/install-program-unix.mak
--- /dev/null	2005-10-03 10:53:34.123398250 -0400
+++ pegasus-2.5/mak/install-program-unix.mak	2005-10-03 12:32:47.000000000 -0400
@@ -0,0 +1,16 @@
+INSTALL_BIN?=bin
+INSTALL_USER?=root
+INSTALL_GROUP?=root
+INSTALL_MODE?=0755
+install: $(PEGASUS_HOME)/bin/$(PROGRAM)
+ifdef PEGASUS_INSTALL
+   ifndef TEST
+	$(PEGASUS_INSTALL) -D -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m $(INSTALL_MODE) $(PEGASUS_HOME)/bin/$(PROGRAM) $(PEGASUS_DESTDIR)/$(PEGASUS_PROD_DIR)/$(INSTALL_BIN)/$(PROGRAM)
+   else
+      ifeq ( $(TEST), 'INSTALL' )
+	$(PEGASUS_INSTALL) -D -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m $(INSTALL_MODE) $(PEGASUS_TEST_STAGING_DIR)/$(PEGASUS_TEST_BIN_DIR)/$(PROGRAM) $(PEGASUS_DESTDIR)/$(PEGASUS_PROD_DIR)/$(INSTALL_BIN)/$(PROGRAM)
+      endif
+   endif
+endif
+
+
--- /dev/null	2005-10-03 10:53:34.123398250 -0400
+++ pegasus-2.5/mak/install-library-unix.mak	2005-10-03 12:32:47.000000000 -0400
@@ -0,0 +1,16 @@
+INSTALL_LIB?=$(PEGASUS_ARCH_LIB_DIR)
+INSTALL_USER?=root
+INSTALL_GROUP?=root
+INSTALL_MODE?=0755
+install: $(PEGASUS_HOME)/$(PEGASUS_ARCH_LIB_DIR)/lib$(LIBRARY)$(LIB_SUFFIX)
+ifdef PEGASUS_INSTALL	
+   ifndef TEST
+	$(PEGASUS_INSTALL) -D -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m $(INSTALL_MODE) $(PEGASUS_HOME)/$(PEGASUS_ARCH_LIB_DIR)/lib$(LIBRARY)$(LIB_SUFFIX) $(PEGASUS_DESTDIR)/$(PEGASUS_PROD_DIR)/$(INSTALL_LIB)/lib$(LIBRARY)$(LIB_SUFFIX)
+	ln -s lib$(LIBRARY)$(LIB_SUFFIX) $(PEGASUS_DESTDIR)/$(PEGASUS_PROD_DIR)/$(INSTALL_LIB)/lib$(LIBRARY).so
+   else
+      ifeq ( $(TEST), 'INSTALL' )
+	echo 'TEST is '"'"$(TEST)"'"
+	$(PEGASUS_INSTALL) -D -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m $(INSTALL_MODE) $(PEGASUS_HOME)/$(PEGASUS_ARCH_LIB_DIR)/lib$(LIBRARY)$(LIB_SUFFIX) $(PEGASUS_TEST_STAGING_DIR)/$(PEGASUS_TEST_LIB_DIR)/lib$(LIBRARY)$(LIB_SUFFIX)
+      endif
+   endif
+endif
--- pegasus-2.5/mak/library-unix.mak.make_install	2005-10-03 12:32:47.000000000 -0400
+++ pegasus-2.5/mak/library-unix.mak	2005-10-03 12:32:47.000000000 -0400
@@ -165,4 +165,4 @@
 
 FILES_TO_CLEAN = $(OBJECTS) $(FULL_LIB)
 
-include $(ROOT)/mak/install-library-unix.mak
+include $(PEGASUS_ROOT)/mak/install-library-unix.mak
--- pegasus-2.5/mak/recurse.mak.make_install	2005-05-12 11:27:28.000000000 -0400
+++ pegasus-2.5/mak/recurse.mak	2005-10-03 12:32:47.000000000 -0400
@@ -76,3 +76,5 @@
 messages: $(RECURSE_DEPENDS) $(ERROR)
 	@ $(foreach i, $(DIRS), $(MAKESH) $(MAKE) "-SC" $(i) messages $(NL) )
 
+install: $(RECURSE_DEPENDS) $(ERROR)
+	@ $(foreach i, $(DIRS), $(MAKESH) $(MAKE) "-SC" $(i) install $(NL) )
--- pegasus-2.5/rpm/Makefile.make_install	2005-05-12 11:27:29.000000000 -0400
+++ pegasus-2.5/rpm/Makefile	2005-10-03 12:32:47.000000000 -0400
@@ -51,3 +51,13 @@
 
 messages:
 
+install: tog-pegasus.rc wbem cimserver_planned.conf
+ifdef PEGASUS_INSTALL
+	$(PEGASUS_INSTALL) -D -o root -g root -m 0550 tog-pegasus.rc $(PEGASUS_DESTDIR)/etc/rc.d/init.d/tog-pegasus
+	$(PEGASUS_INSTALL) -D -o root -g root -m 0660 cimserver_planned.conf $(PEGASUS_DESTDIR)/$(PEGASUS_CONFIG_DIR)/cimserver_planned.conf
+	$(PEGASUS_INSTALL) -D -o root -g root -m 0660 wbem $(PEGASUS_DESTDIR)/etc/pam.d/wbem
+	mkdir -p $(PEGASUS_DESTDIR)/$(PEGASUS_MANUSER_DIR) $(PEGASUS_DESTDIR)/$(PEGASUS_MANADMIN_DIR) 
+	cp -fp manLinux/man1.Z/*.1 $(PEGASUS_DESTDIR)/$(PEGASUS_MANUSER_DIR)/
+	cp -fp manLinux/man8.Z/*.8 $(PEGASUS_DESTDIR)/$(PEGASUS_MANADMIN_DIR)/
+	for f in manLinux/man1m.Z/*.1m; do F=$(PEGASUS_DESTDIR)/$(PEGASUS_MANADMIN_DIR)/`echo $$f | sed 's/1m$$/8/;s/.*\///g'`; if [ ! -f $$F ]; then cp -fp $$f $$F; fi; done
+endif 
\ No newline at end of file
--- pegasus-2.5/test/Makefile.make_install	2005-05-12 11:33:41.000000000 -0400
+++ pegasus-2.5/test/Makefile	2005-10-03 12:32:47.000000000 -0400
@@ -27,11 +27,13 @@
 #//
 #//==============================================================================
 ROOT = ..
-
+TEST = true
+TEST=true
 include $(ROOT)/mak/config.mak
 
 DIRS = \
    wetest
 
+TEST=true
 include $(ROOT)/mak/recurse.mak
 
--- pegasus-2.5/test/TestProviders/ExceptionsTest/Makefile.make_install	2005-05-12 11:33:41.000000000 -0400
+++ pegasus-2.5/test/TestProviders/ExceptionsTest/Makefile	2005-10-03 12:32:47.000000000 -0400
@@ -59,7 +59,9 @@
 
 
 ROOT = $(PEGASUS_ROOT)
+TEST=true
 include $(ROOT)/mak/config.mak
+TEST=true
 include $(ROOT)/mak/configschema.mak
 
 SAMPLEPROVIDERNS= root/SampleProvider
@@ -77,6 +79,7 @@
 
 LOCAL_DEFINES=-DTEST_EXCEPTIONS
 
+TEST=true
 include $(PEGASUS_ROOT)/mak/library.mak
 
 client:
--- pegasus-2.5/test/TestProviders/CIMOMSample/Makefile.make_install	2005-05-12 11:33:41.000000000 -0400
+++ pegasus-2.5/test/TestProviders/CIMOMSample/Makefile	2005-10-03 12:32:47.000000000 -0400
@@ -61,7 +61,9 @@
 
 
 ROOT = $(PEGASUS_ROOT)
+TEST=true
 include $(ROOT)/mak/config.mak
+TEST=true
 include $(ROOT)/mak/configschema.mak
 
 SAMPLEPROVIDERNS= root/SampleProvider
@@ -77,6 +79,7 @@
    CIMOMSampleProvider.cpp \
[...7031 lines suppressed...]
 
@@ -702,3 +703,4 @@
 
 prepend-license:
 
+install:
\ No newline at end of file
--- pegasus-2.5/src/Clients/MCCATestClient/Makefile.make_install	2005-05-12 11:27:35.000000000 -0400
+++ pegasus-2.5/src/Clients/MCCATestClient/Makefile	2005-10-03 12:32:47.000000000 -0400
@@ -27,13 +27,16 @@
 #//
 #//==============================================================================
 ROOT = $(PEGASUS_ROOT)
-
+TEST = true
+TEST=true
 include $(ROOT)/mak/config.mak
+TEST=true
 include $(ROOT)/mak/configschema.mak
 
 PEGASUS_ZOS_PROGRAM_OBJECT = yes
 
 DIR = Clients/MCCATestClient
+TEST=true
 include $(ROOT)/mak/config.mak
 
 ifdef PEGASUS_HAS_SSL
@@ -57,6 +60,7 @@
   endif
 endif
 
+TEST=true
 include $(ROOT)/mak/program.mak
 
 tests:
--- pegasus-2.5/InterfaceArchive/v002001/tests/Makefile.make_install	2003-10-07 02:42:45.000000000 -0400
+++ pegasus-2.5/InterfaceArchive/v002001/tests/Makefile	2005-10-03 12:32:47.000000000 -0400
@@ -1,9 +1,11 @@
 ROOT = $(PEGASUS_ROOT)
 
+TEST=true
 include $(ROOT)/mak/config.mak
 
 DIRS = \
        Providers \
        Clients
 
+TEST=true
 include $(ROOT)/mak/recurse.mak
--- pegasus-2.5/InterfaceArchive/v002001/tests/Providers/InstanceProvider/Makefile.make_install	2003-10-07 02:42:45.000000000 -0400
+++ pegasus-2.5/InterfaceArchive/v002001/tests/Providers/InstanceProvider/Makefile	2005-10-03 12:32:47.000000000 -0400
@@ -2,7 +2,9 @@
 
 DIR = InterfaceArchive/$(VERSION)/tests/Providers/InstanceProvider
 
+TEST=true
 include ../../../version.mak
+TEST=true
 include $(ROOT)/mak/config.mak
 LIBRARY = SampleInstanceProvider
 
@@ -14,6 +16,7 @@
 	InstanceProviderMain.cpp \
 	InstanceProvider.cpp
 
+TEST=true
 include $(ROOT)/mak/library.mak
 
 ifdef PEGASUS_TEST_BACKWARD_COMPATIBILITY
--- pegasus-2.5/InterfaceArchive/v002001/tests/Providers/Makefile.make_install	2003-10-07 03:46:28.000000000 -0400
+++ pegasus-2.5/InterfaceArchive/v002001/tests/Providers/Makefile	2005-10-03 12:32:47.000000000 -0400
@@ -1,7 +1,9 @@
+TEST=true
 include $(PEGASUS_ROOT)/mak/config.mak
 
 DIRS = \
 	InstanceProvider \
 	MethodProvider 
 
+TEST=true
 include $(PEGASUS_ROOT)/mak/recurse.mak
--- pegasus-2.5/InterfaceArchive/v002001/tests/Providers/MethodProvider/Makefile.make_install	2003-10-07 02:42:45.000000000 -0400
+++ pegasus-2.5/InterfaceArchive/v002001/tests/Providers/MethodProvider/Makefile	2005-10-03 12:32:47.000000000 -0400
@@ -2,7 +2,9 @@
 
 DIR = InterfaceArchive/$(VERSION)/tests/Providers/MethodProvider
 
+TEST=true
 include ../../../version.mak
+TEST=true
 include $(ROOT)/mak/config.mak
 LIBRARY = SampleMethodProvider
 
@@ -14,6 +16,7 @@
 	MethodProviderMain.cpp \
 	MethodProvider.cpp
 
+TEST=true
 include $(ROOT)/mak/library.mak
 
 ifdef PEGASUS_TEST_BACKWARD_COMPATIBILITY
--- pegasus-2.5/InterfaceArchive/v002001/tests/Clients/Makefile.make_install	2003-10-07 02:42:45.000000000 -0400
+++ pegasus-2.5/InterfaceArchive/v002001/tests/Clients/Makefile	2005-10-03 12:32:47.000000000 -0400
@@ -1,9 +1,11 @@
 ROOT = $(PEGASUS_ROOT)
 
+TEST=true
 include $(ROOT)/mak/config.mak
 
 DIRS = \
    EnumInstances \
    InvokeMethod
 
+TEST=true
 include $(ROOT)/mak/recurse.mak
--- pegasus-2.5/InterfaceArchive/v002001/tests/Clients/EnumInstances/Makefile.make_install	2003-10-07 02:42:45.000000000 -0400
+++ pegasus-2.5/InterfaceArchive/v002001/tests/Clients/EnumInstances/Makefile	2005-10-03 12:32:47.000000000 -0400
@@ -4,8 +4,11 @@
 
 DIR = InterfaceArchive/$(VERSION)/tests/Clients/EnumInstances
 
+TEST=true
 include ../../../version.mak
+TEST=true
 include $(ROOT)/mak/config.mak
+TEST=true
 include ../libraries.mak
 
 EXTRA_INCLUDES = 
@@ -13,6 +16,7 @@
 PROGRAM = EnumInstances
 SOURCES = EnumInstances.cpp
 
+TEST=true
 include $(ROOT)/mak/program.mak
 
 ifdef PEGASUS_TEST_BACKWARD_COMPATIBILITY
--- pegasus-2.5/InterfaceArchive/v002001/tests/Clients/InvokeMethod/Makefile.make_install	2003-10-07 02:42:45.000000000 -0400
+++ pegasus-2.5/InterfaceArchive/v002001/tests/Clients/InvokeMethod/Makefile	2005-10-03 12:32:47.000000000 -0400
@@ -4,8 +4,11 @@
 
 DIR = InterfaceArchive/$(VERSION)/tests/Clients/InvokeMethod
 
+TEST=true
 include ../../../version.mak
+TEST=true
 include $(ROOT)/mak/config.mak
+TEST=true
 include ../libraries.mak
 
 EXTRA_INCLUDES = 
@@ -13,6 +16,7 @@
 PROGRAM = InvokeMethod
 SOURCES = InvokeMethod.cpp
 
+TEST=true
 include $(ROOT)/mak/program.mak
 
 ifdef PEGASUS_TEST_BACKWARD_COMPATIBILITY
--- pegasus-2.5/Schemas/Pegasus/Makefile.make_install	2005-05-12 11:27:26.000000000 -0400
+++ pegasus-2.5/Schemas/Pegasus/Makefile	2005-10-03 12:32:47.000000000 -0400
@@ -68,3 +68,19 @@
 
 xml:
 	$(MAKE) -f $(ROOT)/Schemas/Makefile xml
+
+install_repository: $(PEGASUS_HOME)/repository
+ifdef PEGASUS_INSTALL
+	mkdir -p $(PEGASUS_DESTDIR)/$(PEGASUS_REPOSITORY_DIR)
+	cp -rfp $(PEGASUS_HOME)/repository/* $(PEGASUS_DESTDIR)/$(PEGASUS_REPOSITORY_DIR)
+endif
+
+install:
+ifdef PEGASUS_INSTALL
+  ifdef PEGASUS_MOF_DIR
+	mkdir -p $(PEGASUS_DESTDIR)/$(PEGASUS_MOF_DIR)/Pegasus
+	/bin/cp -fp Internal/VER20/* InterOp/VER20/* ManagedSystem/VER20/* $(PEGASUS_DESTDIR)/$(PEGASUS_MOF_DIR)/Pegasus
+	chmod 444 $(PEGASUS_DESTDIR)/$(PEGASUS_MOF_DIR)/Pegasus/*
+	chown -R root:root $(PEGASUS_DESTDIR)/$(PEGASUS_MOF_DIR)/Pegasus >/dev/null 2>&1 || :;
+  endif
+endif
--- pegasus-2.5/Schemas/Makefile.make_install	2005-05-12 11:27:25.000000000 -0400
+++ pegasus-2.5/Schemas/Makefile	2005-10-03 12:32:47.000000000 -0400
@@ -92,3 +92,16 @@
 	@ $(ECHO) +++++ Creating XML for CIM Schema$(CIM_SCHEMA_VER).mof in file $(TMP_DIR)/CIM_Schema$(CIM_SCHEMA_VER).xml
 	$(CIMMOFCLI)  "-R$(TMP_DIR)" --xml "-I$(CIM_SCHEMA_DIR)" -nxml/cimv2 $(CIM_SCHEMA_DIR)/CIM_Schema$(CIM_SCHEMA_VER).mof > $(TMP_DIR)/CIM_Schema$(CIM_SCHEMA_VER).xml
 	@ $(RMREPOSITORY) $(TMP_DIR)/repository
+
+install:
+ifdef PEGASUS_INSTALL
+   ifdef PEGASUS_MOF_DIR 
+	mkdir -p $(PEGASUS_DESTDIR)/$(PEGASUS_MOF_DIR)
+	cp -rfp CIM* $(PEGASUS_DESTDIR)/$(PEGASUS_MOF_DIR)/
+	chown -R root:root $(PEGASUS_DESTDIR)/$(PEGASUS_MOF_DIR)/* >/dev/null 2>&1 || :;
+	chmod 0444 $(PEGASUS_DESTDIR)/$(PEGASUS_MOF_DIR)/CIM*/* >/dev/null 2>&1 || :;
+	chmod 0755 $(PEGASUS_DESTDIR)/$(PEGASUS_MOF_DIR)/CIM* || :;
+	make -SC Pegasus install 
+   endif
+endif
+

pegasus-2.5-redhat.patch:

--- NEW FILE pegasus-2.5-redhat.patch ---
--- pegasus-2.5/Makefile.ReleaseTest.redhat	2005-05-27 13:29:01.000000000 -0400
+++ pegasus-2.5/Makefile.ReleaseTest	2005-10-03 17:12:17.000000000 -0400
@@ -54,7 +54,7 @@
 endif
 
 TEST_BIN_FILES_SRCPATH = $(PEGASUS_HOME)/bin
-TEST_LIB_FILES_SRCPATH = $(PEGASUS_HOME)/lib
+TEST_LIB_FILES_SRCPATH = $(PEGASUS_HOME)/$(PEGASUS_ARCH_LIB_DIR)
 TEST_MAK_FILES_SRCPATH = $(ROOT)/mak
 
 MAK_FILES = \
@@ -121,7 +121,7 @@
 stageTEST:
 	@$(RMDIRHIER) $(PEGASUS_STAGING_DIR)$(PEGASUS_TEST_DIR)
 	@$(MKDIRHIER) $(PEGASUS_STAGING_DIR)$(PEGASUS_TEST_DIR)/bin
-	@$(MKDIRHIER) $(PEGASUS_STAGING_DIR)$(PEGASUS_TEST_DIR)/lib
+	@$(MKDIRHIER) $(PEGASUS_STAGING_DIR)$(PEGASUS_TEST_DIR)/$(PEGASUS_ARCH_LIB_DIR)
 	@$(MKDIRHIER) $(PEGASUS_STAGING_DIR)$(PEGASUS_TEST_DIR)/mak
 	@$(MAKE) --directory=$(ROOT) -f Makefile.ReleaseTest -s stage_makfiles
 	@$(MAKE) --directory=$(ROOT) -f Makefile.ReleaseTest -s stage_testproviderfiles
@@ -134,7 +134,7 @@
 	@$(foreach i, $(MAK_FILES), $(COPY) $(TEST_MAK_FILES_SRCPATH)/$(i) $(PEGASUS_STAGING_DIR)$(PEGASUS_TEST_DIR)/mak/$(i);)
 
 stage_testproviderfiles:
-	@$(foreach i, $(PEGASUS_TEST_PROVIDERS), $(COPY) $(TEST_LIB_FILES_SRCPATH)/$(i)$(LIB_SUFFIX) $(PEGASUS_STAGING_DIR)$(PEGASUS_TEST_DIR)/lib/$(i)$(LIB_SUFFIX);)
+	@$(foreach i, $(PEGASUS_TEST_PROVIDERS), $(COPY) $(TEST_LIB_FILES_SRCPATH)/$(i)$(LIB_SUFFIX) $(PEGASUS_STAGING_DIR)$(PEGASUS_TEST_DIR)/$(PEGASUS_ARCH_LIB_DIR)/$(i)$(LIB_SUFFIX);)
 
 stage_prestarttests:
 	@$(foreach i, $(PRESTARTTEST_FILES), $(COPY) $(TEST_BIN_FILES_SRCPATH)/$(i) $(PEGASUS_STAGING_DIR)$(PEGASUS_TEST_DIR)/bin/$(i);)
@@ -157,7 +157,7 @@
 
 createMakefile_providerlinks:
 	@$(ECHO-E) "create_providerlinks:" >> $(PEGASUS_STAGING_DIR)$(PEGASUS_TEST_DIR)/Makefile
-	@$(foreach i, $(PEGASUS_TEST_PROVIDERS), $(ECHO-E) "\t@$(MAKE) createlink OBJECT=$(PEGASUS_TEST_DIR)/lib/$(i)$(LIB_SUFFIX) LINKNAME=$(PEGASUS_PROVIDER_LIB_DIR)/$(i)$(LIB_LINK_SUFFIX)" >> $(PEGASUS_STAGING_DIR)$(PEGASUS_TEST_DIR)/Makefile ;)
+	@$(foreach i, $(PEGASUS_TEST_PROVIDERS), $(ECHO-E) "\t@$(MAKE) createlink OBJECT=$(PEGASUS_TEST_DIR)/$(PEGASUS_ARCH_LIB_DIR)/$(i)$(LIB_SUFFIX) LINKNAME=$(PEGASUS_PROVIDER_LIB_DIR)/$(i)$(LIB_LINK_SUFFIX)" >> $(PEGASUS_STAGING_DIR)$(PEGASUS_TEST_DIR)/Makefile ;)
 	@$(ECHO-E) "" >> $(PEGASUS_STAGING_DIR)$(PEGASUS_TEST_DIR)/Makefile
 	@$(ECHO-E) "remove_providerlinks:" >> $(PEGASUS_STAGING_DIR)$(PEGASUS_TEST_DIR)/Makefile
 	@$(foreach i, $(PEGASUS_TEST_PROVIDERS), $(ECHO-E) "\trm -f $(PEGASUS_PROVIDER_LIB_DIR)/$(i)$(LIB_LINK_SUFFIX)" >> $(PEGASUS_STAGING_DIR)$(PEGASUS_TEST_DIR)/Makefile ;)
@@ -234,7 +234,7 @@
 	 @$(MAKE) --directory=$(ROOT) -f Makefile.ReleaseTest -s preinstall_setreleasepermissions
 
 preinstall_setreleasepermissions:
-	@$(foreach i, $(PEGASUS_TEST_PROVIDERS), $(MAKE) -f $(ROOT)/Makefile.ReleaseTest setpermissions PERMISSIONS="$(Prwxr_xr_x)" OWNER="$(INSTALL_USR)" GROUP="$(INSTALL_GRP)" OBJECT=$(PEGASUS_STAGING_DIR)$(PEGASUS_TEST_DIR)/lib/$(i)$(LIB_SUFFIX);)
+	@$(foreach i, $(PEGASUS_TEST_PROVIDERS), $(MAKE) -f $(ROOT)/Makefile.ReleaseTest setpermissions PERMISSIONS="$(Prwxr_xr_x)" OWNER="$(INSTALL_USR)" GROUP="$(INSTALL_GRP)" OBJECT=$(PEGASUS_STAGING_DIR)$(PEGASUS_TEST_DIR)/$(PEGASUS_ARCH_LIB_DIR)/$(i)$(LIB_SUFFIX);)
 
 _append_preunSectionToSpecFile:
 	@$(ECHO-E) "%if %{PEGASUS_BUILD_TEST_RPM}" >> $(PEGASUS_RPM_SPEC_FILE_PATH)
@@ -253,13 +253,13 @@
 	@$(ECHO-E) "# Test Files"  >> $(PEGASUS_RPM_SPEC_FILE_PATH)
 	@$(ECHO-E) "#"  >> $(PEGASUS_RPM_SPEC_FILE_PATH)
 	@$(ECHO-E) "%dir %attr($(Pr_xr_xr_x), $(INSTALL_USR),$(INSTALL_GRP)) $(PEGASUS_TEST_DIR)" >> $(PEGASUS_RPM_SPEC_FILE_PATH)
-	@$(ECHO-E) "%dir %attr($(Pr_xr_xr_x), $(INSTALL_USR),$(INSTALL_GRP)) $(PEGASUS_TEST_DIR)/lib" >> $(PEGASUS_RPM_SPEC_FILE_PATH)
+	@$(ECHO-E) "%dir %attr($(Pr_xr_xr_x), $(INSTALL_USR),$(INSTALL_GRP)) $(PEGASUS_TEST_DIR)/$(PEGASUS_ARCH_LIB_DIR)" >> $(PEGASUS_RPM_SPEC_FILE_PATH)
 	@$(ECHO-E) "%dir %attr($(Pr_xr_xr_x), $(INSTALL_USR),$(INSTALL_GRP)) $(PEGASUS_TEST_DIR)/bin" >> $(PEGASUS_RPM_SPEC_FILE_PATH)
 	@$(ECHO-E) "%dir %attr($(Pr_xr_xr_x), $(INSTALL_USR),$(INSTALL_GRP)) $(PEGASUS_TEST_DIR)/mak" >> $(PEGASUS_RPM_SPEC_FILE_PATH)
 	@$(foreach i, $(MAK_FILES), $(ECHO-E) \
               "%attr($(Pr__r__r__),$(INSTALL_USR),$(INSTALL_GRP)) $(PEGASUS_TEST_DIR)/mak/$(i)" >> $(PEGASUS_RPM_SPEC_FILE_PATH);)
 	@$(foreach i, $(PEGASUS_TEST_PROVIDERS), $(ECHO-E) \
-              "%attr($(Pr_xr_xr_x),$(INSTALL_USR),$(INSTALL_GRP)) $(PEGASUS_TEST_DIR)/lib/$(i)$(LIB_SUFFIX)" >> $(PEGASUS_RPM_SPEC_FILE_PATH);)
+              "%attr($(Pr_xr_xr_x),$(INSTALL_USR),$(INSTALL_GRP)) $(PEGASUS_TEST_DIR)/$(PEGASUS_ARCH_LIB_DIR)/$(i)$(LIB_SUFFIX)" >> $(PEGASUS_RPM_SPEC_FILE_PATH);)
 	@$(foreach i, $(PRESTARTTEST_FILES), $(ECHO-E) \
               "%attr($(Pr_xr_xr_x),$(INSTALL_USR),$(INSTALL_GRP)) $(PEGASUS_TEST_DIR)/bin/$(i)" >> $(PEGASUS_RPM_SPEC_FILE_PATH);)
 	@$(foreach i, $(POSTSTARTTEST_FILES), $(ECHO-E) \
--- pegasus-2.5/Makefile.Release.redhat	2005-08-17 17:00:43.000000000 -0400
+++ pegasus-2.5/Makefile.Release	2005-10-03 17:12:17.000000000 -0400
@@ -481,13 +481,13 @@
 	$(MAKE) -f $(ROOT)/Makefile.Release setpermissions PERMISSIONS="$(Prwxr_xr_x)" OWNER="$(INSTALL_USR)" GROUP="$(INSTALL_GRP)" OBJECT=$(PEGASUS_STAGING_DIR)$(PEGASUS_LOCAL_AUTH_DIR)
 	
 stage_PegasusLibraryDirectoryFiles: FORCE
-	$(foreach i, $(PEGASUS_LIBRARIES), $(COPY) $(PEGASUS_HOME)/lib/$(i)$(LIB_SUFFIX) $(PEGASUS_STAGING_DIR)$(PEGASUS_DEST_LIB_DIR)/$(i)$(LIB_SUFFIX);)
+	$(foreach i, $(PEGASUS_LIBRARIES), $(COPY) $(PEGASUS_HOME)/$(PEGASUS_ARCH_LIB_DIR)/$(i)$(LIB_SUFFIX) $(PEGASUS_STAGING_DIR)$(PEGASUS_DEST_LIB_DIR)/$(i)$(LIB_SUFFIX);)
 	$(foreach i, $(PEGASUS_LIBRARY_LINKS), $(MAKE) -f $(ROOT)/Makefile.Release createlink OBJECT=$(i)$(LIB_SUFFIX) LINKNAME=$(PEGASUS_STAGING_DIR)$(PEGASUS_DEST_LIB_DIR)/$(i)$(LIB_LINK_SUFFIX);)
 
 setpermissions_PegasusLibraryDirectoryFiles: FORCE
 	$(foreach i, $(PEGASUS_LIBRARIES), $(MAKE) -f $(ROOT)/Makefile.Release setpermissions PERMISSIONS="$(Prwxr_xr_x)" OWNER="$(INSTALL_USR)" GROUP="$(INSTALL_GRP)" OBJECT=$(PEGASUS_STAGING_DIR)$(PEGASUS_DEST_LIB_DIR)/$(i)$(LIB_SUFFIX);)
 stage_PegasusProviderLibraryDirectoryFiles: FORCE
-	$(foreach i, $(PEGASUS_PROVIDERS), $(COPY) $(PEGASUS_HOME)/lib/$(i)$(LIB_SUFFIX) $(PEGASUS_STAGING_DIR)$(PEGASUS_PROVIDER_LIB_DIR)/$(i)$(LIB_SUFFIX);)
+	$(foreach i, $(PEGASUS_PROVIDERS), $(COPY) $(PEGASUS_HOME)/$(PEGASUS_ARCH_LIB_DIR)/$(i)$(LIB_SUFFIX) $(PEGASUS_STAGING_DIR)$(PEGASUS_PROVIDER_LIB_DIR)/$(i)$(LIB_SUFFIX);)
 	$(foreach i, $(PEGASUS_PROVIDERS), $(MAKE) -f $(ROOT)/Makefile.Release createlink OBJECT=$(i)$(LIB_SUFFIX) LINKNAME=$(PEGASUS_STAGING_DIR)$(PEGASUS_PROVIDER_LIB_DIR)/$(i)$(LIB_LINK_SUFFIX);)
 
 setpermissions_PegasusProviderLibraryDirectoryFiles: FORCE
--- pegasus-2.5/env_var_Linux.status.redhat	2005-09-02 14:40:58.000000000 -0400
+++ pegasus-2.5/env_var_Linux.status	2005-10-03 17:12:17.000000000 -0400
@@ -9,6 +9,7 @@
 PEGASUS_OVERRIDE_PRODUCT_ID=yes
 PEGASUS_PRODUCT_NAME="OpenPegasus"
 PEGASUS_PRODUCT_VERSION="2.5.0"
+PEGASUS_RPM_VERSION="2.5"
 PEGASUS_PRODUCT_STATUS=""
 
 PAM_CONFIG_DIR=/etc/pam.d
@@ -25,32 +26,31 @@
 PEGASUS_HAS_SSL=yes
 PEGASUS_NOASSERTS=yes
 PEGASUS_PAM_AUTHENTICATION=true
-PEGASUS_USE_PAM_STANDALONE_PROC=true
 PEGASUS_USE_RELEASE_CONFIG_OPTIONS=true
 PEGASUS_USE_RELEASE_DIRS=true
 PEGASUS_USE_SYSLOGS=true
 PEGASUS_CIM_SCHEMA=CIM29
 
-PEGASUS_PROD_DIR = /opt/tog-pegasus
-PEGASUS_PRODSHARE_DIR = $(PEGASUS_PROD_DIR)/share
-PEGASUS_DOC_DIR = $(PEGASUS_PRODSHARE_DIR)/doc
-PEGASUS_MAN_DIR = $(PEGASUS_PRODSHARE_DIR)/man
+PEGASUS_PROD_DIR = /usr
+PEGASUS_PRODSHARE_DIR = $(PEGASUS_PROD_DIR)/share/Pegasus
+PEGASUS_DOC_DIR = /usr/share/doc/tog-pegasus-$(PEGASUS_RPM_VERSION)
+PEGASUS_MAN_DIR = /usr/share/man
 PEGASUS_MANUSER_DIR = $(PEGASUS_MAN_DIR)/man1
 PEGASUS_MANADMIN_DIR = $(PEGASUS_MAN_DIR)/man8
-PEGASUS_MOF_DIR = $(PEGASUS_PROD_DIR)/mof
-PEGASUS_DEST_LIB_DIR = $(PEGASUS_PROD_DIR)/lib
-PEGASUS_PROVIDER_DIR = $(PEGASUS_PROD_DIR)/providers
-PEGASUS_PROVIDER_LIB_DIR = $(PEGASUS_PROVIDER_DIR)/lib
+PEGASUS_MOF_DIR = $(PEGASUS_PRODSHARE_DIR)/mof
+PEGASUS_DEST_LIB_DIR = $(PEGASUS_PROD_DIR)/$(PEGASUS_ARCH_LIB_DIR)
+PEGASUS_PROVIDER_DIR = $(PEGASUS_DEST_LIB_DIR)/Pegasus/providers
+PEGASUS_PROVIDER_LIB_DIR = $(PEGASUS_PROVIDER_DIR)
 PEGASUS_SBIN_DIR = $(PEGASUS_PROD_DIR)/sbin
 PEGASUS_BIN_DIR = $(PEGASUS_PROD_DIR)/bin
-PEGASUS_VARDATA_DIR = /var/opt/tog-pegasus
+PEGASUS_VARDATA_DIR = /var/lib/Pegasus
 PEGASUS_REPOSITORY_PARENT_DIR = $(PEGASUS_VARDATA_DIR)
 PEGASUS_REPOSITORY_DIR = $(PEGASUS_REPOSITORY_PARENT_DIR)/repository
 PEGASUS_PREV_REPOSITORY_DIR = $(PEGASUS_REPOSITORY_PARENT_DIR)/prev_repository
-PEGASUS_CONFIG_DIR = /etc/opt/tog-pegasus
+PEGASUS_CONFIG_DIR = /etc/Pegasus
 PEGASUS_VARRUN_DIR = /var/run/tog-pegasus
 PEGASUS_CIMSERVER_START_FILE = $(PEGASUS_VARRUN_DIR)/cimserver.pid
-PEGASUS_LOCAL_DOMAIN_SOCKET_DIR = $(PEGASUS_VARRUN_DIR)/socket
+PEGASUS_LOCAL_DOMAIN_SOCKET_DIR = $(PEGASUS_VARRUN_DIR)
 PEGASUS_LOCAL_DOMAIN_SOCKET_PATH = $(PEGASUS_LOCAL_DOMAIN_SOCKET_DIR)/cimxml.socket
 PEGASUS_VARDATA_CACHE_DIR = $(PEGASUS_VARDATA_DIR)/cache
 PEGASUS_LOCAL_AUTH_DIR = $(PEGASUS_VARDATA_CACHE_DIR)/localauth
@@ -63,11 +63,11 @@
 PEGASUS_SSL_CERT_FILE = server.pem
 PEGASUS_SSL_TRUSTSTORE = client.pem
 
-PEGASUS_SAMPLES_DIR = $(PEGASUS_PROD_DIR)/samples
+PEGASUS_SAMPLES_DIR = $(PEGASUS_PRODSHARE_DIR)/samples
 PEGASUS_INCLUDE_DIR = $(PEGASUS_PROD_DIR)/include
-PEGASUS_HTML_DIR = $(PEGASUS_PROD_DIR)/html
+PEGASUS_HTML_DIR = $(PEGASUS_PRODSHARE_DIR)/html
 
-PEGASUS_TEST_DIR = $(PEGASUS_PROD_DIR)/test
+PEGASUS_TEST_DIR = $(PEGASUS_PRODSHARE_DIR)/test
 PEGASUS_TEST_REPOSITORY_DIR = $(PEGASUS_VARDATA_DIR)
 PEGASUS_TEST_REPOSITORY_NAME = testrepository
 
--- pegasus-2.5/mak/objects-unix.mak.redhat	2005-05-12 11:27:28.000000000 -0400
+++ pegasus-2.5/mak/objects-unix.mak	2005-10-03 17:12:17.000000000 -0400
@@ -50,12 +50,12 @@
 
 ifeq ($(_NO_TMP_O), yes)
 $(OBJ_DIR)/%.o: %.cpp $(ERROR)
-	$(CXX) -c -o $@ $(FLAGS) $(EXTRA_CXX_FLAGS) $(LOCAL_DEFINES) $(DEFINES) $(SYS_INCLUDES) $(INCLUDES) $*.cpp
+	$(CXX) -c -o $@ $(FLAGS) $(EXTRA_CXX_FLAGS) $(LOCAL_DEFINES) $(DEFINES) $(INCLUDES) $(SYS_INCLUDES) $*.cpp
 	@ $(TOUCH) $@
 	@ $(ECHO)
 else
 $(OBJ_DIR)/%.o: %.cpp $(ERROR)
-	$(CXX) -c -o $(_TMP_O) $(FLAGS) $(EXTRA_CXX_FLAGS) $(LOCAL_DEFINES) $(DEFINES) $(SYS_INCLUDES) $(INCLUDES) $*.cpp
+	$(CXX) -c -o $(_TMP_O) $(FLAGS) $(EXTRA_CXX_FLAGS) $(LOCAL_DEFINES) $(DEFINES) $(INCLUDES) $(SYS_INCLUDES) $*.cpp
 	@ $(COPY) $(_TMP_O) $@
 	@ $(RM) $(_TMP_O)
 	@ $(TOUCH) $@
@@ -64,12 +64,12 @@
 
 ifeq ($(_NO_TMP_O), yes)
 $(OBJ_DIR)/%.o: %.c $(ERROR)
-	$(CC) -c -o $@ $(FLAGS) $(EXTRA_C_FLAGS) $(LOCAL_DEFINES) $(DEFINES) $(SYS_INCLUDES) $(INCLUDES) $*.c
+	$(CC) -c -o $@ $(FLAGS) $(EXTRA_C_FLAGS) $(LOCAL_DEFINES) $(DEFINES) $(INCLUDES) $(SYS_INCLUDES) $*.c
 	@ $(TOUCH) $@
 	@ $(ECHO)
 else
 $(OBJ_DIR)/%.o: %.c $(ERROR)
-	$(CC) -c -o $(_TMP_O) $(FLAGS) $(EXTRA_C_FLAGS) $(LOCAL_DEFINES) $(DEFINES) $(SYS_INCLUDES) $(INCLUDES) $*.c
+	$(CC) -c -o $(_TMP_O) $(FLAGS) $(EXTRA_C_FLAGS) $(LOCAL_DEFINES) $(DEFINES) $(INCLUDES) $(SYS_INCLUDES) $*.c
 	@ $(COPY) $(_TMP_O) $@
 	@ $(RM) $(_TMP_O)
 	@ $(TOUCH) $@
--- pegasus-2.5/mak/config-linux.mak.redhat	2005-05-12 11:27:28.000000000 -0400
+++ pegasus-2.5/mak/config-linux.mak	2005-10-03 17:12:17.000000000 -0400
@@ -76,10 +76,12 @@
 
 SYS_LIBS = -ldl -lpthread
 
+PEGASUS_INSTALL = /usr/bin/install
+
 # Build using fixed release settings
 #
 ifdef PEGASUS_USE_RELEASE_DIRS
-  PEGASUS_DEST_LIB_DIR=/opt/tog-pegasus/lib
+  PEGASUS_DEST_LIB_DIR=/usr/$(PEGASUS_ARCH_LIB_DIR)
 endif
 
 # PAM support
@@ -102,7 +104,7 @@
 ifdef PEGASUS_DEBUG
 FLAGS += -g -fPIC -W -Wall -Wno-unused  -D_GNU_SOURCE -DTHREAD_SAFE -D_REENTRANT
 else
-FLAGS += -fPIC -W -Wall -Wno-unused -D_GNU_SOURCE -DTHREAD_SAFE -D_REENTRANT -s -fno-enforce-eh-specs
+FLAGS += -fPIC -W -Wall -Wno-unused -D_GNU_SOURCE -DTHREAD_SAFE -D_REENTRANT -fno-enforce-eh-specs
   ifdef PEGASUS_OPTIMIZE_FOR_SIZE
     FLAGS += -Os
   else
@@ -152,7 +154,7 @@
 
     SYS_INCLUDES += -I${ICU_ROOT}/source/common -I${ICU_ROOT}/source/i18n
     DEFINES += -DPEGASUS_HAS_ICU
-    EXTRA_LIBRARIES += -L$(ICU_INSTALL)/lib -licuuc -licui18n -licudata
+    EXTRA_LIBRARIES += -L$(ICU_INSTALL)/$(PEGASUS_ARCH_LIB_DIR) -licuuc -licui18n -licudata
   endif
 endif
 
--- pegasus-2.5/mak/SDKMakefile.redhat	2005-07-15 15:46:17.000000000 -0400
+++ pegasus-2.5/mak/SDKMakefile	2005-10-03 17:12:17.000000000 -0400
@@ -382,10 +382,10 @@
 	@$(MAKE) --directory=$(PEGASUS_ROOT)/mak -f SDKMakefile -i deregisterproviders
 	@$(MAKE) --directory=$(PEGASUS_STAGING_DIR)$(PEGASUS_SAMPLES_DIR) -f Makefile clean \
              PEGASUS_SAMPLES_DIR=$(PEGASUS_STAGING_DIR)$(PEGASUS_SAMPLES_DIR) \
-             PEGASUS_PROVIDER_LIB_DIR=$(PEGASUS_HOME)/lib
+             PEGASUS_PROVIDER_LIB_DIR=$(PEGASUS_HOME)/$(PEGASUS_ARCH_LIB_DIR)
 	@$(MAKE) --directory=$(PEGASUS_STAGING_DIR)$(PEGASUS_SAMPLES_DIR) -f Makefile all \
-             PEGASUS_PROVIDER_LIB_DIR=$(PEGASUS_HOME)/lib PEGASUS_INCLUDE_DIR=$(PEGASUS_STAGING_DIR)$(PEGASUS_INCLUDE_DIR) \
-             PEGASUS_DEST_LIB_DIR=$(PEGASUS_HOME)/lib PEGASUS_SAMPLES_DIR=$(PEGASUS_STAGING_DIR)$(PEGASUS_SAMPLES_DIR) \
+             PEGASUS_PROVIDER_LIB_DIR=$(PEGASUS_HOME)/$(PEGASUS_ARCH_LIB_DIR) PEGASUS_INCLUDE_DIR=$(PEGASUS_STAGING_DIR)$(PEGASUS_INCLUDE_DIR) \
+             PEGASUS_DEST_LIB_DIR=$(PEGASUS_HOME)/$(PEGASUS_ARCH_LIB_DIR) PEGASUS_SAMPLES_DIR=$(PEGASUS_STAGING_DIR)$(PEGASUS_SAMPLES_DIR) \
              PEGASUS_INDICATION_CONSUMER_LOG_DIR=$(PEGASUS_STAGING_DIR)$(PEGASUS_SAMPLES_DIR)/Providers/DefaultC++/SimpleDisplayConsumer
 	@$(MAKE) --directory=$(PEGASUS_STAGING_DIR)$(PEGASUS_SAMPLES_DIR)/Providers/Load -f Makefile createrepository \
              PEGASUS_MOF_DIR=$(PEGASUS_ROOT)/Schemas PEGASUS_BIN_DIR=$(PEGASUS_HOME)bin
--- pegasus-2.5/mak/config.mak.redhat	2005-08-12 13:52:31.000000000 -0400
+++ pegasus-2.5/mak/config.mak	2005-10-03 17:12:17.000000000 -0400
@@ -85,7 +85,7 @@
 
 OBJ_DIR = $(HOME_DIR)/obj/$(DIR)
 BIN_DIR = $(HOME_DIR)/bin
-LIB_DIR = $(HOME_DIR)/lib
+LIB_DIR = $(HOME_DIR)/$(PEGASUS_ARCH_LIB_DIR)
 
 # l10n
 # define the location for the compiled messages
@@ -544,7 +544,7 @@
 
 # Unless otherwise specified, Pegasus libraries go in $(PEGASUS_HOME)/lib
 ifndef PEGASUS_DEST_LIB_DIR
-    PEGASUS_DEST_LIB_DIR = lib
+    PEGASUS_DEST_LIB_DIR = $(PEGASUS_ARCH_LIB_DIR)
 endif
 
 ifeq ($(OS),VMS)
--- pegasus-2.5/mak/program-unix.mak.redhat	2005-05-12 11:27:28.000000000 -0400
+++ pegasus-2.5/mak/program-unix.mak	2005-10-03 17:14:17.000000000 -0400
@@ -28,6 +28,12 @@
 #//==============================================================================
 INCLUDES = -I$(ROOT)/src $(EXTRA_INCLUDES)
 
+ifdef PEGASUS_PLATFORM_LINUX_GENERIC_GNU
+  ifdef PEGASUS_EXE_LINK_FLAGS
+       EXTRA_LINK_FLAGS += $(PEGASUS_EXE_LINK_FLAGS)
+  endif
+endif
+
 TMP_OBJECTS = $(foreach i,$(SOURCES),$(OBJ_DIR)/$i)
 
 ifeq ($(OS_TYPE),windows)
@@ -56,7 +62,7 @@
 ifdef PEGASUS_HAS_MESSAGES
     ifdef ICU_ROOT
         ifdef ICU_INSTALL
-          SYS_LIBS += -L${ICU_INSTALL}/lib -licui18n -licuuc
+          SYS_LIBS += -L${ICU_INSTALL}/$(PEGASUS_ARCH_LIB_DIR) -licui18n -licuuc
         endif
     endif
 endif
@@ -90,17 +96,17 @@
           ifdef ICU_ROOT
             ifdef ICU_INSTALL
               ifdef  PEGASUS_USE_RELEASE_DIRS
-	        $(LINK_WRAPPER) $(CXX) $(FLAGS) $(EXTRA_LINK_FLAGS) -Xlinker -rpath -Xlinker $(PEGASUS_DEST_LIB_DIR) -Xlinker -rpath-link -Xlinker $(LIB_DIR) -Xlinker -rpath -Xlinker ${ICU_INSTALL}/lib -L$(LIB_DIR) $(EXE_OUTPUT) $(OBJECTS) $(DYNAMIC_LIBRARIES) $(SYS_LIBS)
+	        $(LINK_WRAPPER) $(CXX) $(FLAGS) $(EXTRA_LINK_FLAGS) -Xlinker -rpath -Xlinker $(PEGASUS_DEST_LIB_DIR) -Xlinker -rpath-link -Xlinker $(LIB_DIR) -Xlinker -rpath -Xlinker ${ICU_INSTALL}/$(PEGASUS_ARCH_LIB_DIR) -L$(LIB_DIR) $(EXE_OUTPUT) $(OBJECTS) $(DYNAMIC_LIBRARIES) $(SYS_LIBS)
               else
-	        $(LINK_WRAPPER) $(CXX) $(FLAGS) $(EXTRA_LINK_FLAGS) -Xlinker -rpath -Xlinker $(LIB_DIR) -Xlinker -rpath -Xlinker ${ICU_INSTALL}/lib -L$(LIB_DIR) $(EXE_OUTPUT) $(OBJECTS) $(DYNAMIC_LIBRARIES) $(SYS_LIBS)
+	        $(LINK_WRAPPER) $(CXX) $(FLAGS) $(EXTRA_LINK_FLAGS) -Xlinker -rpath -Xlinker $(LIB_DIR) -Xlinker -rpath -Xlinker ${ICU_INSTALL}/$(PEGASUS_ARCH_LIB_DIR) -L$(LIB_DIR) $(EXE_OUTPUT) $(OBJECTS) $(DYNAMIC_LIBRARIES) $(SYS_LIBS)
               endif
             endif
           endif
         else
           ifdef  PEGASUS_USE_RELEASE_DIRS
-	    $(LINK_WRAPPER) $(CXX) $(FLAGS) $(EXTRA_LINK_FLAGS) -Xlinker -rpath -Xlinker $(PEGASUS_DEST_LIB_DIR) -Xlinker -rpath-link -Xlinker $(LIB_DIR) -L$(LIB_DIR) $(EXE_OUTPUT) $(OBJECTS) $(DYNAMIC_LIBRARIES) $(SYS_LIBS)
+	    $(LINK_WRAPPER) $(CXX) $(FLAGS) $(EXTRA_LINK_FLAGS) -L$(PEGASUS_HOME)/$(PEGASUS_ARCH_LIB_DIR) -Xlinker -rpath-link -Xlinker $(PEGASUS_HOME)/$(PEGASUS_ARCH_LIB_DIR) $(EXE_OUTPUT) $(OBJECTS) $(DYNAMIC_LIBRARIES) $(SYS_LIBS)
           else
-	    $(LINK_WRAPPER) $(CXX) $(FLAGS) $(EXTRA_LINK_FLAGS) -Xlinker -rpath -Xlinker $(LIB_DIR) -L$(LIB_DIR) $(EXE_OUTPUT) $(OBJECTS) $(DYNAMIC_LIBRARIES) $(SYS_LIBS) 
+	    $(LINK_WRAPPER) $(CXX) $(FLAGS) $(EXTRA_LINK_FLAGS) -L$(PEGASUS_HOME)/$(PEGASUS_ARCH_LIB_DIR) -Xlinker -rpath-link -Xlinker $(PEGASUS_HOME)/$(PEGASUS_ARCH_LIB_DIR) $(EXE_OUTPUT) $(OBJECTS) $(DYNAMIC_LIBRARIES) $(SYS_LIBS) 
           endif
         endif      
       else
@@ -109,11 +115,11 @@
            ifdef PEGASUS_HAS_MESSAGES
              ifdef ICU_ROOT
                ifdef ICU_INSTALL
-	         $(LINK_WRAPPER) $(CXX) -Wl,-brtl -blibpath:/usr/linux/lib:/usr/lib:/lib:$(ICU_INSTALL)/lib -Wl,-bhalt:$(AIX_LD_HALT) $(FLAGS) $(EXTRA_LINK_FLAGS) -L$(LIB_DIR) $(EXE_OUTPUT) $(OBJECTS) $(DYNAMIC_LIBRARIES) $(SYS_LIBS)
+	         $(LINK_WRAPPER) $(CXX) -Wl,-brtl -blibpath:/usr/linux/$(PEGASUS_ARCH_LIB_DIR):/usr/$(PEGASUS_ARCH_LIB_DIR):/$(PEGASUS_ARCH_LIB_DIR):$(ICU_INSTALL)/$(PEGASUS_ARCH_LIB_DIR) -Wl,-bhalt:$(AIX_LD_HALT) $(FLAGS) $(EXTRA_LINK_FLAGS) -L$(LIB_DIR) $(EXE_OUTPUT) $(OBJECTS) $(DYNAMIC_LIBRARIES) $(SYS_LIBS)
                endif
              endif
            else
-	     $(LINK_WRAPPER) $(CXX) -Wl,-brtl -blibpath:/usr/linux/lib:/usr/lib:/lib -Wl,-bhalt:$(AIX_LD_HALT) $(FLAGS) $(EXTRA_LINK_FLAGS) -L$(LIB_DIR) $(EXE_OUTPUT) $(OBJECTS) $(DYNAMIC_LIBRARIES) $(SYS_LIBS)
+	     $(LINK_WRAPPER) $(CXX) -Wl,-brtl -blibpath:/usr/linux/$(PEGASUS_ARCH_LIB_DIR):/usr/$(PEGASUS_ARCH_LIB_DIR):/$(PEGASUS_ARCH_LIB_DIR):$(ICU_INSTALL)/$(PEGASUS_ARCH_LIB_DIR) -Wl,-bhalt:$(AIX_LD_HALT) $(FLAGS) $(EXTRA_LINK_FLAGS) -L$(LIB_DIR) $(EXE_OUTPUT) $(OBJECTS) $(DYNAMIC_LIBRARIES) $(SYS_LIBS)
            endif
          else
 	   $(LINK_WRAPPER) $(CXX) -Wl,-brtl -Wl,-bhalt:$(AIX_LD_HALT) $(FLAGS) $(EXTRA_LINK_FLAGS) -L$(LIB_DIR) $(EXE_OUTPUT) $(OBJECTS) $(DYNAMIC_LIBRARIES) $(SYS_LIBS)
@@ -147,3 +153,5 @@
 -include $(OBJ_DIR)/depend.mak
 
 include $(ROOT)/mak/misc.mak
+
+include $(ROOT)/mak/install-program-unix.mak
--- pegasus-2.5/mak/library-unix.mak.redhat	2005-05-12 11:27:28.000000000 -0400
+++ pegasus-2.5/mak/library-unix.mak	2005-10-03 17:14:54.000000000 -0400
@@ -32,11 +32,11 @@
     ifdef PEGASUS_HAS_MESSAGES
       ifdef ICU_ROOT
         ifdef ICU_INSTALL
-          LINK_ARGUMENTS = -qmkshrobj=$(AIX_LIB_PRIORITY) -blibpath:/usr/linux/lib:/usr/lib:/lib:$(ICU_INSTALL)/lib -Wl,-bhalt:$(AIX_LD_HALT)
+          LINK_ARGUMENTS = -qmkshrobj=$(AIX_LIB_PRIORITY) -blibpath:/usr/linux/$(PEGASUS_ARCH_LIB_DIR):/usr/$(PEGASUS_ARCH_LIB_DIR):/$(PEGASUS_ARCH_LIB_DIR):$(ICU_INSTALL)/$(PEGASUS_ARCH_LIB_DIR) -Wl,-bhalt:$(AIX_LD_HALT)
         endif
       endif
     else
-      LINK_ARGUMENTS = -qmkshrobj=$(AIX_LIB_PRIORITY) -blibpath:/usr/linux/lib:/usr/lib:/lib -Wl,-bhalt:$(AIX_LD_HALT)
+      LINK_ARGUMENTS = -qmkshrobj=$(AIX_LIB_PRIORITY) -blibpath:/usr/linux/$(PEGASUS_ARCH_LIB_DIR):/usr/$(PEGASUS_ARCH_LIB_DIR):/$(PEGASUS_ARCH_LIB_DIR) -Wl,-bhalt:$(AIX_LD_HALT)
     endif
   else
     LINK_ARGUMENTS = -qmkshrobj=$(AIX_LIB_PRIORITY) -Wl,-bhalt:$(AIX_LD_HALT)
@@ -56,12 +56,12 @@
   endif
   ifeq ($(PEGASUS_SUPPORTS_DYNLIB),yes)
     ifdef PEGASUS_USE_RELEASE_DIRS
-      LINK_COMMAND += -Wl,+b$(PEGASUS_DEST_LIB_DIR):/usr/lib
+      LINK_COMMAND += -Wl,+b$(PEGASUS_DEST_LIB_DIR):/usr/$(PEGASUS_ARCH_LIB_DIR)
       ifeq ($(PEGASUS_PLATFORM), HPUX_PARISC_ACC)
-        LINK_COMMAND += -Wl,+cdp,$(PEGASUS_PLATFORM_SDKROOT)/usr/lib:/usr/lib -Wl,+cdp,$(PEGASUS_HOME)/lib:$(PEGASUS_DEST_LIB_DIR)
+        LINK_COMMAND += -Wl,+cdp,$(PEGASUS_PLATFORM_SDKROOT)/usr/$(PEGASUS_ARCH_LIB_DIR):/usr/$(PEGASUS_ARCH_LIB_DIR) -Wl,+cdp,$(PEGASUS_HOME)/$(PEGASUS_ARCH_LIB_DIR):$(PEGASUS_DEST_LIB_DIR)
       endif
     else
-        LINK_COMMAND += -Wl,+b$(LIB_DIR):/usr/lib
+        LINK_COMMAND += -Wl,+b$(LIB_DIR):/usr/$(PEGASUS_ARCH_LIB_DIR)
     endif
   endif
   LINK_COMMAND += -Wl,+s
@@ -79,10 +79,10 @@
   ifneq ($(PEGASUS_PLATFORM),DARWIN_PPC_GNU)
    ifdef PEGASUS_USE_RELEASE_DIRS
       LINK_COMMAND = $(CXX) -shared
-      LINK_ARGUMENTS = -Wl,-hlib$(LIBRARY)$(LIB_SUFFIX)  -Xlinker -rpath -Xlinker $(PEGASUS_DEST_LIB_DIR)
+      LINK_ARGUMENTS = -Wl,-hlib$(LIBRARY)$(LIB_SUFFIX)  -L$(PEGASUS_HOME)/$(PEGASUS_ARCH_LIB_DIR) -Xlinker -rpath-link -Xlinker $(PEGASUS_HOME)/$(PEGASUS_ARCH_LIB_DIR) $(EXTRA_LINK_ARGUMENTS)
    else
       LINK_COMMAND = $(CXX) -shared
-      LINK_ARGUMENTS = -Wl,-hlib$(LIBRARY)$(LIB_SUFFIX)  -Xlinker -rpath -Xlinker $(LIB_DIR) $(EXTRA_LINK_ARGUMENTS)
+      LINK_ARGUMENTS = -Wl,-hlib$(LIBRARY)$(LIB_SUFFIX)  -L$(PEGASUS_HOME)/$(PEGASUS_ARCH_LIB_DIR) -Xlinker -rpath-link -Xlinker $(PEGASUS_HOME)/$(PEGASUS_ARCH_LIB_DIR) $(EXTRA_LINK_ARGUMENTS)
    endif
   else
     LINK_COMMAND = $(CXX) -dynamiclib
@@ -164,3 +164,5 @@
 	ln -f -s $(LIBRARY)$(SUFFIX) $(LIBRARY).$(PLATFORM_SUFFIX)
 
 FILES_TO_CLEAN = $(OBJECTS) $(FULL_LIB)
+
+include $(ROOT)/mak/install-library-unix.mak
--- pegasus-2.5/rpm/wbem.redhat	2003-03-13 12:25:15.000000000 -0500
+++ pegasus-2.5/rpm/wbem	2005-10-03 17:12:17.000000000 -0400
@@ -1,13 +1,7 @@
 #%PAM-1.0
-auth        required      /lib/security/pam_env.so
-auth        sufficient    /lib/security/pam_unix.so likeauth nullok
-auth        required      /lib/security/pam_deny.so
-
-account     required      /lib/security/pam_unix.so
-
-password    required      /lib/security/pam_cracklib.so retry=3 type=
-password    sufficient    /lib/security/pam_unix.so nullok use_authtok md5 shadow
-password    required      /lib/security/pam_deny.so
-
-session     required      /lib/security/pam_limits.so
-session     required      /lib/security/pam_unix.so
+auth       include      system-auth
+account    required     pam_access.so accessfile=/etc/Pegasus/access.conf
+account    include      system-auth
+password   include      system-auth
+session    include      system-auth
+session    required     pam_loginuid.so 
--- pegasus-2.5/rpm/tog-pegasus.rc.redhat	2005-05-29 02:43:30.000000000 -0400
+++ pegasus-2.5/rpm/tog-pegasus.rc	2005-10-03 17:12:17.000000000 -0400
@@ -1,34 +1,28 @@
 #! /bin/sh
-#//%2005////////////////////////////////////////////////////////////////////////
-#//
-#// Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
-#// Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
-#// Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
-#// IBM Corp.; EMC Corporation, The Open Group.
-#// Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
-#// IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
-#// Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
-#// EMC Corporation; VERITAS Software 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.
-#//
-#//==============================================================================
-#//
-#//%/////////////////////////////////////////////////////////////////////////////
+#%/////////////////////////////////////////////////////////////////////////////
+#
+# Copyright (c) 2004 BMC Software, Hewlett-Packard Company, IBM,
+# The Open Group, Tivoli Systems
+#
+# 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.
+#
+#==============================================================================
+#
+#%/////////////////////////////////////////////////////////////////////////////
 
 ### BEGIN INIT INFO
 # Provides: tog-pegasus
@@ -40,7 +34,10 @@
 # Description:	  init script for Pegasus CIM server
 ### END INIT INFO
 
-CIMSERVER_BIN=/opt/tog-pegasus/sbin/cimserver
+CIMSERVER_BIN=/usr/sbin/cimserver
+PEGASUS_SSL_CERT_FILE=${PEGASUS_SSL_CERT_FILE:=server.pem}
+PEGASUS_SSL_KEY_FILE=${PEGASUS_SSL_KEY_FILE:=file.pem}
+PEGASUS_SSL_TRUSTSTORE=${PEGASUS_SSL_TRUSTSTORE:=client.pem}
 prog=cimserver
 
 test -x $CIMSERVER_BIN || exit 5
@@ -50,19 +47,22 @@
 
 case "$1" in
      start)
+	[ -e /var/run/tog-pegasus/cimxml.socket ] && rm -f /var/run/tog-pegasus/cimxml.socket
 	echo -n $"Starting up CIM server: "
+	if [ ! -e /etc/Pegasus/ssl.cnf ] || [ ! -e /etc/Pegasus/$PEGASUS_SSL_CERT_FILE ] || [ ! -e /etc/Pegasus/$PEGASUS_SSL_KEY_FILE ] || [ ! -e /etc/Pegasus/$PEGASUS_SSL_TRUSTSTORE ]; then
+	   echo "Generating SSL certificates...";
+	   /usr/share/Pegasus/scripts/genSSLcerts;
+	fi;
 	$CIMSERVER_BIN
 	RETVAL=$?
 	[ "$RETVAL" -eq 0 ] && log_success_msg $"$prog start" || log_failure_msg $"$prog start"
-	echo
 	;;
-
      stop)
 	echo -n $"Shutting down CIM server: "
 	killproc cimserver
 	RETVAL=$?
 	[ "$RETVAL" -eq 0 ] && log_success_msg $"$prog stop" || log_failure_msg $"$prog stop"
-	echo
+	[ "$RETVAL" -eq 0 ] && [ -e /var/run/tog-pegasus/cimxml.socket ] && rm -f /var/run/tog-pegasus/cimxml.socket
 	;;
      status)
 	pid=`pidofproc $CIMSERVER_BIN`
--- pegasus-2.5/src/Pegasus/ProviderManager2/tests/ProviderManagerModule/ProviderManagerModule.cpp.redhat	2005-04-18 17:18:24.000000000 -0400
+++ pegasus-2.5/src/Pegasus/ProviderManager2/tests/ProviderManagerModule/ProviderManagerModule.cpp	2005-10-03 17:12:17.000000000 -0400
@@ -134,7 +134,7 @@
 
 int main(int argc, char** argv)
 {
-    const char * verbose = getenv("PEGASUS_TEST_VERBOSE");
+    const char * verbose = getenv("PEGASUS_TEST_VERBOSE"), *p;
 
     const String FILE_NAME =
         FileSystem::buildLibraryFileName("TestProviderManager");
@@ -146,7 +146,11 @@
 #elif defined (PEGASUS_OS_VMS)
     fileName= FILE_NAME;
 #else
-    fileName=String(getenv("PEGASUS_HOME"))+String("/lib/")+FILE_NAME;
+    fileName=  String(getenv("PEGASUS_HOME")) 
+	     + String("/") 
+	     + String(((p = getenv("PEGASUS_ARCH_LIB_DIR")) == 0L) ? "lib" : p)
+	     + String("/")
+	     + FILE_NAME;
 #endif
     
     Test1();
--- pegasus-2.5/src/Pegasus/ProviderManager2/CMPI/samples/ProcessIndication/Makefile.redhat	2005-05-12 11:30:52.000000000 -0400
+++ pegasus-2.5/src/Pegasus/ProviderManager2/CMPI/samples/ProcessIndication/Makefile	2005-10-03 17:12:17.000000000 -0400
@@ -29,7 +29,7 @@
 # Makefile for CMPIRT_SampleClass library
 
 # Change the following lines to match the values on your system
-PEGDIRLIB=$(PEGASUS_HOME)/lib
+PEGDIRLIB=$(PEGASUS_HOME)/$(PEGASUS_ARCH_LIB_DIR)
 
 # Changes shouldn't be necessary below this line
 CFLAGS=-Wall -D_COMPILE_UNIX -g -I. -I../..
--- pegasus-2.5/src/Pegasus/Config/FixedPropertyTableLinux.h.redhat	2005-07-15 19:02:21.000000000 -0400
+++ pegasus-2.5/src/Pegasus/Config/FixedPropertyTableLinux.h	2005-10-03 17:12:17.000000000 -0400
@@ -45,19 +45,19 @@
     {"enableBinaryRepository", "false"},
 #endif
 #if defined(PEGASUS_USE_RELEASE_DIRS) && !defined(PEGASUS_OS_LSB)
-    {"traceFilePath",       "/var/opt/tog-pegasus/cache/trace/cimserver.trc"},
+    {"traceFilePath",       "/var/lib/Pegasus/cache/cimserver.trc"},
 #if !defined(PEGASUS_USE_SYSLOGS)
-    {"logdir",              "/var/opt/tog-pegasus/log"},
+    {"logdir",              "/var/log/Pegasus"},
 #endif
-    {"passwordFilePath",    "/etc/opt/tog-pegasus/cimserver.passwd"},
-    {"sslCertificateFilePath", "/etc/opt/tog-pegasus/server.pem"},
-    {"sslKeyFilePath",      "/etc/opt/tog-pegasus/file.pem"},
-    {"sslTrustStore",       "/etc/opt/tog-pegasus/cimserver_trust"},
-    {"exportSSLTrustStore", "/etc/opt/tog-pegasus/indication_trust"},
-    {"crlStore",            "/etc/opt/tog-pegasus/crl"},
-    {"repositoryDir",       "/var/opt/tog-pegasus/repository"},
-    {"providerDir",         "/opt/tog-pegasus/providers/lib:/usr/lib/cmpi"},
-    {"messageDir",         "/opt/tog-pegasus/share/locale/ICU_Messages"},
+    {"passwordFilePath",    "/etc/Pegasus/cimserver.passwd"},
+    {"sslCertificateFilePath", "/etc/Pegasus/server.pem"},
+    {"sslKeyFilePath",      "/etc/Pegasus/file.pem"},
+    {"sslTrustStore",       "/etc/Pegasus/cimserver_trust"},
+    {"exportSSLTrustStore", "/etc/Pegasus/indication_trust"},
+    {"crlStore",            "/etc/Pegasus/crl"},
+    {"repositoryDir",       "/var/lib/Pegasus/repository"},
+    {"providerDir",         PEGASUS_DEST_LIB_DIR "/Pegasus/providers"},
+    {"messageDir",         "/usr/share/locale"},
 #endif
 #if defined(PEGASUS_USE_RELEASE_DIRS) && defined(PEGASUS_OS_LSB)
     {"traceFilePath",       "/var/opt/lsb-pegasus/cache/cimserver.trc"},
--- pegasus-2.5/src/Pegasus/Config/ConfigFileDirLinux.h.redhat	2005-02-05 18:00:07.000000000 -0500
+++ pegasus-2.5/src/Pegasus/Config/ConfigFileDirLinux.h	2005-10-03 17:12:17.000000000 -0400
@@ -37,12 +37,12 @@
 /**
     Default file name for the current configuration.
 */
-static char CURRENT_CONFIG_FILE [] = "/var/opt/tog-pegasus/cimserver_current.conf";
+static char CURRENT_CONFIG_FILE [] = "/etc/Pegasus/cimserver_current.conf";
 
 /**
     Default file name for the planned configuration.
 */
-static char PLANNED_CONFIG_FILE [] = "/var/opt/tog-pegasus/cimserver_planned.conf";
+static char PLANNED_CONFIG_FILE [] = "/etc/Pegasus/cimserver_planned.conf";
 
 /**
     Default file name for the cimserver startup file containing the PID.
--- pegasus-2.5/src/Pegasus/ControlProviders/CertificateProvider/Makefile.redhat	2005-05-12 11:29:46.000000000 -0400
+++ pegasus-2.5/src/Pegasus/ControlProviders/CertificateProvider/Makefile	2005-10-03 17:12:17.000000000 -0400
@@ -56,8 +56,8 @@
 ifeq ($(OS),linux)
   EXTRA_LIBRARIES += -lcrypt
   ifdef PEGASUS_HAS_SSL
-    EXTRA_LIBRARIES += -L$(OPENSSL_HOME)/lib -lssl -lcrypto
-    EXTRA_LINK_ARGUMENTS =  -Xlinker -rpath -Xlinker $(OPENSSL_HOME)/lib
+    EXTRA_LIBRARIES += -L$(OPENSSL_HOME)/$(PEGASUS_ARCH_LIB_DIR) -lssl -lcrypto
+    EXTRA_LINK_ARGUMENTS =  -Xlinker -rpath -Xlinker $(OPENSSL_HOME)/$(PEGASUS_ARCH_LIB_DIR)
   endif
 endif
 
--- pegasus-2.5/src/Pegasus/Common/tests/DynLoad/Makefile.redhat	2005-05-12 11:28:46.000000000 -0400
+++ pegasus-2.5/src/Pegasus/Common/tests/DynLoad/Makefile	2005-10-03 17:12:17.000000000 -0400
@@ -45,7 +45,7 @@
  ifeq ($(PEGASUS_OS_TYPE),VMS)
 	$(PROGRAM) libTestDynLib
  else
-	$(PROGRAM) $(HOME_DIR)/lib/libTestDynLib$(LIB_SUFFIX)
+	$(PROGRAM) $(HOME_DIR)/$(PEGASUS_ARCH_LIB_DIR)/libTestDynLib$(LIB_SUFFIX)
  endif
 endif
 
--- pegasus-2.5/src/Pegasus/Common/MessageQueueService.cpp.redhat	2005-08-16 18:46:53.000000000 -0400
+++ pegasus-2.5/src/Pegasus/Common/MessageQueueService.cpp	2005-10-03 17:12:17.000000000 -0400
@@ -68,7 +68,9 @@
 
 #define MAX_THREADS_PER_SVC_QUEUE_LIMIT 5000 
 #define MAX_THREADS_PER_SVC_QUEUE_DEFAULT 5
-
+#ifndef MAX_THREADS_PER_SVC_QUEUE
+#define MAX_THREADS_PER_SVC_QUEUE MAX_THREADS_PER_SVC_QUEUE_DEFAULT
+#endif
 Uint32 max_threads_per_svc_queue;
 
 PEGASUS_THREAD_RETURN PEGASUS_THREAD_CDECL
--- pegasus-2.5/src/Pegasus/Common/Makefile.redhat	2005-06-12 18:31:19.000000000 -0400
+++ pegasus-2.5/src/Pegasus/Common/Makefile	2005-10-03 17:12:17.000000000 -0400
@@ -165,8 +165,8 @@
 ifeq ($(OS),linux)
   EXTRA_LIBRARIES += -lcrypt
   ifdef PEGASUS_HAS_SSL
-    EXTRA_LIBRARIES += -L$(OPENSSL_HOME)/lib -lssl -lcrypto
-    EXTRA_LINK_ARGUMENTS =  -Xlinker -rpath -Xlinker $(OPENSSL_HOME)/lib
+    EXTRA_LIBRARIES += -L$(OPENSSL_HOME)/$(PEGASUS_ARCH_LIB_DIR) -lssl -lcrypto
+    EXTRA_LINK_ARGUMENTS =  -Xlinker -rpath -Xlinker $(OPENSSL_HOME)/$(PEGASUS_ARCH_LIB_DIR)
   endif
 endif
 
@@ -206,11 +206,11 @@
 ifeq ($(PEGASUS_PLATFORM),WIN32_IX86_MSVC)
   SYS_LIBS = ws2_32.lib advapi32.lib netapi32.lib
   ifdef PEGASUS_HAS_SSL
-    SYS_LIBS += /libpath:$(OPENSSL_HOME)/lib libeay32.lib ssleay32.lib
+    SYS_LIBS += /libpath:$(OPENSSL_HOME)/$(PEGASUS_ARCH_LIB_DIR) libeay32.lib ssleay32.lib
   endif
   ifdef PEGASUS_WINDOWS_SDK_HOME
     FLAGS += -DPEGASUS_WINDOWS_SDK_HOME
-    SYS_LIBS += /libpath:$(PEGASUS_WINDOWS_SDK_HOME)/lib secur32.lib
+    SYS_LIBS += /libpath:$(PEGASUS_WINDOWS_SDK_HOME)/$(PEGASUS_ARCH_LIB_DIR) secur32.lib
   else
      ifneq ($(CL_MAJOR_VERSION), 12)
     SYS_LIBS += secur32.lib
--- pegasus-2.5/src/Pegasus/Common/Constants.h.redhat	2005-07-27 17:02:36.000000000 -0400
+++ pegasus-2.5/src/Pegasus/Common/Constants.h	2005-10-03 17:12:17.000000000 -0400
@@ -380,21 +380,21 @@
 #  define PEGASUS_PAM_STANDALONE_PROC_NAME  "/opt/freeware/cimom/pegasus/bin/cimservera"
 # elif defined(PEGASUS_OS_LINUX) && !defined(PEGASUS_OS_LSB)
 #  undef PEGASUS_SSLCLIENT_CERTIFICATEFILE
-#  define PEGASUS_SSLCLIENT_CERTIFICATEFILE "/etc/opt/tog-pegasus/client.pem"
+#  define PEGASUS_SSLCLIENT_CERTIFICATEFILE "/etc/Pegasus/client.pem"
 #  undef PEGASUS_SSLCLIENT_RANDOMFILE
-#  define PEGASUS_SSLCLIENT_RANDOMFILE      "/var/opt/tog-pegasus/ssl.rnd"
+#  define PEGASUS_SSLCLIENT_RANDOMFILE      "/var/lib/Pegasus/ssl.rnd"
 #  undef PEGASUS_SSLSERVER_RANDOMFILE
-#  define PEGASUS_SSLSERVER_RANDOMFILE      "/var/opt/tog-pegasus/cimserver.rnd"
+#  define PEGASUS_SSLSERVER_RANDOMFILE      "/var/lib/Pegasus/cimserver.rnd"
 #  undef PEGASUS_LOCAL_AUTH_DIR
-#  define PEGASUS_LOCAL_AUTH_DIR            "/var/opt/tog-pegasus/cache/localauth"
+#  define PEGASUS_LOCAL_AUTH_DIR            "/var/lib/Pegasus/cache/localauth"
 #  undef PEGASUS_LOCAL_DOMAIN_SOCKET_PATH
-#  define PEGASUS_LOCAL_DOMAIN_SOCKET_PATH  "/var/run/tog-pegasus/socket/cimxml.socket"
+#  define PEGASUS_LOCAL_DOMAIN_SOCKET_PATH  "/var/run/tog-pegasus/cimxml.socket"
 #  undef PEGASUS_CORE_DIR
-#  define PEGASUS_CORE_DIR                  "/var/opt/tog-pegasus/cache"
+#  define PEGASUS_CORE_DIR                  "/var/lib/Pegasus/cache"
 #  undef PEGASUS_PAM_STANDALONE_PROC_NAME
-#  define PEGASUS_PAM_STANDALONE_PROC_NAME  "/opt/tog-pegasus/sbin/cimservera"
+#  define PEGASUS_PAM_STANDALONE_PROC_NAME  "/usr/sbin/cimservera"
 #  undef PEGASUS_PROVIDER_AGENT_PROC_NAME
-#  define PEGASUS_PROVIDER_AGENT_PROC_NAME  "/opt/tog-pegasus/sbin/cimprovagt"
+#  define PEGASUS_PROVIDER_AGENT_PROC_NAME  "/usr/sbin/cimprovagt"
 # elif defined(PEGASUS_OS_LSB)
 #  define PEGASUS_SSLCLIENT_CERTIFICATEFILE "/etc/opt/lsb-pegasus/client.pem"
 #  undef PEGASUS_SSLCLIENT_RANDOMFILE
--- pegasus-2.5/src/Pegasus/Common/System.cpp.redhat	2005-06-06 10:27:55.000000000 -0400
+++ pegasus-2.5/src/Pegasus/Common/System.cpp	2005-10-03 17:12:17.000000000 -0400
@@ -144,13 +144,13 @@
 char *System::extract_file_path(const char *fullpath, char *dirname)
 {
   char *p;
-  char buff[2048];
+  char buff[PEGASUS_PATH_MAX];
   if (fullpath == NULL)
     {
       dirname[0] = '\0';
       return dirname;
     }
-  strcpy(buff, fullpath);
+  strncpy(buff, fullpath, PEGASUS_PATH_MAX);
   for(p = buff + strlen(buff); p >= buff; p--)
     {
       if (*p == '\\' || *p == '/')
--- pegasus-2.5/src/Pegasus/Common/Platform_LINUX_IX86_GNU.h.redhat	2005-02-26 00:22:13.000000000 -0500
+++ pegasus-2.5/src/Pegasus/Common/Platform_LINUX_IX86_GNU.h	2005-10-03 17:12:17.000000000 -0400
@@ -72,9 +72,12 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <sys/param.h> // For MAXHOSTNAMELEN
-
+#include <limits.h>    // For _POSIX_HOST_NAME_LEN
 #if defined(PEGASUS_OS_LSB) && !defined(MAXHOSTNAMELEN)
-#define PEGASUS_MAXHOSTNAMELEN 64
+#if defined(_POSIX_HOST_NAME_MAX)
+#define PEGASUS_MAXHOSTNAMELEN (_POSIX_HOST_NAME_MAX+1)
+#else
+#define PEGASUS_MAXHOSTNAMELEN 256
+#endif 
 #endif
-
 #endif /* Pegasus_Platform_LINUX_IX86_GNU_h */
--- pegasus-2.5/src/Pegasus/Common/SystemUnix.cpp.redhat	2005-07-19 15:31:26.000000000 -0400
+++ pegasus-2.5/src/Pegasus/Common/SystemUnix.cpp	2005-10-03 17:12:17.000000000 -0400
@@ -566,7 +566,7 @@
 
     if ((he = gethostbyname (hostName)))
     {
-       strcpy (hostName, he->h_name);
+       strncpy (hostName, he->h_name, PEGASUS_MAXHOSTNAMELEN);
     }
 
 #if defined(PEGASUS_OS_OS400)
--- pegasus-2.5/src/Pegasus/Common/Config.h.redhat	2005-05-05 14:18:42.000000000 -0400
+++ pegasus-2.5/src/Pegasus/Common/Config.h	2005-10-03 17:12:17.000000000 -0400
@@ -182,6 +182,13 @@
 #define PEGASUS_MAXHOSTNAMELEN MAXHOSTNAMELEN
 #endif
 
+#ifndef PEGASUS_PATH_MAX
+#ifndef PATH_MAX
+#define PEGASUS_PATH_MAX 4096
+#else 
+#define PEGASUS_PATH_MAX PATH_MAX
+#endif
+#endif
 
 #ifdef __cplusplus
 PEGASUS_NAMESPACE_BEGIN
--- pegasus-2.5/src/Providers/ManagedSystem/ComputerSystem/ComputerSystem_Linux.cpp.redhat	2005-03-02 13:17:32.000000000 -0500
+++ pegasus-2.5/src/Providers/ManagedSystem/ComputerSystem/ComputerSystem_Linux.cpp	2005-10-03 17:12:17.000000000 -0400
@@ -310,7 +310,7 @@
   he=gethostbyname(hostName);
   if (he)
   {
-     strcpy(hostName, he->h_name);
+     strncpy(hostName, he->h_name, PEGASUS_MAXHOSTNAMELEN);
   }
 
   _hostName.assign(hostName);
--- pegasus-2.5/src/Providers/ManagedSystem/OperatingSystem/OperatingSystem_Linux.cpp.redhat	2005-02-05 18:01:03.000000000 -0500
+++ pegasus-2.5/src/Providers/ManagedSystem/OperatingSystem/OperatingSystem_Linux.cpp	2005-10-03 17:12:17.000000000 -0400
@@ -172,7 +172,7 @@
      he=gethostbyname(hostName);
      if (he)
      {
-        strcpy(hostName, he->h_name);
+        strncpy(hostName, he->h_name, PEGASUS_MAXHOSTNAMELEN);
      }
 
      csName.assign(hostName);
--- pegasus-2.5/src/Providers/ManagedSystem/Process/Process_Linux.cpp.redhat	2005-07-15 16:46:54.000000000 -0400
+++ pegasus-2.5/src/Providers/ManagedSystem/Process/Process_Linux.cpp	2005-10-03 17:12:17.000000000 -0400
@@ -782,7 +782,7 @@
      he=gethostbyname(hostName);
      if (he)
      {
-        strcpy(hostName, he->h_name);
+        strncpy(hostName, he->h_name, PEGASUS_MAXHOSTNAMELEN);
      }
 
      csName.assign(hostName);
--- pegasus-2.5/src/Clients/repupgrade/RepositoryUpgrade.cpp.redhat	2005-06-03 16:04:34.000000000 -0400
+++ pegasus-2.5/src/Clients/repupgrade/RepositoryUpgrade.cpp	2005-10-03 17:12:17.000000000 -0400
@@ -2075,7 +2075,7 @@
     fileName = _pegasusHome + "/bin/" +
                   FileSystem::buildLibraryFileName(moduleName);
 #else
-    fileName = _pegasusHome + "/lib/" +
+    fileName = _pegasusHome + PEGASUS_DEST_LIB_DIR +
                   FileSystem::buildLibraryFileName(moduleName);
 #endif
 


--- NEW FILE rpm_build_env ---
# Pegasus RPM %build + %install environment setup: 
#
# compile options:
#
export PEGASUS_EXTRA_C_FLAGS="$RPM_OPT_FLAGS -fPIC -g -Wall -Wno-unused"
export PEGASUS_EXTRA_CXX_FLAGS="$PEGASUS_EXTRA_C_FLAGS"
export PEGASUS_EXE_LINK_FLAGS="$RPM_OPT_FLAGS -g -pie -Wl,-z,relro,-z,now,-z,nodlopen,-z,noexecstack"
export SYS_INCLUDES=-I/usr/kerberos/include
#
# build object directories:
#
export SRCNAME=pegasus
export PEGASUS_ROOT=${RPM_BUILD_DIR}/${SRCNAME}-${RPM_PACKAGE_VERSION}
export ROOT=$PEGASUS_ROOT
export PEGASUS_HOME=${RPM_BUILD_ROOT}/build
export PEGASUS_ARCH_LIB_DIR=${RPM_ARCH_LIB}
#
# PEGASUS_PLATFORM (hardware platform) setup:
#
if [ -z "$RPM_ARCH" ]; then
    export RPM_ARCH=`/bin/uname -i`;
fi;
case ${RPM_ARCH} in
  ia64|x86_64)
    export PEGASUS_PLATFORM=LINUX_IA64_GNU;
    ;;
  ppc)
    export PEGASUS_PLATFORM=LINUX_PPC_GNU;
    ;;
  ppc64|pseries)
    export PEGASUS_PLATFORM=LINUX_PPC64_GNU;
    ;;
  s390)
    export PEGASUS_PLATFORM=LINUX_ZSERIES_GNU;
    export PEGASUS_EXTRA_C_FLAGS="$PEGASUS_EXTRA_C_FLAGS -fsigned-char";
    export PEGASUS_EXTRA_CXX_FLAGS="$PEGASUS_EXTRA_C_FLAGS";
    ;;
  s390x|zseries)
    export PEGASUS_PLATFORM=LINUX_ZSERIES64_GNU;
    export PEGASUS_EXTRA_C_FLAGS="$PEGASUS_EXTRA_C_FLAGS -fsigned-char";
    export PEGASUS_EXTRA_CXX_FLAGS="$PEGASUS_EXTRA_C_FLAGS";
    ;;
  i386)
    export PEGASUS_PLATFORM=LINUX_IX86_GNU
    ;;
  *)
    echo "Architecture unsupported by pegasus: $RPM_ARCH";
    exit 1;
    ;;
esac;
#
# Pegasus Build options:
# 
export OPENSSL_HOME=/usr
export PEGASUS_HAS_SSL=yes
# per bug #368
export PEGASUS_USE_RELEASE_DIRS=true
export PEGASUS_USE_RELEASE_CONFIG_OPTIONS=true
# per PEP #144
export PEGASUS_PAM_AUTHENTICATION=true
export PAM_CONFIG_DIR=/etc/pam.d
#
# export PEGASUS_USE_PAM_STANDALONE_PROC=true
# NO, we do NOT use 'cimservera' on Red Hat platforms!
#
export PEGASUS_CIM_SCHEMA=CIM29
export PEGASUS_LOCAL_DOMAIN_SOCKET=true
export PEGASUS_USE_SYSLOGS=true
export PEGASUS_ENABLE_CMPI_PROVIDER_MANAGER=true
# per PEP #174
export PEGASUS_ENABLE_USERGROUP_AUTHORIZATION=true
export PEGASUS_HAS_PERFSTATS=true
export PEGASUS_NOASSERTS=true
# enable CMPI !! :
PEGASUS_ENABLE_CQL=true
# export PEGASUS_DISABLE_CQL=true
export PEGASUS_DISABLE_OBJECT_NORMALIZATION=true
export PEGASUS_ENABLE_CMPI_PROVIDER_MANAGER=true
export PEGASUS_ENABLE_USERGROUP_AUTHORIZATION=true
export PEGASUS_USE_RELEASE_DIRS=true
#
# Pegasus Directory Structure:
#
export PEGASUS_PROD_DIR=/usr
export PEGASUS_PRODSHARE_DIR=${PEGASUS_PROD_DIR}/share/Pegasus
export PEGASUS_DOC_DIR=/usr/share/doc/tog-pegasus-${RPM_PACKAGE_VERSION}
export PEGASUS_MAN_DIR=/usr/share/man
export PEGASUS_MANUSER_DIR=${PEGASUS_MAN_DIR}/man1
export PEGASUS_MANADMIN_DIR=${PEGASUS_MAN_DIR}/man8
export PEGASUS_MOF_DIR=${PEGASUS_PRODSHARE_DIR}/mof
export PEGASUS_DEST_LIB_DIR=${PEGASUS_PROD_DIR}/${PEGASUS_ARCH_LIB_DIR}
export PEGASUS_PROVIDER_DIR=${PEGASUS_DEST_LIB_DIR}/Pegasus/providers
export PEGASUS_PROVIDER_LIB_DIR=${PEGASUS_PROVIDER_DIR}
export PEGASUS_SBIN_DIR=${PEGASUS_PROD_DIR}/sbin
export PEGASUS_BIN_DIR=${PEGASUS_PROD_DIR}/bin
export PEGASUS_VARDATA_DIR=/var/lib/Pegasus
export PEGASUS_REPOSITORY_PARENT_DIR=${PEGASUS_VARDATA_DIR}
export PEGASUS_REPOSITORY_DIR=${PEGASUS_REPOSITORY_PARENT_DIR}/repository
export PEGASUS_PREV_REPOSITORY_DIR=${PEGASUS_REPOSITORY_PARENT_DIR}/prev_repository
export PEGASUS_CONFIG_DIR=/etc/Pegasus
export PEGASUS_VARRUN_DIR=/var/run/tog-pegasus
export PEGASUS_CIMSERVER_START_FILE=${PEGASUS_VARRUN_DIR}/cimserver.pid
export PEGASUS_LOCAL_DOMAIN_SOCKET_DIR=${PEGASUS_VARRUN_DIR}
export PEGASUS_LOCAL_DOMAIN_SOCKET_PATH=${PEGASUS_LOCAL_DOMAIN_SOCKET_DIR}/cimxml.socket
export PEGASUS_VARDATA_CACHE_DIR=${PEGASUS_VARDATA_DIR}/cache
export PEGASUS_LOCAL_AUTH_DIR=${PEGASUS_VARDATA_CACHE_DIR}/localauth
export PEGASUS_TRACE_DIR=${PEGASUS_VARDATA_CACHE_DIR}/trace
export PEGASUS_PLANNED_CONFIG_FILE=cimserver_planned.conf
export PEGASUS_CURRENT_CONFIG_FILE=cimserver_current.conf
export PEGASUS_PEM_DIR=${PEGASUS_CONFIG_DIR}
export PEGASUS_LOG_DIR=/var/log/Pegasus
export PEGASUS_SSL_KEY_FILE=file.pem
export PEGASUS_SSL_CERT_FILE=server.pem
export PEGASUS_SSL_TRUSTSTORE=client.pem
export PEGASUS_SAMPLES_DIR=${PEGASUS_PRODSHARE_DIR}/samples
export PEGASUS_INCLUDE_DIR=${PEGASUS_PROD_DIR}/include
export PEGASUS_HTML_DIR=${PEGASUS_PRODSHARE_DIR}/html
export PEGASUS_TEST_DIR=${PEGASUS_PRODSHARE_DIR}/test
export PEGASUS_TEST_REPOSITORY_DIR=${PEGASUS_VARDATA_DIR}
export PEGASUS_TEST_REPOSITORY_NAME=testrepository
export PRODUCT_DIRECTORY_STRUCTURE=(\
   ${PEGASUS_PROD_DIR} \
   ${PEGASUS_PRODSHARE_DIR} \
   ${PEGASUS_DOC_DIR} \
   ${PEGASUS_MAN_DIR} \
   ${PEGASUS_MANUSER_DIR} \
   ${PEGASUS_MANADMIN_DIR} \
   ${PEGASUS_DEST_LIB_DIR} \
   ${PEGASUS_PROVIDER_DIR} \
   ${PEGASUS_PROVIDER_LIB_DIR} \
   ${PEGASUS_SBIN_DIR} \
   ${PEGASUS_BIN_DIR} \
   ${PEGASUS_MOF_DIR} \
   ${PEGASUS_VARDATA_DIR} \
   ${PEGASUS_REPOSITORY_DIR} \
   ${PEGASUS_VARDATA_CACHE_DIR} \
   ${PEGASUS_TRACE_DIR} \
   ${PEGASUS_LOG_DIR} \
   ${PEGASUS_LOCAL_AUTH_DIR} \
   ${PEGASUS_VARRUN_DIR} \
   ${PEGASUS_LOCAL_DOMAIN_SOCKET_DIR} \
   ${PEGASUS_CONFIG_DIR});


--- NEW FILE tog-pegasus.spec ---
################################################################################
#
#               OpenPegasus (Red Hat release) RPM .spec file
#
%{?!WITH_TEST:   %define WITH_TEST        0}
# do "rpmbuild --define 'WITH_TEST 1'" to build test RPM .
# NOTE: Must use "rpm -[iU]vh --define 'WITH_TEST 1'" for all RPMs if test rpm
#       is to be installed.
#       DO NOT install test rpm for production use.
%{?!AUTOSTART:   %define AUTOSTART        0}
# Use "rpm -[iU]vh --define 'AUTOSTART 1'" in order to have cimserver enabled
# (chkconfig --level=345 tog-pegasus on) after installation.
#
#%define		debug_package	%{nil}
Summary: 	OpenPegasus WBEM Services for Linux
Name:    	tog-pegasus
Version: 	2.5
Release:	1.fe4
Epoch:   	2
Group:   	Systems Management/Base
License: 	Open Group Pegasus Open Source
BuildRoot: 	%{_tmppath}/%{name}-%{version}-%{release}-root
URL:		http://www.openpegasus.org/
%define srcname pegasus
Source0: 	%{srcname}-%{version}.tar.gz
Source1:        rpm_build_env
Source2:        README.RedHat.Security
Source3:        access.conf
Source4:        genSSLcerts
Patch0:         pegasus-2.5-redhat.patch
Patch1:         pegasus-2.5-local-or-remote-auth.patch
Patch2:         pegasus-2.5-make_install.patch
Patch3:         pegasus-2.5-add_cmpi_provider_lib.patch
Patch4:		pegasus-2.5-enable_cql.patch
Patch5:		pegasus-2.5-bz173401.patch
BuildRequires:    bash, sed, grep, coreutils, procps, gcc, gcc-c++, libstdc++, make, pam-devel, krb5-devel, krb5-libs, openssl-devel >= 0.9.6, e2fsprogs
Requires:         bash, sed, grep, coreutils, procps, openssl >= 0.9.6, pam, krb5-libs, e2fsprogs, redhat-lsb, chkconfig, SysVinit, bind-utils, bind-libs, net-tools
Requires(post):   bash, sed, grep, coreutils, procps, openssl >= 0.9.6, pam, krb5-libs, e2fsprogs, redhat-lsb, chkconfig, SysVinit, bind-utils, bind-libs, net-tools 
Requires(pre):    bash, sed, grep, coreutils, procps, openssl >= 0.9.6, pam, krb5-libs, e2fsprogs, redhat-lsb, chkconfig, SysVinit, bind-utils, bind-libs, net-tools
Requires(postun): bash, sed, grep, coreutils, procps, openssl >= 0.9.6, pam, krb5-libs, e2fsprogs, redhat-lsb, chkconfig, SysVinit, bind-utils, bind-libs, net-tools

%description
OpenPegasus WBEM Services for Linux enables management solutions that deliver
increased control of enterprise resources. WBEM is a platform and resource
independent DMTF standard that defines a common information model and
communication protocol for monitoring and controlling resources from diverse
sources.

%package devel
Summary:      The OpenPegasus Software Development Kit
Group:        Systems Management/Base
Requires:     tog-pegasus >= 2.5

%description devel
The OpenPegasus WBEM Services for Linux SDK is the developer's kit for the OpenPegasus WBEM
Services for Linux release. It provides Linux C++ developers with the WBEM files required to
build WBEM Clients and Providers. It also supports C provider developers via the CMPI interface.

%if %{WITH_TEST}
%package test
Summary:      The OpenPegasus Tests
Group:        Systems Management/Base
Autoreq:      0
Requires:     tog-pegasus >= 2.5

%description test
The OpenPegasus WBEM tests for the OpenPegasus 2.5 Linux rpm.
**********************************************************************************
*** DO NOT INSTALL THIS RPM ON A PRODUCTION SYSTEM - THIS IS FOR TESTING ONLY. ***
**********************************************************************************
%endif

%prep
%setup -q -n %{srcname}-%{version}
%patch0 -p1 -b .redhat
%patch1 -p1 -b .local_or_remote_auth
%patch2 -p1 -b .make_install
%patch3 -p1 -b .add_cmpi_provider_lib
%patch4 -p1 -b .enable_cql
#%patch5 -p1 -b .bz173401

%build
rm -rf $RPM_BUILD_ROOT
export RPM_ARCH_LIB=%{_lib}
. %SOURCE1
make
export LD_LIBRARY_PATH=$PEGASUS_HOME/%{_lib}
export PATH=$PEGASUS_HOME/bin:$PATH
make repository
make --directory=mak -f SDKMakefile stageSDK
%if %{WITH_TEST}
export PEGASUS_ENVVAR_FILE=${PEGASUS_ROOT}/env_var_Linux.status
export PEGASUS_STAGING_DIR=$RPM_BUILD_ROOT
make --directory=$PEGASUS_ROOT -f Makefile.ReleaseTest stageTEST
unset  PEGASUS_STAGING_DIR
%endif

%install
export RPM_ARCH_LIB=%{_lib}
. %SOURCE1
export PEGASUS_DESTDIR=$RPM_BUILD_ROOT
export PEGASUS_ENVVAR_FILE=${PEGASUS_ROOT}/env_var_Linux.status
export PATH=${PEGASUS_HOME}/bin:$PATH
export LD_LIBRARY_PATH=${PEGASUS_HOME}/%{_lib}:/%{_lib}:/usr/%{_lib}
unset  PEGASUS_STAGING_DIR
export PEGASUS_SDK_STAGING_DIR=${PEGASUS_HOME}/stageSDK
make install
rm -rf $PEGASUS_HOME
mkdir -p $RPM_BUILD_ROOT{${PEGASUS_CONFIG_DIR},${PEGASUS_VARRUN_DIR},${PEGASUS_LOG_DIR},$PEGASUS_VARDATA_DIR}
touch $RPM_BUILD_ROOT{${PEGASUS_CONFIG_DIR}/{cimserver_{current,planned}.conf,ssl.cnf,client.pem,server.pem,file.pem,client_2048.pem,server_2048.pem,file_2048.pem},${PEGASUS_LOG_DIR}/install.log,${PEGASUS_VARRUN_DIR}/cimxml.socket}
mkdir -p $RPM_BUILD_ROOT/var/lib/Pegasus/prev_repository
cp -fp %SOURCE2 ${PEGASUS_ROOT}/doc
cp -fp %SOURCE3 $RPM_BUILD_ROOT/${PEGASUS_CONFIG_DIR}/access.conf
chmod 640 $RPM_BUILD_ROOT/${PEGASUS_CONFIG_DIR}/access.conf
mkdir -p $RPM_BUILD_ROOT/${PEGASUS_PRODSHARE_DIR}/scripts
cp -fp %SOURCE4 $RPM_BUILD_ROOT/${PEGASUS_PRODSHARE_DIR}/scripts
chmod 750 $RPM_BUILD_ROOT/${PEGASUS_PRODSHARE_DIR}/scripts/genSSLcerts
mkdir -p $R$RPM_BUILD_ROOT/usr/%{_lib}/cmpi
#/usr/lib/rpm/brp-compress
#exit 0
:;

%files
%defattr(0640,root,pegasus,0750)
%dir /etc/Pegasus
%dir /var/lib/Pegasus
%attr(1750,root,pegasus) /var/run/tog-pegasus
%dir /var/log/Pegasus
%config %attr(750,root,root) /etc/rc.d/init.d/tog-pegasus
%ghost %config(noreplace) /etc/Pegasus/cimserver_current.conf
%ghost %config(noreplace) /etc/Pegasus/cimserver_planned.conf
%config(noreplace) /etc/Pegasus/access.conf
%config(noreplace) /etc/pam.d/wbem
%ghost /etc/Pegasus/ssl.cnf
%ghost /etc/Pegasus/client.pem
%ghost /etc/Pegasus/server.pem
%ghost /etc/Pegasus/file.pem
%ghost /etc/Pegasus/client_2048.pem
%ghost /etc/Pegasus/server_2048.pem
%ghost /etc/Pegasus/file_2048.pem
%ghost /var/log/Pegasus/install.log
%ghost /var/lib/Pegasus/prev_repository
/var/lib/Pegasus/repository
/var/lib/Pegasus/cache
%attr(0750,root,pegasus) /usr/sbin/*
%attr(0755,root,pegasus) /usr/bin/*
%attr(0755,root,pegasus) /usr/%{_lib}/*.so.*
%dir /usr/%{_lib}/Pegasus/providers
%dir /usr/%{_lib}/cmpi
%attr(0755,root,pegasus) /usr/%{_lib}/Pegasus/providers/*.so.*
/usr/share/Pegasus/mof
%dir /usr/share/Pegasus/scripts
%attr(0755,root,pegasus) /usr/share/Pegasus/scripts/genSSLcerts
/usr/share/man/man*/*
%doc doc/license.txt doc/Admin_Guide_Release.pdf doc/README.RedHat.Security doc/SecurityGuidelinesForDevelopers.html doc/PegasusSSLGuidelines.htm doc/MessageQueueService.html doc/ProviderLoading.txt 

%files devel
%defattr(0644,root,pegasus,0755)
/usr/include/Pegasus
/usr/share/Pegasus/samples
/usr/share/Pegasus/html
%attr(0755,root,pegasus) /usr/%{_lib}/*.so
%attr(0755,root,pegasus) /usr/%{_lib}/Pegasus/providers/*.so

%if %{WITH_TEST}

%post test
/etc/init.d/tog-pegasus stop
cd /var/lib/Pegasus
mv repository repository.bak
mv testrepository repository
/usr/share/Pegasus/scripts/genSSLcerts
cd /usr/share/Pegasus/test
make create_providerlinks
make tests

%files test
%defattr(-,root,root,-)
/var/lib/Pegasus/testrepository
/usr/share/Pegasus/test

%endif

%pre
if [ $1 -gt 1 ]; then
   if [ -d /var/lib/Pegasus/repository/root\#PG_Internal ]; then
      #
      # Save the current repository to prev_repository.
      #
	  if [ -d /var/lib/Pegasus/prev_repository ]; then
	     /bin/mv /var/lib/Pegasus/prev_repository /var/lib/Pegasus/prev_repository_`date '+%Y-%m-%d-%s.%N'`.rpmsave;
	  fi
	  /bin/mv /var/lib/Pegasus/repository /var/lib/Pegasus/prev_repository
   fi;
elif [ $1 -eq 1 ]; then
#  first install: create the 'pegasus' user and group:
#  By default, ONLY the "pegasus" user will be allowed to connect to cimserver over network
   if ! /usr/bin/id pegasus >/dev/null 2>&1; then
      for((uid=466; uid<500; uid++))
      do
	if /usr/sbin/groupadd pegasus -g $uid >/dev/null 2>&1 &&
           /usr/sbin/useradd -u $uid -c  "tog-pegasus OpenPegasus WBEM/CIM services" -g pegasus -s /sbin/nologin -r -d /var/lib/Pegasus pegasus >/dev/null 2>&1; then
           break;
     	else
	   if egrep -q '^pegasus:.*:'$uid':' /etc/group; then
              groupdel pegasus >/dev/null 2>&1;
           fi;
           if [ $uid -eq 499 ]; then
              uid=100;
           elif [ $uid -eq 465 ]; then
              break;
           fi;
        fi;
      done;
   fi;
fi

%post
if [ $1 -eq 1 ]; then
   /sbin/ldconfig
%if %{AUTOSTART}
   /sbin/chkconfig --add tog-pegasus
%endif
   echo `date` >/var/log/Pegasus/install.log 2>&1
elif [ $1 -gt 0 ]; then
   /sbin/service tog-pegasus condrestart
:;
fi

%preun
if [ $1 -eq 0 ]; then
   service tog-pegasus stop >/dev/null 2>&1
   /sbin/chkconfig --del tog-pegasus;
fi

%postun
if [ $1 -eq 0 ]; then
#   /usr/sbin/userdel pegasus >/dev/null 2>&1 || :; 
#   /usr/sbin/groudel pegasus >/dev/null 2>&1 || :;
:;
fi;

%clean
rm -rf $RPM_BUILD_ROOT;
#rm -rf ${RPM_BUILD_DIR}/%{srcname}-%{version};

%changelog
* Thu Dec 15 2005 Jason Vas Dias <jvdias at redhat.com> - 2:2.5-5
- fix bug 175434 : deal with pegasus uid/gid already existing
  on first install

* Fri Dec 09 2005 Jesse Keating <jkeating at redhat.com> - 2:2.5-4.1
- rebuilt

* Wed Nov 16 2005 Jason Vas Dias <jvdias at redhat.com> - 2:2.5-4
- fix bug 173401: SSL support broken by openssl-0.9.7g -> 0.9.8a upgrade 

* Wed Nov 09 2005 Jason Vas Dias <jvdias at redhat.com> - 2:2.5-3
- Rebuild for new openssl dependencies
- Enable CMPI support for sblim-cmpi-base with ENABLE_CQL=true

* Mon Oct 31 2005 Jason Vas Dias <jvdias at redhat.com> - 2:2.5-2
- Add /usr/lib/cmpi alternate providerLibDir for sblim-cmpi-base Fedora Extras pkg
- Fix bug 171124: use numeric ids for pegasus user/group
- guidelines: do not remove pegasus user/group in %%postun.

* Fri Oct 14 2005 Tomas Mraz <tmraz at redhat.com>
- use include instead of pam_stack in pam config

* Fri Sep 30 2005 Jason Vas Dias <jvdias at redhat.com> - 2:2.5-1
- Implemented new 'make install' target.
- Re-wrote tog-pegasus.spec file from scratch.
- Ported BZ 167986 authentication code and BZ 167164 + BZ 167165 fixes from RHEL-4

* Wed Sep 28 2005 Jason Vas Dias <jvdias at redhat.com> - 2:2.5-0
- Initial build.


Index: .cvsignore
===================================================================
RCS file: /cvs/extras/rpms/tog-pegasus/devel/.cvsignore,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- .cvsignore	2 Feb 2006 00:06:43 -0000	1.1
+++ .cvsignore	2 Feb 2006 00:08:51 -0000	1.2
@@ -0,0 +1 @@
+pegasus-2.5.tar.gz


Index: sources
===================================================================
RCS file: /cvs/extras/rpms/tog-pegasus/devel/sources,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- sources	2 Feb 2006 00:06:43 -0000	1.1
+++ sources	2 Feb 2006 00:08:51 -0000	1.2
@@ -0,0 +1 @@
+0b068fd576f199f8a0946e2f659acfe4  pegasus-2.5.tar.gz




More information about the scm-commits mailing list