Index: head/databases/ldb13/Makefile =================================================================== --- head/databases/ldb13/Makefile (revision 503528) +++ head/databases/ldb13/Makefile (revision 503529) @@ -1,188 +1,188 @@ # $FreeBSD$ PORTNAME= ldb -PORTVERSION= 1.3.6 +PORTVERSION= 1.3.8 PORTREVISION= 0 PORTEPOCH= 0 CATEGORIES= databases MASTER_SITES= SAMBA PKGNAMESUFFIX= 13 MAINTAINER= timur@FreeBSD.org COMMENT= LDAP-like embedded database LICENSE= GPLv3 IGNORE_NONTHREAD_PYTHON=needs port lang/python${PYTHON_SUFFIX} to be build with THREADS support BUILD_DEPENDS= ${LDB_DEPENDS} RUN_DEPENDS= ${LDB_DEPENDS} LDB_DEPENDS= talloc>=2.1.14:devel/talloc \ tevent>=0.9.37:devel/tevent \ tdb>=1.3.16:databases/tdb \ cmocka>=1.1.1:sysutils/cmocka \ popt>=0:devel/popt CONFLICTS_INSTALL= ldb-1.1.* ldb12-1.2.* -EXTRA_PATCHES+= ${PATCHDIR}/0001-bug-13362.patch:-p3 - #FLAVORS= default nopython #nopython_PKGNAMESUFFIX= -nopython #nopython_CONFLICTS= ldb #default_CONFLICTS= ldb-nopython USES= compiler pkgconfig waf USE_LDCONFIG= yes WAF_CMD= buildtools/bin/waf CONFIGURE_LOG= bin/config.log USE_OPENLDAP= yes PKGCONFIGDIR?= ${PREFIX}/libdata/pkgconfig PLIST_SUB+= PKGCONFIGDIR=${PKGCONFIGDIR:S;${PREFIX}/;;} CONFIGURE_ARGS+= --bundled-libraries=!talloc,!tevent,!tdb,!popt,!cmocka \ --with-modulesdir=${PREFIX}/lib/shared-modules \ --with-privatelibdir=${PREFIX}/lib/ldb \ --mandir=${MANPREFIX}/man \ --with-openldap=${LOCALBASE} \ --disable-rpath \ --without-gettext OPTIONS_DEFINE= MANPAGES DEBUG MANPAGES_DESC= Build and install manpages (requires textproc/docbook-xsl) -.include - +DEBUG_CONFIGURE_ON= --verbose --enable-debug +DEBUG_MAKE_ARGS= --verbose DEBUG_FLAGS= -g -ggdb3 -O0 + +.include LDB_BINS= bin/ldbedit \ bin/ldbmodify \ bin/ldbadd \ bin/ldbdel \ bin/ldbsearch \ bin/ldbrename LDB_LIBS= lib/libldb.so \ lib/libldb.so.1 \ lib/ldb/libldb-cmdline.so \ lib/shared-modules/ldb/asq.so \ lib/shared-modules/ldb/ldap.so \ lib/shared-modules/ldb/paged_results.so \ lib/shared-modules/ldb/paged_searches.so \ lib/shared-modules/ldb/rdn_name.so \ lib/shared-modules/ldb/sample.so \ lib/shared-modules/ldb/server_sort.so \ lib/shared-modules/ldb/skel.so \ lib/shared-modules/ldb/tdb.so PLIST_FILES= include/ldb_version.h \ include/ldb_handlers.h \ include/ldb_errors.h \ include/ldb.h \ include/ldb_module.h \ ${LDB_BINS} \ ${LDB_LIBS} \ ${PKGCONFIGDIR}/ldb.pc .if defined(NO_PYTHON) USES+= python:2.7,build CONFIGURE_ARGS+= --disable-python .else USES+= python:2.7 PLIST_FILES+= include/pyldb.h \ lib/libpyldb-util.so \ lib/libpyldb-util.so.1 \ ${PYTHON_SITELIBDIR}/ldb.so \ ${PYTHON_SITELIBDIR}/_ldb_text.py \ ${PKGCONFIGDIR}/pyldb-util.pc # XXX: This is a gross hack to make port use both Python 2.7+ and 3.3+ # This is not officially supported, use at your own risk .if defined(WITH_SAMBA4_PYTHON3) && ${WITH_SAMBA4_PYTHON3:M3\.[0-9]} SAMBA4_PYTHON3_VERSION= ${WITH_SAMBA4_PYTHON3} SAMBA4_PYTHON3= python${SAMBA4_PYTHON3_VERSION} SAMBA4_PYTHON3_VER= ${SAMBA4_PYTHON3_VERSION:C/\.//} .if !exists(${PORTSDIR}/lang/python${SAMBA4_PYTHON3_VER}) .error unsupported or unknown Python version ${SAMBA4_PYTHON3_VERSION} .endif BUILD_DEPENDS+= ${SAMBA4_PYTHON3}:lang/python${SAMBA4_PYTHON3_VER} RUN_DEPENDS+= ${SAMBA4_PYTHON3}:lang/python${SAMBA4_PYTHON3_VER} # cpython-36m SAMBA4_PYTHON3_SO_ABI!= [ ! -f "${LOCALBASE}/bin/${SAMBA4_PYTHON3}" ] || ${LOCALBASE}/bin/${SAMBA4_PYTHON3} -c 'import sysconfig; print(sysconfig.get_config_var("SOABI") or "")' 2>/dev/null SAMBA4_PYTHON3_SITELIBDIR=lib/python${SAMBA4_PYTHON3_VERSION}/site-packages CONFIGURE_ENV+= PYTHON3_SO_ABI_FLAG=.${SAMBA4_PYTHON3_SO_ABI} CONFIGURE_ARGS+= --extra-python=${LOCALBASE}/bin/${SAMBA4_PYTHON3} PLIST_SUB+= SAMBA4_PYTHON3_SO_ABI=${SAMBA4_PYTHON3_SO_ABI} \ SAMBA4_PYTHON3_SITELIBDIR=${SAMBA4_PYTHON3_SITELIBDIR} PLIST_FILES+= lib/libpyldb-util.${SAMBA4_PYTHON3_SO_ABI}.so \ lib/libpyldb-util.${SAMBA4_PYTHON3_SO_ABI}.so.1 \ ${SAMBA4_PYTHON3_SITELIBDIR}/ldb.${SAMBA4_PYTHON3_SO_ABI}.so \ ${SAMBA4_PYTHON3_SITELIBDIR}/_ldb_text.py \ ${PKGCONFIGDIR}/pyldb-util.${SAMBA4_PYTHON3_SO_ABI}.pc .endif .endif .include .if ! ${PORT_OPTIONS:MMANPAGES} CONFIGURE_ENV+= XSLTPROC="true" .else BUILD_DEPENDS+= ${LOCALBASE}/share/xsl/docbook/manpages/docbook.xsl:textproc/docbook-xsl \ xsltproc:textproc/libxslt .endif # No fancy color error messages .if ${COMPILER_TYPE} == "clang" CFLAGS+= -fno-color-diagnostics .endif CONFIGURE_ENV+= NOCOLOR=yes MAKE_ENV+= NOCOLOR=yes LDB_MAN1= man/man1/ldbadd.1.gz \ man/man1/ldbdel.1.gz \ man/man1/ldbedit.1.gz \ man/man1/ldbmodify.1.gz \ man/man1/ldbrename.1.gz \ man/man1/ldbsearch.1.gz LDB_MAN3= man/man3/ldb.3.gz PLIST_FILES+= ${LDB_MAN1} ${LDB_MAN3} post-patch: @${REINPLACE_CMD} -e 's|%%PKGCONFIGDIR%%|${PKGCONFIGDIR}|g' \ ${BUILD_WRKSRC}/wscript # Use threading (or multiprocessing) but not thread (renamed in python 3+). pre-configure: @if ! ${PYTHON_CMD} -c "import multiprocessing;" 2>/dev/null; then \ ${ECHO_CMD}; \ ${ECHO_MSG} "===> ${PKGNAME} "${IGNORE_NONTHREAD_PYTHON:Q}.; \ ${ECHO_CMD}; \ ${FALSE}; \ fi pre-build-MANPAGES-off: -${MKDIR} ${BUILD_WRKSRC}/bin/default/man .for man in ${LDB_MAN1} ${LDB_MAN3} ${INSTALL_MAN} ${FILESDIR}/`basename ${man} .gz` ${BUILD_WRKSRC}/bin/default/man .endfor post-install: .for lib in ${LDB_BINS} ${LDB_LIBS} ${STRIP_CMD} ${STAGEDIR}${PREFIX}/${lib} .endfor .if !defined(NO_PYTHON) ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libpyldb-util.so ${STRIP_CMD} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/ldb.so . if defined(SAMBA4_PYTHON3) ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libpyldb-util.${SAMBA4_PYTHON3_SO_ABI}.so ${STRIP_CMD} ${STAGEDIR}${PREFIX}/${SAMBA4_PYTHON3_SITELIBDIR}/ldb.${SAMBA4_PYTHON3_SO_ABI}.so . endif .endif .include Index: head/databases/ldb13/distinfo =================================================================== --- head/databases/ldb13/distinfo (revision 503528) +++ head/databases/ldb13/distinfo (revision 503529) @@ -1,3 +1,3 @@ -TIMESTAMP = 1535926436 -SHA256 (ldb-1.3.6.tar.gz) = 51d23134b356490e75258518dfc5c994c1710ad5357a1e3455a9eaeddff8939a -SIZE (ldb-1.3.6.tar.gz) = 1374574 +TIMESTAMP = 1557920439 +SHA256 (ldb-1.3.8.tar.gz) = 4d047c687ddc266d0d5a2c16629aa1a6fa6c3114499c9cc80914e3cda16ddca0 +SIZE (ldb-1.3.8.tar.gz) = 1375782 Index: head/databases/ldb13/files/0001-bug-13362.patch =================================================================== --- head/databases/ldb13/files/0001-bug-13362.patch (revision 503528) +++ head/databases/ldb13/files/0001-bug-13362.patch (nonexistent) @@ -1,170 +0,0 @@ -From 75e572c6ac2e537839da341e76236d1c4003cae7 Mon Sep 17 00:00:00 2001 -From: Volker Lendecke -Date: Mon, 7 May 2018 16:41:55 +0200 -Subject: [PATCH 1/2] lib: Put "results_store" into a doubly linked list - -Bug: https://bugzilla.samba.org/show_bug.cgi?id=13362 -Signed-off-by: Volker Lendecke -Reviewed-by: Jeremy Allison -(cherry picked from commit 8063995a92fffc93aa9d6d1d92a75bf3f3c9592b) ---- - lib/ldb/modules/paged_results.c | 25 +++++-------------------- - 1 file changed, 5 insertions(+), 20 deletions(-) - -diff --git a/lib/ldb/modules/paged_results.c b/lib/ldb/modules/paged_results.c -index de014a39699..aafbcbf4483 100644 ---- a/lib/ldb/modules/paged_results.c -+++ b/lib/ldb/modules/paged_results.c -@@ -35,6 +35,7 @@ - #include "replace.h" - #include "system/filesys.h" - #include "system/time.h" -+#include "dlinklist.h" - #include "ldb_module.h" - - struct message_store { -@@ -48,14 +49,13 @@ struct message_store { - struct private_data; - - struct results_store { -+ struct results_store *prev, *next; - - struct private_data *priv; - - char *cookie; - time_t timestamp; - -- struct results_store *next; -- - struct message_store *first; - struct message_store *last; - int num_entries; -@@ -75,22 +75,8 @@ struct private_data { - static int store_destructor(struct results_store *del) - { - struct private_data *priv = del->priv; -- struct results_store *loop; -- -- if (priv->store == del) { -- priv->store = del->next; -- return 0; -- } -- -- for (loop = priv->store; loop; loop = loop->next) { -- if (loop->next == del) { -- loop->next = del->next; -- return 0; -- } -- } -- -- /* is not in list ? */ -- return -1; -+ DLIST_REMOVE(priv->store, del); -+ return 0; - } - - static struct results_store *new_store(struct private_data *priv) -@@ -120,8 +106,7 @@ static struct results_store *new_store(struct private_data *priv) - newr->first_ref = NULL; - newr->controls = NULL; - -- newr->next = priv->store; -- priv->store = newr; -+ DLIST_ADD(priv->store, newr); - - talloc_set_destructor(newr, store_destructor); - --- -2.11.0 - - -From fd3d38f5d3de45e6d5e47ed6bd42ef86abae8836 Mon Sep 17 00:00:00 2001 -From: Volker Lendecke -Date: Mon, 7 May 2018 16:53:00 +0200 -Subject: [PATCH 2/2] lib: Hold at most 10 outstanding paged result cookies - -Bug: https://bugzilla.samba.org/show_bug.cgi?id=13362 -Signed-off-by: Volker Lendecke -Reviewed-by: Jeremy Allison - -Autobuild-User(master): Jeremy Allison -Autobuild-Date(master): Tue May 15 09:37:21 CEST 2018 on sn-devel-144 - -(cherry picked from commit 9fbd4672b06de5333a9c44fc126b8edac0b9d31a) ---- - lib/ldb/modules/paged_results.c | 22 ++++++++++++++++++++++ - 1 file changed, 22 insertions(+) - -diff --git a/lib/ldb/modules/paged_results.c b/lib/ldb/modules/paged_results.c -index aafbcbf4483..ecb22271d28 100644 ---- a/lib/ldb/modules/paged_results.c -+++ b/lib/ldb/modules/paged_results.c -@@ -36,6 +36,7 @@ - #include "system/filesys.h" - #include "system/time.h" - #include "dlinklist.h" -+#include - #include "ldb_module.h" - - struct message_store { -@@ -68,6 +69,7 @@ struct results_store { - - struct private_data { - uint32_t next_free_id; -+ size_t num_stores; - struct results_store *store; - - }; -@@ -76,6 +78,10 @@ static int store_destructor(struct results_store *del) - { - struct private_data *priv = del->priv; - DLIST_REMOVE(priv->store, del); -+ -+ assert(priv->num_stores > 0); -+ priv->num_stores -= 1; -+ - return 0; - } - -@@ -108,8 +114,21 @@ static struct results_store *new_store(struct private_data *priv) - - DLIST_ADD(priv->store, newr); - -+ assert(priv->num_stores < SIZE_MAX); -+ priv->num_stores += 1; -+ - talloc_set_destructor(newr, store_destructor); - -+ if (priv->num_stores > 10) { -+ struct results_store *last; -+ /* -+ * 10 is the default for MaxResultSetsPerConn -- -+ * possibly need to parameterize it. -+ */ -+ last = DLIST_TAIL(priv->store); -+ TALLOC_FREE(last); -+ } -+ - return newr; - } - -@@ -366,6 +385,8 @@ static int paged_search(struct ldb_module *module, struct ldb_request *req) - return LDB_ERR_UNWILLING_TO_PERFORM; - } - -+ DLIST_PROMOTE(private_data->store, current); -+ - ac->store = current; - - /* check if it is an abandon */ -@@ -397,6 +418,7 @@ static int paged_request_init(struct ldb_module *module) - } - - data->next_free_id = 1; -+ data->num_stores = 0; - data->store = NULL; - ldb_module_set_private(module, data); - --- -2.11.0 - Property changes on: head/databases/ldb13/files/0001-bug-13362.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/databases/ldb13/files/patch-wscript =================================================================== --- head/databases/ldb13/files/patch-wscript (revision 503528) +++ head/databases/ldb13/files/patch-wscript (revision 503529) @@ -1,32 +1,53 @@ ---- wscript.orig 2017-09-07 10:04:11 UTC +--- wscript.orig 2019-02-26 17:14:29 UTC +++ wscript -@@ -126,9 +126,15 @@ def build(bld): +@@ -139,9 +139,15 @@ def build(bld): bld.RECURSE('lib/tdb') if bld.env.standalone_ldb: + if not 'PACKAGE_VERSION' in bld.env: + bld.env.PACKAGE_VERSION = VERSION + bld.env.PKGCONFIGDIR = '%%PKGCONFIGDIR%%' private_library = False else: private_library = True + # we're not currently linking against the ldap libs, but ldb.pc.in + # has @LDAP_LIBS@ + bld.env.LDAP_LIBS = '' LDB_MAP_SRC = bld.SUBDIR('ldb_map', 'ldb_map.c ldb_map_inbound.c ldb_map_outbound.c') -@@ -149,13 +155,6 @@ def build(bld): +@@ -162,13 +168,6 @@ def build(bld): if bld.PYTHON_BUILD_IS_ENABLED(): if not bld.CONFIG_SET('USING_SYSTEM_PYLDB_UTIL'): for env in bld.gen_python_environments(['PKGCONFIGDIR']): - # we're not currently linking against the ldap libs, but ldb.pc.in - # has @LDAP_LIBS@ - bld.env.LDAP_LIBS = '' - - if not 'PACKAGE_VERSION' in bld.env: - bld.env.PACKAGE_VERSION = VERSION - bld.env.PKGCONFIGDIR = '${LIBDIR}/pkgconfig' name = bld.pyembed_libname('pyldb-util') bld.SAMBA_LIBRARY(name, +@@ -364,10 +363,6 @@ def build(bld): + deps='cmocka ldb', + install=False) + +- bld.SAMBA_BINARY('ldb_match_test', +- source='tests/ldb_match_test.c', +- deps='cmocka ldb', +- install=False) + + def test(ctx): + '''run ldb testsuite''' +@@ -397,8 +392,7 @@ def test(ctx): + + cmocka_ret = 0 + for test_exe in ['ldb_tdb_mod_op_test', +- 'ldb_msg_test', +- 'ldb_match_test']: ++ 'ldb_msg_test']: + cmd = os.path.join(Utils.g_module.blddir, test_exe) + cmocka_ret = cmocka_ret or samba_utils.RUN_COMMAND(cmd) +