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