build.properties
by Richard Allen Megginson
build.properties | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
New commits:
commit 3b45c4aa34d1fe3dc66024055e6da8e4c6a44bbf
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Wed Apr 14 16:59:22 2010 -0600
update to version 1.2.1
diff --git a/build.properties b/build.properties
index 1cbc27f..f0a2aa0 100755
--- a/build.properties
+++ b/build.properties
@@ -21,7 +21,7 @@
lang=en
ldapconsole.root=..
-ldapconsole.version=1.2.0
+ldapconsole.version=1.2.1
ldapconsole.gen.version=1.2
brand=389
ldapconsole.name=${brand}-ds-${ldapconsole.version}
13 years, 11 months
Changes to 'refs/tags/389-console-1.1.4'
by Richard Allen Megginson
Changes since the dawn of time:
Nathan Kinder (3):
Initial import of fedora-idm-console
Resolves: 183962
Resolves: 393461
Rich Megginson (29):
initial commit of Fedora Console for Windows - has no UI
added UI and graphics
package is not noarch
support for JAVA with spaces in the pathname
added license
updated spec for Fedora DS 1.1 release
Resolves: bug 428352
Resolves: bug 480631
Reviewed by: nkinder (Thanks!)
Resolves: bug 476095
bump version to 1.1.3 to sync with CVS tag
added unzip.vbs ; cleaned up/simplified Makefile
update idm console version to 20090310
update for 1.1.3
fix typo in Makefile
Initial commit of renaming to 389
Forgot to add provides and obsoletes for fedora-idm-console
added .gitignore
added need_libdir flag to control where libdir is needed to find jss
fix spelling error
Add 64-bit support - Use replaceable parameters for names, guids
Remove old package during upgrade
Remove old shortcuts must ignore All Users folders
Force shortcuts to be removed - removeoldpkg must run asyncNoWait
Bump version to 1.1.4
Changed version to 1.1.4.a1
make sure bitsadmin.exe path is quoted
update to version 1.1.4 rc1
update to version 1.1.4
13 years, 11 months
win/VERSION.mak
by Richard Allen Megginson
win/VERSION.mak | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
New commits:
commit 335216d7882e636feafb7fbe23cf53571494a26c
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Wed Apr 14 16:53:17 2010 -0600
update to version 1.1.4
diff --git a/win/VERSION.mak b/win/VERSION.mak
index 44e387c..6116028 100644
--- a/win/VERSION.mak
+++ b/win/VERSION.mak
@@ -7,7 +7,7 @@ BRANDNOSPACE=389
# this is the vendor or manufacturer
VENDOR=389 Project
# the version
-VERSION=1.1.4.rc1
+VERSION=1.1.4
# the name of the product - this is used in the title of the
# installer, in the name of the folder, and in the name
# of the shortcuts
13 years, 11 months
Changes to 'refs/tags/389-console-1.1.4.rc1'
by Richard Allen Megginson
Changes since the dawn of time:
Nathan Kinder (3):
Initial import of fedora-idm-console
Resolves: 183962
Resolves: 393461
Rich Megginson (28):
initial commit of Fedora Console for Windows - has no UI
added UI and graphics
package is not noarch
support for JAVA with spaces in the pathname
added license
updated spec for Fedora DS 1.1 release
Resolves: bug 428352
Resolves: bug 480631
Reviewed by: nkinder (Thanks!)
Resolves: bug 476095
bump version to 1.1.3 to sync with CVS tag
added unzip.vbs ; cleaned up/simplified Makefile
update idm console version to 20090310
update for 1.1.3
fix typo in Makefile
Initial commit of renaming to 389
Forgot to add provides and obsoletes for fedora-idm-console
added .gitignore
added need_libdir flag to control where libdir is needed to find jss
fix spelling error
Add 64-bit support - Use replaceable parameters for names, guids
Remove old package during upgrade
Remove old shortcuts must ignore All Users folders
Force shortcuts to be removed - removeoldpkg must run asyncNoWait
Bump version to 1.1.4
Changed version to 1.1.4.a1
make sure bitsadmin.exe path is quoted
update to version 1.1.4 rc1
13 years, 11 months
build.properties win/VERSION.mak
by Richard Allen Megginson
build.properties | 2 +-
win/VERSION.mak | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
New commits:
commit 55403027623daa6d00fb814dbb08b76d6ba2e85b
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Wed Apr 14 16:49:18 2010 -0600
update to version 1.1.4 rc1
diff --git a/build.properties b/build.properties
index 76a73a9..f3f0104 100644
--- a/build.properties
+++ b/build.properties
@@ -23,7 +23,7 @@ lang=en
console.root=.
console.version=11
-console.dotversion=1.1.3
+console.dotversion=1.1.4
console.dotgenversion=1.1
theme.core=389-console
diff --git a/win/VERSION.mak b/win/VERSION.mak
index 4263206..44e387c 100644
--- a/win/VERSION.mak
+++ b/win/VERSION.mak
@@ -7,7 +7,7 @@ BRANDNOSPACE=389
# this is the vendor or manufacturer
VENDOR=389 Project
# the version
-VERSION=1.1.4.a2
+VERSION=1.1.4.rc1
# the name of the product - this is used in the title of the
# installer, in the name of the folder, and in the name
# of the shortcuts
13 years, 11 months
console build.properties,1.17,1.18
by Richard Allen Megginson
Author: rmeggins
Update of /cvs/dirsec/console
In directory cvs01.phx2.fedoraproject.org:/tmp/cvs-serv13626
Modified Files:
build.properties
Log Message:
update to 1.1.4
Index: build.properties
===================================================================
RCS file: /cvs/dirsec/console/build.properties,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- build.properties 16 Dec 2008 23:38:28 -0000 1.17
+++ build.properties 14 Apr 2010 22:10:35 -0000 1.18
@@ -23,7 +23,7 @@
console.root=.
console.version=11
-console.dotversion=1.1.3
+console.dotversion=1.1.4
console.dotgenversion=1.1
mcc.core=idm-console-mcc
13 years, 11 months
ldap/servers
by Richard Allen Megginson
ldap/servers/slapd/back-ldbm/ldbm_delete.c | 4 ++++
1 file changed, 4 insertions(+)
New commits:
commit e50dceb45a2ddffe749b444fa057d93776f882c9
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Wed Apr 14 10:15:53 2010 -0600
Bug 576644 - segfault while multimaster replication (paired node won't find deleted entries)
https://bugzilla.redhat.com/show_bug.cgi?id=576644
Resolves: bug 576644
Bug Description: segfault while multimaster replication (paired node won't find deleted entries)
Reviewed by: rmeggins
Fixed by: edewata, nhosoi
Branch: HEAD
Fix Description: The delete code stores the actual entry from the entry
cache in the pblock as SLAPI_DELETE_BEPREOP_ENTRY so that the be preop
plugins can have access to the entry. SLAPI_DELETE_BEPREOP_ENTRY is an
alias for SLAPI_ENTRY_PRE_OP which is used by the front-end delete code.
When processing a replicated delete operation, and the
entry has already been deleted (converted to a tombstone), we needed to
restore the original entry in SLAPI_DELETE_BEPREOP_ENTRY so that the
front-end code can free it as SLAPI_ENTRY_PRE_OP instead of freeing the
actual entry from the cache.
Platforms tested: RHEL5 x86_64
Flag Day: no
Doc impact: no
diff --git a/ldap/servers/slapd/back-ldbm/ldbm_delete.c b/ldap/servers/slapd/back-ldbm/ldbm_delete.c
index 3ede0f3..3c745f1 100644
--- a/ldap/servers/slapd/back-ldbm/ldbm_delete.c
+++ b/ldap/servers/slapd/back-ldbm/ldbm_delete.c
@@ -189,6 +189,8 @@ ldbm_back_delete( Slapi_PBlock *pb )
if(ldap_result_code==LDAP_OPERATIONS_ERROR ||
ldap_result_code==LDAP_INVALID_DN_SYNTAX)
{
+ /* restore original entry so the front-end delete code can free it */
+ slapi_pblock_set( pb, SLAPI_DELETE_BEPREOP_ENTRY, orig_entry );
goto error_return;
}
slapi_pblock_set(pb, SLAPI_RESULT_CODE, &ldap_result_code);
@@ -204,6 +206,8 @@ ldbm_back_delete( Slapi_PBlock *pb )
* or that this Operation became a No-Op.
*/
slapi_pblock_get(pb, SLAPI_RESULT_CODE, &ldap_result_code);
+ /* restore original entry so the front-end delete code can free it */
+ slapi_pblock_set( pb, SLAPI_DELETE_BEPREOP_ENTRY, orig_entry );
goto error_return;
}
/* the flag could be set in a preop plugin (e.g., USN) */
13 years, 11 months
Branch 'Directory_Server_8_2_Branch' - ldap/servers
by Richard Allen Megginson
ldap/servers/slapd/back-ldbm/ldbm_delete.c | 4 ++++
1 file changed, 4 insertions(+)
New commits:
commit c15e10b50189d384436728be9ee17986225882c8
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Wed Apr 14 10:15:53 2010 -0600
Bug 576644 - segfault while multimaster replication (paired node won't find deleted entries)
https://bugzilla.redhat.com/show_bug.cgi?id=576644
Resolves: bug 576644
Bug Description: segfault while multimaster replication (paired node won't find deleted entries)
Reviewed by: rmeggins
Fixed by: edewata, nhosoi
Branch: Directory_Server_8_2_Branch
Fix Description: The delete code stores the actual entry from the entry
cache in the pblock as SLAPI_DELETE_BEPREOP_ENTRY so that the be preop
plugins can have access to the entry. SLAPI_DELETE_BEPREOP_ENTRY is an
alias for SLAPI_ENTRY_PRE_OP which is used by the front-end delete code.
When processing a replicated delete operation, and the
entry has already been deleted (converted to a tombstone), we needed to
restore the original entry in SLAPI_DELETE_BEPREOP_ENTRY so that the
front-end code can free it as SLAPI_ENTRY_PRE_OP instead of freeing the
actual entry from the cache.
Platforms tested: RHEL5 x86_64
Flag Day: no
Doc impact: no
(cherry picked from commit e50dceb45a2ddffe749b444fa057d93776f882c9)
diff --git a/ldap/servers/slapd/back-ldbm/ldbm_delete.c b/ldap/servers/slapd/back-ldbm/ldbm_delete.c
index c1cb1cf..e862311 100644
--- a/ldap/servers/slapd/back-ldbm/ldbm_delete.c
+++ b/ldap/servers/slapd/back-ldbm/ldbm_delete.c
@@ -189,6 +189,8 @@ ldbm_back_delete( Slapi_PBlock *pb )
if(ldap_result_code==LDAP_OPERATIONS_ERROR ||
ldap_result_code==LDAP_INVALID_DN_SYNTAX)
{
+ /* restore original entry so the front-end delete code can free it */
+ slapi_pblock_set( pb, SLAPI_DELETE_BEPREOP_ENTRY, orig_entry );
goto error_return;
}
slapi_pblock_set(pb, SLAPI_RESULT_CODE, &ldap_result_code);
@@ -204,6 +206,8 @@ ldbm_back_delete( Slapi_PBlock *pb )
* or that this Operation became a No-Op.
*/
slapi_pblock_get(pb, SLAPI_RESULT_CODE, &ldap_result_code);
+ /* restore original entry so the front-end delete code can free it */
+ slapi_pblock_set( pb, SLAPI_DELETE_BEPREOP_ENTRY, orig_entry );
goto error_return;
}
/* the flag could be set in a preop plugin (e.g., USN) */
13 years, 11 months
mod_revocator crlhelper.cpp, NONE, 1.1 Makefile.am, 1.5, 1.6 configure.in, 1.4, 1.5 aclocal.m4, 1.5, 1.6 Makefile.in, 1.5, 1.6 configure, 1.5, 1.6 ChangeLog, 1.2, 1.3 README, 1.3, 1.4 client.cpp, 1.3, 1.4 client.h, 1.3, 1.4 crlmanager.cpp, 1.3, 1.4 crlmanager.h, 1.2, 1.3 ldapget.cpp, 1.3, 1.4 ltmain.sh, 1.1.1.1, 1.2 mod_rev.c, 1.4, 1.5 mod_rev.h, 1.2, 1.3 revocator.conf, 1.1.1.1, 1.2
by Rob Crittenden
Author: rcritten
Update of /cvs/dirsec/mod_revocator
In directory cvs01.phx2.fedoraproject.org:/tmp/cvs-serv29776
Modified Files:
Makefile.am configure.in aclocal.m4 Makefile.in configure
ChangeLog README client.cpp client.h crlmanager.cpp
crlmanager.h ldapget.cpp ltmain.sh mod_rev.c mod_rev.h
revocator.conf
Added Files:
crlhelper.cpp
Log Message:
* Change initialization model to work with NSS > 3.11.9 and mod_nss 1.0.8.
* Use external helper program to retrieve CRLs so every Apache child
won't all retrieve the same CRL from the source.
Overall the changes are:
- initialize the revocator in each child, rather than the first time the
module is loaded
- create a two-way pipe to crlhelper
- read/write requests over the pipe for URLs to crlhelper
- use a semaphore to control access to crlhelper
- crlhelper will cache files for 58 seconds so multiple children can use the
same download but overall control is still in CRLManager.
- still support 304, remote file not updated.
--- NEW FILE crlhelper.cpp ---
/* Copyright 2001-2004 The Apache Software Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <unistd.h>
#include <string.h>
#include <syslog.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#include <nss.h>
#include <nspr.h>
#include <secitem.h>
#include <prtypes.h>
#include <seccomon.h>
#include <pk11func.h>
#include <secmod.h>
#include "client.h"
#include "client_err.h"
union semun {
int val;
struct semid_ds *buf;
unsigned short *array;
struct seminfo *__buf;
};
const PRTime oneminute = 50000000;
/*
* Node - for maintaining link list of tokens with cached PINs
*/
typedef struct Node Node;
struct Node
{
Node *next;
char *url;
void *data;
int len;
int errnum;
PRTime fetchtime;
};
/*
* Node implementation
*/
static void freeNode(Node *node)
{
free(node->url);
free(node->data);
free(node);
}
static void freeList(Node *list)
{
Node *n1;
Node *n2;
n1 = list;
while (n1) {
n2 = n1;
n1 = n2->next;
freeNode(n2);
}
}
#ifdef DEBUG
static void printList(Node *list)
{
Node *n1;
int count = 0;
n1 = list;
fprintf(stderr, "Node list:\n");
while (n1) {
fprintf(stderr, "%lld: %s (%d)\n", n1->fetchtime, n1->url, n1->len);
n1 = n1->next;
count++;
}
fprintf(stderr, "%d Nodes\n", count);
}
#endif
/* global variables */
Node *urlcache = NULL;
int main(int argc, char ** argv)
{
SECStatus rv;
PRInt32 numfds;
PRFileDesc *in;
PRFileDesc *out;
PRPollDesc pd;
PRIntervalTime timeout = PR_INTERVAL_NO_TIMEOUT;
int semid;
union semun semarg;
char buf[4096];
char url[4096];
PRTime lastfetchtime;
PRTime now;
PRInt32 nBytes;
int fdlimit = sysconf(_SC_OPEN_MAX);
int fd;
void *data = NULL;
PRInt32 len = 0;
PRInt32 errnum = -1;
/* Close all fds but stdin, stdout and stderr */
fd = 3;
while (fd < fdlimit)
close(fd++);
if (argc < 3 || argc > 4) {
fprintf(stderr, "Usage: crlhelper <semid> <directory> <prefix>\n");
exit(1);
}
semid = strtol(argv[1], NULL, 10);
/* Initialize NSPR */
PR_Init(PR_USER_THREAD, PR_PRIORITY_NORMAL, 256);
/* Initialize NSS and open the certificate database read-only. */
rv = NSS_Initialize(argv[2], argc == 4 ? argv[3] : NULL, argc == 4 ? argv[3] : NULL, "secmod.db", NSS_INIT_READONLY);
if (rv != SECSuccess) {
fprintf(stderr, "Unable to initialize NSS database: %d\n", rv);
exit(1);
}
in = PR_GetSpecialFD(PR_StandardInput);
out = PR_GetSpecialFD(PR_StandardOutput);
if (in == NULL || out == NULL) {
fprintf(stderr, "PR_GetInheritedFD failed\n");
exit(1);
}
pd.fd = in;
pd.in_flags = PR_POLL_READ | PR_POLL_EXCEPT;
while (1) {
char outbuf[32];
numfds = PR_Poll(&pd, 1, timeout);
if (numfds == -1) { /* PR_Poll failed */
break;
}
if (pd.out_flags & (PR_POLL_HUP | PR_POLL_ERR | PR_POLL_NVAL | PR_POLL_EXCEPT)) {
break;
}
if (pd.out_flags & PR_POLL_READ) {
Node *node;
Node *prev;
PRBool expired;
memset(buf, 0, sizeof(buf));
nBytes = PR_Read(in, buf, sizeof(buf));
if (nBytes == 0) {
break;
}
if (nBytes == -1) {
syslog(LOG_ERR, "PR_Read failed: %d", PR_GetError());
goto done;
}
lastfetchtime=0;
if ((sscanf(buf, "%lld %s", &lastfetchtime, url)) != 2) {
syslog(LOG_ERR, "Invalid request: %s", buf);
goto done;
}
if (url[strlen(url)-1] == '\n') /* for interactive testing */
url[strlen(url)-1] = '\0';
#ifdef DEBUG
if (!(strcmp(url, "p"))) {
printList(urlcache);
continue;
}
#endif
/*
* TODO:
* - expire cache entries
*/
data = NULL;
errnum = -1;
len = 0;
prev = NULL;
expired = PR_FALSE;
for (node = urlcache; node != NULL; node = node->next) {
if (!strcmp(node->url, url)) {
PRTime now = PR_Now();
/* 60 seconds is the minimum amount of time we
* wait before re-fetching a CRL (crlmanager.cpp). So
* we'll set the difference here at 50 seconds to be
* on the safe side. We don't really want cache choices
* made here but we want to limit the number of
* requests.
*/
if (now - node->fetchtime < oneminute) {
data = node->data;
len = node->len;
errnum = node->errnum;
goto done;
} else {
expired = PR_TRUE;
break;
}
} else {
prev = node;
}
}
if (NULL == data) {
data = fetch_url(url, 30, lastfetchtime, &len, &errnum);
if (expired)
if (errnum == CL_NOUPDATE_AVAILABLE) {
node->fetchtime = PR_Now();
data = node->data;
len = node->len;
node->errnum = errnum;
goto done;
} else {
if (prev) {
prev->next = node->next;
} else {
urlcache = node->next;
}
freeNode(node);
}
if (data) {
node = (Node *)malloc(sizeof(Node));
if (!node) {
syslog(LOG_ERR, "failed to alloc node");
goto done;
}
node->url = strdup(url);
node->data = (void *)malloc(len);
if (!node->data) {
syslog(LOG_ERR, "failed to alloc %d bytes", len);
goto done;
}
node->len = len;
memcpy(node->data, data, len);
free_url(data);
data = node->data;
node->fetchtime = PR_Now();
node->errnum = errnum;
if (urlcache)
node->next = urlcache;
else
node->next = NULL;
urlcache = node;
}
}
/*
* The output protocol is:
* errnum
* space
* len
* space
* bytes
*/
done:
sprintf(outbuf, "%d %d ", errnum, len);
if ((PR_Write(out, outbuf, strlen(outbuf))) == -1) {
syslog(LOG_ERR, "PR_Write failed: %d", PR_GetError());
}
if ((PR_Write(out, data, len)) == -1) {
syslog(LOG_ERR, "PR_Write failed: %d", PR_GetError());
}
} /* end POLL */
} /* end while */
freeList(urlcache);
PR_Close(in);
NSS_Shutdown();
/* Remove the semaphore used for locking here. This is because this
* program only goes away when Apache shuts down so we don't have to
* worry about reloads.
*/
semctl(semid, 0, IPC_RMID, semarg);
return 0;
}
Index: Makefile.am
===================================================================
RCS file: /cvs/dirsec/mod_revocator/Makefile.am,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- Makefile.am 17 Oct 2006 20:42:03 -0000 1.5
+++ Makefile.am 13 Apr 2010 14:11:09 -0000 1.6
@@ -17,7 +17,7 @@
# relink after the "main" link using the C++ compiler. On Solaris ar
# fails if the object isn't in the library, so be very careful about
# removing it.
-all-local: libnssckfw2.a relink ldapget
+all-local: libnssckfw2.a relink ldapget crlhelper
libnssckfw2.a:
cp @nss_lib_dir(a)/libnssckfw.a libnssckfw2.a
@@ -29,20 +29,32 @@
# The environment variable $CRUNTIME needs to be set to -library=Crun
# on Solaris systems.
relink: librevocation.la libnssckfw2.a
- rm -f .libs/librevocation.so.$(LIB_VERSION)
- $(CXX) $(SHARED_LINK) -Wl,-soname,librevocation.so.0 $(am_librevocation_la_OBJECTS) $(LIBS) libnssckfw2.a -lnssb -o .libs/librevocation.so.$(LIB_VERSION) $(CRUNTIME)
+# rm -f .libs/librevocation.so.$(LIB_VERSION)
+# $(CXX) $(SHARED_LINK) -Wl,-soname,librevocation.so.0 $(am_librevocation_la_OBJECTS) $(LIBS) libnssckfw2.a -lnssb -o .libs/librevocation.so.$(LIB_VERSION) $(CRUNTIME)
+ rm -f .libs/librevocation.so*
+ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+ $(CXXFLAGS) $(librevocation_la_LDFLAGS) $(LDFLAGS) -o librevocation.la \
+ -rpath $(libdir) $(librevocation_la_OBJECTS) $(librevocation_la_LIBADD) $(LIBS) libnssckfw2.a -lnssb
+
+install-exec-local: all-local
+ install -m 755 ldapget $(bindir)
+ install -m 755 crlhelper $(bindir)
clean-local:
- -rm -f libnssckfw2.a ldapget
+ -rm -f libnssckfw2.a ldapget crlhelper
# Unit test program for fetching data from LDAP URLs. The average user won't
# need to compile or execute this but it is useful enough to keep around.
# This uses the local .libs directory to link against, assuming that the
# revocation library been installed globally yet.
ldaptest:
- $(CXX) ldaptest.cpp client.o ldap-client.o unescape.o -o ldaptest $(INCLUDES) $(LIBS) -L .libs/ -lrevocation
+ $(CXX) $(CXXFLAGS) ldaptest.cpp client.o ldap-client.o unescape.o -o ldaptest $(INCLUDES) $(LIBS) -L .libs/ -lrevocation
# This program is used to retrieve data from an LDAP URL and return the
# attribute data over stdout. It is used in conjunction with an exec:// URL
ldapget: ldapget.cpp relink
- $(CXX) ldapget.cpp client.o ldap-client.o unescape.o -o ldapget $(INCLUDES) $(LIBS) libnssckfw2.a -L .libs/ -lrevocation
+ $(CXX) $(CXXFLAGS) ldapget.cpp client.o ldap-client.o http-client.o unescape.o -o ldapget $(INCLUDES) $(LIBS) libnssckfw2.a -L .libs/ -lrevocation
+
+crlhelper: crlhelper.cpp relink
+ $(CXX) $(CXXFLAGS) crlhelper.cpp client.o ldap-client.o http-client.o unescape.o -o crlhelper $(INCLUDES) $(LIBS) libnssckfw2.a -L .libs/ -lrevocation
Index: configure.in
===================================================================
RCS file: /cvs/dirsec/mod_revocator/configure.in,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- configure.in 17 Oct 2006 20:42:03 -0000 1.4
+++ configure.in 13 Apr 2010 14:11:10 -0000 1.5
@@ -24,11 +24,6 @@
# Check for typedefs, structures, and compiler characteristics.
AC_C_CONST
-# Find lex and yacc (or flex and bison)
-AC_PROG_YACC
-AC_PROG_LEX
-AC_DECL_YYTEXT
-
AC_CHECKING(for apr-config)
# check for --with-apr-config
AC_MSG_CHECKING(for --with-apr-config)
@@ -229,9 +224,14 @@
AC_PATH_PROG(PKG_CONFIG, pkg-config)
if test -n "$PKG_CONFIG"; then
if $PKG_CONFIG --exists nss; then
+ allow_libs=$PKG_CONFIG_ALLOW_SYSTEM_LIBS
+ PKG_CONFIG_ALLOW_SYSTEM_LIBS=1
+ export PKG_CONFIG_ALLOW_SYSTEM_LIBS
nss_inc=`$PKG_CONFIG --cflags-only-I nss`
nss_lib=`$PKG_CONFIG --libs-only-L nss`
- nss_lib_dir=$nss_lib
+ nss_lib_dir=`echo $nss_lib | sed 's/-L//' | sed s'/ //g'`
+ PKG_CONFIG_ALLOW_SYSTEM_LIBS=$allow_libs
+ export PKG_CONFIG_ALLOW_SYSTEM_LIBS
if test "$nss_lib" = " "; then
nss_lib=-L"/usr/lib"
nss_lib_dir="/usr/lib"
@@ -321,8 +321,8 @@
# Set the LDAP library we're using
if test "$openldap" != yes; then
extra_cppflags="$extra_cppflags -DMOZILLA_LDAP"
- ldapsdk_libs_ssl="-lssldap50"
- ldapsdk_libs="-lldap50 -lprldap50"
+ ldapsdk_libs_ssl="-lssldap60"
+ ldapsdk_libs="-lldap60 -lprldap60"
else
ldapsdk_libs_ssl=""
ldapsdk_libs="-lldap"
View full diff with command:
/usr/bin/cvs -f diff -kk -u -N -r 1.5 -r 1.6 aclocal.m4
Index: aclocal.m4
===================================================================
RCS file: /cvs/dirsec/mod_revocator/aclocal.m4,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- aclocal.m4 17 Oct 2006 20:42:03 -0000 1.5
+++ aclocal.m4 13 Apr 2010 14:11:10 -0000 1.6
@@ -1,7 +1,7 @@
-# aclocal.m4 generated automatically by aclocal 1.6.3 -*- Autoconf -*-
+# generated automatically by aclocal 1.10.1 -*- Autoconf -*-
-# Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002
-# Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -11,4389 +11,7426 @@
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
-# Do all the work for Automake. -*- Autoconf -*-
-
-# This macro actually does too much some checks are only needed if
-# your package does certain things. But this isn't really a big deal.
-
-# Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002
-# Free Software Foundation, Inc.
+m4_ifndef([AC_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+m4_if(AC_AUTOCONF_VERSION, [2.63],,
+[m4_warning([this file was generated for autoconf 2.63.
+You have another version of autoconf. It may work, but is not guaranteed to.
+If you have problems, you may need to regenerate the build system entirely.
+To do so, use the procedure documented by the package, typically `autoreconf'.])])
+
+# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
+
+# serial 51 AC_PROG_LIBTOOL
+
+
+# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
+# -----------------------------------------------------------
+# If this macro is not defined by Autoconf, define it here.
+m4_ifdef([AC_PROVIDE_IFELSE],
+ [],
+ [m4_define([AC_PROVIDE_IFELSE],
+ [m4_ifdef([AC_PROVIDE_$1],
+ [$2], [$3])])])
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
+# AC_PROG_LIBTOOL
+# ---------------
+AC_DEFUN([AC_PROG_LIBTOOL],
+[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl
+dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX
+dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX.
+ AC_PROVIDE_IFELSE([AC_PROG_CXX],
+ [AC_LIBTOOL_CXX],
+ [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX
+ ])])
+dnl And a similar setup for Fortran 77 support
+ AC_PROVIDE_IFELSE([AC_PROG_F77],
+ [AC_LIBTOOL_F77],
+ [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77
+])])
+
+dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly.
+dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run
+dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both.
+ AC_PROVIDE_IFELSE([AC_PROG_GCJ],
+ [AC_LIBTOOL_GCJ],
+ [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
+ [AC_LIBTOOL_GCJ],
+ [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],
+ [AC_LIBTOOL_GCJ],
+ [ifdef([AC_PROG_GCJ],
+ [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])
+ ifdef([A][M_PROG_GCJ],
+ [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])])
+ ifdef([LT_AC_PROG_GCJ],
+ [define([LT_AC_PROG_GCJ],
+ defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])])
+])])# AC_PROG_LIBTOOL
+
+
+# _AC_PROG_LIBTOOL
+# ----------------
+AC_DEFUN([_AC_PROG_LIBTOOL],
+[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
-# serial 8
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+AC_SUBST(LIBTOOL)dnl
-# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
-# written in clear, in which case automake, when reading aclocal.m4,
-# will think it sees a *use*, and therefore will trigger all it's
-# C support machinery. Also note that it means that autoscan, seeing
-# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+# Prevent multiple expansion
+define([AC_PROG_LIBTOOL], [])
+])# _AC_PROG_LIBTOOL
-AC_PREREQ([2.52])
+# AC_LIBTOOL_SETUP
+# ----------------
+AC_DEFUN([AC_LIBTOOL_SETUP],
+[AC_PREREQ(2.50)dnl
+AC_REQUIRE([AC_ENABLE_SHARED])dnl
+AC_REQUIRE([AC_ENABLE_STATIC])dnl
+AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_LD])dnl
+AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl
+AC_REQUIRE([AC_PROG_NM])dnl
-# Autoconf 2.50 wants to disallow AM_ names. We explicitly allow
-# the ones we care about.
-m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+AC_REQUIRE([AC_PROG_LN_S])dnl
+AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl
+# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
+AC_REQUIRE([AC_OBJEXT])dnl
+AC_REQUIRE([AC_EXEEXT])dnl
+dnl
-# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
-# AM_INIT_AUTOMAKE([OPTIONS])
-# -----------------------------------------------
-# The call with PACKAGE and VERSION arguments is the old style
-# call (pre autoconf-2.50), which is being phased out. PACKAGE
-# and VERSION should now be passed to AC_INIT and removed from
-# the call to AM_INIT_AUTOMAKE.
-# We support both call styles for the transition. After
-# the next Automake release, Autoconf can make the AC_INIT
-# arguments mandatory, and then we can depend on a new Autoconf
-# release and drop the old call support.
-AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
- AC_REQUIRE([AC_PROG_INSTALL])dnl
-# test to see if srcdir already configured
-if test "`cd $srcdir && pwd`" != "`pwd`" &&
- test -f $srcdir/config.status; then
- AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
-fi
+AC_LIBTOOL_SYS_MAX_CMD_LEN
+AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+AC_LIBTOOL_OBJDIR
-# Define the identity of the package.
-dnl Distinguish between old-style and new-style calls.
-m4_ifval([$2],
-[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
- AC_SUBST([PACKAGE], [$1])dnl
- AC_SUBST([VERSION], [$2])],
-[_AM_SET_OPTIONS([$1])dnl
- AC_SUBST([PACKAGE], [AC_PACKAGE_TARNAME])dnl
- AC_SUBST([VERSION], [AC_PACKAGE_VERSION])])dnl
+AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+_LT_AC_PROG_ECHO_BACKSLASH
-_AM_IF_OPTION([no-define],,
-[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
- AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
+case $host_os in
+aix3*)
+ # AIX sometimes has problems with the GCC collect2 program. For some
+ # reason, if we set the COLLECT_NAMES environment variable, the problems
+ # vanish in a puff of smoke.
+ if test "X${COLLECT_NAMES+set}" != Xset; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+ fi
+ ;;
+esac
[...10895 lines suppressed...]
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
-# old names
-AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL])
-AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
-AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
-AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
-AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
-AC_DEFUN([AM_PROG_LD], [AC_PROG_LD])
-AC_DEFUN([AM_PROG_NM], [AC_PROG_NM])
+# _AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
+# This macro is traced by Automake.
+AC_DEFUN([_AM_SUBST_NOTMAKE])
-# This is just to silence aclocal about the macro not being used
-ifelse([AC_DISABLE_FAST_INSTALL])
+# Check how to create a tarball. -*- Autoconf -*-
-# NOTE: This macro has been submitted for inclusion into #
-# GNU Autoconf as AC_PROG_SED. When it is available in #
-# a released version of Autoconf we should remove this #
-# macro and use it instead. #
-# LT_AC_PROG_SED
-# --------------
-# Check for a fully-functional sed program, that truncates
-# as few characters as possible. Prefer GNU sed if found.
-AC_DEFUN([LT_AC_PROG_SED],
-[AC_MSG_CHECKING([for a sed that does not truncate output])
-AC_CACHE_VAL(lt_cv_path_SED,
-[# Loop through the user's path and test for sed and gsed.
-# Then use that list of sed's as ones to test for truncation.
-as_executable_p="test -f"
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
+# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# _AM_PROG_TAR(FORMAT)
+# --------------------
+# Check how to create a tarball in format FORMAT.
+# FORMAT should be one of `v7', `ustar', or `pax'.
+#
+# Substitute a variable $(am__tar) that is a command
+# writing to stdout a FORMAT-tarball containing the directory
+# $tardir.
+# tardir=directory && $(am__tar) > result.tar
+#
+# Substitute a variable $(am__untar) that extract such
+# a tarball read from stdin.
+# $(am__untar) < result.tar
+AC_DEFUN([_AM_PROG_TAR],
+[# Always define AMTAR for backward compatibility.
+AM_MISSING_PROG([AMTAR], [tar])
+m4_if([$1], [v7],
+ [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
+ [m4_case([$1], [ustar],, [pax],,
+ [m4_fatal([Unknown tar format])])
+AC_MSG_CHECKING([how to create a $1 tar archive])
+# Loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+_am_tools=${am_cv_prog_tar_$1-$_am_tools}
+# Do not fold the above two line into one, because Tru64 sh and
+# Solaris sh will not grok spaces in the rhs of `-'.
+for _am_tool in $_am_tools
do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in sed gsed; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
- _sed_list="$_sed_list $as_dir/$ac_prog$ac_exec_ext"
- fi
+ case $_am_tool in
+ gnutar)
+ for _am_tar in tar gnutar gtar;
+ do
+ AM_RUN_LOG([$_am_tar --version]) && break
done
- done
-done
+ am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+ am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+ am__untar="$_am_tar -xf -"
+ ;;
+ plaintar)
+ # Must skip GNU tar: if it does not support --format= it doesn't create
+ # ustar tarball either.
+ (tar --version) >/dev/null 2>&1 && continue
+ am__tar='tar chf - "$$tardir"'
+ am__tar_='tar chf - "$tardir"'
+ am__untar='tar xf -'
+ ;;
+ pax)
+ am__tar='pax -L -x $1 -w "$$tardir"'
+ am__tar_='pax -L -x $1 -w "$tardir"'
+ am__untar='pax -r'
+ ;;
+ cpio)
+ am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+ am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+ am__untar='cpio -i -H $1 -d'
+ ;;
+ none)
+ am__tar=false
+ am__tar_=false
+ am__untar=false
+ ;;
+ esac
- # Create a temporary directory, and hook for its removal unless debugging.
-$debug ||
-{
- trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
- trap '{ (exit 1); exit 1; }' 1 2 13 15
-}
+ # If the value was cached, stop now. We just wanted to have am__tar
+ # and am__untar set.
+ test -n "${am_cv_prog_tar_$1}" && break
-# Create a (secure) tmp directory for tmp files.
-: ${TMPDIR=/tmp}
-{
- tmp=`(umask 077 && mktemp -d -q "$TMPDIR/sedXXXXXX") 2>/dev/null` &&
- test -n "$tmp" && test -d "$tmp"
-} ||
-{
- tmp=$TMPDIR/sed$$-$RANDOM
- (umask 077 && mkdir $tmp)
-} ||
-{
- echo "$me: cannot create a temporary directory in $TMPDIR" >&2
- { (exit 1); exit 1; }
-}
- _max=0
- _count=0
- # Add /usr/xpg4/bin/sed as it is typically found on Solaris
- # along with /bin/sed that truncates output.
- for _sed in $_sed_list /usr/xpg4/bin/sed; do
- test ! -f ${_sed} && break
- cat /dev/null > "$tmp/sed.in"
- _count=0
- echo ${ECHO_N-$ac_n} "0123456789${ECHO_C-$ac_c}" >"$tmp/sed.in"
- # Check for GNU sed and select it if it is found.
- if "${_sed}" --version 2>&1 < /dev/null | egrep '(GNU)' > /dev/null; then
- lt_cv_path_SED=${_sed}
- break
- fi
- while true; do
- cat "$tmp/sed.in" "$tmp/sed.in" >"$tmp/sed.tmp"
- mv "$tmp/sed.tmp" "$tmp/sed.in"
- cp "$tmp/sed.in" "$tmp/sed.nl"
- echo >>"$tmp/sed.nl"
- ${_sed} -e 's/a$//' < "$tmp/sed.nl" >"$tmp/sed.out" || break
- cmp -s "$tmp/sed.out" "$tmp/sed.nl" || break
- # 40000 chars as input seems more than enough
- test $_count -gt 10 && break
- _count=`expr $_count + 1`
- if test $_count -gt $_max; then
- _max=$_count
- lt_cv_path_SED=$_sed
- fi
- done
- done
- rm -rf "$tmp"
-])
-if test "X$SED" != "X"; then
- lt_cv_path_SED=$SED
-else
- SED=$lt_cv_path_SED
-fi
-AC_MSG_RESULT([$SED])
-])
+ # tar/untar a dummy directory, and stop if the command works
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ echo GrepMe > conftest.dir/file
+ AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+ rm -rf conftest.dir
+ if test -s conftest.tar; then
+ AM_RUN_LOG([$am__untar <conftest.tar])
+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+ fi
+done
+rm -rf conftest.dir
+
+AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+AC_SUBST([am__tar])
+AC_SUBST([am__untar])
+]) # _AM_PROG_TAR
Index: Makefile.in
===================================================================
RCS file: /cvs/dirsec/mod_revocator/Makefile.in,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- Makefile.in 17 Oct 2006 20:42:03 -0000 1.5
+++ Makefile.in 13 Apr 2010 14:11:10 -0000 1.6
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.6.3 from Makefile.am.
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -13,225 +13,303 @@
# PARTICULAR PURPOSE.
@SET_MAKE@
-SHELL = @SHELL@
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = .
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_DATA = @INSTALL_DATA@
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA)
-transform = @program_transform_name@
+transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
-host_alias = @host_alias@
+build_triplet = @build@
host_triplet = @host@
-
-EXEEXT = @EXEEXT@
-OBJEXT = @OBJEXT@
-PATH_SEPARATOR = @PATH_SEPARATOR@
+subdir = .
+DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.in $(top_srcdir)/configure AUTHORS COPYING \
+ ChangeLog INSTALL NEWS config.guess config.sub depcomp \
+ install-sh ltmain.sh missing mkinstalldirs
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno config.status.lineno
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_CLEAN_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(libdir)"
+libLTLIBRARIES_INSTALL = $(INSTALL)
+LTLIBRARIES = $(lib_LTLIBRARIES)
+libmodrev_la_LIBADD =
+am_libmodrev_la_OBJECTS = mod_rev.lo
+libmodrev_la_OBJECTS = $(am_libmodrev_la_OBJECTS)
+libmodrev_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libmodrev_la_LDFLAGS) $(LDFLAGS) -o $@
+librevocation_la_LIBADD =
+am_librevocation_la_OBJECTS = revocation.lo crlmanager.lo rinst.lo \
+ rslot.lo anchor.lo constants.lo rtoken.lo rsession.lo \
+ robject.lo rfind.lo http-client.lo ldap-client.lo \
+ exec-client.lo client.lo nsprstub.lo rev_core.lo revhelper.lo \
+ encode.lo unescape.lo
+librevocation_la_OBJECTS = $(am_librevocation_la_OBJECTS)
+librevocation_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+ $(CXXFLAGS) $(librevocation_la_LDFLAGS) $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I.@am__isrc@
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(libmodrev_la_SOURCES) $(librevocation_la_SOURCES)
+DIST_SOURCES = $(libmodrev_la_SOURCES) $(librevocation_la_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+am__remove_distdir = \
+ { test ! -d $(distdir) \
+ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
+ && rm -fr $(distdir); }; }
+DIST_ARCHIVES = $(distdir).tar.gz
+GZIP_ENV = --best
+distuninstallcheck_listfiles = find . -type f -print
+distcleancheck_listfiles = find . -type f -print
+ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
APR_CONFIG = @APR_CONFIG@
APXS = @APXS@
-AS = @AS@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = -D__REVOCATION_IMPLEMENTATION__=1 @extra_cppflags@
DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @ldapsdk_lib@ @nspr_lib@ @nss_lib@ @ldapsdk_libs_ssl@ -lssl3 -lsmime3 -lnss3 -lnssb @ldapsdk_libs@ -lplc4 -lplds4 -lnspr4 -lpthread -ldl
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
-OBJDUMP = @OBJDUMP@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
SHARED_LINK = @SHARED_LINK@
+SHELL = @SHELL@
STRIP = @STRIP@
VERSION = @VERSION@
-YACC = @YACC@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
am__include = @am__include@
+am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
apache_bin = @apache_bin@
apache_conf = @apache_conf@
apache_inc = @apache_inc@
apache_prefix = @apache_prefix@
apr_inc = @apr_inc@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
extra_cppflags = @extra_cppflags@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
install_sh = @install_sh@
ldapsdk_inc = @ldapsdk_inc@
ldapsdk_lib = @ldapsdk_lib@
ldapsdk_libs = @ldapsdk_libs@
ldapsdk_libs_ssl = @ldapsdk_libs_ssl@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
nspr_inc = @nspr_inc@
nspr_lib = @nspr_lib@
nss_inc = @nss_inc@
nss_lib = @nss_lib@
nss_lib_dir = @nss_lib_dir@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
lib_LTLIBRARIES = librevocation.la libmodrev.la
-
librevocation_la_SOURCES = revocation.cpp crlmanager.cpp rinst.cpp rslot.cpp anchor.cpp constants.c rtoken.cpp rsession.cpp robject.cpp rfind.cpp http-client.cpp ldap-client.cpp exec-client.cpp client.cpp nsprstub.cpp rev_core.cpp revhelper.cpp encode.cpp unescape.cpp
-
librevocation_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version`
LIB_VERSION = `grep -v '^\#' $(srcdir)/libtool-version | sed 's/:/./g'`
-
libmodrev_la_SOURCES = mod_rev.c
-
libmodrev_la_LDFLAGS = -module -avoid-version
-
INCLUDES = -I@apache_inc@ @nspr_inc@ @nss_inc@ @apr_inc@ -Imozilla/security/nss/lib/base @ldapsdk_inc@ -Imozilla/security/nss/lib/ckfw
-LIBS = @ldapsdk_lib@ @nspr_lib@ @nss_lib@ @ldapsdk_libs_ssl@ -lssl3 -lsmime3 -lnss3 -lnssb @ldapsdk_libs@ -lplc4 -lplds4 -lnspr4 -lpthread -ldl
-DEFS = -D__REVOCATION_IMPLEMENTATION__=1 @extra_cppflags@
-subdir = .
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_CLEAN_FILES =
-LTLIBRARIES = $(lib_LTLIBRARIES)
-
-libmodrev_la_LIBADD =
-am_libmodrev_la_OBJECTS = mod_rev.lo
-libmodrev_la_OBJECTS = $(am_libmodrev_la_OBJECTS)
-librevocation_la_LIBADD =
-am_librevocation_la_OBJECTS = revocation.lo crlmanager.lo rinst.lo \
- rslot.lo anchor.lo constants.lo rtoken.lo rsession.lo \
- robject.lo rfind.lo http-client.lo ldap-client.lo \
- exec-client.lo client.lo nsprstub.lo rev_core.lo revhelper.lo \
- encode.lo unescape.lo
-librevocation_la_OBJECTS = $(am_librevocation_la_OBJECTS)
-DEFAULT_INCLUDES = -I. -I$(srcdir)
-CPPFLAGS = @CPPFLAGS@
-LDFLAGS = @LDFLAGS@
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/anchor.Plo ./$(DEPDIR)/client.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/constants.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/crlmanager.Plo ./$(DEPDIR)/encode.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/exec-client.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/http-client.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/ldap-client.Plo ./$(DEPDIR)/mod_rev.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/nsprstub.Plo ./$(DEPDIR)/rev_core.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/revhelper.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/revocation.Plo ./$(DEPDIR)/rfind.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/rinst.Plo ./$(DEPDIR)/robject.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/rsession.Plo ./$(DEPDIR)/rslot.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/rtoken.Plo ./$(DEPDIR)/unescape.Plo
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \
- $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(AM_LDFLAGS) $(LDFLAGS) -o $@
-CFLAGS = @CFLAGS@
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) \
- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CXXFLAGS) $(CXXFLAGS)
-CXXLD = $(CXX)
-CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
- $(AM_LDFLAGS) $(LDFLAGS) -o $@
-CXXFLAGS = @CXXFLAGS@
-DIST_SOURCES = $(libmodrev_la_SOURCES) $(librevocation_la_SOURCES)
-DIST_COMMON = README AUTHORS COPYING ChangeLog INSTALL Makefile.am \
- Makefile.in NEWS aclocal.m4 config.guess config.sub configure \
- configure.in depcomp install-sh ltmain.sh missing mkinstalldirs
-SOURCES = $(libmodrev_la_SOURCES) $(librevocation_la_SOURCES)
-
all: all-am
.SUFFIXES:
.SUFFIXES: .c .cpp .lo .o .obj
-
-am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
- configure.lineno
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+am--refresh:
+ @:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \
+ cd $(srcdir) && $(AUTOMAKE) --gnu \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ echo ' $(SHELL) ./config.status'; \
+ $(SHELL) ./config.status;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+ esac;
-$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck
-$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
- cd $(srcdir) && $(AUTOCONF)
-$(ACLOCAL_M4): configure.in
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(srcdir) && $(AUTOCONF)
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
-libLTLIBRARIES_INSTALL = $(INSTALL)
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
@$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(libdir)
+ test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
- echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(libdir)/$$f"; \
- $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(libdir)/$$f; \
+ f=$(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
else :; fi; \
done
uninstall-libLTLIBRARIES:
@$(NORMAL_UNINSTALL)
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
- p="`echo $$p | sed -e 's|^.*/||'`"; \
- echo " $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p"; \
- $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \
+ p=$(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \
done
clean-libLTLIBRARIES:
-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
- test -z "$dir" && dir=.; \
+ test "$$dir" != "$$p" || dir=.; \
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
libmodrev.la: $(libmodrev_la_OBJECTS) $(libmodrev_la_DEPENDENCIES)
- $(LINK) -rpath $(libdir) $(libmodrev_la_LDFLAGS) $(libmodrev_la_OBJECTS) $(libmodrev_la_LIBADD) $(LIBS)
+ $(libmodrev_la_LINK) -rpath $(libdir) $(libmodrev_la_OBJECTS) $(libmodrev_la_LIBADD) $(LIBS)
librevocation.la: $(librevocation_la_OBJECTS) $(librevocation_la_DEPENDENCIES)
- $(CXXLINK) -rpath $(libdir) $(librevocation_la_LDFLAGS) $(librevocation_la_OBJECTS) $(librevocation_la_LIBADD) $(LIBS)
+ $(librevocation_la_LINK) -rpath $(libdir) $(librevocation_la_OBJECTS) $(librevocation_la_LIBADD) $(LIBS)
mostlyclean-compile:
- -rm -f *.$(OBJEXT) core *.core
+ -rm -f *.$(OBJEXT)
distclean-compile:
-rm -f *.tab.c
@@ -257,46 +335,47 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rtoken.Plo(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unescape.Plo(a)am__quote@
-distclean-depend:
- -rm -rf ./$(DEPDIR)
-
.c.o:
-@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- $(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$<
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c $<
.c.obj:
-@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- $(COMPILE) -c `cygpath -w $<`
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
.c.lo:
-@AMDEP_TRUE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- $(LTCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
-CCDEPMODE = @CCDEPMODE@
+@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
.cpp.o:
-@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- $(CXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
.cpp.obj:
-@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- $(CXXCOMPILE) -c -o $@ `cygpath -w $<`
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.cpp.lo:
-@AMDEP_TRUE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- $(LTCXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
-CXXDEPMODE = @CXXDEPMODE@
+@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
mostlyclean-libtool:
-rm -f *.lo
@@ -306,21 +385,16 @@
distclean-libtool:
-rm -f libtool
-uninstall-info-am:
-
-ETAGS = etags
-ETAGSFLAGS =
-
-tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
+ $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
+tags: TAGS
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
@@ -330,10 +404,25 @@
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(ETAGS_ARGS)$$tags$$unique" \
- || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique
GTAGS:
@@ -342,33 +431,26 @@
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = .
-distdir = $(PACKAGE)-$(VERSION)
-
-am__remove_distdir = \
- { test ! -d $(distdir) \
- || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
- && rm -fr $(distdir); }; }
-
-GZIP_ENV = --best
-distcleancheck_listfiles = find . -type f -print
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
$(am__remove_distdir)
- mkdir $(distdir)
- @list='$(DISTFILES)'; for file in $$list; do \
+ test -d $(distdir) || mkdir $(distdir)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
fi; \
@@ -382,29 +464,63 @@
-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
- ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
+ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r $(distdir)
dist-gzip: distdir
- $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ $(am__remove_distdir)
+
+dist-bzip2: distdir
+ tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+ $(am__remove_distdir)
+
+dist-lzma: distdir
+ tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
+ $(am__remove_distdir)
+
+dist-tarZ: distdir
+ tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+ $(am__remove_distdir)
+
+dist-shar: distdir
+ shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+ $(am__remove_distdir)
+
+dist-zip: distdir
+ -rm -f $(distdir).zip
+ zip -rq $(distdir).zip $(distdir)
$(am__remove_distdir)
dist dist-all: distdir
- $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
# This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another
# tarfile.
distcheck: dist
- $(am__remove_distdir)
- GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf -
+ case '$(DIST_ARCHIVES)' in \
+ *.tar.gz*) \
+ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
+ *.tar.bz2*) \
+ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
+ *.tar.lzma*) \
+ unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\
+ *.tar.Z*) \
+ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+ *.shar.gz*) \
+ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
+ *.zip*) \
+ unzip $(distdir).zip ;;\
+ esac
chmod -R a-w $(distdir); chmod a+w $(distdir)
- mkdir $(distdir)/=build
- mkdir $(distdir)/=inst
+ mkdir $(distdir)/_build
+ mkdir $(distdir)/_inst
chmod a-w $(distdir)
- dc_install_base=`$(am__cd) $(distdir)/=inst && pwd` \
- && cd $(distdir)/=build \
- && ../configure --srcdir=.. --prefix=$$dc_install_base \
+ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+ && cd $(distdir)/_build \
+ && ../configure --srcdir=.. --prefix="$$dc_install_base" \
$(DISTCHECK_CONFIGURE_FLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
@@ -412,32 +528,49 @@
&& $(MAKE) $(AM_MAKEFLAGS) install \
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
- && (test `find $$dc_install_base -type f -print | wc -l` -le 1 \
- || { echo "ERROR: files left after uninstall:" ; \
- find $$dc_install_base -type f -print ; \
- exit 1; } >&2 ) \
- && $(MAKE) $(AM_MAKEFLAGS) dist-gzip \
- && rm -f $(distdir).tar.gz \
+ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+ distuninstallcheck \
+ && chmod -R a-w "$$dc_install_base" \
+ && ({ \
+ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+ } || { rm -rf "$$dc_destdir"; exit 1; }) \
+ && rm -rf "$$dc_destdir" \
+ && $(MAKE) $(AM_MAKEFLAGS) dist \
+ && rm -rf $(DIST_ARCHIVES) \
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck
$(am__remove_distdir)
- @echo "$(distdir).tar.gz is ready for distribution" | \
- sed 'h;s/./=/g;p;x;p;x'
+ @(echo "$(distdir) archives ready for distribution: "; \
+ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
+distuninstallcheck:
+ @cd $(distuninstallcheck_dir) \
+ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+ || { echo "ERROR: files left after uninstall:" ; \
+ if test -n "$(DESTDIR)"; then \
+ echo " (check DESTDIR support)"; \
+ fi ; \
+ $(distuninstallcheck_listfiles) ; \
+ exit 1; } >&2
distcleancheck: distclean
- if test '$(srcdir)' = . ; then \
+ @if test '$(srcdir)' = . ; then \
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
exit 1 ; \
fi
- test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
- || { echo "ERROR: files left after distclean:" ; \
+ @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+ || { echo "ERROR: files left in build directory after distclean:" ; \
$(distcleancheck_listfiles) ; \
exit 1; } >&2
check-am: all-am
check: check-am
all-am: Makefile $(LTLIBRARIES) all-local
-
installdirs:
- $(mkinstalldirs) $(DESTDIR)$(libdir)
-
+ for dir in "$(DESTDIR)$(libdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
@@ -449,7 +582,7 @@
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -457,7 +590,7 @@
clean-generic:
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -469,30 +602,44 @@
distclean: distclean-am
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-distclean-am: clean-am distclean-compile distclean-depend \
- distclean-generic distclean-libtool distclean-tags
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-libtool distclean-tags
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
install-data-am:
-install-exec-am: install-libLTLIBRARIES
+install-dvi: install-dvi-am
+
+install-exec-am: install-exec-local install-libLTLIBRARIES
+
+install-html: install-html-am
install-info: install-info-am
install-man:
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -rf autom4te.cache
+ -rm -rf $(top_srcdir)/autom4te.cache
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -500,27 +647,41 @@
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
mostlyclean-libtool
-uninstall-am: uninstall-info-am uninstall-libLTLIBRARIES
+pdf: pdf-am
+
+pdf-am:
-.PHONY: GTAGS all all-am all-local check check-am clean clean-generic \
- clean-libLTLIBRARIES clean-libtool clean-local dist dist-all \
- dist-gzip distcheck distclean distclean-compile \
- distclean-depend distclean-generic distclean-libtool \
- distclean-tags distcleancheck distdir dvi dvi-am info info-am \
- install install-am install-data install-data-am install-exec \
- install-exec-am install-info install-info-am \
- install-libLTLIBRARIES install-man install-strip installcheck \
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-libLTLIBRARIES
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am all-local am--refresh check check-am \
+ clean clean-generic clean-libLTLIBRARIES clean-libtool \
+ clean-local ctags dist dist-all dist-bzip2 dist-gzip dist-lzma \
+ dist-shar dist-tarZ dist-zip distcheck distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distcleancheck distdir distuninstallcheck dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-exec-local install-html \
+ install-html-am install-info install-info-am \
+ install-libLTLIBRARIES install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic mostlyclean-libtool tags uninstall \
- uninstall-am uninstall-info-am uninstall-libLTLIBRARIES
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags uninstall uninstall-am uninstall-libLTLIBRARIES
# Remove nsprstub.o from libnssckfw.a so we can use our own stub, then
# relink after the "main" link using the C++ compiler. On Solaris ar
# fails if the object isn't in the library, so be very careful about
# removing it.
-all-local: libnssckfw2.a relink ldapget
+all-local: libnssckfw2.a relink ldapget crlhelper
libnssckfw2.a:
cp @nss_lib_dir(a)/libnssckfw.a libnssckfw2.a
@@ -532,23 +693,35 @@
# The environment variable $CRUNTIME needs to be set to -library=Crun
# on Solaris systems.
relink: librevocation.la libnssckfw2.a
- rm -f .libs/librevocation.so.$(LIB_VERSION)
- $(CXX) $(SHARED_LINK) -Wl,-soname,librevocation.so.0 $(am_librevocation_la_OBJECTS) $(LIBS) libnssckfw2.a -lnssb -o .libs/librevocation.so.$(LIB_VERSION) $(CRUNTIME)
+# rm -f .libs/librevocation.so.$(LIB_VERSION)
+# $(CXX) $(SHARED_LINK) -Wl,-soname,librevocation.so.0 $(am_librevocation_la_OBJECTS) $(LIBS) libnssckfw2.a -lnssb -o .libs/librevocation.so.$(LIB_VERSION) $(CRUNTIME)
+ rm -f .libs/librevocation.so*
+ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+ $(CXXFLAGS) $(librevocation_la_LDFLAGS) $(LDFLAGS) -o librevocation.la \
+ -rpath $(libdir) $(librevocation_la_OBJECTS) $(librevocation_la_LIBADD) $(LIBS) libnssckfw2.a -lnssb
+
+install-exec-local: all-local
+ install -m 755 ldapget $(bindir)
+ install -m 755 crlhelper $(bindir)
clean-local:
- -rm -f libnssckfw2.a ldapget
+ -rm -f libnssckfw2.a ldapget crlhelper
# Unit test program for fetching data from LDAP URLs. The average user won't
# need to compile or execute this but it is useful enough to keep around.
# This uses the local .libs directory to link against, assuming that the
# revocation library been installed globally yet.
ldaptest:
- $(CXX) ldaptest.cpp client.o ldap-client.o unescape.o -o ldaptest $(INCLUDES) $(LIBS) -L .libs/ -lrevocation
+ $(CXX) $(CXXFLAGS) ldaptest.cpp client.o ldap-client.o unescape.o -o ldaptest $(INCLUDES) $(LIBS) -L .libs/ -lrevocation
# This program is used to retrieve data from an LDAP URL and return the
# attribute data over stdout. It is used in conjunction with an exec:// URL
ldapget: ldapget.cpp relink
- $(CXX) ldapget.cpp client.o ldap-client.o unescape.o -o ldapget $(INCLUDES) $(LIBS) libnssckfw2.a -L .libs/ -lrevocation
+ $(CXX) $(CXXFLAGS) ldapget.cpp client.o ldap-client.o http-client.o unescape.o -o ldapget $(INCLUDES) $(LIBS) libnssckfw2.a -L .libs/ -lrevocation
+
+crlhelper: crlhelper.cpp relink
+ $(CXX) $(CXXFLAGS) crlhelper.cpp client.o ldap-client.o http-client.o unescape.o -o crlhelper $(INCLUDES) $(LIBS) libnssckfw2.a -L .libs/ -lrevocation
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
View full diff with command:
/usr/bin/cvs -f diff -kk -u -N -r 1.5 -r 1.6 configure
Index: configure
===================================================================
RCS file: /cvs/dirsec/mod_revocator/configure,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- configure 17 Oct 2006 20:42:03 -0000 1.5
+++ configure 13 Apr 2010 14:11:10 -0000 1.6
@@ -1,61 +1,145 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.57.
+# Generated by GNU Autoconf 2.63.
#
-# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
-# Free Software Foundation, Inc.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
# This configure script is free software; the Free Software Foundation
# gives unlimited permission to copy, distribute and modify it.
## --------------------- ##
## M4sh Initialization. ##
## --------------------- ##
-# Be Bourne compatible
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
emulate sh
NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
# is contrary to our usage. Disable this feature.
alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
- set -o posix
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in
+ *posix*) set -o posix ;;
+esac
+
+fi
+
+
+
+
+# PATH needs CR
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
fi
# Support unset when possible.
-if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
as_unset=unset
else
as_unset=false
fi
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+case $0 in
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ { (exit 1); exit 1; }
+fi
+
# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
+for as_var in ENV MAIL MAILPATH
+do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+done
PS1='$ '
PS2='> '
PS4='+ '
# NLS nuisances.
-for as_var in \
- LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
- LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
- LC_TELEPHONE LC_TIME
-do
- if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
- eval $as_var=C; export $as_var
- else
- $as_unset $as_var
- fi
-done
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
as_expr=expr
else
as_expr=false
fi
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
as_basename=basename
else
as_basename=false
@@ -63,194 +147,430 @@
# Name of the executable.
-as_me=`$as_basename "$0" ||
+as_me=`$as_basename -- "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)$' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
- /^X\/\(\/\/\)$/{ s//\1/; q; }
- /^X\/\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
[...26741 lines suppressed...]
- X"$mf" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$mf" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
+ X"$mf" : 'X\(//\)[^/]' \| \
+ X"$mf" : 'X\(//\)$' \| \
+ X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$mf" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
else
continue
fi
- grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue
- # Extract the definition of DEP_FILES from the Makefile without
- # running `make'.
- DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"`
+ # Extract the definition of DEPDIR, am__include, and am__quote
+ # from the Makefile without running `make'.
+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
test -z "$DEPDIR" && continue
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
+ test -z "am__include" && continue
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
# When using ansi2knr, U may be empty or an underscore; expand it
- U=`sed -n -e '/^U = / s///p' < "$mf"`
- test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR"
- # We invoke sed twice because it is the simplest approach to
- # changing $(DEPDIR) to its actual value in the expansion.
- for file in `sed -n -e '
- /^DEP_FILES = .*\\\\$/ {
- s/^DEP_FILES = //
- :loop
- s/\\\\$//
- p
- n
- /\\\\$/ b loop
- p
- }
- /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \
+ U=`sed -n 's/^U = //p' < "$mf"`
+ # Find all dependency output files, they are included files with
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
+ # simplest approach to changing $(DEPDIR) to its actual value in the
+ # expansion.
+ for file in `sed -n "
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
# Make sure the directory exists.
test -f "$dirpart/$file" && continue
- fdir=`(dirname "$file") 2>/dev/null ||
+ fdir=`$as_dirname -- "$file" ||
$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$file" : 'X\(//\)[^/]' \| \
- X"$file" : 'X\(//\)$' \| \
- X"$file" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- { if $as_mkdir_p; then
- mkdir -p $dirpart/$fdir
- else
- as_dir=$dirpart/$fdir
+ X"$file" : 'X\(//\)[^/]' \| \
+ X"$file" : 'X\(//\)$' \| \
+ X"$file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ { as_dir=$dirpart/$fdir
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
as_dirs=
- while test ! -d "$as_dir"; do
- as_dirs="$as_dir $as_dirs"
- as_dir=`(dirname "$as_dir") 2>/dev/null ||
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
done
- test ! -n "$as_dirs" || mkdir $as_dirs
- fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5
-echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;}
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
+$as_echo "$as_me: error: cannot create directory $as_dir" >&2;}
{ (exit 1); exit 1; }; }; }
-
# echo "creating $dirpart/$file"
echo '# dummy' > "$dirpart/$file"
done
done
;;
+
esac
-done
-_ACEOF
+done # for ac_tag
-cat >>$CONFIG_STATUS <<\_ACEOF
{ (exit 0); exit 0; }
_ACEOF
chmod +x $CONFIG_STATUS
ac_clean_files=$ac_clean_files_save
+test $ac_write_fail = 0 ||
+ { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;}
+ { (exit 1); exit 1; }; }
+
# configure is writing to config.log, and then calls config.status.
# config.status does its own redirection, appending to config.log.
@@ -10632,4 +21945,8 @@
# would make configure fail if this is the last instruction.
$ac_cs_success || { (exit 1); exit 1; }
fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+ { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
Index: ChangeLog
===================================================================
RCS file: /cvs/dirsec/mod_revocator/ChangeLog,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ChangeLog 5 Jun 2007 14:38:58 -0000 1.2
+++ ChangeLog 13 Apr 2010 14:11:11 -0000 1.3
@@ -1,3 +1,9 @@
+Mon Apr 12 2010 Rob Crittenden <rcritten(a)redhat.com>
+ * Change initialization model to work with NSS > 3.11.9 and mod_nss 1.0.8.
+ * Use external helper program to retrieve CRLs so every Apache child
+ won't all retrieve the same CRL from the source.
+ * tagged mod_revocator 1.0.3
+
Tue Jun 6 2007 Rob Crittenden <rcritten(a)redhat.com>
* Include If-Modified-Since header on HTTP/S requests so we don't try
to retrieve and install a CRL that hasn't changed.
Index: README
===================================================================
RCS file: /cvs/dirsec/mod_revocator/README,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- README 12 Oct 2006 14:52:15 -0000 1.3
+++ README 13 Apr 2010 14:11:11 -0000 1.4
@@ -65,8 +65,14 @@
lacks libnssb.a so it is not possible to build against that. FC5 also
doesn't ship the Mozilla LDAP SDK.
+ IMPORTANT: This is not at all well-tested against mozldap. Chances are
+ very good that it no longer works.
+
CONFIGURATION
+ CRLHelper (/path/to/crlhelper). The full path to the crlhelper program
+ which does the actual downloading of remote CRLs.
+
CRLEngine (on/off). This turns on/off CRL revocation. This actives the
automatic CRL retrieval for this server.
@@ -152,6 +158,7 @@
CRLFile http://somehost.example.com/MasterCRL.crl;60;60
CRLAgeCheck off
CRLUpdateCritical off
+ CRLHelper /usr/bin/crlhelper
DEVELOPERS
Index: client.cpp
===================================================================
RCS file: /cvs/dirsec/mod_revocator/client.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- client.cpp 5 Jun 2007 14:38:58 -0000 1.3
+++ client.cpp 13 Apr 2010 14:11:11 -0000 1.4
@@ -21,6 +21,7 @@
*
*/
+#include <unistd.h>
#include <string.h>
#include "client.h"
@@ -65,6 +66,108 @@
{ 27, "HTTP 304 Not Modified returned. The CRL hasn't changed since the last retrieval." }
};
+/*
+ * Wrapper function for fetch_url().
+ *
+ * This communicates across a pipe to retrieve a CRL from the crlhelper
+ * program and handles creating the status entry based on the returned
+ * errnum.
+ */
+PR_IMPLEMENT(void *)get_crl(int infd, int outfd, const char * url, int timeout, PRTime lastfetchtime, int * len, RevStatus& status)
+{
+ int errnum = -1;
+ int nbytes;
+ PRInt32 elements = 0;
+ char **values=NULL;
+ PRBool header_done=PR_FALSE;
+ char *data = NULL;
+ int totalread = 0;
+ int sz = 4096;
+ char buffer[4096];
+ int toread = 0;
+
+ if (!url) {
+ status.setError(REV_ERROR_INVALID_URL_TYPE, client_errors[errnum].errorString);
+ }
+
+ if (!status.hasFailed()) {
+ data = (char *)malloc(4096);
+ *len = 0;
+
+ /* Place the request to our crlhelper via the pipe */
+ PR_snprintf(buffer, sizeof(buffer), "%lld %s", lastfetchtime, (char *)url);
+ nbytes = write(outfd, buffer, strlen(buffer));
+ if (nbytes == -1) {
+ status.setError(REV_ERROR_INVALID_URL_TYPE, client_errors[CL_HTTP_WRITE_FAILED].errorString);
+ goto done;
+ }
+
+ /* There are two conditions here:
+ * 1. We haven't read the header yet with the errnum & len
+ * 2. We haven't slurped in the rest of the data.
+ *
+ * The idea here is to read the header to figure out much data
+ * to expect, then read it all in.
+ */
+ while (PR_FALSE == header_done || toread > 0) {
+ int i;
+
+ nbytes=read(infd, buffer, 4096);
+
+ if (nbytes > 0) {
+ totalread += nbytes;
+ if (totalread >= sz) {
+ // We need a bigger buffer
+ char * olddata = data;
+ data = (char *) realloc(olddata, totalread+4096);
+ if (!data) {
+ if (olddata) {
+ free(olddata);
+ }
+ errnum = CL_OUT_OF_MEMORY;
+ goto done;
+ }
+ sz += 4096;
+ }
+ memcpy((char *)data+totalread-nbytes, buffer, nbytes);
+ }
+ if (*len == 0)
+ Rev_ParseString((const char *)data, ' ', &elements, &values);
+ if (PR_FALSE == header_done && elements > 2) {
+ int data_read, header_len;
+ errnum = strtol(values[0], NULL, 10);
+ *len = strtol(values[1], NULL, 10);
+ header_len = (strlen(values[0]) + strlen(values[1]) + 2);
+ data_read = totalread - header_len;
+ toread = *len - data_read;
+ totalread = totalread - header_len;
+ header_done = PR_TRUE;
+ if (data_read > 0) {
+ memmove(data, (char *)data + header_len, data_read);
+ data[data_read+1] = '\0';
+ } else {
+ totalread = 0;
+ }
+ } else if (PR_TRUE == header_done) {
+ toread = *len - totalread;
+ }
+ Rev_FreeParsedStrings(elements, values);
+ elements = 0;
+ }
+
+ data[*len] = '\0';
+ }
+done:
+
+ if (errnum == CL_NOUPDATE_AVAILABLE) {
+ status.setError(REV_ERROR_NOUPDATE_AVAILABLE, client_errors[errnum].errorString);
+ } else if (errnum != -1) {
+ status.setError(REV_ERROR_INVALID_URL_TYPE, client_errors[errnum].errorString);
+ }
+
+ return data;
+}
+
/* Given a URL, determine the type and fetch the appropriate contents and
* return them.
*
@@ -77,31 +180,22 @@
*
* See the ldap-client.cpp and http-client.cpp for specific URL syntax.
*/
-PR_IMPLEMENT(void *)fetch_url(const char * url, int timeout, PRTime lastfetchtime, int * len, RevStatus& status)
+PR_IMPLEMENT(void *)fetch_url(const char * url, int timeout, PRTime lastfetchtime, int * len, int * errnum)
{
- int errnum = -1;
void * data = NULL;
- if (!url) {
- status.setError(REV_ERROR_INVALID_URL_TYPE, client_errors[errnum].errorString);
- }
+ *errnum = -1;
- if (!status.hasFailed()) {
+ if (url) {
if (!PL_strncasecmp(url, "ldap", 4))
- data = ldap_client(url, timeout, len, &errnum);
+ data = ldap_client(url, timeout, len, errnum);
else if (!PL_strncasecmp(url, "http", 4))
- data = http_client(url, timeout, lastfetchtime, len, &errnum);
+ data = http_client(url, timeout, lastfetchtime, len, errnum);
else if (!PL_strncasecmp(url, "exec", 4))
- data = exec_client(url, timeout, len, &errnum);
+ data = exec_client(url, timeout, len, errnum);
else
errnum = CL_URL_UNKNOWN;
}
-
- if (errnum == CL_NOUPDATE_AVAILABLE) {
- status.setError(REV_ERROR_NOUPDATE_AVAILABLE, client_errors[errnum].errorString);
- } else if (errnum != -1) {
- status.setError(REV_ERROR_INVALID_URL_TYPE, client_errors[errnum].errorString);
- }
return data;
}
Index: client.h
===================================================================
RCS file: /cvs/dirsec/mod_revocator/client.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- client.h 5 Jun 2007 14:38:58 -0000 1.3
+++ client.h 13 Apr 2010 14:11:11 -0000 1.4
@@ -24,9 +24,12 @@
#define _CLIENT_H_
#include <nspr.h>
+#define __REVOCATION_IMPLEMENTATION__ 1
#include "revocation.h"
-PR_EXTERN(void *)fetch_url(const char * url, int timeout, PRTime lastfetchtime, int * len, RevStatus& status);
+PR_IMPLEMENT(void *)get_crl(int infd, int outfd, const char * url, int timeout, PRTime lastfetchtime, int * len, RevStatus& status);
+
+PR_EXTERN(void *)fetch_url(const char * url, int timeout, PRTime lastfetchtime, int * len, int * errnum);
PR_EXTERN(void)free_url(void* urldata);
Index: crlmanager.cpp
===================================================================
RCS file: /cvs/dirsec/mod_revocator/crlmanager.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- crlmanager.cpp 5 Jun 2007 14:38:58 -0000 1.3
+++ crlmanager.cpp 13 Apr 2010 14:11:11 -0000 1.4
@@ -39,6 +39,10 @@
#include "certdb.h"
#include "revprivate.h"
#include "secder.h"
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/ipc.h>
+#include <sys/sem.h>
#include <pk11func.h>
@@ -55,7 +59,21 @@
RevStatus mystatus;
PRInt32 len = 0 ;
output = NULL;
- void* data = fetch_url(inurl, timeout, lastfetchtime, &len, mystatus);
+ struct sembuf sb;
+
+ /* lock the pipe */
+ sb.sem_num = 0;
+ sb.sem_op = -1;
+ sb.sem_flg = SEM_UNDO;
+ if (semop(crlm->semid, &sb, 1) == -1) {
+ perror("semop reserve resource");
+ }
+ void* data = get_crl(crlm->infd, crlm->outfd, inurl, timeout, lastfetchtime, &len, mystatus);
+ /* unlock the pipe */
+ sb.sem_op = 1;
+ if (semop(crlm->semid, &sb, 1) == -1) {
+ perror("semop free resource id");
+ }
/* We have a special case. If we have an HTTP request and the server
* response was 304 Not Modified we want to go ahead and continue as
@@ -427,7 +445,7 @@
{
reportError(mystatus);
}
- if (derCrl->len == 0) { /* This is ok, see DownloadCRL */
+ if (derCrl && derCrl->len == 0) { /* This is ok, see DownloadCRL */
lastfetchtime = now;
SECITEM_FreeItem(derCrl, PR_TRUE);
derCrl = NULL;
@@ -600,8 +618,13 @@
// parse the initialization string and initialize CRLInstances
char** crlstrings=NULL;
PRInt32 configuredcrls = 0;
+ // the last 3 values are special. They are:
+ // -2: semaphore id used for locking
+ // -1: pipe fd to read from
+ // 0: pipe fd to read from
PRBool status = Rev_ParseString(initstr, ' ', &configuredcrls,
&crlstrings);
+ configuredcrls-=3;
if (PR_FALSE == status || (!configuredcrls) )
{
current_status.setDetailedError(
@@ -610,6 +633,9 @@
initstr);
return;
}
+ semid = strtol(crlstrings[configuredcrls], NULL, 10);
+ infd = strtol(crlstrings[configuredcrls+1], NULL, 10);
+ outfd = strtol(crlstrings[configuredcrls+2], NULL, 10);
// you've got CRLs
PRInt32 counter;
@@ -677,7 +703,7 @@
Rev_FreeParsedStrings(attrcount, crlattrs);
}
- Rev_FreeParsedStrings(configuredcrls, crlstrings);
+ Rev_FreeParsedStrings(configuredcrls+3, crlstrings);
if (fatalerror)
{
freeAllCRLs();
Index: crlmanager.h
===================================================================
RCS file: /cvs/dirsec/mod_revocator/crlmanager.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- crlmanager.h 4 Aug 2006 18:53:09 -0000 1.2
+++ crlmanager.h 13 Apr 2010 14:11:11 -0000 1.3
@@ -105,6 +105,9 @@
PRInt32 getNumCrls() const;
void stop();
CRLInstance* getCrl(const PRInt32 index);
+ int semid;
+ int infd;
+ int outfd;
private:
PRBool addCRL(CRLInstance* newcrl);
Index: ldapget.cpp
===================================================================
RCS file: /cvs/dirsec/mod_revocator/ldapget.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- ldapget.cpp 12 Oct 2006 14:52:15 -0000 1.3
+++ ldapget.cpp 13 Apr 2010 14:11:11 -0000 1.4
@@ -44,7 +44,8 @@
char *datap, *p;
const char *url;
- if (argc < 1 || argc > 4) {
+ if (argc < 2 || argc > 4) {
+ printf("Usage: %s <NSS database> url\n", argv[0]);
return 1;
}
View full diff with command:
/usr/bin/cvs -f diff -kk -u -N -r 1.1.1.1 -r 1.2 ltmain.sh
Index: ltmain.sh
===================================================================
RCS file: /cvs/dirsec/mod_revocator/ltmain.sh,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- ltmain.sh 3 Aug 2006 19:39:33 -0000 1.1.1.1
+++ ltmain.sh 13 Apr 2010 14:11:11 -0000 1.2
@@ -1,8 +1,8 @@
# ltmain.sh - Provide generalized library-building support services.
# NOTE: Changing this file will not affect anything until you rerun configure.
#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
-# Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
+# 2007 Free Software Foundation, Inc.
# Originally by Gordon Matzigkeit <gord(a)gnu.ai.mit.edu>, 1996
#
# This program is free software; you can redistribute it and/or modify
@@ -17,13 +17,49 @@
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
+basename="s,^.*/,,g"
+
+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
+# is ksh but when the shell is invoked as "sh" and the current value of
+# the _XPG environment variable is not equal to 1 (one), the special
+# positional parameter $0, within a function call, is the name of the
+# function.
+progpath="$0"
+
+# The name of this program:
+progname=`echo "$progpath" | $SED $basename`
+modename="$progname"
+
+# Global variables:
+EXIT_SUCCESS=0
+EXIT_FAILURE=1
+
+PROGRAM=ltmain.sh
+PACKAGE=libtool
+VERSION=1.5.24
+TIMESTAMP=" (1.1220.2.456 2007/06/24 02:25:32)"
+
+# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+ # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
# Check that we have a working $echo.
if test "X$1" = X--no-reexec; then
# Discard the --no-reexec flag, and continue.
@@ -36,7 +72,7 @@
:
else
# Restart under the correct shell, and then maybe $echo will work.
- exec $SHELL "$0" --no-reexec ${1+"$@"}
+ exec $SHELL "$progpath" --no-reexec ${1+"$@"}
fi
if test "X$1" = X--fallback-echo; then
@@ -45,19 +81,9 @@
cat <<EOF
$*
EOF
- exit 0
+ exit $EXIT_SUCCESS
fi
-# The name of this program.
-progname=`$echo "$0" | sed 's%^.*/%%'`
-modename="$progname"
-
-# Constants.
-PROGRAM=ltmain.sh
-PACKAGE=libtool
-VERSION=1.4
-TIMESTAMP=" (1.920 2001/04/24 23:26:18)"
-
default_mode=
help="Try \`$progname --help' for more information."
magic="%%%MAGIC variable%%%"
@@ -67,27 +93,44 @@
# Sed substitution that helps us do robust quoting. It backslashifies
# metacharacters that are still active within double-quoted strings.
-Xsed='sed -e 1s/^X//'
+Xsed="${SED}"' -e 1s/^X//'
sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
-SP2NL='tr \040 \012'
-NL2SP='tr \015\012 \040\040'
+# test EBCDIC or ASCII
+case `echo X|tr X '\101'` in
+ A) # ASCII based system
+ # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+ SP2NL='tr \040 \012'
+ NL2SP='tr \015\012 \040\040'
+ ;;
+ *) # EBCDIC based system
+ SP2NL='tr \100 \n'
+ NL2SP='tr \r\n \100\100'
+ ;;
+esac
# NLS nuisances.
# Only set LANG and LC_ALL to C if already set.
# These must not be set unconditionally because not all systems understand
# e.g. LANG=C (notably SCO).
# We save the old values to restore during execute mode.
-if test "${LC_ALL+set}" = set; then
- save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
-fi
-if test "${LANG+set}" = set; then
- save_LANG="$LANG"; LANG=C; export LANG
-fi
+for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+do
+ eval "if test \"\${$lt_var+set}\" = set; then
+ save_$lt_var=\$$lt_var
+ $lt_var=C
+ export $lt_var
+ fi"
+done
+
+# Make sure IFS has a sensible default
+lt_nl='
+'
+IFS=" $lt_nl"
if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
- echo "$modename: not configured to build any kind of library" 1>&2
- echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
- exit 1
+ $echo "$modename: not configured to build any kind of library" 1>&2
+ $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
+ exit $EXIT_FAILURE
fi
# Global variables.
@@ -99,11 +142,286 @@
show="$echo"
show_help=
execute_dlfiles=
+duplicate_deps=no
+preserve_args=
lo2o="s/\\.lo\$/.${objext}/"
o2lo="s/\\.${objext}\$/.lo/"
+extracted_archives=
+extracted_serial=0
+
+#####################################
+# Shell function definitions:
+# This seems to be the best place for them
+
+# func_mktempdir [string]
+# Make a temporary directory that won't clash with other running
+# libtool processes, and avoids race conditions if possible. If
+# given, STRING is the basename for that directory.
+func_mktempdir ()
+{
+ my_template="${TMPDIR-/tmp}/${1-$progname}"
+
+ if test "$run" = ":"; then
+ # Return a directory name, but don't create it in dry-run mode
+ my_tmpdir="${my_template}-$$"
+ else
+
+ # If mktemp works, use that first and foremost
+ my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
+
+ if test ! -d "$my_tmpdir"; then
+ # Failing that, at least try and use $RANDOM to avoid a race
+ my_tmpdir="${my_template}-${RANDOM-0}$$"
+
+ save_mktempdir_umask=`umask`
+ umask 0077
+ $mkdir "$my_tmpdir"
+ umask $save_mktempdir_umask
+ fi
+
+ # If we're not in dry-run mode, bomb out on failure
+ test -d "$my_tmpdir" || {
[...5739 lines suppressed...]
- if test $? != 0 && test "$rmforce" != yes; then
+ if test "$?" -ne 0 && test "$rmforce" != yes; then
exit_status=1
fi
done
IFS="$save_ifs"
fi
# FIXME: should reinstall the best remaining shared library.
- fi
+ ;;
+ esac
fi
;;
*.lo)
- if test "$build_old_libs" = yes; then
- oldobj=`$echo "X$name" | $Xsed -e "$lo2o"`
- rmfiles="$rmfiles $dir/$oldobj"
+ # Possibly a libtool object, so verify it.
+ if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+
+ # Read the .lo file
+ . $dir/$name
+
+ # Add PIC object to the list of files to remove.
+ if test -n "$pic_object" \
+ && test "$pic_object" != none; then
+ rmfiles="$rmfiles $dir/$pic_object"
+ fi
+
+ # Add non-PIC object to the list of files to remove.
+ if test -n "$non_pic_object" \
+ && test "$non_pic_object" != none; then
+ rmfiles="$rmfiles $dir/$non_pic_object"
+ fi
fi
;;
*)
- # Do a test to see if this is a libtool program.
- if test $mode = clean &&
- (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
- relink_command=
- . $dir/$file
+ if test "$mode" = clean ; then
+ noexename=$name
+ case $file in
+ *.exe)
+ file=`$echo $file|${SED} 's,.exe$,,'`
+ noexename=`$echo $name|${SED} 's,.exe$,,'`
+ # $file with .exe has already been added to rmfiles,
+ # add $file without .exe
+ rmfiles="$rmfiles $file"
+ ;;
+ esac
+ # Do a test to see if this is a libtool program.
+ if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+ relink_command=
+ . $dir/$noexename
- rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
- if test "$fast_install" = yes && test -n "$relink_command"; then
- rmfiles="$rmfiles $objdir/lt-$name"
+ # note $name still contains .exe if it was in $file originally
+ # as does the version of $file that was added into $rmfiles
+ rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
+ if test "$fast_install" = yes && test -n "$relink_command"; then
+ rmfiles="$rmfiles $objdir/lt-$name"
+ fi
+ if test "X$noexename" != "X$name" ; then
+ rmfiles="$rmfiles $objdir/lt-${noexename}.c"
+ fi
fi
fi
;;
@@ -4725,6 +6674,7 @@
$show "$rm $rmfiles"
$run $rm $rmfiles || exit_status=1
done
+ objdir="$origobjdir"
# Try to remove the ${objdir}s in the directories where we deleted files
for dir in $rmdirs; do
@@ -4740,15 +6690,22 @@
"")
$echo "$modename: you must specify a MODE" 1>&2
$echo "$generic_help" 1>&2
- exit 1
+ exit $EXIT_FAILURE
;;
esac
- $echo "$modename: invalid operation mode \`$mode'" 1>&2
- $echo "$generic_help" 1>&2
- exit 1
+ if test -z "$exec_cmd"; then
+ $echo "$modename: invalid operation mode \`$mode'" 1>&2
+ $echo "$generic_help" 1>&2
+ exit $EXIT_FAILURE
+ fi
fi # test -z "$show_help"
+if test -n "$exec_cmd"; then
+ eval exec $exec_cmd
+ exit $EXIT_FAILURE
+fi
+
# We need to display help for each of the modes.
case $mode in
"") $echo \
@@ -4765,6 +6722,7 @@
--mode=MODE use operation mode MODE [default=inferred from MODE-ARGS]
--quiet same as \`--silent'
--silent don't print informational messages
+ --tag=TAG use configuration variables from tag TAG
--version print version information
MODE must be one of the following:
@@ -4778,8 +6736,10 @@
uninstall remove libraries from an installed directory
MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
-a more detailed description of MODE."
- exit 0
+a more detailed description of MODE.
+
+Report bugs to <bug-libtool(a)gnu.org>."
+ exit $EXIT_SUCCESS
;;
clean)
@@ -4880,9 +6840,9 @@
-dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
-export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
-export-symbols SYMFILE
- try to export only the symbols listed in SYMFILE
+ try to export only the symbols listed in SYMFILE
-export-symbols-regex REGEX
- try to export only the symbols matching REGEX
+ try to export only the symbols matching REGEX
-LLIBDIR search LIBDIR for required installed libraries
-lNAME OUTPUT-FILE requires the installed library libNAME
-module build a library that can dlopened
@@ -4890,12 +6850,17 @@
-no-install link a not-installable executable
-no-undefined declare that a library does not refer to external symbols
-o OUTPUT-FILE create OUTPUT-FILE from the specified objects
+ -objectlist FILE Use a list of object files found in FILE to specify objects
+ -precious-files-regex REGEX
+ don't remove output files matching REGEX
-release RELEASE specify package release information
-rpath LIBDIR the created library will eventually be installed in LIBDIR
-R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
- -static do not do any dynamic linking of libtool libraries
+ -static do not do any dynamic linking of uninstalled libtool libraries
+ -static-libtool-libs
+ do not do any dynamic linking of libtool libraries
-version-info CURRENT[:REVISION[:AGE]]
- specify library version info [each variable defaults to 0]
+ specify library version info [each variable defaults to 0]
All other options (arguments beginning with \`-') are ignored.
@@ -4931,14 +6896,33 @@
*)
$echo "$modename: invalid operation mode \`$mode'" 1>&2
$echo "$help" 1>&2
- exit 1
+ exit $EXIT_FAILURE
;;
esac
-echo
+$echo
$echo "Try \`$modename --help' for more information about other modes."
-exit 0
+exit $?
+
+# The TAGs below are defined such that we never get into a situation
+# in which we disable both kinds of libraries. Given conflicting
+# choices, we go for a static library, that is the most portable,
+# since we can't tell whether shared libraries were disabled because
+# the user asked for that or because the platform doesn't support
+# them. This is particularly important on AIX, because we don't
+# support having both static and shared libraries enabled at the same
+# time on that platform, so we default to a shared-only configuration.
+# If a disable-shared tag is given, we'll fallback to a static-only
+# configuration. But we'll never go from static-only to shared-only.
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
+disable_libs=shared
+# ### END LIBTOOL TAG CONFIG: disable-shared
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-static
+disable_libs=static
+# ### END LIBTOOL TAG CONFIG: disable-static
# Local Variables:
# mode:shell-script
Index: mod_rev.c
===================================================================
RCS file: /cvs/dirsec/mod_revocator/mod_rev.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- mod_rev.c 5 Jun 2007 14:38:58 -0000 1.4
+++ mod_rev.c 13 Apr 2010 14:11:11 -0000 1.5
@@ -1,5 +1,5 @@
/** BEGIN COPYRIGHT BLOCK
- * Copyright (c) 2006 Red Hat, Inc. All rights reserved.
+ * Copyright (c) 2006-2010 Red Hat, Inc. All rights reserved.
*
* This copyrighted material is made available to anyone wishing to use,
* modify, copy, or redistribute it subject to the terms and conditions of
@@ -17,6 +17,24 @@
* END COPYRIGHT BLOCK **/
/*
* mod_rev.c: Do automatic CRL retrieval and import.
+ *
+ * The basic idea is:
+ * - On the Apache first-run (which normally just validates the config) fire
+ * off the CRLHelper. Apache child process communicate to it over a two-way
+ * pipe. This is used to do actual CRL retrieval.
+ * - Access is controlled to this via a semaphore. The semaphore is actually
+ * deleted in the CRLHelper program, otherwise we'd have troubles keeping
+ * it around between Apache reloads and closing it properly.
+ * - The CRLFile parameter is parsed and it and the two pipe file descriptors
+ * are passed to a PKCS#11 module that handles the NSS side of things.
+ * - When the PKCS#11 module determines it needs a new CRL it locks the
+ * semaphore, sends the request over the pipe and receives the response.
+ * - The semaphore is then unlocked so the next child process can make a
+ * request.
+ * - The CRLHelper caches responses for 58 seconds. The Apache children
+ * will generally make update requests at the same time and this will
+ * let us avoid frequent remote retrievals and still allow for quick
+ * CRL expiration (and it makes testing easier).
*
* Rob Crittenden
*
@@ -24,6 +42,9 @@
#include <sys/types.h>
#include <unistd.h>
+#include <sys/types.h>
+#include <sys/ipc.h>
+#include <sys/sem.h>
#include "ap_config.h"
#include "http_core.h"
#include "http_config.h"
@@ -39,7 +60,13 @@
apr_status_t rev_module_kill(void *data)
{
- ShutdownRevocation(data); /* FIXME, should do something with return value */
+ server_rec *s = (server_rec *)data;
+ rev_config * sc = (rev_config *)ap_get_module_config(s->module_config, &rev_module);
+
+ /* The semaphore is removed in the helper program. This is because that
+ * program survives Apache reloads so the semaphore will as well.
+ */
+ ShutdownRevocation(sc->crlengine); /* FIXME, should do something with return value */
return APR_SUCCESS;
}
@@ -62,6 +89,10 @@
sc->crlagecheck = FALSE;
sc->crlcritical = FALSE;
sc->crlfile = NULL;
+ sc->crlhelper = NULL;
+ sc->database = NULL;
+ sc->dbprefix = NULL;
+ sc->user = NULL;
/* So we can save data between server restarts */
apr_pool_userdata_set(sc, REV_MOD_CONFIG_KEY,
@@ -286,17 +317,16 @@
static apr_dso_handle_t *dlh = NULL;
#define CONFIGLEN 4096
+
static int
-InitRevocation(apr_pool_t *p, apr_pool_t *plog,
- apr_pool_t *ptemp, server_rec *s)
+init_Module(apr_pool_t *p, apr_pool_t *plog,
+ apr_pool_t *ptemp, server_rec *s)
{
- apr_status_t status;
- char * configstring = NULL;
rev_config * sc = (rev_config *)ap_get_module_config(s->module_config, &rev_module);
- void* agecheck = (void *)sc->crlagecheck;
- void* critical = (void *)sc->crlcritical;
- Rev_SetFailureCallbackEntryPoint setfcb = NULL;
- Rev_SetDownloadCallbackEntryPoint setncb = NULL;
+ struct semid_ds status;
+ uid_t user_id;
+
+ user_id = ap_uname2id(sc->user);
/* We need the pid of the Apache server so we can kill it if things
* go wrong.
@@ -305,6 +335,101 @@
sc->nInitCount++;
+ /* The first pass through this function will create the semaphore that
+ * will be used to lock the pipe. The user is still root at that point
+ * so for any later calls the semaphore ops will fail with permission
+ * errors. So switch the user to the Apache user.
+ */
+ if (sc->semid) {
+ semctl(sc->semid, 0, IPC_STAT, &status);
+ status.sem_perm.uid = user_id;
+ semctl(sc->semid,0,IPC_SET,&status);
+ }
+
+ if (sc->nInitCount == 1) {
+ const char * child_argv[5];
+ apr_status_t rv;
+ struct sembuf sb;
+ char sembuf[32];
+
+ if (sc->crlhelper == NULL) {
+ ap_log_error(APLOG_MARK, APLOG_ERR, 0, s,
+ "CRLHelper is not set. It is required.");
+ nss_die();
+ }
+
+ sc->semid = semget(IPC_PRIVATE, 1, IPC_CREAT | IPC_EXCL | 0600);
+ if (sc->semid == -1) {
+ ap_log_error(APLOG_MARK, APLOG_ERR, 0, s,
+ "Unable to obtain semaphore.");
+ nss_die();
+ }
+
+ /* Initialize the semaphore */
+ sb.sem_num = 0;
+ sb.sem_op = 1;
+ sb.sem_flg = 0;
+ if ((semop(sc->semid, &sb, 1)) == -1) {
+ ap_log_error(APLOG_MARK, APLOG_ERR, 0, s,
+ "Unable to initialize semaphore.");
+ nss_die();
+ }
+
+ PR_snprintf(sembuf, 32, "%d", sc->semid);
+ child_argv[0] = sc->crlhelper;
+ child_argv[1] = sembuf;
+ child_argv[2] = sc->database;
+ child_argv[3] = sc->dbprefix;
+ child_argv[4] = NULL;
+
+ rv = apr_procattr_create(&sc->procattr, s->process->pool);
+
+ if (rv != APR_SUCCESS) {
+ ap_log_error(APLOG_MARK, APLOG_ERR, 0, s,
+ "apr_procattr_create() failed APR err: %d.", rv);
+ nss_die();
+ }
+
+ apr_procattr_io_set(sc->procattr, APR_PARENT_BLOCK, APR_PARENT_BLOCK,
+ APR_FULL_NONBLOCK);
+ apr_procattr_error_check_set(sc->procattr, 1);
+
+ /* the process inherits our environment, which should allow the
+ * dynamic loader to find NSPR and NSS.
+ */
+ apr_procattr_cmdtype_set(sc->procattr, APR_PROGRAM_ENV);
+
+ /* We've now spawned our helper process, the actual communication
+ * with it occurs in the crlmanager.
+ */
+ rv = apr_proc_create(&sc->proc, child_argv[0], child_argv, NULL, sc->procattr, s->process->pool);
+ if (rv != APR_SUCCESS) {
+ ap_log_error(APLOG_MARK, APLOG_ERR, 0, s,
+ "apr_proc_create failed to launch %s APR err: %d.", child_argv[0], rv);
+ nss_die();
+ }
+ /* Set a 30-second read/write timeout */
+ apr_file_pipe_timeout_set(sc->proc.in, apr_time_from_sec(30));
+ apr_file_pipe_timeout_set(sc->proc.out, apr_time_from_sec(30));
+ }
+
+ apr_pool_cleanup_register(p, s, rev_module_kill, apr_pool_cleanup_null);
+
+ return APR_SUCCESS;
+}
+
+static int
+InitRevocation(apr_pool_t *p, server_rec *base_server)
+{
+ apr_status_t status;
+ char * configstring = NULL;
+ rev_config * sc = (rev_config *)ap_get_module_config(base_server->module_config, &rev_module);
+ void* agecheck = (void *)sc->crlagecheck;
+ void* critical = (void *)sc->crlcritical;
+ Rev_SetFailureCallbackEntryPoint setfcb = NULL;
+ Rev_SetDownloadCallbackEntryPoint setncb = NULL;
+ int infd, outfd;
+
/* Do nothing until Apache is ready to run */
if (sc->nInitCount < 2) return APR_SUCCESS;
@@ -319,7 +444,7 @@
char errstr[256];
apr_dso_error(dlh, errstr, 256);
- ap_log_error(APLOG_MARK, APLOG_ERR, 0, s,
+ ap_log_error(APLOG_MARK, APLOG_ERR, 0, base_server,
"Unable to load revocation subsystem library %s: %s.",
revocation_library, errstr);
return APR_EGENERAL;
@@ -340,20 +465,28 @@
/* set callback functions for logging */
setfcb(&NESRevocationFailureNotification, critical);
- setncb(&NESRevocationDownloadNotification, agecheck, s);
+ setncb(&NESRevocationDownloadNotification, agecheck, base_server);
if (sc->crlfile == NULL) {
- ap_log_error(APLOG_MARK, APLOG_ERR, 0, s,
+ ap_log_error(APLOG_MARK, APLOG_ERR, 0, base_server,
"Remote CRLs not specified. [Hint: set CRLFile]");
return APR_EGENERAL;
}
+ if (sc->database == NULL) {
+ ap_log_error(APLOG_MARK, APLOG_ERR, 0, base_server,
+ "NSS Certificate database not set [Hint: set NSSCertificateDatabase]");
+ return APR_EGENERAL;
+ }
+
/* load PKCS#11 module */
/* first build full configuration string */
configstring = (char *)malloc(CONFIGLEN);
- PR_snprintf(configstring, CONFIGLEN, "library=%s name=revocation parameters=\"%s\"", revocation_library, sc->crlfile ? sc->crlfile : "");
+ apr_os_file_get(&outfd, sc->proc.in);
+ apr_os_file_get(&infd, sc->proc.out);
+ PR_snprintf(configstring, CONFIGLEN, "library=%s name=revocation parameters=\"%s %ld %d %d\"", revocation_library, sc->crlfile ? sc->crlfile : "", sc->semid, infd, outfd);
mod = SECMOD_LoadUserModule(configstring, NULL, PR_FALSE);
if (!mod || !mod->loaded)
@@ -365,17 +498,15 @@
}
free(configstring);
apr_dso_unload(dlh);
- ap_log_error(APLOG_MARK, APLOG_ERR, 0, s,
+ ap_log_error(APLOG_MARK, APLOG_ERR, 0, base_server,
"Unable to load secmod module: %d", PR_GetError());
return APR_EGENERAL;
}
free(configstring);
revocatorInitialized = PR_TRUE;
- ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, s,
- "Revocation subsystem initialized");
+ ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, base_server,
+ "Revocation subsystem initialized %d", sc->nInitCount);
}
-
- apr_pool_cleanup_register(p, (void *)sc->crlengine, rev_module_kill, apr_pool_cleanup_null);
return APR_SUCCESS;
}
@@ -408,11 +539,41 @@
}
}
-static const char *set_crlfile(cmd_parms *cmd, void *dummy, const char *arg)
+static const char *set_user(cmd_parms *cmd, void *dummy, const char *arg)
+{
+ server_rec *s = cmd->server;
+ rev_config *cf = ap_get_module_config(s->module_config, &rev_module);
+
+ cf->user = arg;
+
+ return NULL;
+}
+
+static const char *set_dbprefix(cmd_parms *cmd, void *dummy, const char *arg)
+{
+ server_rec *s = cmd->server;
+ rev_config *cf = ap_get_module_config(s->module_config, &rev_module);
+
+ cf->dbprefix = arg;
+
+ return NULL;
+}
+
+static const char *set_database(cmd_parms *cmd, void *dummy, const char *arg)
{
server_rec *s = cmd->server;
rev_config *cf = ap_get_module_config(s->module_config, &rev_module);
+ cf->database = arg;
+
+ return NULL;
+}
+
+static const char *set_crlfile(cmd_parms *cmd, void *dummy, const char *arg)
+{
+ server_rec *s = cmd->server;
+ rev_config *cf = (rev_config *)ap_get_module_config(s->module_config, &rev_module);
+
cf->crlfile = arg;
return NULL;
@@ -448,22 +609,46 @@
return NULL;
}
+static const char *set_crlhelper(cmd_parms *cmd, void *dummy, const char *arg)
+{
+ server_rec *s = cmd->server;
+ rev_config *cf = (rev_config *)ap_get_module_config(s->module_config, &rev_module);
+
+ if (access(arg, R_OK|X_OK) != -1) {
+ cf->crlhelper = arg;
+ } else {
+ return ("CRLHelper does not exist or is not executable");
+ }
+
+ return NULL;
+}
+
static void register_hooks(apr_pool_t *p)
{
static const char * const aszPre[] = { "mod_nss.c", NULL };
- ap_hook_post_config(InitRevocation, aszPre, NULL, APR_HOOK_MIDDLE);
+ ap_hook_post_config(init_Module, aszPre, NULL, APR_HOOK_MIDDLE);
+ ap_hook_child_init(InitRevocation, aszPre, NULL, APR_HOOK_MIDDLE);
}
static const command_rec mod_rev_cmds[] =
{
AP_INIT_TAKE1("CRLFile", set_crlfile, NULL, RSRC_CONF,
"Specify the URL provided by your CA for downloading updated CRLs."),
+ AP_INIT_TAKE1("CRLHelper", set_crlhelper, NULL, RSRC_CONF,
+ "Path to program that handles retrieving CRLs "
+ "(`/path/to/file`)"),
AP_INIT_FLAG("CRLEngine", set_crlengine, NULL, RSRC_CONF,
"Enable or Disable CRL Revocation checking."),
AP_INIT_FLAG("CRLAgeCheck", set_crlagecheck, NULL, RSRC_CONF,
"Shut down server if CRLs are too old."),
AP_INIT_FLAG("CRLUpdateCritical", set_crlcritical, NULL, RSRC_CONF,
"Shut down server if CRL updates fail."),
+ AP_INIT_TAKE1("NSSCertificateDatabase", set_database, NULL, RSRC_CONF,
+ "SSL Server Certificate database. Comes from nss.conf."),
+ AP_INIT_TAKE1("NSSDBPrefix", set_dbprefix, NULL, RSRC_CONF,
+ "NSS database prefix. Comes from nss.conf."),
+ AP_INIT_TAKE1("User", set_user, NULL, RSRC_CONF,
+ "Apache user. Comes from httpd.conf."),
{ NULL }
};
Index: mod_rev.h
===================================================================
RCS file: /cvs/dirsec/mod_revocator/mod_rev.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- mod_rev.h 4 Aug 2006 18:53:09 -0000 1.2
+++ mod_rev.h 13 Apr 2010 14:11:11 -0000 1.3
@@ -56,6 +56,13 @@
BOOL crlagecheck;
BOOL crlcritical;
const char *crlfile;
+ const char *crlhelper;
+ const char *database;
+ const char *dbprefix;
+ const char *user;
+ apr_proc_t proc;
+ apr_procattr_t *procattr;
+ int semid;
} rev_config;
#define REV_MOD_CONFIG_KEY "rev_module"
Index: revocator.conf
===================================================================
RCS file: /cvs/dirsec/mod_revocator/revocator.conf,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- revocator.conf 3 Aug 2006 19:39:33 -0000 1.1.1.1
+++ revocator.conf 13 Apr 2010 14:11:12 -0000 1.2
@@ -13,6 +13,10 @@
# Shut the server down if a CRL cannot be retrieved
CRLUpdateCritical off
+# CRL Helper:
+# This helper program does the actual CRL retrieval
+CRLHelper /usr/bin/crlhelper
+
# CRL URLs:
# A space delimited list of URLs to retrieve and install.
# protocol://urldata;update_interval;max_age
13 years, 11 months
esc/mac mac-build.sh,1.4.2.1,1.4.2.2
by Jack Magne
Author: jmagne
Update of /cvs/dirsec/esc/mac
In directory cvs01.phx2.fedoraproject.org:/tmp/cvs-serv22030
Modified Files:
Tag: PKI_8_0_RTM_BRANCH
mac-build.sh
Log Message:
Comment out line not needed.
Index: mac-build.sh
===================================================================
RCS file: /cvs/dirsec/esc/mac/mac-build.sh,v
retrieving revision 1.4.2.1
retrieving revision 1.4.2.2
diff -u -r1.4.2.1 -r1.4.2.2
--- mac-build.sh 16 Mar 2010 23:08:37 -0000 1.4.2.1
+++ mac-build.sh 10 Apr 2010 00:45:56 -0000 1.4.2.2
@@ -35,7 +35,7 @@
XUL_FRAMEWORK_PATH=~/XUL.framework
fi
-TOKEND_PATH_NAME=/Users/slowjack/COOLKEY.zip
+#TOKEND_PATH_NAME=/Users/slowjack/COOLKEY.zip
printf "\n \n"
echo "Building ESC... for Mac.... "
13 years, 11 months