summaryrefslogtreecommitdiff
path: root/databases
diff options
context:
space:
mode:
authorjlam <jlam@pkgsrc.org>2004-02-20 13:56:15 +0000
committerjlam <jlam@pkgsrc.org>2004-02-20 13:56:15 +0000
commitdbee72b756b1b70cb4494a102b9e9f16f1b591af (patch)
treefe1a98f69e027f7ae60f940f5afce1e40ad28313 /databases
parent63ac1b57c7b711657f935cb6d2707629175346e5 (diff)
downloadpkgsrc-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')
-rw-r--r--databases/openldap/Makefile27
-rw-r--r--databases/openldap/distinfo3
-rw-r--r--databases/openldap/patches/patch-ah14
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 )