1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-12 07:27:57 +00:00

[MAINTAINER] ports net/openldap2[012]-server: use RC_SUBR, miscellaneous improvements

- use RC_SUBR (PR 54352, submitted by Scot W. Hetzel <hetzels@westbend.net>)
	- run slapd under a non-privileged account by default (PR 56075)
	- remove ${PORTSDIR}/net/openldap20-server/bsd.openldap.mk (PR 55680)
	- use USE_OPENLDAP
	- improve conflict checking (PR 54845, submitted by Jens Rehsack <rehsack@liwing.de>)
	- make ODBC library selectable (PR 46288, submitted by Emile Heitor <eheitor@fr.cw.net>)
	- don't use USE_OPENSSL to avoid gazillions of -rpath warnings

PR:		ports/56077
Submitted by:	    Oliver Eikemeier <eikemeier@fillmore-labs.com>
This commit is contained in:
Edwin Groothuis 2003-08-28 12:51:08 +00:00
parent c55a2fd4cb
commit d90d7b94c0
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=87902
35 changed files with 985 additions and 645 deletions

View File

@ -34,7 +34,8 @@ COMMENT?= Open source LDAP server implementation
OPENLDAP_VERSION= 2.0.27
LATEST_LINK= ${PKGNAMEPREFIX}openldap20${PKGNAMESUFFIX}
CONFLICTS= ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-*
CONFLICTS= openldap12-* \
${PKGNAMEPREFIX}${PORTNAME}-client-2.[1-9].*
WANT_OPENLDAP_VER?= 20
.if ${WANT_OPENLDAP_VER} != 20
@ -45,15 +46,20 @@ BROKEN= "incompatible OpenLDAP version: ${WANT_OPENLDAP_VER}"
OPENLDAP_PORTVERSION= 0
OPENLDAP_PKGNAMESUFFIX?=-client
OPENLDAP_PKGFILESUFX?= .client
.if defined(USE_OPENLDAP)
.error You have `USE_OPENLDAP' defined either in your environment or in make(1) arguments.
.endif
.else
OPENLDAP_PORTVERSION= 0
OPENLDAP_PORTVERSION= 1
OPENLDAP_PKGNAMESUFFIX?=-server
OPENLDAP_PKGFILESUFX?=
LIB_DEPENDS+= ldap.2:${PORTSDIR}/net/openldap20-client
USE_OPENLDAP= yes
CONFLICTS+= ${PKGNAMEPREFIX}${PORTNAME}-server-2.[1-9].*
.endif
USE_OPENSSL= yes
#USE_OPENSSL= yes
USE_REINPLACE= yes
USE_LIBTOOL_VER= 13
@ -89,7 +95,7 @@ CONFIGURE_ARGS+= --without-cyrus-sasl
CONFIGURE_ARGS+= --disable-slapd
INSTALLS_SHLIB= yes
INSTALLS_SHLIB= yes
.else
# server specific configuration
@ -124,8 +130,18 @@ CONFIGURE_ARGS+= --enable-spasswd
.endif
.if defined(WITH_ODBC)
WITH_ODBC_TYPE?= iODBC
.endif
.if defined(WITH_ODBC_TYPE)
.if ${WITH_ODBC_TYPE:L} == iodbc
LIB_DEPENDS+= iodbc.3:${PORTSDIR}/databases/libiodbc
CONFIGURE_ARGS+= --enable-sql
.elif ${WITH_ODBC_TYPE:L} == unixodbc
LIB_DEPENDS+= odbc.1:${PORTSDIR}/databases/unixODBC
CONFIGURE_ARGS+= --enable-sql
.else
.error WITH_ODBC_TYPE must be iODBC or unixODBC
.endif
.endif
# Include tcp-wrapper support
@ -150,6 +166,22 @@ CONFIGURE_ENV= CPPFLAGS="${CPPFLAGS}" \
.if defined(CLIENT_ONLY)
.include "${FILESDIR}/manpages"
.else
.if ${OSVERSION} >= 500038
RC_SUBR?= ${DESTDIR}/etc/rc.subr
RC_DIR= ${DESTDIR}/etc/rc.d
RC_SUFX=
.else
USE_RC_SUBR= yes
RC_DIR= ${PREFIX}/etc/rc.d
RC_SUFX= .sh
.endif
SED_SCRIPT+= -e 's,%%RC_SUBR%%,${RC_SUBR},g' \
-e 's,%%RC_DIR%%,${RC_DIR},g' \
-e 's,%%RC_SUFX%%,${RC_SUFX},g'
PLIST_SUB+= RC_DIR=${RC_DIR} \
RC_SUFX=${RC_SUFX}
.endif
pre-everything::
@ -164,6 +196,7 @@ pre-everything::
@${ECHO} "WITH_SASL with (Cyrus) SASL1 password verification"
@${ECHO} "WITH_SHELL with Shell backend"
@${ECHO} "WITH_ODBC with SQL backend"
@${ECHO} "WITH_ODBC_TYPE select ODBC interface (iODBC or unixODBC)"
@${ECHO} "WITHOUT_TCP_WRAPPERS without tcp wrapper support"
.endif
@${ECHO}
@ -179,8 +212,8 @@ pre-configure:
${WRKSRC}/configure
post-build:
.for script in slapd.sh slurpd.sh
@${SED} ${SED_SCRIPT} ${FILESDIR}/${script} >${WRKDIR}/${script}
.for script in slapd slurpd
@${SED} ${SED_SCRIPT} ${FILESDIR}/${script}.sh >${WRKDIR}/${script}.sh
.endfor
.for text in pkg-install pkg-message
@if [ -f ${MASTERDIR}/${text}${OPENLDAP_PKGFILESUFX} ]; then \
@ -208,6 +241,9 @@ pre-install:
@${ECHO_CMD} "@dirrm %%DOCSDIR%%" >>${PLIST}
.endif
.endif
@if [ -f ${PKGINSTALL} ]; then \
${SETENV} "PKG_PREFIX=${PREFIX}" ${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL; \
fi
post-install:
.if defined(CLIENT_ONLY)
@ -220,12 +256,11 @@ post-install:
done
.endif
.else
.for script in slapd.sh slurpd.sh
@${INSTALL_SCRIPT} ${WRKDIR}/${script} ${PREFIX}/etc/rc.d/${script}.sample
.for script in slapd slurpd
@${INSTALL_SCRIPT} ${WRKDIR}/${script}.sh ${RC_DIR}/${script}${RC_SUFX}
.endfor
@${MKDIR} ${LDAP_RUN_DIR}
.endif
@${CAT} ${PKGMESSAGE}
.include "${.CURDIR}/../openldap20-server/bsd.openldap.mk"
.include <bsd.port.post.mk>

View File

@ -1,34 +0,0 @@
#-*- mode: makefile; tab-width: 4; -*-
# ex:ts=4
#
# $FreeBSD$
#
# USE_OPENLDAP - Says that the port uses the OpenLDAP libraries
# - Implies WANT_OPENLDAP_VER?=21.
# WANT_OPENLDAP_VER - legal values are: 12, 20, 21 and 22
# - If set to an unknown value, the port is marked BROKEN.
##
######################################################################
######################################################################
# OpenLDAP
.if defined(USE_OPENLDAP_VER)
USE_OPENLDAP?= yes
WANT_OPENLDAP_VER= ${USE_OPENLDAP_VER}
.endif
.if defined(USE_OPENLDAP)
WANT_OPENLDAP_VER?= 21
.if ${WANT_OPENLDAP_VER} == 12
LIB_DEPENDS+= ldap.1:${PORTSDIR}/net/openldap12
.elif ${WANT_OPENLDAP_VER} == 20 || ${WANT_OPENLDAP_VER} == 21 || \
${WANT_OPENLDAP_VER} == 22
LIB_DEPENDS+= ldap.2:${PORTSDIR}/net/openldap${WANT_OPENLDAP_VER}-client
.else
BROKEN= "unknown OpenLDAP version: ${WANT_OPENLDAP_VER}"
.endif
.endif
# END OpenLDAP

View File

@ -0,0 +1,16 @@
--- servers/slapd/main.c.orig Fri Jan 4 21:38:28 2002
+++ servers/slapd/main.c Fri Aug 22 14:25:23 2003
@@ -480,6 +480,13 @@
#endif
slapd_daemon_destroy();
+ if ( slapd_pid_file != NULL ) {
+ unlink( slapd_pid_file );
+ }
+ if ( slapd_args_file != NULL ) {
+ unlink( slapd_args_file );
+ }
+
#ifdef CSRIMALLOC
mal_dumpleaktrace( leakfile );
#endif

View File

@ -1,59 +1,83 @@
#!/bin/sh
#
# $FreeBSD$
#
slapd_program=%%PREFIX%%/libexec/slapd
slapd_pidfile=%%LDAP_RUN_DIR%%/slapd.pid
slapd_enable="YES"
slapd_args=
# PROVIDE: slapd
# REQUIRE: NETWORKING SERVERS
# BEFORE: DAEMON
# KEYWORD: FreeBSD shutdown
#
# Add the following lines to /etc/rc.conf to enable slapd:
#
#slapd_enable="YES"
#slapd_args='-h "ldapi://%2fvar%2frun%2fopenldap%2fldapi/ ldap://0.0.0.0/"'
#slapd_flags='-h "ldapi://%2fvar%2frun%2fopenldap%2fldapi/ ldap://0.0.0.0/"'
#slapd_sockets="/var/run/openldap/ldapi"
#
# See sldap(8) for details
# See slapd(8) for more flags
#
# Create a user 'ldap' and add '-u ldap -g ldap' to slapd_args
# if you want to run slapd as a non-privileged user (recommended)
# The `-u' and `-g' flags are automatically extracted from slapd_owner,
# by default slapd runs under the non-privileged user id `ldap'. If you
# want to run slapd as root, override this in /etc/rc.conf with
#
#slapd_owner=
#
# Suck in the configuration variables.
if [ -r /etc/defaults/rc.conf ]; then
. /etc/defaults/rc.conf
source_rc_confs
elif [ -r /etc/rc.conf ]; then
. /etc/rc.conf
fi
. %%RC_SUBR%%
case "$slapd_enable" in
[Yy][Ee][Ss])
case "$1" in
start)
if [ -x ${slapd_program} ]; then
echo -n ' slapd'
eval ${slapd_program} ${slapd_args}
fi
;;
stop)
if [ -f $slapd_pidfile ]; then
kill `cat $slapd_pidfile`
echo -n ' slapd'
else
echo ' slapd: not running'
fi
;;
*)
echo "Usage: `basename $0` {start|stop}" >&2
exit 64
;;
esac
;;
*)
;;
esac
name=slapd
rcvar=`set_rcvar`
exit 0
command=%%PREFIX%%/libexec/slapd
pidfile=%%LDAP_RUN_DIR%%/slapd.pid
required_dirs=%%LDAP_RUN_DIR%%
required_files=%%PREFIX%%/etc/openldap/slapd.conf
start_precmd=start_precmd
start_postcmd=start_postcmd
start_precmd()
{
if [ x"$slapd_owner" != x ]; then
chown "${slapd_owner}" "%%LDAP_RUN_DIR%%"
chown -RL "${slapd_owner}" "%%LOCALSTATEDIR%%/openldap-ldbm"
chown "${slapd_owner}" "%%PREFIX%%/etc/openldap/slapd.conf"
slapd_ownername=`expr //"$slapd_owner" : //'\([^:]*\)'`
slapd_groupname=`expr //"$slapd_owner" : //'.*:\([^:]*\)'`
if [ x"$slapd_ownername" != x ]; then
rc_flags="$rc_flags -u $slapd_ownername"
fi
if [ x"$slapd_groupname" != x ]; then
rc_flags="$rc_flags -g $slapd_groupname"
fi
fi
}
start_postcmd()
{
for socket in ${slapd_sockets}; do
for seconds in 1 2 3 4 5; do
test -e ${socket} && break
sleep 1
done
if [ -S ${socket} ]; then
if [ x"$slapd_owner" != x ]; then
chown "${slapd_owner}" ${socket}
fi
chmod "${slapd_sockets_mode}" ${socket}
fi
done
}
slapd_enable="NO"
slapd_flags=
slapd_owner=ldap:ldap
slapd_sockets=
slapd_sockets_mode=666
load_rc_config $name
run_rc_command "$1"

View File

@ -1,50 +1,31 @@
#!/bin/sh
#
# $FreeBSD$
#
slurpd_program=%%PREFIX%%/libexec/slurpd
slurpd_enable="YES"
slurpd_args=
# PROVIDE: slurpd
# REQUIRE: slapd
# BEFORE:
# KEYWORD: FreeBSD shutdown
# Add the following line to /etc/rc.conf to enable slurpd:
#
#slurpd_enable="YES"
#
# See slurpd(8) for details
# See slurpd(8) for more flags
#
# Suck in the configuration variables.
if [ -r /etc/defaults/rc.conf ]; then
. /etc/defaults/rc.conf
source_rc_confs
elif [ -r /etc/rc.conf ]; then
. /etc/rc.conf
fi
. %%RC_SUBR%%
case "$slurpd_enable" in
[Yy][Ee][Ss])
case "$1" in
start)
if [ -x ${slurpd_program} ]; then
echo -n ' slurpd'
${slurpd_program} ${slurpd_args}
fi
;;
stop)
if ! killall `basename ${slurpd_program}`; then
echo ' slurpd: not running'
fi
;;
*)
echo "Usage: `basename $0` {start|stop}" >&2
exit 64
;;
esac
;;
*)
;;
esac
name=slurpd
rcvar=`set_rcvar`
exit 0
command=%%PREFIX%%/libexec/slurpd
required_files=%%PREFIX%%/etc/openldap/slapd.conf
slurpd_enable="NO"
slurpd_args=
load_rc_config $name
run_rc_command "$1"

View File

@ -2,10 +2,42 @@
#
# $FreeBSD$
#
if [ X"$2" != X"POST-INSTALL" ]; then
exit 0;
fi
mkdir -p "%%LDAP_RUN_DIR%%"
mkdir -p -m 700 "%%LOCALSTATEDIR%%/openldap-ldbm"
mkdir -p -m 700 "%%LOCALSTATEDIR%%/openldap-slurp"
CHOWN=/usr/sbin/chown
ECHO_CMD=echo
GREP=/usr/bin/grep
PW=/usr/sbin/pw
FTPUSERS=/etc/ftpusers
case $2 in
PRE-INSTALL)
if ! ${PW} usershow -n ldap >/dev/null 2>&1; then
if ! ${PW} groupshow -n ldap >/dev/null 2>&1; then
if ! ${PW} groupadd -n ldap -g 389; then
${ECHO_CMD}
${ECHO_CMD} "*** Failed to add a group ldap with id 389."
${ECHO_CMD}
${ECHO_CMD} "Please add the ldap user manually with"
${ECHO_CMD} " ${PW} useradd -n ldap -g ldap -c 'OpenLDAP server' \\"
${ECHO_CMD} " -d /nonexistent -s /sbin/nologin -h -"
${ECHO_CMD} "and retry installing this package."
exit 1
fi
fi
if ${PW} useradd -n ldap -u 389 -g ldap -c 'OpenLDAP Server' \
-d /nonexistent -s /sbin/nologin -h -; then
${GREP} -qs '^ldap$' ${FTPUSERS} || ${ECHO_CMD} ldap >> ${FTPUSERS}
else
${ECHO_CMD}
${ECHO_CMD} "*** Failed to add an user ldap with id 389."
${ECHO_CMD}
${ECHO_CMD} "Please add the ldap user manually with"
${ECHO_CMD} " ${PW} useradd -n ldap -g ldap -c 'OpenLDAP server' \\"
${ECHO_CMD} " -d /nonexistent -s /sbin/nologin -h -"
${ECHO_CMD} "and retry installing this package."
exit 1
fi
fi
;;
esac

View File

@ -4,25 +4,25 @@ The OpenLDAP server package has been successfully installed.
In order to run the LDAP server, you need to edit
%%PREFIX%%/etc/openldap/slapd.conf
to suit your needs and add the next lines to /etc/rc.conf:
to suit your needs and add the following lines to /etc/rc.conf:
slapd_enable="YES"
slapd_args='-h "ldapi://%2fvar%2frun%2fopenldap%2fldapi/ ldap://0.0.0.0/"'
slapd_flags='-h "ldapi://%2fvar%2frun%2fopenldap%2fldapi/ ldap://0.0.0.0/"'
slapd_sockets="/var/run/openldap/ldapi"
Then add a link to %%PREFIX%%/etc/rc.d/slapd.sh.sample:
ln -s %%PREFIX%%/etc/rc.d/slapd.sh.sample %%PREFIX%%/etc/rc.d/slapd.sh
and start the server with
%%PREFIX%%/etc/rc.d/slapd.sh start
Then start the server with
%%RC_DIR%%/slapd%%RC_SUFX%% start
or reboot.
NOTE: There is no real reason to run slapd as root. Add
'-u ldap -g ldap'
to slapd_args, create a user "ldap" with
pw add group ldap -g 389
pw add user ldap -u 389 -g 389 -d /nonexistent \
-c "OpenLDAP Server" -s /sbin/nologin -p "*"
and do
chown -R ldap:ldap %%LDAP_RUN_DIR%% \
%%LOCALSTATEDIR%%/openldap-ldbm %%PREFIX%%/etc/openldap/slapd.conf
and your server runs with a non-privileged user id.
Try `man slapd' and the online manual at
http://www.OpenLDAP.org/doc/admin20/
for more information.
NOTE: Some variable names have been changed to conform with rc.subr(8)
If you are upgrading, you may want to check your configuration with
grep ^slapd_ /etc/rc.conf
slapd runs under a non-privileged user id (by default `ldap'),
see %%RC_DIR%%/slapd%%RC_SUFX%% for more information.
************************************************************

View File

@ -1,6 +1,6 @@
@comment $FreeBSD$
@unexec %D/etc/rc.d/slapd.sh stop 2>/dev/null || true
@unexec %D/etc/rc.d/slurpd.sh stop 2>/dev/null || true
@unexec %%RC_DIR%%/slapd%%RC_SUFX%% stop 2>/dev/null || true
@unexec %%RC_DIR%%/slurpd%%RC_SUFX%% stop 2>/dev/null || true
@unexec if cmp -s %D/etc/openldap/schema/corba.schema %D/etc/openldap/schema/corba.schema.default; then rm -f %D/etc/openldap/schema/corba.schema; fi
etc/openldap/schema/corba.schema.default
@exec [ -f %B/corba.schema ] || cp %B/%f %B/corba.schema
@ -33,14 +33,18 @@ etc/openldap/slapd.conf.default
@exec [ -f %B/slapd.conf ] || cp %B/%f %B/slapd.conf
@unexec rmdir %D/etc/openldap/schema 2>/dev/null || true
@unexec rmdir %D/etc/openldap 2>/dev/null || true
etc/rc.d/slapd.sh.sample
etc/rc.d/slurpd.sh.sample
libexec/slapd
libexec/slurpd
sbin/slapadd
sbin/slapcat
sbin/slapindex
sbin/slappasswd
@exec mkdir -p %%LOCALSTATEDIR%%/openldap-slurp
@unexec rmdir %%LOCALSTATEDIR%%/openldap-slurp 2>/dev/null || true
@exec mkdir -p %%LOCALSTATEDIR%%/openldap-ldbm
@unexec rmdir %%LOCALSTATEDIR%%/openldap-ldbm 2>/dev/null || true
@exec mkdir -p %%LDAP_RUN_DIR%%
@unexec rmdir %%LDAP_RUN_DIR%% 2>/dev/null || true
@cwd %%RC_DIR%%
slapd%%RC_SUFX%%
slurpd%%RC_SUFX%%

View File

@ -34,7 +34,8 @@ COMMENT?= Open source LDAP server implementation
OPENLDAP_VERSION= 2.1.22
LATEST_LINK= ${PKGNAMEPREFIX}openldap21${PKGNAMESUFFIX}
CONFLICTS= ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-*
CONFLICTS= openldap12-* \
${PKGNAMEPREFIX}${PORTNAME}-client-2.[02-9].*
WANT_OPENLDAP_VER?= 21
.if ${WANT_OPENLDAP_VER} != 21
@ -45,15 +46,20 @@ BROKEN= "incompatible OpenLDAP version: ${WANT_OPENLDAP_VER}"
OPENLDAP_PORTVERSION= 0
OPENLDAP_PKGNAMESUFFIX?=-client
OPENLDAP_PKGFILESUFX?= .client
.if defined(USE_OPENLDAP)
.error You have `USE_OPENLDAP' defined either in your environment or in make(1) arguments.
.endif
.else
OPENLDAP_PORTVERSION= 0
OPENLDAP_PORTVERSION= 1
OPENLDAP_PKGNAMESUFFIX?=-server
OPENLDAP_PKGFILESUFX?=
LIB_DEPENDS+= ldap.2:${PORTSDIR}/net/openldap21-client
USE_OPENLDAP= yes
CONFLICTS+= ${PKGNAMEPREFIX}${PORTNAME}-server-2.[02-9].*
.endif
USE_OPENSSL= yes
#USE_OPENSSL= yes
USE_REINPLACE= yes
USE_LIBTOOL_VER= 14
@ -88,7 +94,7 @@ CONFIGURE_ARGS+= --without-cyrus-sasl
CONFIGURE_ARGS+= --disable-slapd
INSTALLS_SHLIB= yes
INSTALLS_SHLIB= yes
.else
# server specific configuration
@ -136,8 +142,18 @@ CONFIGURE_ARGS+= --enable-spasswd
.endif
.if defined(WITH_ODBC)
WITH_ODBC_TYPE?= iODBC
.endif
.if defined(WITH_ODBC_TYPE)
.if ${WITH_ODBC_TYPE:L} == iodbc
LIB_DEPENDS+= iodbc.3:${PORTSDIR}/databases/libiodbc
CONFIGURE_ARGS+= --enable-sql
.elif ${WITH_ODBC_TYPE:L} == unixodbc
LIB_DEPENDS+= odbc.1:${PORTSDIR}/databases/unixODBC
CONFIGURE_ARGS+= --enable-sql
.else
.error WITH_ODBC_TYPE must be iODBC or unixODBC
.endif
.endif
# Include tcp-wrapper support
@ -162,6 +178,22 @@ CONFIGURE_ENV= CPPFLAGS="${CPPFLAGS}" \
.if defined(CLIENT_ONLY)
.include "${FILESDIR}/manpages"
.else
.if ${OSVERSION} >= 500038
RC_SUBR?= ${DESTDIR}/etc/rc.subr
RC_DIR= ${DESTDIR}/etc/rc.d
RC_SUFX=
.else
USE_RC_SUBR= yes
RC_DIR= ${PREFIX}/etc/rc.d
RC_SUFX= .sh
.endif
SED_SCRIPT+= -e 's,%%RC_SUBR%%,${RC_SUBR},g' \
-e 's,%%RC_DIR%%,${RC_DIR},g' \
-e 's,%%RC_SUFX%%,${RC_SUFX},g'
PLIST_SUB+= RC_DIR=${RC_DIR} \
RC_SUFX=${RC_SUFX}
.endif
pre-everything::
@ -177,6 +209,7 @@ pre-everything::
@${ECHO} "WITH_PERL with Perl backend"
@${ECHO} "WITH_SHELL with Shell backend"
@${ECHO} "WITH_ODBC with SQL backend"
@${ECHO} "WITH_ODBC_TYPE select ODBC interface (iODBC or unixODBC)"
@${ECHO} "WITHOUT_TCP_WRAPPERS without tcp wrapper support"
.endif
@${ECHO}
@ -192,8 +225,8 @@ pre-configure:
${WRKSRC}/configure
post-build:
.for script in slapd.sh slurpd.sh
@${SED} ${SED_SCRIPT} ${FILESDIR}/${script} >${WRKDIR}/${script}
.for script in slapd slurpd
@${SED} ${SED_SCRIPT} ${FILESDIR}/${script}.sh >${WRKDIR}/${script}.sh
.endfor
.for text in pkg-install pkg-message
@if [ -f ${MASTERDIR}/${text}${OPENLDAP_PKGFILESUFX} ]; then \
@ -221,6 +254,9 @@ pre-install:
@${ECHO_CMD} "@dirrm %%DOCSDIR%%" >>${PLIST}
.endif
.endif
@if [ -f ${PKGINSTALL} ]; then \
${SETENV} "PKG_PREFIX=${PREFIX}" ${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL; \
fi
post-install:
.if defined(CLIENT_ONLY)
@ -233,12 +269,11 @@ post-install:
done
.endif
.else
.for script in slapd.sh slurpd.sh
@${INSTALL_SCRIPT} ${WRKDIR}/${script} ${PREFIX}/etc/rc.d/${script}
.for script in slapd slurpd
@${INSTALL_SCRIPT} ${WRKDIR}/${script}.sh ${RC_DIR}/${script}${RC_SUFX}
.endfor
@${MKDIR} ${LDAP_RUN_DIR}
.endif
@${CAT} ${PKGMESSAGE}
.include "${.CURDIR}/../openldap20-server/bsd.openldap.mk"
.include <bsd.port.post.mk>

View File

@ -1,59 +1,83 @@
#!/bin/sh
#
# $FreeBSD$
#
slapd_program=%%PREFIX%%/libexec/slapd
slapd_pidfile=%%LDAP_RUN_DIR%%/slapd.pid
slapd_enable="NO"
slapd_args=
# PROVIDE: slapd
# REQUIRE: NETWORKING SERVERS
# BEFORE: DAEMON
# KEYWORD: FreeBSD shutdown
#
# Add the following lines to /etc/rc.conf to enable slapd:
#
#slapd_enable="YES"
#slapd_args='-h "ldapi://%2fvar%2frun%2fopenldap%2fldapi/????x-mod=0777 ldap://0.0.0.0/"'
#slapd_flags='-h "ldapi://%2fvar%2frun%2fopenldap%2fldapi/ ldap://0.0.0.0/"'
#slapd_sockets="/var/run/openldap/ldapi"
#
# See sldap(8) for details
# See slapd(8) for more flags
#
# Create a user 'ldap' and add '-u ldap -g ldap' to slapd_args
# if you want to run slapd as a non-privileged user (recommended)
# The `-u' and `-g' flags are automatically extracted from slapd_owner,
# by default slapd runs under the non-privileged user id `ldap'. If you
# want to run slapd as root, override this in /etc/rc.conf with
#
#slapd_owner=
#
# Suck in the configuration variables.
if [ -r /etc/defaults/rc.conf ]; then
. /etc/defaults/rc.conf
source_rc_confs
elif [ -r /etc/rc.conf ]; then
. /etc/rc.conf
fi
. %%RC_SUBR%%
case "$slapd_enable" in
[Yy][Ee][Ss])
case "$1" in
start)
if [ -x ${slapd_program} ]; then
echo -n ' slapd'
eval ${slapd_program} ${slapd_args}
fi
;;
stop)
if [ -f $slapd_pidfile ]; then
kill `cat $slapd_pidfile`
echo -n ' slapd'
else
echo ' slapd: not running'
fi
;;
*)
echo "Usage: `basename $0` {start|stop}" >&2
exit 64
;;
esac
;;
*)
;;
esac
name=slapd
rcvar=`set_rcvar`
exit 0
command=%%PREFIX%%/libexec/slapd
pidfile=%%LDAP_RUN_DIR%%/slapd.pid
required_dirs=%%LDAP_RUN_DIR%%
required_files=%%PREFIX%%/etc/openldap/slapd.conf
start_precmd=start_precmd
start_postcmd=start_postcmd
start_precmd()
{
if [ x"$slapd_owner" != x ]; then
chown "${slapd_owner}" "%%LDAP_RUN_DIR%%"
chown -RL "${slapd_owner}" "%%LOCALSTATEDIR%%/openldap-ldbm"
chown "${slapd_owner}" "%%PREFIX%%/etc/openldap/slapd.conf"
slapd_ownername=`expr //"$slapd_owner" : //'\([^:]*\)'`
slapd_groupname=`expr //"$slapd_owner" : //'.*:\([^:]*\)'`
if [ x"$slapd_ownername" != x ]; then
rc_flags="$rc_flags -u $slapd_ownername"
fi
if [ x"$slapd_groupname" != x ]; then
rc_flags="$rc_flags -g $slapd_groupname"
fi
fi
}
start_postcmd()
{
for socket in ${slapd_sockets}; do
for seconds in 1 2 3 4 5; do
test -e ${socket} && break
sleep 1
done
if [ -S ${socket} ]; then
if [ x"$slapd_owner" != x ]; then
chown "${slapd_owner}" ${socket}
fi
chmod "${slapd_sockets_mode}" ${socket}
fi
done
}
slapd_enable="NO"
slapd_flags=
slapd_owner=ldap:ldap
slapd_sockets=
slapd_sockets_mode=666
load_rc_config $name
run_rc_command "$1"

View File

@ -1,50 +1,31 @@
#!/bin/sh
#
# $FreeBSD$
#
slurpd_program=%%PREFIX%%/libexec/slurpd
slurpd_enable="NO"
slurpd_args=
# PROVIDE: slurpd
# REQUIRE: slapd
# BEFORE:
# KEYWORD: FreeBSD shutdown
# Add the following line to /etc/rc.conf to enable slurpd:
#
#slurpd_enable="YES"
#
# See slurpd(8) for details
# See slurpd(8) for more flags
#
# Suck in the configuration variables.
if [ -r /etc/defaults/rc.conf ]; then
. /etc/defaults/rc.conf
source_rc_confs
elif [ -r /etc/rc.conf ]; then
. /etc/rc.conf
fi
. %%RC_SUBR%%
case "$slurpd_enable" in
[Yy][Ee][Ss])
case "$1" in
start)
if [ -x ${slurpd_program} ]; then
echo -n ' slurpd'
${slurpd_program} ${slurpd_args}
fi
;;
stop)
if ! killall `basename ${slurpd_program}`; then
echo ' slurpd: not running'
fi
;;
*)
echo "Usage: `basename $0` {start|stop}" >&2
exit 64
;;
esac
;;
*)
;;
esac
name=slurpd
rcvar=`set_rcvar`
exit 0
command=%%PREFIX%%/libexec/slurpd
required_files=%%PREFIX%%/etc/openldap/slapd.conf
slurpd_enable="NO"
slurpd_args=
load_rc_config $name
run_rc_command "$1"

View File

@ -2,10 +2,42 @@
#
# $FreeBSD$
#
if [ X"$2" != X"POST-INSTALL" ]; then
exit 0;
fi
mkdir -p "%%LDAP_RUN_DIR%%"
mkdir -p -m 700 "%%LOCALSTATEDIR%%/openldap-data"
mkdir -p -m 700 "%%LOCALSTATEDIR%%/openldap-slurp"
CHOWN=/usr/sbin/chown
ECHO_CMD=echo
GREP=/usr/bin/grep
PW=/usr/sbin/pw
FTPUSERS=/etc/ftpusers
case $2 in
PRE-INSTALL)
if ! ${PW} usershow -n ldap >/dev/null 2>&1; then
if ! ${PW} groupshow -n ldap >/dev/null 2>&1; then
if ! ${PW} groupadd -n ldap -g 389; then
${ECHO_CMD}
${ECHO_CMD} "*** Failed to add a group ldap with id 389."
${ECHO_CMD}
${ECHO_CMD} "Please add the ldap user manually with"
${ECHO_CMD} " ${PW} useradd -n ldap -g ldap -c 'OpenLDAP server' \\"
${ECHO_CMD} " -d /nonexistent -s /sbin/nologin -h -"
${ECHO_CMD} "and retry installing this package."
exit 1
fi
fi
if ${PW} useradd -n ldap -u 389 -g ldap -c 'OpenLDAP Server' \
-d /nonexistent -s /sbin/nologin -h -; then
${GREP} -qs '^ldap$' ${FTPUSERS} || ${ECHO_CMD} ldap >> ${FTPUSERS}
else
${ECHO_CMD}
${ECHO_CMD} "*** Failed to add an user ldap with id 389."
${ECHO_CMD}
${ECHO_CMD} "Please add the ldap user manually with"
${ECHO_CMD} " ${PW} useradd -n ldap -g ldap -c 'OpenLDAP server' \\"
${ECHO_CMD} " -d /nonexistent -s /sbin/nologin -h -"
${ECHO_CMD} "and retry installing this package."
exit 1
fi
fi
;;
esac

View File

@ -4,23 +4,25 @@ The OpenLDAP server package has been successfully installed.
In order to run the LDAP server, you need to edit
%%PREFIX%%/etc/openldap/slapd.conf
to suit your needs and add the next lines to /etc/rc.conf:
to suit your needs and add the following lines to /etc/rc.conf:
slapd_enable="YES"
slapd_args='-h "ldapi://%2fvar%2frun%2fopenldap%2fldapi/????x-mod=0777 ldap://0.0.0.0/"'
slapd_flags='-h "ldapi://%2fvar%2frun%2fopenldap%2fldapi/ ldap://0.0.0.0/"'
slapd_sockets="/var/run/openldap/ldapi"
Then start the server with
%%PREFIX%%/etc/rc.d/slapd.sh start
%%RC_DIR%%/slapd%%RC_SUFX%% start
or reboot.
NOTE: There is no real reason to run slapd as root. Add
'-u ldap -g ldap'
to slapd_args, create a user "ldap" with
pw add group ldap -g 389
pw add user ldap -u 389 -g 389 -d /nonexistent \
-c "OpenLDAP Server" -s /sbin/nologin -p "*"
and do
chown -R ldap:ldap %%LDAP_RUN_DIR%% \
%%LOCALSTATEDIR%%/openldap-data %%PREFIX%%/etc/openldap/slapd.conf
and your server runs with a non-privileged user id.
Try `man slapd' and the online manual at
http://www.OpenLDAP.org/doc/admin20/
for more information.
NOTE: Some variable names have been changed to conform with rc.subr(8)
If you are upgrading, you may want to check your configuration with
grep ^slapd_ /etc/rc.conf
slapd runs under a non-privileged user id (by default `ldap'),
see %%RC_DIR%%/slapd%%RC_SUFX%% for more information.
************************************************************

View File

@ -1,6 +1,6 @@
@comment $FreeBSD$
@unexec %D/etc/rc.d/slapd.sh stop 2>/dev/null || true
@unexec %D/etc/rc.d/slurpd.sh stop 2>/dev/null || true
@unexec %%RC_DIR%%/slapd%%RC_SUFX%% stop 2>/dev/null || true
@unexec %%RC_DIR%%/slurpd%%RC_SUFX%% stop 2>/dev/null || true
etc/openldap/schema/README
@unexec if cmp -s %D/etc/openldap/schema/corba.schema %D/etc/openldap/schema/corba.schema.default; then rm -f %D/etc/openldap/schema/corba.schema; fi
etc/openldap/schema/corba.schema.default
@ -31,14 +31,18 @@ etc/openldap/slapd.conf.default
@exec [ -f %B/slapd.conf ] || cp %B/%f %B/slapd.conf
@unexec rmdir %D/etc/openldap/schema 2>/dev/null || true
@unexec rmdir %D/etc/openldap 2>/dev/null || true
etc/rc.d/slapd.sh
etc/rc.d/slurpd.sh
libexec/slapd
libexec/slurpd
sbin/slapadd
sbin/slapcat
sbin/slapindex
sbin/slappasswd
@exec mkdir -p %%LOCALSTATEDIR%%/openldap-slurp
@unexec rmdir %%LOCALSTATEDIR%%/openldap-slurp 2>/dev/null || true
@exec mkdir -p %%LOCALSTATEDIR%%/openldap-data
@unexec rmdir %%LOCALSTATEDIR%%/openldap-data 2>/dev/null || true
@exec mkdir -p %%LDAP_RUN_DIR%%
@unexec rmdir %%LDAP_RUN_DIR%% 2>/dev/null || true
@cwd %%RC_DIR%%
slapd%%RC_SUFX%%
slurpd%%RC_SUFX%%

View File

@ -35,7 +35,8 @@ COMMENT?= Open source LDAP server implementation
OPENLDAP_VERSION= 2.2.0
LATEST_LINK= ${PKGNAMEPREFIX}openldap22${PKGNAMESUFFIX}
CONFLICTS= ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-*
CONFLICTS= openldap12-* \
${PKGNAMEPREFIX}${PORTNAME}-client-2.[013-9].*
WANT_OPENLDAP_VER?= 22
.if ${WANT_OPENLDAP_VER} != 22
@ -46,15 +47,20 @@ BROKEN= "incompatible OpenLDAP version: ${WANT_OPENLDAP_VER}"
OPENLDAP_PORTVERSION= 0
OPENLDAP_PKGNAMESUFFIX?=-client
OPENLDAP_PKGFILESUFX?= .client
.if defined(USE_OPENLDAP)
.error You have `USE_OPENLDAP' defined either in your environment or in make(1) arguments.
.endif
.else
OPENLDAP_PORTVERSION= 0
OPENLDAP_PORTVERSION= 1
OPENLDAP_PKGNAMESUFFIX?=-server
OPENLDAP_PKGFILESUFX?=
LIB_DEPENDS+= ldap.2:${PORTSDIR}/net/openldap22-client
USE_OPENLDAP= yes
CONFLICTS+= ${PKGNAMEPREFIX}${PORTNAME}-server-2.[013-9].*
.endif
USE_OPENSSL= yes
#USE_OPENSSL= yes
USE_REINPLACE= yes
USE_LIBTOOL_VER= 14
@ -89,7 +95,7 @@ CONFIGURE_ARGS+= --without-cyrus-sasl
CONFIGURE_ARGS+= --disable-slapd
INSTALLS_SHLIB= yes
INSTALLS_SHLIB= yes
.else
# server specific configuration
@ -137,14 +143,25 @@ CONFIGURE_ARGS+= --enable-spasswd
.endif
.if defined(WITH_ODBC)
WITH_ODBC_TYPE?= iODBC
.endif
.if defined(WITH_ODBC_TYPE)
.if ${WITH_ODBC_TYPE:L} == iodbc
LIB_DEPENDS+= iodbc.3:${PORTSDIR}/databases/libiodbc
CONFIGURE_ARGS+= --enable-sql
.elif ${WITH_ODBC_TYPE:L} == unixodbc
LIB_DEPENDS+= odbc.1:${PORTSDIR}/databases/unixODBC
CONFIGURE_ARGS+= --enable-sql
.else
.error WITH_ODBC_TYPE must be iODBC or unixODBC
.endif
.endif
.if defined(WITH_SLAPI)
LIB_DEPENDS+= ltdl.4:${PORTSDIR}/devel/libltdl
CONFIGURE_ARGS+= --enable-slapi
PLIST_SUB+= SLAPI=""
INSTALLS_SHLIB= yes
.else
PLIST_SUB+= SLAPI="@comment "
.endif
@ -171,6 +188,22 @@ CONFIGURE_ENV= CPPFLAGS="${CPPFLAGS}" \
.if defined(CLIENT_ONLY)
.include "${FILESDIR}/manpages"
.else
.if ${OSVERSION} >= 500038
RC_SUBR?= ${DESTDIR}/etc/rc.subr
RC_DIR= ${DESTDIR}/etc/rc.d
RC_SUFX=
.else
USE_RC_SUBR= yes
RC_DIR= ${PREFIX}/etc/rc.d
RC_SUFX= .sh
.endif
SED_SCRIPT+= -e 's,%%RC_SUBR%%,${RC_SUBR},g' \
-e 's,%%RC_DIR%%,${RC_DIR},g' \
-e 's,%%RC_SUFX%%,${RC_SUFX},g'
PLIST_SUB+= RC_DIR=${RC_DIR} \
RC_SUFX=${RC_SUFX}
.endif
pre-everything::
@ -186,6 +219,7 @@ pre-everything::
@${ECHO} "WITH_PERL with Perl backend"
@${ECHO} "WITH_SHELL with Shell backend"
@${ECHO} "WITH_ODBC with SQL backend"
@${ECHO} "WITH_ODBC_TYPE select ODBC interface (iODBC or unixODBC)"
@${ECHO} "WITH_SLAPI with Netscape SLAPI plugin API
@${ECHO} "WITHOUT_TCP_WRAPPERS without tcp wrapper support"
.endif
@ -202,8 +236,8 @@ pre-configure:
${WRKSRC}/configure
post-build:
.for script in slapd.sh slurpd.sh
@${SED} ${SED_SCRIPT} ${FILESDIR}/${script} >${WRKDIR}/${script}
.for script in slapd slurpd
@${SED} ${SED_SCRIPT} ${FILESDIR}/${script}.sh >${WRKDIR}/${script}.sh
.endfor
.for text in pkg-install pkg-message
@if [ -f ${MASTERDIR}/${text}${OPENLDAP_PKGFILESUFX} ]; then \
@ -231,6 +265,9 @@ pre-install:
@${ECHO_CMD} "@dirrm %%DOCSDIR%%" >>${PLIST}
.endif
.endif
@if [ -f ${PKGINSTALL} ]; then \
${SETENV} "PKG_PREFIX=${PREFIX}" ${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL; \
fi
post-install:
.if defined(CLIENT_ONLY)
@ -243,12 +280,11 @@ post-install:
done
.endif
.else
.for script in slapd.sh slurpd.sh
@${INSTALL_SCRIPT} ${WRKDIR}/${script} ${PREFIX}/etc/rc.d/${script}
.for script in slapd slurpd
@${INSTALL_SCRIPT} ${WRKDIR}/${script}.sh ${RC_DIR}/${script}${RC_SUFX}
.endfor
@${MKDIR} ${LDAP_RUN_DIR}
.endif
@${CAT} ${PKGMESSAGE}
.include "${.CURDIR}/../openldap20-server/bsd.openldap.mk"
.include <bsd.port.post.mk>

View File

@ -1,11 +0,0 @@
--- servers/slapd/daemon.c.orig Sat May 24 21:12:20 2003
+++ servers/slapd/daemon.c Sun Jun 22 19:26:22 2003
@@ -858,7 +858,7 @@
#ifdef LDAP_PF_LOCAL
case AF_LOCAL: {
char *addr = ((struct sockaddr_un *)*sal)->sun_path;
-#if 0 /* don't muck with socket perms */
+#if 1
if ( chmod( addr, l.sl_perms ) < 0 && crit ) {
int err = sock_errno();
#ifdef NEW_LOGGING

View File

@ -1,59 +1,83 @@
#!/bin/sh
#
# $FreeBSD$
#
slapd_program=%%PREFIX%%/libexec/slapd
slapd_pidfile=%%LDAP_RUN_DIR%%/slapd.pid
slapd_enable="NO"
slapd_args=
# PROVIDE: slapd
# REQUIRE: NETWORKING SERVERS
# BEFORE: DAEMON
# KEYWORD: FreeBSD shutdown
#
# Add the following lines to /etc/rc.conf to enable slapd:
#
#slapd_enable="YES"
#slapd_args='-h "ldapi://%2fvar%2frun%2fopenldap%2fldapi/????x-mod=0777 ldap://0.0.0.0/"'
#slapd_flags='-h "ldapi://%2fvar%2frun%2fopenldap%2fldapi/ ldap://0.0.0.0/"'
#slapd_sockets="/var/run/openldap/ldapi"
#
# See sldap(8) for details
# See slapd(8) for more flags
#
# Create a user 'ldap' and add '-u ldap -g ldap' to slapd_args
# if you want to run slapd as a non-privileged user (recommended)
# The `-u' and `-g' flags are automatically extracted from slapd_owner,
# by default slapd runs under the non-privileged user id `ldap'. If you
# want to run slapd as root, override this in /etc/rc.conf with
#
#slapd_owner=
#
# Suck in the configuration variables.
if [ -r /etc/defaults/rc.conf ]; then
. /etc/defaults/rc.conf
source_rc_confs
elif [ -r /etc/rc.conf ]; then
. /etc/rc.conf
fi
. %%RC_SUBR%%
case "$slapd_enable" in
[Yy][Ee][Ss])
case "$1" in
start)
if [ -x ${slapd_program} ]; then
echo -n ' slapd'
eval ${slapd_program} ${slapd_args}
fi
;;
stop)
if [ -f $slapd_pidfile ]; then
kill `cat $slapd_pidfile`
echo -n ' slapd'
else
echo ' slapd: not running'
fi
;;
*)
echo "Usage: `basename $0` {start|stop}" >&2
exit 64
;;
esac
;;
*)
;;
esac
name=slapd
rcvar=`set_rcvar`
exit 0
command=%%PREFIX%%/libexec/slapd
pidfile=%%LDAP_RUN_DIR%%/slapd.pid
required_dirs=%%LDAP_RUN_DIR%%
required_files=%%PREFIX%%/etc/openldap/slapd.conf
start_precmd=start_precmd
start_postcmd=start_postcmd
start_precmd()
{
if [ x"$slapd_owner" != x ]; then
chown "${slapd_owner}" "%%LDAP_RUN_DIR%%"
chown -RL "${slapd_owner}" "%%LOCALSTATEDIR%%/openldap-ldbm"
chown "${slapd_owner}" "%%PREFIX%%/etc/openldap/slapd.conf"
slapd_ownername=`expr //"$slapd_owner" : //'\([^:]*\)'`
slapd_groupname=`expr //"$slapd_owner" : //'.*:\([^:]*\)'`
if [ x"$slapd_ownername" != x ]; then
rc_flags="$rc_flags -u $slapd_ownername"
fi
if [ x"$slapd_groupname" != x ]; then
rc_flags="$rc_flags -g $slapd_groupname"
fi
fi
}
start_postcmd()
{
for socket in ${slapd_sockets}; do
for seconds in 1 2 3 4 5; do
test -e ${socket} && break
sleep 1
done
if [ -S ${socket} ]; then
if [ x"$slapd_owner" != x ]; then
chown "${slapd_owner}" ${socket}
fi
chmod "${slapd_sockets_mode}" ${socket}
fi
done
}
slapd_enable="NO"
slapd_flags=
slapd_owner=ldap:ldap
slapd_sockets=
slapd_sockets_mode=666
load_rc_config $name
run_rc_command "$1"

View File

@ -1,50 +1,31 @@
#!/bin/sh
#
# $FreeBSD$
#
slurpd_program=%%PREFIX%%/libexec/slurpd
slurpd_enable="NO"
slurpd_args=
# PROVIDE: slurpd
# REQUIRE: slapd
# BEFORE:
# KEYWORD: FreeBSD shutdown
# Add the following line to /etc/rc.conf to enable slurpd:
#
#slurpd_enable="YES"
#
# See slurpd(8) for details
# See slurpd(8) for more flags
#
# Suck in the configuration variables.
if [ -r /etc/defaults/rc.conf ]; then
. /etc/defaults/rc.conf
source_rc_confs
elif [ -r /etc/rc.conf ]; then
. /etc/rc.conf
fi
. %%RC_SUBR%%
case "$slurpd_enable" in
[Yy][Ee][Ss])
case "$1" in
start)
if [ -x ${slurpd_program} ]; then
echo -n ' slurpd'
${slurpd_program} ${slurpd_args}
fi
;;
stop)
if ! killall `basename ${slurpd_program}`; then
echo ' slurpd: not running'
fi
;;
*)
echo "Usage: `basename $0` {start|stop}" >&2
exit 64
;;
esac
;;
*)
;;
esac
name=slurpd
rcvar=`set_rcvar`
exit 0
command=%%PREFIX%%/libexec/slurpd
required_files=%%PREFIX%%/etc/openldap/slapd.conf
slurpd_enable="NO"
slurpd_args=
load_rc_config $name
run_rc_command "$1"

View File

@ -2,10 +2,42 @@
#
# $FreeBSD$
#
if [ X"$2" != X"POST-INSTALL" ]; then
exit 0;
fi
mkdir -p "%%LDAP_RUN_DIR%%"
mkdir -p -m 700 "%%LOCALSTATEDIR%%/openldap-data"
mkdir -p -m 700 "%%LOCALSTATEDIR%%/openldap-slurp"
CHOWN=/usr/sbin/chown
ECHO_CMD=echo
GREP=/usr/bin/grep
PW=/usr/sbin/pw
FTPUSERS=/etc/ftpusers
case $2 in
PRE-INSTALL)
if ! ${PW} usershow -n ldap >/dev/null 2>&1; then
if ! ${PW} groupshow -n ldap >/dev/null 2>&1; then
if ! ${PW} groupadd -n ldap -g 389; then
${ECHO_CMD}
${ECHO_CMD} "*** Failed to add a group ldap with id 389."
${ECHO_CMD}
${ECHO_CMD} "Please add the ldap user manually with"
${ECHO_CMD} " ${PW} useradd -n ldap -g ldap -c 'OpenLDAP server' \\"
${ECHO_CMD} " -d /nonexistent -s /sbin/nologin -h -"
${ECHO_CMD} "and retry installing this package."
exit 1
fi
fi
if ${PW} useradd -n ldap -u 389 -g ldap -c 'OpenLDAP Server' \
-d /nonexistent -s /sbin/nologin -h -; then
${GREP} -qs '^ldap$' ${FTPUSERS} || ${ECHO_CMD} ldap >> ${FTPUSERS}
else
${ECHO_CMD}
${ECHO_CMD} "*** Failed to add an user ldap with id 389."
${ECHO_CMD}
${ECHO_CMD} "Please add the ldap user manually with"
${ECHO_CMD} " ${PW} useradd -n ldap -g ldap -c 'OpenLDAP server' \\"
${ECHO_CMD} " -d /nonexistent -s /sbin/nologin -h -"
${ECHO_CMD} "and retry installing this package."
exit 1
fi
fi
;;
esac

View File

@ -4,23 +4,25 @@ The OpenLDAP server package has been successfully installed.
In order to run the LDAP server, you need to edit
%%PREFIX%%/etc/openldap/slapd.conf
to suit your needs and add the next lines to /etc/rc.conf:
to suit your needs and add the following lines to /etc/rc.conf:
slapd_enable="YES"
slapd_args='-h "ldapi://%2fvar%2frun%2fopenldap%2fldapi/????x-mod=0777 ldap://0.0.0.0/"'
slapd_flags='-h "ldapi://%2fvar%2frun%2fopenldap%2fldapi/ ldap://0.0.0.0/"'
slapd_sockets="/var/run/openldap/ldapi"
Then start the server with
%%PREFIX%%/etc/rc.d/slapd.sh start
%%RC_DIR%%/slapd%%RC_SUFX%% start
or reboot.
NOTE: There is no real reason to run slapd as root. Add
'-u ldap -g ldap'
to slapd_args, create a user "ldap" with
pw add group ldap -g 389
pw add user ldap -u 389 -g 389 -d /nonexistent \
-c "OpenLDAP Server" -s /sbin/nologin -p "*"
and do
chown -R ldap:ldap %%LDAP_RUN_DIR%% \
%%LOCALSTATEDIR%%/openldap-data %%PREFIX%%/etc/openldap/slapd.conf
and your server runs with a non-privileged user id.
Try `man slapd' and the online manual at
http://www.OpenLDAP.org/doc/admin20/
for more information.
NOTE: Some variable names have been changed to conform with rc.subr(8)
If you are upgrading, you may want to check your configuration with
grep ^slapd_ /etc/rc.conf
slapd runs under a non-privileged user id (by default `ldap'),
see %%RC_DIR%%/slapd%%RC_SUFX%% for more information.
************************************************************

View File

@ -1,6 +1,6 @@
@comment $FreeBSD$
@unexec %D/etc/rc.d/slapd.sh stop 2>/dev/null || true
@unexec %D/etc/rc.d/slurpd.sh stop 2>/dev/null || true
@unexec %%RC_DIR%%/slapd%%RC_SUFX%% stop 2>/dev/null || true
@unexec %%RC_DIR%%/slurpd%%RC_SUFX%% stop 2>/dev/null || true
etc/openldap/schema/README
@unexec if cmp -s %D/etc/openldap/schema/corba.schema %D/etc/openldap/schema/corba.schema.default; then rm -f %D/etc/openldap/schema/corba.schema; fi
etc/openldap/schema/corba.schema.default
@ -31,8 +31,6 @@ etc/openldap/slapd.conf.default
@exec [ -f %B/slapd.conf ] || cp %B/%f %B/slapd.conf
@unexec rmdir %D/etc/openldap/schema 2>/dev/null || true
@unexec rmdir %D/etc/openldap 2>/dev/null || true
etc/rc.d/slapd.sh
etc/rc.d/slurpd.sh
%%SLAPI%%lib/libslapi.a
%%SLAPI%%lib/libslapi.so
%%SLAPI%%lib/libslapi.so.2
@ -42,6 +40,12 @@ sbin/slapadd
sbin/slapcat
sbin/slapindex
sbin/slappasswd
@exec mkdir -p %%LOCALSTATEDIR%%/openldap-slurp
@unexec rmdir %%LOCALSTATEDIR%%/openldap-slurp 2>/dev/null || true
@exec mkdir -p %%LOCALSTATEDIR%%/openldap-data
@unexec rmdir %%LOCALSTATEDIR%%/openldap-data 2>/dev/null || true
@exec mkdir -p %%LDAP_RUN_DIR%%
@unexec rmdir %%LDAP_RUN_DIR%% 2>/dev/null || true
@cwd %%RC_DIR%%
slapd%%RC_SUFX%%
slurpd%%RC_SUFX%%

View File

@ -35,7 +35,8 @@ COMMENT?= Open source LDAP server implementation
OPENLDAP_VERSION= 2.2.0
LATEST_LINK= ${PKGNAMEPREFIX}openldap22${PKGNAMESUFFIX}
CONFLICTS= ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-*
CONFLICTS= openldap12-* \
${PKGNAMEPREFIX}${PORTNAME}-client-2.[013-9].*
WANT_OPENLDAP_VER?= 22
.if ${WANT_OPENLDAP_VER} != 22
@ -46,15 +47,20 @@ BROKEN= "incompatible OpenLDAP version: ${WANT_OPENLDAP_VER}"
OPENLDAP_PORTVERSION= 0
OPENLDAP_PKGNAMESUFFIX?=-client
OPENLDAP_PKGFILESUFX?= .client
.if defined(USE_OPENLDAP)
.error You have `USE_OPENLDAP' defined either in your environment or in make(1) arguments.
.endif
.else
OPENLDAP_PORTVERSION= 0
OPENLDAP_PORTVERSION= 1
OPENLDAP_PKGNAMESUFFIX?=-server
OPENLDAP_PKGFILESUFX?=
LIB_DEPENDS+= ldap.2:${PORTSDIR}/net/openldap22-client
USE_OPENLDAP= yes
CONFLICTS+= ${PKGNAMEPREFIX}${PORTNAME}-server-2.[013-9].*
.endif
USE_OPENSSL= yes
#USE_OPENSSL= yes
USE_REINPLACE= yes
USE_LIBTOOL_VER= 14
@ -89,7 +95,7 @@ CONFIGURE_ARGS+= --without-cyrus-sasl
CONFIGURE_ARGS+= --disable-slapd
INSTALLS_SHLIB= yes
INSTALLS_SHLIB= yes
.else
# server specific configuration
@ -137,14 +143,25 @@ CONFIGURE_ARGS+= --enable-spasswd
.endif
.if defined(WITH_ODBC)
WITH_ODBC_TYPE?= iODBC
.endif
.if defined(WITH_ODBC_TYPE)
.if ${WITH_ODBC_TYPE:L} == iodbc
LIB_DEPENDS+= iodbc.3:${PORTSDIR}/databases/libiodbc
CONFIGURE_ARGS+= --enable-sql
.elif ${WITH_ODBC_TYPE:L} == unixodbc
LIB_DEPENDS+= odbc.1:${PORTSDIR}/databases/unixODBC
CONFIGURE_ARGS+= --enable-sql
.else
.error WITH_ODBC_TYPE must be iODBC or unixODBC
.endif
.endif
.if defined(WITH_SLAPI)
LIB_DEPENDS+= ltdl.4:${PORTSDIR}/devel/libltdl
CONFIGURE_ARGS+= --enable-slapi
PLIST_SUB+= SLAPI=""
INSTALLS_SHLIB= yes
.else
PLIST_SUB+= SLAPI="@comment "
.endif
@ -171,6 +188,22 @@ CONFIGURE_ENV= CPPFLAGS="${CPPFLAGS}" \
.if defined(CLIENT_ONLY)
.include "${FILESDIR}/manpages"
.else
.if ${OSVERSION} >= 500038
RC_SUBR?= ${DESTDIR}/etc/rc.subr
RC_DIR= ${DESTDIR}/etc/rc.d
RC_SUFX=
.else
USE_RC_SUBR= yes
RC_DIR= ${PREFIX}/etc/rc.d
RC_SUFX= .sh
.endif
SED_SCRIPT+= -e 's,%%RC_SUBR%%,${RC_SUBR},g' \
-e 's,%%RC_DIR%%,${RC_DIR},g' \
-e 's,%%RC_SUFX%%,${RC_SUFX},g'
PLIST_SUB+= RC_DIR=${RC_DIR} \
RC_SUFX=${RC_SUFX}
.endif
pre-everything::
@ -186,6 +219,7 @@ pre-everything::
@${ECHO} "WITH_PERL with Perl backend"
@${ECHO} "WITH_SHELL with Shell backend"
@${ECHO} "WITH_ODBC with SQL backend"
@${ECHO} "WITH_ODBC_TYPE select ODBC interface (iODBC or unixODBC)"
@${ECHO} "WITH_SLAPI with Netscape SLAPI plugin API
@${ECHO} "WITHOUT_TCP_WRAPPERS without tcp wrapper support"
.endif
@ -202,8 +236,8 @@ pre-configure:
${WRKSRC}/configure
post-build:
.for script in slapd.sh slurpd.sh
@${SED} ${SED_SCRIPT} ${FILESDIR}/${script} >${WRKDIR}/${script}
.for script in slapd slurpd
@${SED} ${SED_SCRIPT} ${FILESDIR}/${script}.sh >${WRKDIR}/${script}.sh
.endfor
.for text in pkg-install pkg-message
@if [ -f ${MASTERDIR}/${text}${OPENLDAP_PKGFILESUFX} ]; then \
@ -231,6 +265,9 @@ pre-install:
@${ECHO_CMD} "@dirrm %%DOCSDIR%%" >>${PLIST}
.endif
.endif
@if [ -f ${PKGINSTALL} ]; then \
${SETENV} "PKG_PREFIX=${PREFIX}" ${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL; \
fi
post-install:
.if defined(CLIENT_ONLY)
@ -243,12 +280,11 @@ post-install:
done
.endif
.else
.for script in slapd.sh slurpd.sh
@${INSTALL_SCRIPT} ${WRKDIR}/${script} ${PREFIX}/etc/rc.d/${script}
.for script in slapd slurpd
@${INSTALL_SCRIPT} ${WRKDIR}/${script}.sh ${RC_DIR}/${script}${RC_SUFX}
.endfor
@${MKDIR} ${LDAP_RUN_DIR}
.endif
@${CAT} ${PKGMESSAGE}
.include "${.CURDIR}/../openldap20-server/bsd.openldap.mk"
.include <bsd.port.post.mk>

View File

@ -1,11 +0,0 @@
--- servers/slapd/daemon.c.orig Sat May 24 21:12:20 2003
+++ servers/slapd/daemon.c Sun Jun 22 19:26:22 2003
@@ -858,7 +858,7 @@
#ifdef LDAP_PF_LOCAL
case AF_LOCAL: {
char *addr = ((struct sockaddr_un *)*sal)->sun_path;
-#if 0 /* don't muck with socket perms */
+#if 1
if ( chmod( addr, l.sl_perms ) < 0 && crit ) {
int err = sock_errno();
#ifdef NEW_LOGGING

View File

@ -1,59 +1,83 @@
#!/bin/sh
#
# $FreeBSD$
#
slapd_program=%%PREFIX%%/libexec/slapd
slapd_pidfile=%%LDAP_RUN_DIR%%/slapd.pid
slapd_enable="NO"
slapd_args=
# PROVIDE: slapd
# REQUIRE: NETWORKING SERVERS
# BEFORE: DAEMON
# KEYWORD: FreeBSD shutdown
#
# Add the following lines to /etc/rc.conf to enable slapd:
#
#slapd_enable="YES"
#slapd_args='-h "ldapi://%2fvar%2frun%2fopenldap%2fldapi/????x-mod=0777 ldap://0.0.0.0/"'
#slapd_flags='-h "ldapi://%2fvar%2frun%2fopenldap%2fldapi/ ldap://0.0.0.0/"'
#slapd_sockets="/var/run/openldap/ldapi"
#
# See sldap(8) for details
# See slapd(8) for more flags
#
# Create a user 'ldap' and add '-u ldap -g ldap' to slapd_args
# if you want to run slapd as a non-privileged user (recommended)
# The `-u' and `-g' flags are automatically extracted from slapd_owner,
# by default slapd runs under the non-privileged user id `ldap'. If you
# want to run slapd as root, override this in /etc/rc.conf with
#
#slapd_owner=
#
# Suck in the configuration variables.
if [ -r /etc/defaults/rc.conf ]; then
. /etc/defaults/rc.conf
source_rc_confs
elif [ -r /etc/rc.conf ]; then
. /etc/rc.conf
fi
. %%RC_SUBR%%
case "$slapd_enable" in
[Yy][Ee][Ss])
case "$1" in
start)
if [ -x ${slapd_program} ]; then
echo -n ' slapd'
eval ${slapd_program} ${slapd_args}
fi
;;
stop)
if [ -f $slapd_pidfile ]; then
kill `cat $slapd_pidfile`
echo -n ' slapd'
else
echo ' slapd: not running'
fi
;;
*)
echo "Usage: `basename $0` {start|stop}" >&2
exit 64
;;
esac
;;
*)
;;
esac
name=slapd
rcvar=`set_rcvar`
exit 0
command=%%PREFIX%%/libexec/slapd
pidfile=%%LDAP_RUN_DIR%%/slapd.pid
required_dirs=%%LDAP_RUN_DIR%%
required_files=%%PREFIX%%/etc/openldap/slapd.conf
start_precmd=start_precmd
start_postcmd=start_postcmd
start_precmd()
{
if [ x"$slapd_owner" != x ]; then
chown "${slapd_owner}" "%%LDAP_RUN_DIR%%"
chown -RL "${slapd_owner}" "%%LOCALSTATEDIR%%/openldap-ldbm"
chown "${slapd_owner}" "%%PREFIX%%/etc/openldap/slapd.conf"
slapd_ownername=`expr //"$slapd_owner" : //'\([^:]*\)'`
slapd_groupname=`expr //"$slapd_owner" : //'.*:\([^:]*\)'`
if [ x"$slapd_ownername" != x ]; then
rc_flags="$rc_flags -u $slapd_ownername"
fi
if [ x"$slapd_groupname" != x ]; then
rc_flags="$rc_flags -g $slapd_groupname"
fi
fi
}
start_postcmd()
{
for socket in ${slapd_sockets}; do
for seconds in 1 2 3 4 5; do
test -e ${socket} && break
sleep 1
done
if [ -S ${socket} ]; then
if [ x"$slapd_owner" != x ]; then
chown "${slapd_owner}" ${socket}
fi
chmod "${slapd_sockets_mode}" ${socket}
fi
done
}
slapd_enable="NO"
slapd_flags=
slapd_owner=ldap:ldap
slapd_sockets=
slapd_sockets_mode=666
load_rc_config $name
run_rc_command "$1"

View File

@ -1,50 +1,31 @@
#!/bin/sh
#
# $FreeBSD$
#
slurpd_program=%%PREFIX%%/libexec/slurpd
slurpd_enable="NO"
slurpd_args=
# PROVIDE: slurpd
# REQUIRE: slapd
# BEFORE:
# KEYWORD: FreeBSD shutdown
# Add the following line to /etc/rc.conf to enable slurpd:
#
#slurpd_enable="YES"
#
# See slurpd(8) for details
# See slurpd(8) for more flags
#
# Suck in the configuration variables.
if [ -r /etc/defaults/rc.conf ]; then
. /etc/defaults/rc.conf
source_rc_confs
elif [ -r /etc/rc.conf ]; then
. /etc/rc.conf
fi
. %%RC_SUBR%%
case "$slurpd_enable" in
[Yy][Ee][Ss])
case "$1" in
start)
if [ -x ${slurpd_program} ]; then
echo -n ' slurpd'
${slurpd_program} ${slurpd_args}
fi
;;
stop)
if ! killall `basename ${slurpd_program}`; then
echo ' slurpd: not running'
fi
;;
*)
echo "Usage: `basename $0` {start|stop}" >&2
exit 64
;;
esac
;;
*)
;;
esac
name=slurpd
rcvar=`set_rcvar`
exit 0
command=%%PREFIX%%/libexec/slurpd
required_files=%%PREFIX%%/etc/openldap/slapd.conf
slurpd_enable="NO"
slurpd_args=
load_rc_config $name
run_rc_command "$1"

View File

@ -2,10 +2,42 @@
#
# $FreeBSD$
#
if [ X"$2" != X"POST-INSTALL" ]; then
exit 0;
fi
mkdir -p "%%LDAP_RUN_DIR%%"
mkdir -p -m 700 "%%LOCALSTATEDIR%%/openldap-data"
mkdir -p -m 700 "%%LOCALSTATEDIR%%/openldap-slurp"
CHOWN=/usr/sbin/chown
ECHO_CMD=echo
GREP=/usr/bin/grep
PW=/usr/sbin/pw
FTPUSERS=/etc/ftpusers
case $2 in
PRE-INSTALL)
if ! ${PW} usershow -n ldap >/dev/null 2>&1; then
if ! ${PW} groupshow -n ldap >/dev/null 2>&1; then
if ! ${PW} groupadd -n ldap -g 389; then
${ECHO_CMD}
${ECHO_CMD} "*** Failed to add a group ldap with id 389."
${ECHO_CMD}
${ECHO_CMD} "Please add the ldap user manually with"
${ECHO_CMD} " ${PW} useradd -n ldap -g ldap -c 'OpenLDAP server' \\"
${ECHO_CMD} " -d /nonexistent -s /sbin/nologin -h -"
${ECHO_CMD} "and retry installing this package."
exit 1
fi
fi
if ${PW} useradd -n ldap -u 389 -g ldap -c 'OpenLDAP Server' \
-d /nonexistent -s /sbin/nologin -h -; then
${GREP} -qs '^ldap$' ${FTPUSERS} || ${ECHO_CMD} ldap >> ${FTPUSERS}
else
${ECHO_CMD}
${ECHO_CMD} "*** Failed to add an user ldap with id 389."
${ECHO_CMD}
${ECHO_CMD} "Please add the ldap user manually with"
${ECHO_CMD} " ${PW} useradd -n ldap -g ldap -c 'OpenLDAP server' \\"
${ECHO_CMD} " -d /nonexistent -s /sbin/nologin -h -"
${ECHO_CMD} "and retry installing this package."
exit 1
fi
fi
;;
esac

View File

@ -4,23 +4,25 @@ The OpenLDAP server package has been successfully installed.
In order to run the LDAP server, you need to edit
%%PREFIX%%/etc/openldap/slapd.conf
to suit your needs and add the next lines to /etc/rc.conf:
to suit your needs and add the following lines to /etc/rc.conf:
slapd_enable="YES"
slapd_args='-h "ldapi://%2fvar%2frun%2fopenldap%2fldapi/????x-mod=0777 ldap://0.0.0.0/"'
slapd_flags='-h "ldapi://%2fvar%2frun%2fopenldap%2fldapi/ ldap://0.0.0.0/"'
slapd_sockets="/var/run/openldap/ldapi"
Then start the server with
%%PREFIX%%/etc/rc.d/slapd.sh start
%%RC_DIR%%/slapd%%RC_SUFX%% start
or reboot.
NOTE: There is no real reason to run slapd as root. Add
'-u ldap -g ldap'
to slapd_args, create a user "ldap" with
pw add group ldap -g 389
pw add user ldap -u 389 -g 389 -d /nonexistent \
-c "OpenLDAP Server" -s /sbin/nologin -p "*"
and do
chown -R ldap:ldap %%LDAP_RUN_DIR%% \
%%LOCALSTATEDIR%%/openldap-data %%PREFIX%%/etc/openldap/slapd.conf
and your server runs with a non-privileged user id.
Try `man slapd' and the online manual at
http://www.OpenLDAP.org/doc/admin20/
for more information.
NOTE: Some variable names have been changed to conform with rc.subr(8)
If you are upgrading, you may want to check your configuration with
grep ^slapd_ /etc/rc.conf
slapd runs under a non-privileged user id (by default `ldap'),
see %%RC_DIR%%/slapd%%RC_SUFX%% for more information.
************************************************************

View File

@ -1,6 +1,6 @@
@comment $FreeBSD$
@unexec %D/etc/rc.d/slapd.sh stop 2>/dev/null || true
@unexec %D/etc/rc.d/slurpd.sh stop 2>/dev/null || true
@unexec %%RC_DIR%%/slapd%%RC_SUFX%% stop 2>/dev/null || true
@unexec %%RC_DIR%%/slurpd%%RC_SUFX%% stop 2>/dev/null || true
etc/openldap/schema/README
@unexec if cmp -s %D/etc/openldap/schema/corba.schema %D/etc/openldap/schema/corba.schema.default; then rm -f %D/etc/openldap/schema/corba.schema; fi
etc/openldap/schema/corba.schema.default
@ -31,8 +31,6 @@ etc/openldap/slapd.conf.default
@exec [ -f %B/slapd.conf ] || cp %B/%f %B/slapd.conf
@unexec rmdir %D/etc/openldap/schema 2>/dev/null || true
@unexec rmdir %D/etc/openldap 2>/dev/null || true
etc/rc.d/slapd.sh
etc/rc.d/slurpd.sh
%%SLAPI%%lib/libslapi.a
%%SLAPI%%lib/libslapi.so
%%SLAPI%%lib/libslapi.so.2
@ -42,6 +40,12 @@ sbin/slapadd
sbin/slapcat
sbin/slapindex
sbin/slappasswd
@exec mkdir -p %%LOCALSTATEDIR%%/openldap-slurp
@unexec rmdir %%LOCALSTATEDIR%%/openldap-slurp 2>/dev/null || true
@exec mkdir -p %%LOCALSTATEDIR%%/openldap-data
@unexec rmdir %%LOCALSTATEDIR%%/openldap-data 2>/dev/null || true
@exec mkdir -p %%LDAP_RUN_DIR%%
@unexec rmdir %%LDAP_RUN_DIR%% 2>/dev/null || true
@cwd %%RC_DIR%%
slapd%%RC_SUFX%%
slurpd%%RC_SUFX%%

View File

@ -35,7 +35,8 @@ COMMENT?= Open source LDAP server implementation
OPENLDAP_VERSION= 2.2.0
LATEST_LINK= ${PKGNAMEPREFIX}openldap22${PKGNAMESUFFIX}
CONFLICTS= ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-*
CONFLICTS= openldap12-* \
${PKGNAMEPREFIX}${PORTNAME}-client-2.[013-9].*
WANT_OPENLDAP_VER?= 22
.if ${WANT_OPENLDAP_VER} != 22
@ -46,15 +47,20 @@ BROKEN= "incompatible OpenLDAP version: ${WANT_OPENLDAP_VER}"
OPENLDAP_PORTVERSION= 0
OPENLDAP_PKGNAMESUFFIX?=-client
OPENLDAP_PKGFILESUFX?= .client
.if defined(USE_OPENLDAP)
.error You have `USE_OPENLDAP' defined either in your environment or in make(1) arguments.
.endif
.else
OPENLDAP_PORTVERSION= 0
OPENLDAP_PORTVERSION= 1
OPENLDAP_PKGNAMESUFFIX?=-server
OPENLDAP_PKGFILESUFX?=
LIB_DEPENDS+= ldap.2:${PORTSDIR}/net/openldap22-client
USE_OPENLDAP= yes
CONFLICTS+= ${PKGNAMEPREFIX}${PORTNAME}-server-2.[013-9].*
.endif
USE_OPENSSL= yes
#USE_OPENSSL= yes
USE_REINPLACE= yes
USE_LIBTOOL_VER= 14
@ -89,7 +95,7 @@ CONFIGURE_ARGS+= --without-cyrus-sasl
CONFIGURE_ARGS+= --disable-slapd
INSTALLS_SHLIB= yes
INSTALLS_SHLIB= yes
.else
# server specific configuration
@ -137,14 +143,25 @@ CONFIGURE_ARGS+= --enable-spasswd
.endif
.if defined(WITH_ODBC)
WITH_ODBC_TYPE?= iODBC
.endif
.if defined(WITH_ODBC_TYPE)
.if ${WITH_ODBC_TYPE:L} == iodbc
LIB_DEPENDS+= iodbc.3:${PORTSDIR}/databases/libiodbc
CONFIGURE_ARGS+= --enable-sql
.elif ${WITH_ODBC_TYPE:L} == unixodbc
LIB_DEPENDS+= odbc.1:${PORTSDIR}/databases/unixODBC
CONFIGURE_ARGS+= --enable-sql
.else
.error WITH_ODBC_TYPE must be iODBC or unixODBC
.endif
.endif
.if defined(WITH_SLAPI)
LIB_DEPENDS+= ltdl.4:${PORTSDIR}/devel/libltdl
CONFIGURE_ARGS+= --enable-slapi
PLIST_SUB+= SLAPI=""
INSTALLS_SHLIB= yes
.else
PLIST_SUB+= SLAPI="@comment "
.endif
@ -171,6 +188,22 @@ CONFIGURE_ENV= CPPFLAGS="${CPPFLAGS}" \
.if defined(CLIENT_ONLY)
.include "${FILESDIR}/manpages"
.else
.if ${OSVERSION} >= 500038
RC_SUBR?= ${DESTDIR}/etc/rc.subr
RC_DIR= ${DESTDIR}/etc/rc.d
RC_SUFX=
.else
USE_RC_SUBR= yes
RC_DIR= ${PREFIX}/etc/rc.d
RC_SUFX= .sh
.endif
SED_SCRIPT+= -e 's,%%RC_SUBR%%,${RC_SUBR},g' \
-e 's,%%RC_DIR%%,${RC_DIR},g' \
-e 's,%%RC_SUFX%%,${RC_SUFX},g'
PLIST_SUB+= RC_DIR=${RC_DIR} \
RC_SUFX=${RC_SUFX}
.endif
pre-everything::
@ -186,6 +219,7 @@ pre-everything::
@${ECHO} "WITH_PERL with Perl backend"
@${ECHO} "WITH_SHELL with Shell backend"
@${ECHO} "WITH_ODBC with SQL backend"
@${ECHO} "WITH_ODBC_TYPE select ODBC interface (iODBC or unixODBC)"
@${ECHO} "WITH_SLAPI with Netscape SLAPI plugin API
@${ECHO} "WITHOUT_TCP_WRAPPERS without tcp wrapper support"
.endif
@ -202,8 +236,8 @@ pre-configure:
${WRKSRC}/configure
post-build:
.for script in slapd.sh slurpd.sh
@${SED} ${SED_SCRIPT} ${FILESDIR}/${script} >${WRKDIR}/${script}
.for script in slapd slurpd
@${SED} ${SED_SCRIPT} ${FILESDIR}/${script}.sh >${WRKDIR}/${script}.sh
.endfor
.for text in pkg-install pkg-message
@if [ -f ${MASTERDIR}/${text}${OPENLDAP_PKGFILESUFX} ]; then \
@ -231,6 +265,9 @@ pre-install:
@${ECHO_CMD} "@dirrm %%DOCSDIR%%" >>${PLIST}
.endif
.endif
@if [ -f ${PKGINSTALL} ]; then \
${SETENV} "PKG_PREFIX=${PREFIX}" ${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL; \
fi
post-install:
.if defined(CLIENT_ONLY)
@ -243,12 +280,11 @@ post-install:
done
.endif
.else
.for script in slapd.sh slurpd.sh
@${INSTALL_SCRIPT} ${WRKDIR}/${script} ${PREFIX}/etc/rc.d/${script}
.for script in slapd slurpd
@${INSTALL_SCRIPT} ${WRKDIR}/${script}.sh ${RC_DIR}/${script}${RC_SUFX}
.endfor
@${MKDIR} ${LDAP_RUN_DIR}
.endif
@${CAT} ${PKGMESSAGE}
.include "${.CURDIR}/../openldap20-server/bsd.openldap.mk"
.include <bsd.port.post.mk>

View File

@ -1,11 +0,0 @@
--- servers/slapd/daemon.c.orig Sat May 24 21:12:20 2003
+++ servers/slapd/daemon.c Sun Jun 22 19:26:22 2003
@@ -858,7 +858,7 @@
#ifdef LDAP_PF_LOCAL
case AF_LOCAL: {
char *addr = ((struct sockaddr_un *)*sal)->sun_path;
-#if 0 /* don't muck with socket perms */
+#if 1
if ( chmod( addr, l.sl_perms ) < 0 && crit ) {
int err = sock_errno();
#ifdef NEW_LOGGING

View File

@ -1,59 +1,83 @@
#!/bin/sh
#
# $FreeBSD$
#
slapd_program=%%PREFIX%%/libexec/slapd
slapd_pidfile=%%LDAP_RUN_DIR%%/slapd.pid
slapd_enable="NO"
slapd_args=
# PROVIDE: slapd
# REQUIRE: NETWORKING SERVERS
# BEFORE: DAEMON
# KEYWORD: FreeBSD shutdown
#
# Add the following lines to /etc/rc.conf to enable slapd:
#
#slapd_enable="YES"
#slapd_args='-h "ldapi://%2fvar%2frun%2fopenldap%2fldapi/????x-mod=0777 ldap://0.0.0.0/"'
#slapd_flags='-h "ldapi://%2fvar%2frun%2fopenldap%2fldapi/ ldap://0.0.0.0/"'
#slapd_sockets="/var/run/openldap/ldapi"
#
# See sldap(8) for details
# See slapd(8) for more flags
#
# Create a user 'ldap' and add '-u ldap -g ldap' to slapd_args
# if you want to run slapd as a non-privileged user (recommended)
# The `-u' and `-g' flags are automatically extracted from slapd_owner,
# by default slapd runs under the non-privileged user id `ldap'. If you
# want to run slapd as root, override this in /etc/rc.conf with
#
#slapd_owner=
#
# Suck in the configuration variables.
if [ -r /etc/defaults/rc.conf ]; then
. /etc/defaults/rc.conf
source_rc_confs
elif [ -r /etc/rc.conf ]; then
. /etc/rc.conf
fi
. %%RC_SUBR%%
case "$slapd_enable" in
[Yy][Ee][Ss])
case "$1" in
start)
if [ -x ${slapd_program} ]; then
echo -n ' slapd'
eval ${slapd_program} ${slapd_args}
fi
;;
stop)
if [ -f $slapd_pidfile ]; then
kill `cat $slapd_pidfile`
echo -n ' slapd'
else
echo ' slapd: not running'
fi
;;
*)
echo "Usage: `basename $0` {start|stop}" >&2
exit 64
;;
esac
;;
*)
;;
esac
name=slapd
rcvar=`set_rcvar`
exit 0
command=%%PREFIX%%/libexec/slapd
pidfile=%%LDAP_RUN_DIR%%/slapd.pid
required_dirs=%%LDAP_RUN_DIR%%
required_files=%%PREFIX%%/etc/openldap/slapd.conf
start_precmd=start_precmd
start_postcmd=start_postcmd
start_precmd()
{
if [ x"$slapd_owner" != x ]; then
chown "${slapd_owner}" "%%LDAP_RUN_DIR%%"
chown -RL "${slapd_owner}" "%%LOCALSTATEDIR%%/openldap-ldbm"
chown "${slapd_owner}" "%%PREFIX%%/etc/openldap/slapd.conf"
slapd_ownername=`expr //"$slapd_owner" : //'\([^:]*\)'`
slapd_groupname=`expr //"$slapd_owner" : //'.*:\([^:]*\)'`
if [ x"$slapd_ownername" != x ]; then
rc_flags="$rc_flags -u $slapd_ownername"
fi
if [ x"$slapd_groupname" != x ]; then
rc_flags="$rc_flags -g $slapd_groupname"
fi
fi
}
start_postcmd()
{
for socket in ${slapd_sockets}; do
for seconds in 1 2 3 4 5; do
test -e ${socket} && break
sleep 1
done
if [ -S ${socket} ]; then
if [ x"$slapd_owner" != x ]; then
chown "${slapd_owner}" ${socket}
fi
chmod "${slapd_sockets_mode}" ${socket}
fi
done
}
slapd_enable="NO"
slapd_flags=
slapd_owner=ldap:ldap
slapd_sockets=
slapd_sockets_mode=666
load_rc_config $name
run_rc_command "$1"

View File

@ -1,50 +1,31 @@
#!/bin/sh
#
# $FreeBSD$
#
slurpd_program=%%PREFIX%%/libexec/slurpd
slurpd_enable="NO"
slurpd_args=
# PROVIDE: slurpd
# REQUIRE: slapd
# BEFORE:
# KEYWORD: FreeBSD shutdown
# Add the following line to /etc/rc.conf to enable slurpd:
#
#slurpd_enable="YES"
#
# See slurpd(8) for details
# See slurpd(8) for more flags
#
# Suck in the configuration variables.
if [ -r /etc/defaults/rc.conf ]; then
. /etc/defaults/rc.conf
source_rc_confs
elif [ -r /etc/rc.conf ]; then
. /etc/rc.conf
fi
. %%RC_SUBR%%
case "$slurpd_enable" in
[Yy][Ee][Ss])
case "$1" in
start)
if [ -x ${slurpd_program} ]; then
echo -n ' slurpd'
${slurpd_program} ${slurpd_args}
fi
;;
stop)
if ! killall `basename ${slurpd_program}`; then
echo ' slurpd: not running'
fi
;;
*)
echo "Usage: `basename $0` {start|stop}" >&2
exit 64
;;
esac
;;
*)
;;
esac
name=slurpd
rcvar=`set_rcvar`
exit 0
command=%%PREFIX%%/libexec/slurpd
required_files=%%PREFIX%%/etc/openldap/slapd.conf
slurpd_enable="NO"
slurpd_args=
load_rc_config $name
run_rc_command "$1"

View File

@ -2,10 +2,42 @@
#
# $FreeBSD$
#
if [ X"$2" != X"POST-INSTALL" ]; then
exit 0;
fi
mkdir -p "%%LDAP_RUN_DIR%%"
mkdir -p -m 700 "%%LOCALSTATEDIR%%/openldap-data"
mkdir -p -m 700 "%%LOCALSTATEDIR%%/openldap-slurp"
CHOWN=/usr/sbin/chown
ECHO_CMD=echo
GREP=/usr/bin/grep
PW=/usr/sbin/pw
FTPUSERS=/etc/ftpusers
case $2 in
PRE-INSTALL)
if ! ${PW} usershow -n ldap >/dev/null 2>&1; then
if ! ${PW} groupshow -n ldap >/dev/null 2>&1; then
if ! ${PW} groupadd -n ldap -g 389; then
${ECHO_CMD}
${ECHO_CMD} "*** Failed to add a group ldap with id 389."
${ECHO_CMD}
${ECHO_CMD} "Please add the ldap user manually with"
${ECHO_CMD} " ${PW} useradd -n ldap -g ldap -c 'OpenLDAP server' \\"
${ECHO_CMD} " -d /nonexistent -s /sbin/nologin -h -"
${ECHO_CMD} "and retry installing this package."
exit 1
fi
fi
if ${PW} useradd -n ldap -u 389 -g ldap -c 'OpenLDAP Server' \
-d /nonexistent -s /sbin/nologin -h -; then
${GREP} -qs '^ldap$' ${FTPUSERS} || ${ECHO_CMD} ldap >> ${FTPUSERS}
else
${ECHO_CMD}
${ECHO_CMD} "*** Failed to add an user ldap with id 389."
${ECHO_CMD}
${ECHO_CMD} "Please add the ldap user manually with"
${ECHO_CMD} " ${PW} useradd -n ldap -g ldap -c 'OpenLDAP server' \\"
${ECHO_CMD} " -d /nonexistent -s /sbin/nologin -h -"
${ECHO_CMD} "and retry installing this package."
exit 1
fi
fi
;;
esac

View File

@ -4,23 +4,25 @@ The OpenLDAP server package has been successfully installed.
In order to run the LDAP server, you need to edit
%%PREFIX%%/etc/openldap/slapd.conf
to suit your needs and add the next lines to /etc/rc.conf:
to suit your needs and add the following lines to /etc/rc.conf:
slapd_enable="YES"
slapd_args='-h "ldapi://%2fvar%2frun%2fopenldap%2fldapi/????x-mod=0777 ldap://0.0.0.0/"'
slapd_flags='-h "ldapi://%2fvar%2frun%2fopenldap%2fldapi/ ldap://0.0.0.0/"'
slapd_sockets="/var/run/openldap/ldapi"
Then start the server with
%%PREFIX%%/etc/rc.d/slapd.sh start
%%RC_DIR%%/slapd%%RC_SUFX%% start
or reboot.
NOTE: There is no real reason to run slapd as root. Add
'-u ldap -g ldap'
to slapd_args, create a user "ldap" with
pw add group ldap -g 389
pw add user ldap -u 389 -g 389 -d /nonexistent \
-c "OpenLDAP Server" -s /sbin/nologin -p "*"
and do
chown -R ldap:ldap %%LDAP_RUN_DIR%% \
%%LOCALSTATEDIR%%/openldap-data %%PREFIX%%/etc/openldap/slapd.conf
and your server runs with a non-privileged user id.
Try `man slapd' and the online manual at
http://www.OpenLDAP.org/doc/admin20/
for more information.
NOTE: Some variable names have been changed to conform with rc.subr(8)
If you are upgrading, you may want to check your configuration with
grep ^slapd_ /etc/rc.conf
slapd runs under a non-privileged user id (by default `ldap'),
see %%RC_DIR%%/slapd%%RC_SUFX%% for more information.
************************************************************

View File

@ -1,6 +1,6 @@
@comment $FreeBSD$
@unexec %D/etc/rc.d/slapd.sh stop 2>/dev/null || true
@unexec %D/etc/rc.d/slurpd.sh stop 2>/dev/null || true
@unexec %%RC_DIR%%/slapd%%RC_SUFX%% stop 2>/dev/null || true
@unexec %%RC_DIR%%/slurpd%%RC_SUFX%% stop 2>/dev/null || true
etc/openldap/schema/README
@unexec if cmp -s %D/etc/openldap/schema/corba.schema %D/etc/openldap/schema/corba.schema.default; then rm -f %D/etc/openldap/schema/corba.schema; fi
etc/openldap/schema/corba.schema.default
@ -31,8 +31,6 @@ etc/openldap/slapd.conf.default
@exec [ -f %B/slapd.conf ] || cp %B/%f %B/slapd.conf
@unexec rmdir %D/etc/openldap/schema 2>/dev/null || true
@unexec rmdir %D/etc/openldap 2>/dev/null || true
etc/rc.d/slapd.sh
etc/rc.d/slurpd.sh
%%SLAPI%%lib/libslapi.a
%%SLAPI%%lib/libslapi.so
%%SLAPI%%lib/libslapi.so.2
@ -42,6 +40,12 @@ sbin/slapadd
sbin/slapcat
sbin/slapindex
sbin/slappasswd
@exec mkdir -p %%LOCALSTATEDIR%%/openldap-slurp
@unexec rmdir %%LOCALSTATEDIR%%/openldap-slurp 2>/dev/null || true
@exec mkdir -p %%LOCALSTATEDIR%%/openldap-data
@unexec rmdir %%LOCALSTATEDIR%%/openldap-data 2>/dev/null || true
@exec mkdir -p %%LDAP_RUN_DIR%%
@unexec rmdir %%LDAP_RUN_DIR%% 2>/dev/null || true
@cwd %%RC_DIR%%
slapd%%RC_SUFX%%
slurpd%%RC_SUFX%%