diff options
author | jlam <jlam@pkgsrc.org> | 2004-02-20 13:56:15 +0000 |
---|---|---|
committer | jlam <jlam@pkgsrc.org> | 2004-02-20 13:56:15 +0000 |
commit | dbee72b756b1b70cb4494a102b9e9f16f1b591af (patch) | |
tree | fe1a98f69e027f7ae60f940f5afce1e40ad28313 /databases/openldap | |
parent | 63ac1b57c7b711657f935cb6d2707629175346e5 (diff) | |
download | pkgsrc-dbee72b756b1b70cb4494a102b9e9f16f1b591af.tar.gz |
Reenable the use of GNU pth on systems without native pthreads. Bump
the PKGREVISION. The fix was provided by Nick Hudson and modifies
the libldap initialization routine to call the GNU pth initialization
routine before using it. The resulting slapd/slurpd passes the test
suite included in the OpenLDAP sources. This fixes PR 24473.
Diffstat (limited to 'databases/openldap')
-rw-r--r-- | databases/openldap/Makefile | 27 | ||||
-rw-r--r-- | databases/openldap/distinfo | 3 | ||||
-rw-r--r-- | databases/openldap/patches/patch-ah | 14 |
3 files changed, 32 insertions, 12 deletions
diff --git a/databases/openldap/Makefile b/databases/openldap/Makefile index 2f9210475aa..c5571a2d468 100644 --- a/databases/openldap/Makefile +++ b/databases/openldap/Makefile @@ -1,8 +1,8 @@ -# $NetBSD: Makefile,v 1.69 2004/02/19 14:42:39 jlam Exp $ +# $NetBSD: Makefile,v 1.70 2004/02/20 13:56:15 jlam Exp $ DISTNAME= openldap-2.1.25 SVR4_PKGNAME= oldap -PKGREVISION= 1 +PKGREVISION= 2 CATEGORIES= databases MASTER_SITES= ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/ EXTRACT_SUFX= .tgz @@ -89,16 +89,19 @@ SUPPORT_FILES+= ${EGDIR}/${FILE} ${PKG_SYSCONFDIR}/${FILE} .endfor RCD_SCRIPTS= slapd -# While the package does build correctly using GNU pth, slapd isn't able to -# pass "make test" without segfaulting at startup. For now, just build -# without threads-support if it's not a native thread library. +# On some platforms, while the package does build correctly using GNU pth, +# slapd isn't able to pass "make test". One those platforms, don't build +# openldap with threads support unless we're using the native thread +# library. # -.if defined(_OPENLDAP_REQUIRE_THREADS) && \ - !empty(_OPENLDAP_REQUIRE_THREADS:M[yY][eE][sS]) -PTHREAD_OPTS+= require -.else -PTHREAD_OPTS+= native -.endif +OPENLDAP_PTH_BROKEN_PLATFORMS?= # empty +.for _pattern_ in ${OPENLDAP_PTH_BROKEN_PLATFORMS} +. if !empty(MACHINE_PLATFORM:M${_pattern_}) +OPENLDAP_PTHREAD_OPTS?= native +. endif +.endfor +OPENLDAP_PTHREAD_OPTS?= require +PTHREAD_OPTS+= ${OPENLDAP_PTHREAD_OPTS} .include "../../databases/db4/buildlink3.mk" .include "../../security/openssl/buildlink3.mk" @@ -111,6 +114,8 @@ PLIST_SUBST+= SLURPD_COMMENT= RCD_SCRIPTS+= slurpd .elif ${PTHREAD_TYPE} == "pth" CONFIGURE_ARGS+= --with-threads=pth +PLIST_SUBST+= SLURPD_COMMENT= +RCD_SCRIPTS+= slurpd .else CONFIGURE_ARGS+= --without-threads PLIST_SUBST+= SLURPD_COMMENT="@comment " diff --git a/databases/openldap/distinfo b/databases/openldap/distinfo index 972e5bd400e..a69f66f0d42 100644 --- a/databases/openldap/distinfo +++ b/databases/openldap/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.22 2004/02/14 11:31:50 jlam Exp $ +$NetBSD: distinfo,v 1.23 2004/02/20 13:56:15 jlam Exp $ SHA1 (openldap-2.1.25.tgz) = 802ad52c0540bf58fbe797fd64804ff0920159d4 Size (openldap-2.1.25.tgz) = 2038669 bytes @@ -8,3 +8,4 @@ SHA1 (patch-ad) = 24734ea7dbfc85c0f1a5ebc7ad9209cfe64ef546 SHA1 (patch-ae) = 75f5cb64c78c007f3439ad384b21c5a6ea5e9e3d SHA1 (patch-af) = 74edff185f7d5222416023801084c069d08ec057 SHA1 (patch-ag) = 822efbcc01dfd4b6181c25390761f534aaeb4315 +SHA1 (patch-ah) = 4fd10030b2531c7b4a4461053e5896274b24d5dd diff --git a/databases/openldap/patches/patch-ah b/databases/openldap/patches/patch-ah new file mode 100644 index 00000000000..74a97db9a5d --- /dev/null +++ b/databases/openldap/patches/patch-ah @@ -0,0 +1,14 @@ +$NetBSD: patch-ah,v 1.1 2004/02/20 13:56:15 jlam Exp $ + +--- libraries/libldap/init.c.orig Tue Dec 2 09:31:54 2003 ++++ libraries/libldap/init.c +@@ -522,6 +522,9 @@ void ldap_int_initialize( struct ldapopt + + #if defined(LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND) \ + || defined(HAVE_TLS) || defined(HAVE_CYRUS_SASL) ++#if defined(LDAP_R_COMPILE) ++ ldap_pvt_thread_initialize(); ++#endif + ldap_int_hostname = ldap_pvt_get_fqdn( ldap_int_hostname ); + #endif + if ( ldap_int_tblsize == 0 ) |