From: Florian Fainelli Date: Mon, 23 Nov 2009 10:53:22 +0000 (+0000) Subject: [package] openldap, update to 2.4.19, package slapd, cleanup makefile X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fsvn-archive%2Farchive.git;a=commitdiff_plain;h=89c444875ae4e440fd0dbca78ce110da995e4585;ds=sidebyside [package] openldap, update to 2.4.19, package slapd, cleanup makefile (#6150) SVN-Revision: 18495 --- diff --git a/libs/openldap/Makefile b/libs/openldap/Makefile index ed701e0dbf..49c2dc9468 100644 --- a/libs/openldap/Makefile +++ b/libs/openldap/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=openldap -PKG_VERSION:=2.4.16 +PKG_VERSION:=2.4.19 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tgz @@ -16,7 +16,7 @@ PKG_SOURCE_URL:=ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/ \ ftp://sunsite.cnlab-switch.ch/mirror/OpenLDAP/openldap-release/ \ ftp://ftp.nl.uu.net/pub/unix/db/openldap/openldap-release/ \ ftp://ftp.plig.org/pub/OpenLDAP/openldap-release/ -PKG_MD5SUM:=ed5b86e9d2b372d10edfe3bb59fee165 +PKG_MD5SUM:=4a6dab2711fcf141f19bb680bc335887 PKG_FIXUP = libtool @@ -36,7 +36,6 @@ define Package/libopenldap endef define Package/libopenldap/description -= OpenLDAP Software is an open source implementation of the Lightweight Directory Access Protocol (LDAP). This package contains the shared LDAP client libraries, needed by other programs. @@ -55,12 +54,25 @@ define Package/openldap-utils endef define Package/openldap-utils/description -= OpenLDAP Software is an open source implementation of the Lightweight Directory Access Protocol (LDAP). This package contains client programs required to access LDAP servers. endef +define Package/openldap-server + $(call Package/openldap/Default) + SECTION:=net + CATEGORY:=Network + DEPENDS:=+libopenldap +db47 + TITLE+= (server) +endef + +define Package/openldap-server/description + OpenLDAP Software is an open source implementation of the + Lightweight Directory Access Protocol (LDAP). + This package contains server programs required to provide LDAP services. +endef + TARGET_CFLAGS += $(FPIC) CONFIGURE_ARGS += \ @@ -70,7 +82,6 @@ CONFIGURE_ARGS += \ --enable-dynamic \ --enable-syslog \ --disable-local \ - --disable-slapd \ --disable-slurpd \ --with-cyrus-sasl \ --without-fetch \ @@ -107,6 +118,17 @@ define Package/openldap-utils/install $(INSTALL_DIR) $(1)/usr/bin $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ldap* $(1)/usr/bin/ endef + +define Package/openldap-server/install + $(INSTALL_DIR) $(1)/etc/init.d + $(INSTALL_BIN) ./files/ldap.init $(1)/etc/init.d/ldap + $(INSTALL_DIR) $(1)/etc/openldap/schema + $(CP) $(PKG_INSTALL_DIR)/etc/openldap/schema/* $(1)/etc/openldap/schema/ + $(INSTALL_DIR) $(1)/usr/sbin + # OpenLDAP installs slapd into libexecdir, not sbindir: + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/slapd $(1)/usr/sbin/ +endef $(eval $(call BuildPackage,libopenldap)) $(eval $(call BuildPackage,openldap-utils)) +$(eval $(call BuildPackage,openldap-server)) diff --git a/libs/openldap/files/ldap.init b/libs/openldap/files/ldap.init new file mode 100644 index 0000000000..9917525f5b --- /dev/null +++ b/libs/openldap/files/ldap.init @@ -0,0 +1,15 @@ +#!/bin/sh /etc/rc.common +# Copyright (C) 2009 OpenWrt.org + +START=60 + +start() { + mkdir -p /var/run/openldap + mkdir -p /var/lib/ldap + + /usr/sbin/slapd +} + +stop() { + killall slapd 2> /dev/null +} diff --git a/libs/openldap/patches/010-fix-asserts.patch b/libs/openldap/patches/010-fix-asserts.patch new file mode 100644 index 0000000000..01410928d4 --- /dev/null +++ b/libs/openldap/patches/010-fix-asserts.patch @@ -0,0 +1,50 @@ +diff -u --recursive openldap-2.4.19-vanilla/servers/slapd/connection.c openldap-2.4.19/servers/slapd/connection.c +--- openldap-2.4.19-vanilla/servers/slapd/connection.c 2009-11-17 19:04:26.000000000 -0500 ++++ openldap-2.4.19/servers/slapd/connection.c 2009-11-17 19:09:02.000000000 -0500 +@@ -783,7 +783,9 @@ + { + assert( connections != NULL ); + assert( c != NULL ); +- assert( c->c_struct_state == SLAP_C_USED ); ++ ++ if ( c->c_struct_state != SLAP_C_USED ) return; ++ + assert( c->c_conn_state != SLAP_C_INVALID ); + + /* c_mutex must be locked by caller */ +@@ -816,7 +818,9 @@ + { + assert( connections != NULL ); + assert( c != NULL ); +- assert( c->c_struct_state == SLAP_C_USED ); ++ ++ if ( c->c_struct_state != SLAP_C_USED ) return; ++ + assert( c->c_conn_state == SLAP_C_CLOSING ); + + /* NOTE: c_mutex should be locked by caller */ +diff -u --recursive openldap-2.4.19-vanilla/servers/slapd/daemon.c openldap-2.4.19/servers/slapd/daemon.c +--- openldap-2.4.19-vanilla/servers/slapd/daemon.c 2009-11-17 19:04:26.000000000 -0500 ++++ openldap-2.4.19/servers/slapd/daemon.c 2009-11-17 19:10:54.000000000 -0500 +@@ -989,13 +989,17 @@ + void + slapd_set_read( ber_socket_t s, int wake ) + { ++ int do_wake = 1; + ldap_pvt_thread_mutex_lock( &slap_daemon.sd_mutex ); + +- assert( SLAP_SOCK_IS_ACTIVE( s )); +- if (!SLAP_SOCK_IS_READ( s )) SLAP_SOCK_SET_READ( s ); +- ++ if( SLAP_SOCK_IS_ACTIVE( s ) && !SLAP_SOCK_IS_READ( s )) { ++ SLAP_SOCK_SET_READ( s ); ++ } else { ++ do_wake = 0; ++ } + ldap_pvt_thread_mutex_unlock( &slap_daemon.sd_mutex ); +- WAKE_LISTENER(wake); ++ if ( do_wake ) ++ WAKE_LISTENER(wake); + } + + time_t