Commit 66eba3ba authored by Howard Chu's avatar Howard Chu
Browse files

slurpd is strongly deprecated

parent 819cf670
......@@ -170,10 +170,8 @@ LDAP_LIBLUTIL_A = $(LDAP_LIBDIR)/liblutil/liblutil.a
LDAP_L = $(LDAP_LIBLUTIL_A) \
$(LDAP_LIBLDAP_LA) $(LDAP_LIBLBER_LA)
SLURPD_L = $(LDAP_LIBLUTIL_A) \
$(LDAP_LIBLDAP_R_LA) $(LDAP_LIBLBER_LA)
SLAPD_L = $(LDAP_LIBLUNICODE_A) $(LDAP_LIBREWRITE_A) \
$(SLURPD_L)
$(LDAP_LIBLUTIL_A) $(LDAP_LIBLDAP_R_LA) $(LDAP_LIBLBER_LA)
WRAP_LIBS = @WRAP_LIBS@
# AutoConfig generated
......@@ -202,7 +200,6 @@ SLAPD_SQL_INCLUDES = @SLAPD_SQL_INCLUDES@
SLAPD_SQL_LIBS = @SLAPD_SQL_LIBS@
SLAPD_LIBS = @SLAPD_LIBS@ @SLAPD_PERL_LDFLAGS@ @SLAPD_SQL_LDFLAGS@ @SLAPD_SQL_LIBS@ @SLAPD_SLP_LIBS@ @SLAPD_GMP_LIBS@ $(ICU_LIBS)
SLURPD_LIBS = @SLURPD_LIBS@
# Our Defaults
CC = $(AC_CC)
......
......@@ -377,12 +377,6 @@ OL_ARG_ENABLE(unique,[ --enable-unique Attribute Uniqueness overlay],
OL_ARG_ENABLE(valsort,[ --enable-valsort Value Sorting overlay],
no, [no yes mod], ol_enable_overlays)
dnl ----------------------------------------------------------------
dnl SLURPD OPTIONS
AC_ARG_ENABLE(xxslurpdoptions,[
SLURPD (Replication Daemon) Options:])
OL_ARG_ENABLE(slurpd,[ --enable-slurpd enable building slurpd], auto)dnl
dnl ----------------------------------------------------------------
AC_ARG_ENABLE(xxliboptions,[
Library Generation & Linking Options])
......@@ -422,9 +416,6 @@ if test $ol_enable_slapd = no ; then
if test $ol_enable_aci != no ; then
AC_MSG_WARN([slapd disabled, ignoring --enable-aci argument])
fi
if test $ol_enable_slurpd = yes ; then
AC_MSG_ERROR([slurpd requires slapd])
fi
if test $ol_enable_rewrite = yes ; then
AC_MSG_WARN([slapd disabled, ignoring --enable-rewrite argument])
fi
......@@ -451,8 +442,6 @@ if test $ol_enable_slapd = no ; then
ol_enable_aci=no
ol_enable_wrappers=no
ol_enable_slurpd=no
ol_enable_rewrite=no
elif test $ol_enable_modules != yes &&
......@@ -482,13 +471,6 @@ if test $ol_enable_meta/$ol_enable_ldap = yes/no ; then
AC_MSG_ERROR([--enable-meta requires --enable-ldap])
fi
if test $ol_enable_slurpd = yes ; then
dnl SLURPD was specifically enabled
if test $ol_with_threads = no ; then
AC_MSG_ERROR([slurpd requires threads])
fi
fi
if test $ol_enable_lmpasswd = yes ; then
if test $ol_with_tls = no ; then
AC_MSG_ERROR([LAN Manager passwords require OpenSSL])
......@@ -512,10 +494,8 @@ LTHREAD_LIBS=
LUTIL_LIBS=
SLAPD_LIBS=
SLURPD_LIBS=
BUILD_SLAPD=no
BUILD_SLURPD=no
BUILD_THREAD=no
......@@ -813,9 +793,11 @@ AC_CHECK_HEADERS( \
sysexits.h \
sys/file.h \
sys/filio.h \
sys/fstyp.h \
sys/errno.h \
sys/ioctl.h \
sys/param.h \
sys/privgrp.h \
sys/resource.h \
sys/select.h \
sys/socket.h \
......@@ -824,6 +806,7 @@ AC_CHECK_HEADERS( \
sys/time.h \
sys/types.h \
sys/uio.h \
sys/vmount.h \
syslog.h \
termios.h \
unistd.h \
......@@ -2338,6 +2321,12 @@ if test "$ac_cv_func_getpeereid" != yes; then
#include <sys/socket.h>
#endif])
fi
AC_CHECK_MEMBERS([struct stat.st_fstype, struct stat.st_vfstype])
if test "$ac_cv_member_struct_stat_st_fstype" = yes; then
AC_COMPILE_IFELSE([struct stat st; char *ptr=st.st_fstype;],
AC_DEFINE([HAVE_STRUCT_STAT_ST_FSTYPE_CHAR]),
AC_DEFINE([HAVE_STRUCT_STAT_ST_FSTYPE_INT]))
fi
fi
LIBSRCS="$LIBSRCS getpeereid.c"
fi
......@@ -2795,12 +2784,6 @@ if test "$ol_enable_valsort" != no ; then
AC_DEFINE_UNQUOTED(SLAPD_OVER_VALSORT,$MFLAG,[define for Value Sorting overlay])
fi
if test "$ol_enable_slurpd" != no &&
test "$ol_link_threads" != no &&
test $BUILD_SLAPD = yes ; then
BUILD_SLURPD=yes
fi
if test "$ol_enable_rewrite" != no ; then
AC_DEFINE(ENABLE_REWRITE,1,[define to enable rewriting in back-ldap and back-meta])
BUILD_REWRITE=yes
......@@ -2871,11 +2854,9 @@ dnl overlays
AC_SUBST(BUILD_TRANSLUCENT)
AC_SUBST(BUILD_UNIQUE)
AC_SUBST(BUILD_VALSORT)
AC_SUBST(BUILD_SLURPD)
AC_SUBST(LDAP_LIBS)
AC_SUBST(SLAPD_LIBS)
AC_SUBST(SLURPD_LIBS)
AC_SUBST(BDB_LIBS)
AC_SUBST(LTHREAD_LIBS)
AC_SUBST(LUTIL_LIBS)
......@@ -2956,7 +2937,6 @@ AC_CONFIG_FILES([Makefile:build/top.mk:Makefile.in:build/dir.mk]
[servers/slapd/shell-backends/Makefile:build/top.mk:servers/slapd/shell-backends/Makefile.in:build/srv.mk]
[servers/slapd/slapi/Makefile:build/top.mk:servers/slapd/slapi/Makefile.in:build/lib.mk:build/lib-shared.mk]
[servers/slapd/overlays/Makefile:build/top.mk:servers/slapd/overlays/Makefile.in:build/lib.mk]
[servers/slurpd/Makefile:build/top.mk:servers/slurpd/Makefile.in:build/srv.mk]
[tests/Makefile:build/top.mk:tests/Makefile.in:build/dir.mk]
[tests/run]
[tests/progs/Makefile:build/top.mk:tests/progs/Makefile.in:build/rules.mk])
......
......@@ -672,40 +672,6 @@ Specify the referral to pass back when
.BR slapd (8)
cannot find a local database to handle a request.
If multiple values are specified, each url is provided.
.\" slurpd-related keywords are all deprecated
.\".TP
.\".B replica-argsfile
.\"The ( absolute ) name of a file that will hold the
.\".B slurpd
.\"server's command line options
.\"if started without the debugging command line option.
.\"If it appears after a
.\".B replogfile
.\"directive, the args file is specific to the
.\".BR slurpd (8)
.\"instance that handles that replication log.
.\".TP
.\".B replica-pidfile
.\"The ( absolute ) name of a file that will hold the
.\".B slurpd
.\"server's process ID ( see
.\".BR getpid (2)
.\") if started without the debugging command line option.
.\"If it appears after a
.\".B replogfile
.\"directive, the pid file is specific to the
.\".BR slurpd (8)
.\"instance that handles that replication log.
.\".TP
.\".B replicationinterval
.\"The number of seconds
.\".B slurpd
.\"waits before checking the replogfile for changes.
.\"If it appears after a
.\".B replogfile
.\"directive, the replication interval is specific to the
.\".BR slurpd (8)
.\"instance that handles that replication log.
.TP
.B olcReverseLookup: TRUE | FALSE
Enable/disable client name unverified reverse lookup (default is
......@@ -1471,79 +1437,6 @@ By default, this setting is FALSE.
Configure a SLAPI plugin. See the
.BR slapd.plugin (5)
manpage for more details.
.\".HP
.\".hy 0
.\".B replica uri=ldap[s]://<hostname>[:port]|host=<hostname>[:port]
.\".B [starttls=yes|critical]
.\".B [suffix=<suffix> [...]]
.\".B bindmethod=simple|sasl [binddn=<simple DN>] [credentials=<simple password>]
.\".B [saslmech=<SASL mech>] [secprops=<properties>] [realm=<realm>]
.\".B [authcId=<authentication ID>] [authzId=<authorization ID>]
.\".B [attrs[!]=<attr list>]
.\".RS
.\"Specify a replication site for this database. Refer to the "OpenLDAP
.\"Administrator's Guide" for detailed information on setting up a replicated
.\".B slapd
.\"directory service. Zero or more
.\".B suffix
.\"instances can be used to select the subtrees that will be replicated
.\"(defaults to all the database).
.\".B host
.\"is deprecated in favor of the
.\".B uri
.\"option.
.\".B uri
.\"allows the replica LDAP server to be specified as an LDAP URI.
.\"A
.\".B bindmethod
.\"of
.\".B simple
.\"requires the options
.\".B binddn
.\"and
.\".B credentials
.\"and should only be used when adequate security services
.\"(e.g TLS or IPSEC) are in place. A
.\".B bindmethod
.\"of
.\".B sasl
.\"requires the option
.\".B saslmech.
.\"Specific security properties (as with the
.\".B sasl-secprops
.\"keyword above) for a SASL bind can be set with the
.\".B secprops
.\"option. A non-default SASL realm can be set with the
.\".B realm
.\"option.
.\"If the
.\".B mechanism
.\"will use Kerberos, a kerberos instance should be given in
.\".B authcId.
.\"An
.\".B attr list
.\"can be given after the
.\".B attrs
.\"keyword to allow the selective replication of the listed attributes only;
.\"if the optional
.\".B !
.\"mark is used, the list is considered exclusive, i.e. the listed attributes
.\"are not replicated.
.\"If an objectClass is listed, all the related attributes
.\"are (are not) replicated.
.\".RE
.\".TP
.\".B replogfile <filename>
.\"Specify the name of the replication log file to log changes to.
.\"The replication log is typically written by
.\".BR slapd (8)
.\"and read by
.\".BR slurpd (8).
.\"See
.\".BR slapd.replog (5)
.\"for more information. The specified file should be located
.\"in a directory with limited read/write/execute access as the replication
.\"logs may contain sensitive information.
.TP
.B olcRootDN: <dn>
Specify the distinguished name that is not subject to access control
......@@ -1816,9 +1709,8 @@ ignored.
This option is only applicable in a slave
database.
It specifies the DN permitted to update (subject to access controls)
the replica (typically, this is the DN
.BR slurpd (8)
binds to update the replica). Generally, this DN
the replica. It is only needed in certain push-mode
replication scenarios. Generally, this DN
.I should not
be the same as the
.B rootdn
......@@ -1963,8 +1855,7 @@ default slapd configuration directory
.BR slapdn (8),
.BR slapindex (8),
.BR slappasswd (8),
.BR slaptest (8),
.BR slurpd (8).
.BR slaptest (8).
.LP
"OpenLDAP Administrator's Guide" (http://www.OpenLDAP.org/doc/admin/)
.SH ACKNOWLEDGEMENTS
......
......@@ -10,9 +10,7 @@ The
.BR slapd.conf (5)
file contains configuration information for the
.BR slapd (8)
daemon. This configuration file is also used by the
.BR slurpd (8)
replication daemon and by the SLAPD tools
daemon. This configuration file is also used by the SLAPD tools
.BR slapacl (8),
.BR slapadd (8),
.BR slapauth (8),
......
......@@ -11,9 +11,7 @@ The file
.B ETCDIR/slapd.conf
contains configuration information for the
.BR slapd (8)
daemon. This configuration file is also used by the
.BR slurpd (8)
replication daemon and by the SLAPD tools
daemon. This configuration file is also used by the SLAPD tools
.BR slapacl (8),
.BR slapadd (8),
.BR slapauth (8),
......@@ -720,39 +718,6 @@ Specify the referral to pass back when
cannot find a local database to handle a request.
If specified multiple times, each url is provided.
.TP
.B replica-argsfile
The ( absolute ) name of a file that will hold the
.B slurpd
server's command line options
if started without the debugging command line option.
If it appears after a
.B replogfile
directive, the args file is specific to the
.BR slurpd (8)
instance that handles that replication log.
.TP
.B replica-pidfile
The ( absolute ) name of a file that will hold the
.B slurpd
server's process ID ( see
.BR getpid (2)
) if started without the debugging command line option.
If it appears after a
.B replogfile
directive, the pid file is specific to the
.BR slurpd (8)
instance that handles that replication log.
.TP
.B replicationinterval
The number of seconds
.B slurpd
waits before checking the replogfile for changes.
If it appears after a
.B replogfile
directive, the replication interval is specific to the
.BR slurpd (8)
instance that handles that replication log.
.TP
.B require <conditions>
Specify a set of conditions (separated by white space) to
require (default none).
......@@ -1346,7 +1311,7 @@ resolve an entry, used to avoid infinite alias loops. The default is 1.
.B mirrormode on | off
This option puts a replica database into "mirror" mode. Update
operations will be accepted from any user, not just the updatedn. The
database must already be configured as a slurpd or syncrepl consumer
database must already be configured as a syncrepl consumer
before this keyword may be set. This mode also requires a
.B serverID
(see above) to be configured.
......@@ -1430,18 +1395,6 @@ If an objectClass is listed, all the related attributes
are (are not) replicated.
.RE
.TP
.B replogfile <filename>
Specify the name of the replication log file to log changes to.
The replication log is typically written by
.BR slapd (8)
and read by
.BR slurpd (8).
See
.BR slapd.replog (5)
for more information. The specified file should be located
in a directory with limited read/write/execute access as the replication
logs may contain sensitive information.
.TP
.B restrict <oplist>
Specify a whitespace separated list of operations that are restricted.
If defined inside a database specification, restrictions apply only
......@@ -1731,12 +1684,10 @@ ignored.
.TP
.B updatedn <dn>
This option is only applicable in a slave
database updated using
.BR slurpd(8).
database.
It specifies the DN permitted to update (subject to access controls)
the replica (typically, this is the DN
.BR slurpd (8)
binds to update the replica). Generally, this DN
the replica. It is only needed in certain push-mode
replication scenarios. Generally, this DN
.I should not
be the same as the
.B rootdn
......@@ -1815,8 +1766,7 @@ default slapd configuration file
.BR slapdn (8),
.BR slapindex (8),
.BR slappasswd (8),
.BR slaptest (8),
.BR slurpd (8).
.BR slaptest (8).
.LP
"OpenLDAP Administrator's Guide" (http://www.OpenLDAP.org/doc/admin/)
.SH ACKNOWLEDGEMENTS
......
......@@ -10,9 +10,7 @@ The
.BR slapd.conf (5)
file contains configuration information for the
.BR slapd (8)
daemon. This configuration file is also used by the
.BR slurpd (8)
replication daemon and by the SLAPD tools
daemon. This configuration file is also used by the SLAPD tools
.BR slapadd (8),
.BR slapcat (8),
and
......
.TH SLAPD.REPLOG 5 "RELEASEDATE" "OpenLDAP LDVERSION"
.\" $OpenLDAP$
.\" Copyright 1998-2007 The OpenLDAP Foundation All Rights Reserved.
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
.SH NAME
slapd.replog \- slapd replication log format
.SH SYNOPSIS
slapd.replog
slapd.replog.lock
.SH DESCRIPTION
.LP
The file slapd.replog is produced by the stand-alone LDAP daemon,
.BR slapd (8),
when changes are made to its local database that are to be
propagated to one or more replica
.IR slapd s.
The file consists of
zero or more records, each one corresponding to a change, addition,
or deletion from the
.I slapd
database. The file is meant to be read
and processed by
.BR slurpd (8),
the stand-alone LDAP update replication daemon. The records are
separated by a blank line. Each record has the following format.
.LP
The record begins with one or more lines indicating the replicas
to which the change is to be propagated:
.LP
.nf
replica: <hostname[:portnumber]>
.fi
.LP
Next, the time the change took place given, as the number of seconds since
00:00:00 GMT, Jan. 1, 1970, with an optional decimal extension, in order
to make times unique. Note that slapd does not make times unique, but
slurpd makes all times unique in its copies of the replog files.
.LP
.nf
time: <integer[.integer]>
.fi
.LP
Next, the distinguished name of the entry being changed is given:
.LP
.nf
dn: <distinguishedname>
.fi
.LP
Next, the type of change being made is given:
.LP
.nf
changetype: <[modify|add|delete|modrdn]>
.fi
.LP
Finally, the change information itself is given, the format of which
depends on what kind of change was specified above. For a \fIchangetype\fP
of \fImodify\fP, the format is one or more of the following:
.LP
.nf
add: <attributetype>
<attributetype>: <value1>
<attributetype>: <value2>
...
-
.fi
.LP
Or, for a replace modification:
.LP
.nf
replace: <attributetype>
<attributetype>: <value1>
<attributetype>: <value2>
...
-
.fi
.LP
Or, for a delete modification:
.LP
.nf
delete: <attributetype>
<attributetype>: <value1>
<attributetype>: <value2>
...
-
.fi
.LP
If no \fIattributetype\fP lines are given, the entire attribute is to be
deleted.
.LP
For a \fIchangetype\fP of \fIadd\fP, the format is:
.LP
.nf
<attributetype1>: <value1>
<attributetype1>: <value2>
...
<attributetypeN>: <value1>
<attributetypeN>: <value2>
.fi
.LP
For a \fIchangetype\fP of \fImodrdn\fP, the format is:
.LP
.nf
newrdn: <newrdn>
deleteoldrdn: 0 | 1
.fi
.LP
where a value of 1 for deleteoldrdn means to delete the values
forming the old rdn from the entry, and a value of 0 means to
leave the values as non-distinguished attributes in the entry.
.LP
For a \fIchangetype\fP of \fIdelete\fP, no additional information
is needed in the record.
.LP
The format of the values is the LDAP Directory Interchange Format
described in
.BR ldif (5).
.LP
Access to the \fIslapd.replog\fP file is synchronized through the
use of
.BR flock (3)
on the file \fIslapd.replog.lock\fP. Any process
reading or writing this file should obey this locking convention.
.SH EXAMPLE
The following sample \fIslapd.replog\fP file contains information
on one of each type of change.
.LP
.nf
replica: truelies.rs.itd.umich.edu
replica: judgmentday.rs.itd.umich.edu
time: 797612941
dn: cn=Babs Jensen,dc=example,dc=com
changetype: add
objectclass: person
cn: babs
cn: babs jensen
sn: jensen
replica: truelies.rs.itd.umich.edu
replica: judgmentday.rs.itd.umich.edu
time: 797612973
dn: cn=Babs Jensen,dc=example,dc=com
changetype: modify
add: description
description: the fabulous babs
replica: truelies.rs.itd.umich.edu
replica: judgmentday.rs.itd.umich.edu
time: 797613020
dn: cn=Babs Jensen,dc=example,dc=com
changetype: modrdn
newrdn: cn=Barbara J Jensen
deleteoldrdn: 0
.fi
.SH FILES
.TP
slapd.replog
slapd replication log file
.TP
slapd.replog.lock
lockfile for slapd.replog
.SH SEE ALSO
.BR ldap (3),
.BR ldif (5),
.BR slapd (8),
.BR slurpd (8)
.SH ACKNOWLEDGEMENTS
.so ../Project
......@@ -218,7 +218,7 @@ dynamic objects replicate. Only the master takes care of handling dynamic
object expiration, while replicas simply see the dynamic object as a plain
object.
When using slurpd replication, one needs to explicitly exclude the
When replicating these objects, one needs to explicitly exclude the
.B dynamicObject
class and the
.B entryTtl
......@@ -227,21 +227,10 @@ This implementation of RFC 2589 introduces a new operational attribute,
.BR entryExpireTimestamp ,
that contains the expiration timestamp. This must be excluded from
replication as well.
In
.BR slapd.conf (5),
add the following \fIexclusion list\fP to each
.B replica
statement:
.RS
.nf
replica ...
attrs!=@dynamicObject,entryTtl,entryExpireTimestamp
.fi
.RE
When using syncrepl, the quick and dirty solution is to set
The quick and dirty solution is to set
.B schemacheck=off
in the syncrepl configuration
and, optionally, exclude the operational attributes from replication, using
.RS
......
......@@ -46,15 +46,6 @@ flag is given, even with a zero argument,
.B slapd
will not fork and disassociate from the invoking tty.
.LP
.B Slapd
can be configured to provide replicated service for a database with
the help of
.BR slurpd ,
the standalone LDAP update replication daemon.
See
.BR slurpd (8)
for details.
.LP
See the "OpenLDAP Administrator's Guide" for more details on
.BR slapd .
.SH OPTIONS
......@@ -306,8 +297,7 @@ To test whether the configuration file is correct or not, type:
.BR slapdn (8),
.BR slapindex (8),
.BR slappasswd (8),
.BR slaptest (8),
.BR slurpd (8)
.BR slaptest (8).
.LP
"OpenLDAP Administrator's Guide" (http://www.OpenLDAP.org/doc/admin/)
.SH BUGS
......
.TH SLURPD 8C "RELEASEDATE" "OpenLDAP LDVERSION"
.\" $OpenLDAP$
.\" Copyright 1998-2007 The OpenLDAP Foundation All Rights Reserved.
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
.SH NAME
slurpd \- Standalone LDAP Update Replication Daemon
.SH SYNOPSIS
.B LIBEXECDIR/slurpd [\-d debug\-level]
.B [\-f slapd\-config\-file] [\-r slapd\-replog\-file]
.B [\-t temp\-dir] [\-o]
.B
.SH DESCRIPTION
.LP
.B Slurpd
is used to propagate changes from one slapd database to another. If
slapd is configured to produce a replication log,
.B slurpd
reads that
replication log and sends the changes to the slave
.B slapd
instances