summaryrefslogtreecommitdiff
path: root/databases
diff options
context:
space:
mode:
Diffstat (limited to 'databases')
-rw-r--r--databases/ldb/Makefile104
-rw-r--r--databases/ldb/files/patch-buildtools__wafsamba__samba_autoconf.py11
-rw-r--r--databases/ldb/files/patch-wscript10
-rw-r--r--databases/ldb12/Makefile179
-rw-r--r--databases/ldb12/distinfo3
-rw-r--r--databases/ldb12/files/ldb.3457
-rw-r--r--databases/ldb12/files/ldbadd.178
-rw-r--r--databases/ldb12/files/ldbdel.180
-rw-r--r--databases/ldb12/files/ldbedit.1111
-rw-r--r--databases/ldb12/files/ldbmodify.173
-rw-r--r--databases/ldb12/files/ldbrename.181
-rw-r--r--databases/ldb12/files/ldbsearch.191
-rw-r--r--databases/ldb12/files/patch-buildtools__wafsamba__samba_autoconf.py11
-rw-r--r--databases/ldb12/files/patch-buildtools__wafsamba__samba_install.py11
-rw-r--r--databases/ldb12/files/patch-buildtools__wafsamba__samba_python.py36
-rw-r--r--databases/ldb12/files/patch-lib__replace__wscript11
-rw-r--r--databases/ldb12/files/patch-third_party__waf__wafadmin__Tools__cc.py11
-rw-r--r--databases/ldb12/files/patch-wscript32
-rw-r--r--databases/ldb12/pkg-descr9
-rw-r--r--databases/tdb/Makefile71
-rw-r--r--databases/tdb/distinfo6
-rw-r--r--databases/tdb/files/patch-buildtools__wafsamba__samba_autoconf.py11
-rw-r--r--databases/tdb/files/patch-buildtools__wafsamba__samba_python.py36
-rw-r--r--databases/tdb/files/patch-lib__replace__wscript11
-rw-r--r--databases/tdb/files/patch-wscript8
25 files changed, 1468 insertions, 74 deletions
diff --git a/databases/ldb/Makefile b/databases/ldb/Makefile
index d8d389334bc9..75da6ced75d4 100644
--- a/databases/ldb/Makefile
+++ b/databases/ldb/Makefile
@@ -12,18 +12,31 @@ COMMENT= LDAP-like embedded database
LICENSE= GPLv3
-CONFLICTS= *samba3[0-4]-3.*
+IGNORE_NONTHREAD_PYTHON=needs port lang/python${PYTHON_SUFFIX} to be build with THREADS support
+
+BUILD_DEPENDS= ${LDB_DEPENDS}
+RUN_DEPENDS= ${LDB_DEPENDS}
-USES= compiler pkgconfig python:2 waf
+LDB_DEPENDS= talloc>=2.1.8:devel/talloc \
+ tevent>=0.9.31:devel/tevent \
+ tdb>=1.3.12,1:databases/tdb \
+ popt>=0:devel/popt
+
+CONFLICTS= ldb1[23]-1.*
+
+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 \
+ --with-modulesdir=${PREFIX}/lib/shared-modules \
+ --with-privatelibdir=${PREFIX}/lib/ldb
+
CONFIGURE_ARGS+= --mandir=${MANPREFIX}/man \
--infodir=${PREFIX}/${INFO_PATH}/${INFO_SUBDIR} \
--disable-rpath \
@@ -32,37 +45,16 @@ CONFIGURE_ARGS+= --mandir=${MANPREFIX}/man \
OPTIONS_DEFINE= MANPAGES
MANPAGES_DESC= Build and install manpages (requires textproc/docbook-xsl)
-BUILD_DEPENDS+= talloc>=2.1.8:devel/talloc \
- tevent>=0.9.31:devel/tevent \
- tdb>=1.3.12,1:databases/tdb \
- popt>=0:devel/popt
-RUN_DEPENDS:= ${BUILD_DEPENDS}
+.include <bsd.port.options.mk>
-CONFIGURE_ARGS+= --bundled-libraries=!talloc,!tevent,!tdb,!popt \
- --with-modulesdir=${PREFIX}/lib/shared-modules \
- --with-privatelibdir=${PREFIX}/lib/ldb
-
-.include <bsd.port.pre.mk>
-
-.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
-
-PLIST_FILES= bin/ldbedit \
+LDB_BINS= bin/ldbedit \
bin/ldbmodify \
bin/ldbadd \
bin/ldbdel \
bin/ldbsearch \
- bin/ldbrename \
- include/ldb_version.h \
- include/ldb_handlers.h \
- include/ldb_errors.h \
- include/ldb.h \
- include/ldb_module.h \
- lib/libldb.so \
+ bin/ldbrename
+
+LDB_LIBS= lib/libldb.so \
lib/libldb.so.1 \
lib/ldb/libldb-cmdline.so \
lib/shared-modules/ldb/asq.so \
@@ -73,22 +65,43 @@ PLIST_FILES= bin/ldbedit \
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 \
- %%PKGCONFIGDIR%%/ldb.pc
+ lib/shared-modules/ldb/tdb.so
-# No fancy color error messages
-.if ${COMPILER_TYPE} == "clang"
-CFLAGS+= -fno-color-diagnostics
-.endif
-CONFIGURE_ENV+= NOCOLOR=yes
-MAKE_ENV+= NOCOLOR=yes
+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)
+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
+.endif
+
+.include <bsd.port.pre.mk>
+
+.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 \
@@ -101,8 +114,6 @@ LDB_MAN3= man/man3/ldb.3.gz
PLIST_FILES+= ${LDB_MAN1} ${LDB_MAN3}
-IGNORE_NONTHREAD_PYTHON=needs port lang/python${PYTHON_SUFFIX} to be build with THREADS support
-
post-patch:
@${REINPLACE_CMD} -e 's|%%PKGCONFIGDIR%%|${PKGCONFIGDIR}|g' \
${BUILD_WRKSRC}/wscript
@@ -116,12 +127,19 @@ pre-configure:
${FALSE}; \
fi
-pre-build:
-.if ! ${PORT_OPTIONS:MMANPAGES}
+pre-build-MANPAGES-off:
-${MKDIR} ${BUILD_WRKSRC}/bin/default/man
-. for man in ${LDB_MAN1} ${LDB_MAN3}
+.for man in ${LDB_MAN1} ${LDB_MAN3}
${INSTALL_MAN} ${FILESDIR}/`basename ${man} .gz` ${BUILD_WRKSRC}/bin/default/man
-. endfor
+.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
.endif
.include <bsd.port.post.mk>
diff --git a/databases/ldb/files/patch-buildtools__wafsamba__samba_autoconf.py b/databases/ldb/files/patch-buildtools__wafsamba__samba_autoconf.py
new file mode 100644
index 000000000000..5245d0e4857b
--- /dev/null
+++ b/databases/ldb/files/patch-buildtools__wafsamba__samba_autoconf.py
@@ -0,0 +1,11 @@
+--- buildtools/wafsamba/samba_autoconf.py.orig 2016-10-07 04:45:35 UTC
++++ buildtools/wafsamba/samba_autoconf.py
+@@ -873,7 +873,7 @@ def SAMBA_CHECK_UNDEFINED_SYMBOL_FLAGS(c
+ conf.env.undefined_ldflags = conf.ADD_LDFLAGS('-Wl,-no-undefined', testflags=True)
+
+ if not sys.platform.startswith("openbsd") and conf.env.undefined_ignore_ldflags == []:
+- if conf.CHECK_LDFLAGS(['-undefined', 'dynamic_lookup']):
++ if conf.CHECK_LDFLAGS(['-undefined', 'dynamic_lookup'] + conf.env.WERROR_CFLAGS):
+ conf.env.undefined_ignore_ldflags = ['-undefined', 'dynamic_lookup']
+
+ @conf
diff --git a/databases/ldb/files/patch-wscript b/databases/ldb/files/patch-wscript
index 88d8839dd4af..ebae5e179c8c 100644
--- a/databases/ldb/files/patch-wscript
+++ b/databases/ldb/files/patch-wscript
@@ -1,11 +1,11 @@
---- ./wscript.orig 2013-01-27 11:51:43.000000000 +0000
-+++ ./wscript 2013-01-29 23:01:21.749877676 +0000
-@@ -106,7 +106,7 @@
+--- wscript.orig 2016-12-01 13:14:56 UTC
++++ wscript
+@@ -118,7 +118,7 @@ def build(bld):
if not 'PACKAGE_VERSION' in bld.env:
bld.env.PACKAGE_VERSION = VERSION
- bld.env.PKGCONFIGDIR = '${LIBDIR}/pkgconfig'
+ bld.env.PKGCONFIGDIR = '%%PKGCONFIGDIR%%'
- if not bld.CONFIG_SET('USING_SYSTEM_PYLDB_UTIL'):
- bld.SAMBA_LIBRARY('pyldb-util',
+ if not bld.env.disable_python:
+ if not bld.CONFIG_SET('USING_SYSTEM_PYLDB_UTIL'):
diff --git a/databases/ldb12/Makefile b/databases/ldb12/Makefile
new file mode 100644
index 000000000000..72cd785eba1b
--- /dev/null
+++ b/databases/ldb12/Makefile
@@ -0,0 +1,179 @@
+# $FreeBSD$
+
+PORTNAME= ldb
+PORTVERSION= 1.2.2
+PORTREVISION= 0
+PORTEPOCH= 0
+CATEGORIES= databases
+MASTER_SITES= SAMBA
+PKGNAMESUFFIX= 12
+
+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.10:devel/talloc \
+ tevent>=0.9.33:devel/tevent \
+ tdb>=1.3.15:databases/tdb \
+ cmocka>=1.1.1:sysutils/cmocka \
+ popt>=0:devel/popt
+
+CONFLICTS= ldb-1.1.* ldb13-1.3.*
+
+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
+
+CONFIGURE_ARGS+= --mandir=${MANPREFIX}/man \
+ --infodir=${PREFIX}/${INFO_PATH}/${INFO_SUBDIR} \
+ --disable-rpath \
+ --without-gettext
+
+OPTIONS_DEFINE= MANPAGES
+MANPAGES_DESC= Build and install manpages (requires textproc/docbook-xsl)
+
+.include <bsd.port.options.mk>
+
+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)
+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_SAMBA_PYTHON3) && ${WITH_SAMBA_PYTHON3:Mpython3\.[0-9]}
+SAMBA_PYTHON3= ${WITH_SAMBA_PYTHON3}
+SAMBA_PYTHON3_VERSION:= ${SAMBA_PYTHON3:S/^python//}
+SAMBA_PYTHON3_VER:= ${SAMBA_PYTHON3_VERSION:C/\.//}
+.if !exists(${PORTSDIR}/lang/python${SAMBA_PYTHON3_VER})
+.error unsupported or unknown Python version ${SAMBA_PYTHON3_VERSION}
+.endif
+BUILD_DEPENDS+= ${SAMBA_PYTHON3}:lang/python${SAMBA_PYTHON3_VER}
+RUN_DEPENDS+= ${SAMBA_PYTHON3}:lang/python${SAMBA_PYTHON3_VER}
+# cpython-36m
+SAMBA_PYTHON3_SO_ABI!= [ ! -f "${LOCALBASE}/bin/${SAMBA_PYTHON3}" ] || ${LOCALBASE}/bin/${SAMBA_PYTHON3} -c 'import sysconfig; print(sysconfig.get_config_var("SOABI") or "")' 2>/dev/null
+SAMBA_PYTHON3_SITELIBDIR=lib/python${SAMBA_PYTHON3_VERSION}/site-packages
+
+CONFIGURE_ENV+= PYTHON3_SO_ABI_FLAG=.${SAMBA_PYTHON3_SO_ABI}
+CONFIGURE_ARGS+= --extra-python=${LOCALBASE}/bin/${SAMBA_PYTHON3}
+
+PLIST_SUB+= SAMBA_PYTHON3_SO_ABI=${SAMBA_PYTHON3_SO_ABI} \
+ SAMBA_PYTHON3_SITELIBDIR=${SAMBA_PYTHON3_SITELIBDIR}
+
+PLIST_FILES+= lib/libpyldb-util.%%SAMBA_PYTHON3_SO_ABI%%.so \
+ lib/libpyldb-util.%%SAMBA_PYTHON3_SO_ABI%%.so.1 \
+ %%SAMBA_PYTHON3_SITELIBDIR%%/ldb.so \
+ %%SAMBA_PYTHON3_SITELIBDIR%%/_ldb_text.py \
+ %%PKGCONFIGDIR%%/pyldb-util.%%SAMBA_PYTHON3_SO_ABI%%.pc
+.endif
+.endif
+
+.include <bsd.port.pre.mk>
+
+.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(SAMBA_PYTHON3)
+ ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libpyldb-util.${SAMBA_PYTHON3_SO_ABI}.so
+ ${STRIP_CMD} ${STAGEDIR}${PREFIX}/${SAMBA_PYTHON3_SITELIBDIR}/ldb.so
+.endif
+.endif
+
+.include <bsd.port.post.mk>
diff --git a/databases/ldb12/distinfo b/databases/ldb12/distinfo
new file mode 100644
index 000000000000..8bd749f5d3b8
--- /dev/null
+++ b/databases/ldb12/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1507427797
+SHA256 (ldb-1.2.2.tar.gz) = 0cedeadb75de401c9735127f654dbc1a391c4327a2b83be54078be286fed1113
+SIZE (ldb-1.2.2.tar.gz) = 1348041
diff --git a/databases/ldb12/files/ldb.3 b/databases/ldb12/files/ldb.3
new file mode 100644
index 000000000000..aa70f3deedd4
--- /dev/null
+++ b/databases/ldb12/files/ldb.3
@@ -0,0 +1,457 @@
+'\" t
+.\" Title: ldb
+.\" Author: [see the "Author" section]
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\" Date: 11/05/2017
+.\" Manual: System Administration tools
+.\" Source: LDB 1.1
+.\" Language: English
+.\"
+.TH "LDB" "3" "11/05/2017" "LDB 1\&.1" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+ldb \- A light\-weight database library
+.SH "SYNOPSIS"
+.sp
+.nf
+#include <ldb\&.h>
+.fi
+.SH "DESCRIPTION"
+.PP
+ldb is a light weight embedded database library and API\&. With a programming interface that is very similar to LDAP, ldb can store its data either in a tdb(3) database or in a real LDAP database\&.
+.PP
+When used with the tdb backend ldb does not require any database daemon\&. Instead, ldb function calls are processed immediately by the ldb library, which does IO directly on the database, while allowing multiple readers/writers using operating system byte range locks\&. This leads to an API with very low overheads, often resulting in speeds of more than 10x what can be achieved with a more traditional LDAP architecture\&.
+.PP
+In a taxonomy of databases ldb would sit half way between key/value pair databases (such as berkley db or tdb) and a full LDAP database\&. With a structured attribute oriented API like LDAP and good indexing capabilities, ldb can be used for quite sophisticated applications that need a light weight database, without the administrative overhead of a full LDAP installation\&.
+.PP
+Included with ldb are a number of useful command line tools for manipulating a ldb database\&. These tools are similar in style to the equivalent ldap command line tools\&.
+.PP
+In its default mode of operation with a tdb backend, ldb can also be seen as a "schema\-less LDAP"\&. By default ldb does not require a schema, which greatly reduces the complexity of getting started with ldb databases\&. As the complexity of you application grows you can take advantage of some of the optional schema\-like attributes that ldb offers, or you can migrate to using the full LDAP api while keeping your exiting ldb code\&.
+.PP
+If you are new to ldb, then I suggest starting with the manual pages for ldbsearch(1) and ldbedit(1), and experimenting with a local database\&. Then I suggest you look at the ldb_connect(3) and ldb_search(3) manual pages\&.
+.SH "TOOLS"
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+
+ldbsearch(1)
+\- command line ldb search utility
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+
+ldbedit(1)
+\- edit all or part of a ldb database using your favourite editor
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+
+ldbadd(1)
+\- add records to a ldb database using LDIF formatted input
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+
+ldbdel(1)
+\- delete records from a ldb database
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+
+ldbmodify(1)
+\- modify records in a ldb database using LDIF formatted input
+.RE
+.SH "FUNCTIONS"
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+
+\fBldb_connect(3)\fR
+\- connect to a ldb backend
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+
+\fBldb_search(3)\fR
+\- perform a database search
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+
+\fBldb_add(3)\fR
+\- add a record to the database
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+
+\fBldb_delete(3)\fR
+\- delete a record from the database
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+
+\fBldb_modify(3)\fR
+\- modify a record in the database
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+
+\fBldb_errstring(3)\fR
+\- retrieve extended error information from the last operation
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+
+\fBldb_ldif_write(3)\fR
+\- write a LDIF formatted message
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+
+\fBldb_ldif_write_file(3)\fR
+\- write a LDIF formatted message to a file
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+
+\fBldb_ldif_read(3)\fR
+\- read a LDIF formatted message
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+
+\fBldb_ldif_read_free(3)\fR
+\- free the result of a ldb_ldif_read()
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+
+\fBldb_ldif_read_file(3)\fR
+\- read a LDIF message from a file
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+
+\fBldb_ldif_read_string(3)\fR
+\- read a LDIF message from a string
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+
+\fBldb_msg_find_element(3)\fR
+\- find an element in a ldb_message
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+
+\fBldb_val_equal_exact(3)\fR
+\- compare two ldb_val structures
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+
+\fBldb_msg_find_val(3)\fR
+\- find an element by value
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+
+\fBldb_msg_add_empty(3)\fR
+\- add an empty message element to a ldb_message
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+
+\fBldb_msg_add(3)\fR
+\- add a non\-empty message element to a ldb_message
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+
+\fBldb_msg_element_compare(3)\fR
+\- compare two ldb_message_element structures
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+
+\fBldb_msg_find_int(3)\fR
+\- return an integer value from a ldb_message
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+
+\fBldb_msg_find_uint(3)\fR
+\- return an unsigned integer value from a ldb_message
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+
+\fBldb_msg_find_double(3)\fR
+\- return a double value from a ldb_message
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+
+\fBldb_msg_find_string(3)\fR
+\- return a string value from a ldb_message
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+
+\fBldb_set_alloc(3)\fR
+\- set the memory allocation function to be used by ldb
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+
+\fBldb_set_debug(3)\fR
+\- set a debug handler to be used by ldb
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+
+\fBldb_set_debug_stderr(3)\fR
+\- set a debug handler for stderr output
+.RE
+.SH "AUTHOR"
+.PP
+ldb was written by
+\m[blue]\fBAndrew Tridgell\fR\m[]\&\s-2\u[1]\d\s+2\&.
+.PP
+If you wish to report a problem or make a suggestion then please see the
+\m[blue]\fB\%http://ldb.samba.org/\fR\m[]
+web site for current contact and maintainer information\&.
+.PP
+ldb is released under the GNU Lesser General Public License version 2 or later\&. Please see the file COPYING for license details\&.
+.SH "NOTES"
+.IP " 1." 4
+Andrew Tridgell
+.RS 4
+\%https://www.samba.org/~tridge/
+.RE
diff --git a/databases/ldb12/files/ldbadd.1 b/databases/ldb12/files/ldbadd.1
new file mode 100644
index 000000000000..4d491ee1fb64
--- /dev/null
+++ b/databases/ldb12/files/ldbadd.1
@@ -0,0 +1,78 @@
+'\" t
+.\" Title: ldbadd
+.\" Author: [see the "AUTHOR" section]
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\" Date: 11/05/2017
+.\" Manual: System Administration tools
+.\" Source: LDB 1.1
+.\" Language: English
+.\"
+.TH "LDBADD" "1" "11/05/2017" "LDB 1\&.1" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+ldbadd \- Command\-line utility for adding records to an LDB
+.SH "SYNOPSIS"
+.HP \w'\fBldbadd\fR\ 'u
+\fBldbadd\fR [\-h] [\-H\ LDB\-URL] [ldif\-file1] [ldif\-file2] [\&.\&.\&.]
+.SH "DESCRIPTION"
+.PP
+ldbadd adds records to an ldb(3) database\&. It reads the ldif(5) files specified on the command line and adds the records from these files to the LDB database, which is specified by the \-H option or the LDB_URL environment variable\&.
+.PP
+If \- is specified as a ldb file, the ldif input is read from standard input\&.
+.SH "OPTIONS"
+.PP
+\-h
+.RS 4
+Show list of available options\&.
+.RE
+.PP
+\-H <ldb\-url>
+.RS 4
+LDB URL to connect to\&. See ldb(3) for details\&.
+.RE
+.SH "ENVIRONMENT"
+.PP
+LDB_URL
+.RS 4
+LDB URL to connect to (can be overrided by using the \-H command\-line option\&.)
+.RE
+.SH "VERSION"
+.PP
+This man page is correct for version 1\&.1 of LDB\&.
+.SH "SEE ALSO"
+.PP
+ldb(3), ldbmodify, ldbdel, ldif(5)
+.SH "AUTHOR"
+.PP
+ldb was written by
+\m[blue]\fBAndrew Tridgell\fR\m[]\&\s-2\u[1]\d\s+2\&.
+.PP
+If you wish to report a problem or make a suggestion then please see the
+\m[blue]\fB\%http://ldb.samba.org/\fR\m[]
+web site for current contact and maintainer information\&.
+.PP
+This manpage was written by Jelmer Vernooij\&.
+.SH "NOTES"
+.IP " 1." 4
+Andrew Tridgell
+.RS 4
+\%https://www.samba.org/~tridge/
+.RE
diff --git a/databases/ldb12/files/ldbdel.1 b/databases/ldb12/files/ldbdel.1
new file mode 100644
index 000000000000..26e867bb0b04
--- /dev/null
+++ b/databases/ldb12/files/ldbdel.1
@@ -0,0 +1,80 @@
+'\" t
+.\" Title: ldbdel
+.\" Author: [see the "AUTHOR" section]
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\" Date: 11/05/2017
+.\" Manual: System Administration tools
+.\" Source: LDB 1.1
+.\" Language: English
+.\"
+.TH "LDBDEL" "1" "11/05/2017" "LDB 1\&.1" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+ldbdel \- Command\-line program for deleting LDB records
+.SH "SYNOPSIS"
+.HP \w'\fBldbdel\fR\ 'u
+\fBldbdel\fR [\-h] [\-H\ LDB\-URL] [dn] [\&.\&.\&.]
+.SH "DESCRIPTION"
+.PP
+ldbdel deletes records from an ldb(3) database\&. It deletes the records identified by the dn\*(Aqs specified on the command\-line\&.
+.PP
+ldbdel uses either the database that is specified with the \-H option or the database specified by the LDB_URL environment variable\&.
+.SH "OPTIONS"
+.PP
+\-h
+.RS 4
+Show list of available options\&.
+.RE
+.PP
+\-H <ldb\-url>
+.RS 4
+LDB URL to connect to\&. See ldb(3) for details\&.
+.RE
+.SH "ENVIRONMENT"
+.PP
+LDB_URL
+.RS 4
+LDB URL to connect to (can be overrided by using the \-H command\-line option\&.)
+.RE
+.SH "VERSION"
+.PP
+This man page is correct for version 1\&.1 of LDB\&.
+.SH "SEE ALSO"
+.PP
+ldb(3), ldbmodify, ldbadd, ldif(5)
+.SH "AUTHOR"
+.PP
+ldb was written by
+\m[blue]\fBAndrew Tridgell\fR\m[]\&\s-2\u[1]\d\s+2\&.
+.PP
+If you wish to report a problem or make a suggestion then please see the
+\m[blue]\fB\%http://ldb.samba.org/\fR\m[]
+web site for current contact and maintainer information\&.
+.PP
+ldbdel was written by Andrew Tridgell\&.
+.PP
+This manpage was written by Jelmer Vernooij\&.
+.SH "NOTES"
+.IP " 1." 4
+Andrew Tridgell
+.RS 4
+\%https://www.samba.org/~tridge/
+.RE
diff --git a/databases/ldb12/files/ldbedit.1 b/databases/ldb12/files/ldbedit.1
new file mode 100644
index 000000000000..d838d3695d2e
--- /dev/null
+++ b/databases/ldb12/files/ldbedit.1
@@ -0,0 +1,111 @@
+'\" t
+.\" Title: ldbedit
+.\" Author: [see the "AUTHOR" section]
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\" Date: 11/05/2017
+.\" Manual: System Administration tools
+.\" Source: LDB 1.1
+.\" Language: English
+.\"
+.TH "LDBEDIT" "1" "11/05/2017" "LDB 1\&.1" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+ldbedit \- Edit LDB databases using your preferred editor
+.SH "SYNOPSIS"
+.HP \w'\fBldbedit\fR\ 'u
+\fBldbedit\fR [\-?] [\-\-usage] [\-s\ base|one|sub] [\-b\ basedn] [\-a] [\-e\ editor] [\-H\ LDB\-URL] [expression] [attributes...]
+.SH "DESCRIPTION"
+.PP
+ldbedit is a utility that allows you to edit LDB entries (in tdb files, sqlite files or LDAP servers) using your preferred editor\&. ldbedit generates an LDIF file based on your query, allows you to edit the LDIF, and then merges that LDIF back into the LDB backend\&.
+.SH "OPTIONS"
+.PP
+\-?, \-\-help
+.RS 4
+Show list of available options, and a phrase describing what that option does\&.
+.RE
+.PP
+\-\-usage
+.RS 4
+Show list of available options\&. This is similar to the help option, however it does not provide any description, and is hence shorter\&.
+.RE
+.PP
+\-H <ldb\-url>
+.RS 4
+LDB URL to connect to\&. For a tdb database, this will be of the form tdb://\fIfilename\fR\&. For a LDAP connection over unix domain sockets, this will be of the form ldapi://\fIsocket\fR\&. For a (potentially remote) LDAP connection over TCP, this will be of the form ldap://\fIhostname\fR\&. For an SQLite database, this will be of the form sqlite://\fIfilename\fR\&.
+.RE
+.PP
+\-s one|sub|base
+.RS 4
+Search scope to use\&. One\-level, subtree or base\&.
+.RE
+.PP
+\-a, \-all
+.RS 4
+Edit all records\&. This allows you to apply the same change to a number of records at once\&. You probably want to combine this with an expression of the form "objectclass=*"\&.
+.RE
+.PP
+\-e editor, \-\-editor editor
+.RS 4
+Specify the editor that should be used (overrides the VISUAL and EDITOR environment variables)\&. If this option is not used, and neither VISUAL nor EDITOR environment variables are set, then the vi editor will be used\&.
+.RE
+.PP
+\-b basedn
+.RS 4
+Specify Base Distinguished Name to use\&.
+.RE
+.PP
+\-v, \-\-verbose
+.RS 4
+Make ldbedit more verbose about the operations that are being performed\&. Without this option, ldbedit will only provide a summary change line\&.
+.RE
+.SH "ENVIRONMENT"
+.PP
+LDB_URL
+.RS 4
+LDB URL to connect to\&. This can be overridden by using the \-H command\-line option\&.)
+.RE
+.PP
+VISUAL and EDITOR
+.RS 4
+Environment variables used to determine what editor to use\&. VISUAL takes precedence over EDITOR, and both are overridden by the \-e command\-line option\&.
+.RE
+.SH "VERSION"
+.PP
+This man page is correct for version 1\&.1 of LDB\&.
+.SH "SEE ALSO"
+.PP
+ldb(3), ldbmodify(1), ldbdel(1), ldif(5), vi(1)
+.SH "AUTHOR"
+.PP
+ldb was written by
+\m[blue]\fBAndrew Tridgell\fR\m[]\&\s-2\u[1]\d\s+2\&.
+.PP
+If you wish to report a problem or make a suggestion then please see the
+\m[blue]\fB\%http://ldb.samba.org/\fR\m[]
+web site for current contact and maintainer information\&.
+.PP
+This manpage was written by Jelmer Vernooij and updated by Brad Hards\&.
+.SH "NOTES"
+.IP " 1." 4
+Andrew Tridgell
+.RS 4
+\%https://www.samba.org/~tridge/
+.RE
diff --git a/databases/ldb12/files/ldbmodify.1 b/databases/ldb12/files/ldbmodify.1
new file mode 100644
index 000000000000..e537a9b21f81
--- /dev/null
+++ b/databases/ldb12/files/ldbmodify.1
@@ -0,0 +1,73 @@
+'\" t
+.\" Title: ldbmodify
+.\" Author: [see the "AUTHOR" section]
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\" Date: 11/05/2017
+.\" Manual: System Administration tools
+.\" Source: LDB 1.1
+.\" Language: English
+.\"
+.TH "LDBMODIFY" "1" "11/05/2017" "LDB 1\&.1" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+ldbmodify \- Modify records in a LDB database
+.SH "SYNOPSIS"
+.HP \w'\fBldbmodify\fR\ 'u
+\fBldbmodify\fR [\-H\ LDB\-URL] [ldif\-file]
+.SH "DESCRIPTION"
+.PP
+ldbmodify changes, adds and deletes records in a LDB database\&. The changes that should be made to the LDB database are read from the specified LDIF\-file\&. If \- is specified as the filename, input is read from stdin\&.
+.PP
+For now, see ldapmodify(1) for details on the LDIF file format\&.
+.SH "OPTIONS"
+.PP
+\-H <ldb\-url>
+.RS 4
+LDB URL to connect to\&. See ldb(3) for details\&.
+.RE
+.SH "ENVIRONMENT"
+.PP
+LDB_URL
+.RS 4
+LDB URL to connect to (can be overrided by using the \-H command\-line option\&.)
+.RE
+.SH "VERSION"
+.PP
+This man page is correct for version 1\&.1 of LDB\&.
+.SH "SEE ALSO"
+.PP
+ldb(3), ldbedit
+.SH "AUTHOR"
+.PP
+ldb was written by
+\m[blue]\fBAndrew Tridgell\fR\m[]\&\s-2\u[1]\d\s+2\&.
+.PP
+If you wish to report a problem or make a suggestion then please see the
+\m[blue]\fB\%http://ldb.samba.org/\fR\m[]
+web site for current contact and maintainer information\&.
+.PP
+This manpage was written by Jelmer Vernooij\&.
+.SH "NOTES"
+.IP " 1." 4
+Andrew Tridgell
+.RS 4
+\%https://www.samba.org/~tridge/
+.RE
diff --git a/databases/ldb12/files/ldbrename.1 b/databases/ldb12/files/ldbrename.1
new file mode 100644
index 000000000000..c406bbf2bbe0
--- /dev/null
+++ b/databases/ldb12/files/ldbrename.1
@@ -0,0 +1,81 @@
+'\" t
+.\" Title: ldbrename
+.\" Author: [see the "AUTHOR" section]
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\" Date: 11/05/2017
+.\" Manual: System Administration tools
+.\" Source: LDB 1.1
+.\" Language: English
+.\"
+.TH "LDBRENAME" "1" "11/05/2017" "LDB 1\&.1" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+ldbrename \- Edit LDB databases using your favorite editor
+.SH "SYNOPSIS"
+.HP \w'\fBldbrename\fR\ 'u
+\fBldbrename\fR [\-h] [\-o\ options] {olddn} {newdn}
+.SH "DESCRIPTION"
+.PP
+ldbrename is a utility that allows you to rename trees in an LDB database based by DN\&. This utility takes two arguments: the original DN name of the top element and the DN to change it to\&.
+.SH "OPTIONS"
+.PP
+\-h
+.RS 4
+Show list of available options\&.
+.RE
+.PP
+\-H <ldb\-url>
+.RS 4
+LDB URL to connect to\&. See ldb(3) for details\&.
+.RE
+.PP
+\-o options
+.RS 4
+Extra ldb options, such as modules\&.
+.RE
+.SH "ENVIRONMENT"
+.PP
+LDB_URL
+.RS 4
+LDB URL to connect to (can be overrided by using the \-H command\-line option\&.)
+.RE
+.SH "VERSION"
+.PP
+This man page is correct for version 1\&.1 of LDB\&.
+.SH "SEE ALSO"
+.PP
+ldb(3), ldbmodify, ldbdel, ldif(5)
+.SH "AUTHOR"
+.PP
+ldb was written by
+\m[blue]\fBAndrew Tridgell\fR\m[]\&\s-2\u[1]\d\s+2\&.
+.PP
+If you wish to report a problem or make a suggestion then please see the
+\m[blue]\fB\%http://ldb.samba.org/\fR\m[]
+web site for current contact and maintainer information\&.
+.PP
+This manpage was written by Jelmer Vernooij\&.
+.SH "NOTES"
+.IP " 1." 4
+Andrew Tridgell
+.RS 4
+\%https://www.samba.org/~tridge/
+.RE
diff --git a/databases/ldb12/files/ldbsearch.1 b/databases/ldb12/files/ldbsearch.1
new file mode 100644
index 000000000000..7d91e7ae1a09
--- /dev/null
+++ b/databases/ldb12/files/ldbsearch.1
@@ -0,0 +1,91 @@
+'\" t
+.\" Title: ldbsearch
+.\" Author: [see the "AUTHOR" section]
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\" Date: 11/05/2017
+.\" Manual: System Administration tools
+.\" Source: LDB 1.1
+.\" Language: English
+.\"
+.TH "LDBSEARCH" "1" "11/05/2017" "LDB 1\&.1" "System Administration tools"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+ldbsearch \- Search for records in a LDB database
+.SH "SYNOPSIS"
+.HP \w'\fBldbsearch\fR\ 'u
+\fBldbsearch\fR [\-h] [\-s\ base|one|sub] [\-b\ basedn] [\-i] [\-H\ LDB\-URL] [expression] [attributes]
+.SH "DESCRIPTION"
+.PP
+ldbsearch searches a LDB database for records matching the specified expression (see the ldapsearch(1) manpage for a description of the expression format)\&. For each record, the specified attributes are printed\&.
+.SH "OPTIONS"
+.PP
+\-h
+.RS 4
+Show list of available options\&.
+.RE
+.PP
+\-H <ldb\-url>
+.RS 4
+LDB URL to connect to\&. See ldb(3) for details\&.
+.RE
+.PP
+\-s one|sub|base
+.RS 4
+Search scope to use\&. One\-level, subtree or base\&.
+.RE
+.PP
+\-i
+.RS 4
+Read search expressions from stdin\&.
+.RE
+.PP
+\-b basedn
+.RS 4
+Specify Base DN to use\&.
+.RE
+.SH "ENVIRONMENT"
+.PP
+LDB_URL
+.RS 4
+LDB URL to connect to (can be overrided by using the \-H command\-line option\&.)
+.RE
+.SH "VERSION"
+.PP
+This man page is correct for version 1\&.1 of LDB\&.
+.SH "SEE ALSO"
+.PP
+ldb(3), ldbedit(1)
+.SH "AUTHOR"
+.PP
+ldb was written by
+\m[blue]\fBAndrew Tridgell\fR\m[]\&\s-2\u[1]\d\s+2\&.
+.PP
+If you wish to report a problem or make a suggestion then please see the
+\m[blue]\fB\%http://ldb.samba.org/\fR\m[]
+web site for current contact and maintainer information\&.
+.PP
+This manpage was written by Jelmer Vernooij\&.
+.SH "NOTES"
+.IP " 1." 4
+Andrew Tridgell
+.RS 4
+\%https://www.samba.org/~tridge/
+.RE
diff --git a/databases/ldb12/files/patch-buildtools__wafsamba__samba_autoconf.py b/databases/ldb12/files/patch-buildtools__wafsamba__samba_autoconf.py
new file mode 100644
index 000000000000..5245d0e4857b
--- /dev/null
+++ b/databases/ldb12/files/patch-buildtools__wafsamba__samba_autoconf.py
@@ -0,0 +1,11 @@
+--- buildtools/wafsamba/samba_autoconf.py.orig 2016-10-07 04:45:35 UTC
++++ buildtools/wafsamba/samba_autoconf.py
+@@ -873,7 +873,7 @@ def SAMBA_CHECK_UNDEFINED_SYMBOL_FLAGS(c
+ conf.env.undefined_ldflags = conf.ADD_LDFLAGS('-Wl,-no-undefined', testflags=True)
+
+ if not sys.platform.startswith("openbsd") and conf.env.undefined_ignore_ldflags == []:
+- if conf.CHECK_LDFLAGS(['-undefined', 'dynamic_lookup']):
++ if conf.CHECK_LDFLAGS(['-undefined', 'dynamic_lookup'] + conf.env.WERROR_CFLAGS):
+ conf.env.undefined_ignore_ldflags = ['-undefined', 'dynamic_lookup']
+
+ @conf
diff --git a/databases/ldb12/files/patch-buildtools__wafsamba__samba_install.py b/databases/ldb12/files/patch-buildtools__wafsamba__samba_install.py
new file mode 100644
index 000000000000..95f250a86218
--- /dev/null
+++ b/databases/ldb12/files/patch-buildtools__wafsamba__samba_install.py
@@ -0,0 +1,11 @@
+--- buildtools/wafsamba/samba_install.py.orig 2015-12-10 11:01:40 UTC
++++ buildtools/wafsamba/samba_install.py
+@@ -118,7 +118,7 @@ def install_library(self):
+ inst_name = bld.make_libname(t.target)
+ elif self.vnum:
+ vnum_base = self.vnum.split('.')[0]
+- install_name = bld.make_libname(target_name, version=self.vnum)
++ install_name = bld.make_libname(target_name, version=vnum_base)
+ install_link = bld.make_libname(target_name, version=vnum_base)
+ inst_name = bld.make_libname(t.target)
+ if not self.private_library:
diff --git a/databases/ldb12/files/patch-buildtools__wafsamba__samba_python.py b/databases/ldb12/files/patch-buildtools__wafsamba__samba_python.py
new file mode 100644
index 000000000000..dcea3ffd78c3
--- /dev/null
+++ b/databases/ldb12/files/patch-buildtools__wafsamba__samba_python.py
@@ -0,0 +1,36 @@
+--- buildtools/wafsamba/samba_python.py.orig 2017-04-28 08:57:26 UTC
++++ buildtools/wafsamba/samba_python.py
+@@ -76,17 +76,31 @@ def SAMBA_CHECK_PYTHON_HEADERS(conf, man
+
+ def _check_python_headers(conf, mandatory):
+ try:
++ from python import _get_python_variables
+ Configure.ConfigurationError
+ conf.check_python_headers(mandatory=mandatory)
++ conf.env['PYTHON_SO_ABI'] = _get_python_variables(
++ conf.env['PYTHON'],
++ ["get_config_var('SOABI') or ''"],
++ ['from distutils.sysconfig import get_config_var']
++ )[0]
+ except Configure.ConfigurationError:
+ if mandatory:
+ raise
+
+ if conf.env['PYTHON_VERSION'] > '3':
+- abi_pattern = os.path.splitext(conf.env['pyext_PATTERN'])[0]
+- conf.env['PYTHON_SO_ABI_FLAG'] = abi_pattern % ''
++ override_PYTHON3_SO_ABI_FLAG = os.getenv('PYTHON3_SO_ABI_FLAG', None)
++ if override_PYTHON3_SO_ABI_FLAG is not None:
++ conf.env['PYTHON_SO_ABI_FLAG'] = override_PYTHON3_SO_ABI_FLAG
++ if not conf.env['PYTHON_SO_ABI_FLAG']:
++ if conf.env['PYTHON_SO_ABI']:
++ conf.env['PYTHON_SO_ABI_FLAG'] = '.'+conf.env['PYTHON_SO_ABI']
++ else:
++ abi_pattern = os.path.splitext(conf.env['pyext_PATTERN'])[0]
++ conf.env['PYTHON_SO_ABI_FLAG'] = abi_pattern % ''
+ else:
+ conf.env['PYTHON_SO_ABI_FLAG'] = ''
++
+ conf.env['PYTHON_LIBNAME_SO_ABI_FLAG'] = (
+ conf.env['PYTHON_SO_ABI_FLAG'].replace('_', '-'))
+
diff --git a/databases/ldb12/files/patch-lib__replace__wscript b/databases/ldb12/files/patch-lib__replace__wscript
new file mode 100644
index 000000000000..d6d32b6c3dca
--- /dev/null
+++ b/databases/ldb12/files/patch-lib__replace__wscript
@@ -0,0 +1,11 @@
+--- lib/replace/wscript.orig 2017-08-24 11:27:53 UTC
++++ lib/replace/wscript
+@@ -81,7 +81,7 @@ def configure(conf):
+ conf.CHECK_HEADERS('sys/atomic.h')
+ conf.CHECK_HEADERS('libgen.h')
+
+- if conf.CHECK_CFLAGS('-Wno-format-truncation'):
++ if conf.CHECK_CFLAGS(['-Wno-format-truncation'] + conf.env.WERROR_CFLAGS):
+ conf.define('HAVE_WNO_FORMAT_TRUNCATION', '1')
+
+ # Check for process set name support
diff --git a/databases/ldb12/files/patch-third_party__waf__wafadmin__Tools__cc.py b/databases/ldb12/files/patch-third_party__waf__wafadmin__Tools__cc.py
new file mode 100644
index 000000000000..5695f3e03841
--- /dev/null
+++ b/databases/ldb12/files/patch-third_party__waf__wafadmin__Tools__cc.py
@@ -0,0 +1,11 @@
+--- third_party/waf/wafadmin/Tools/cc.py.orig 2015-11-06 13:25:52 UTC
++++ third_party/waf/wafadmin/Tools/cc.py
+@@ -88,7 +88,7 @@ def c_hook(self, node):
+ raise Utils.WafError('Have you forgotten to set the feature "cc" on %s?' % str(self))
+ return task
+
+-cc_str = '${CC} ${CCFLAGS} ${CPPFLAGS} ${_CCINCFLAGS} ${_CCDEFFLAGS} ${CC_SRC_F}${SRC} ${CC_TGT_F}${TGT}'
++cc_str = '${CC} ${CCFLAGS} ${_CCINCFLAGS} ${CPPFLAGS} ${_CCDEFFLAGS} ${CC_SRC_F}${SRC} ${CC_TGT_F}${TGT}'
+ cls = Task.simple_task_type('cc', cc_str, 'GREEN', ext_out='.o', ext_in='.c', shell=False)
+ cls.scan = ccroot.scan
+ cls.vars.append('CCDEPS')
diff --git a/databases/ldb12/files/patch-wscript b/databases/ldb12/files/patch-wscript
new file mode 100644
index 000000000000..1617ed56fa46
--- /dev/null
+++ b/databases/ldb12/files/patch-wscript
@@ -0,0 +1,32 @@
+--- wscript.orig 2017-09-07 10:04:11 UTC
++++ wscript
+@@ -126,9 +126,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):
+ 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,
diff --git a/databases/ldb12/pkg-descr b/databases/ldb12/pkg-descr
new file mode 100644
index 000000000000..b800aadeae66
--- /dev/null
+++ b/databases/ldb12/pkg-descr
@@ -0,0 +1,9 @@
+ldb is a LDAP-like embedded database.
+
+ldb provides a fast database with an LDAP-like API designed to be used
+within an application.
+
+In some ways it can be seen as a intermediate solution between key-value
+pair databases and a real LDAP database.
+
+WWW: http://ldb.samba.org/
diff --git a/databases/tdb/Makefile b/databases/tdb/Makefile
index 68c3e5c52d49..12812a79c478 100644
--- a/databases/tdb/Makefile
+++ b/databases/tdb/Makefile
@@ -1,7 +1,7 @@
# $FreeBSD$
PORTNAME= tdb
-PORTVERSION= 1.3.12
+PORTVERSION= 1.3.15
PORTREVISION= 0
PORTEPOCH= 1
CATEGORIES= databases
@@ -12,7 +12,7 @@ COMMENT= Trivial Database
LICENSE= GPLv3
-CONFLICTS= *samba3[0-4]-3.*
+IGNORE_NONTHREAD_PYTHON=needs port lang/python${PYTHON_SUFFIX} to be build with THREADS support
USES= compiler pkgconfig waf
USE_LDCONFIG= yes
@@ -32,12 +32,48 @@ MANPAGES_DESC= Build and install manpages (requires textproc/docbook-xsl)
.include <bsd.port.options.mk>
+TDB_BINS= bin/tdbbackup \
+ bin/tdbdump \
+ bin/tdbrestore \
+ bin/tdbtool
+
+PLIST_FILES+= include/tdb.h \
+ ${TDB_BINS} \
+ lib/libtdb.so \
+ lib/libtdb.so.1 \
+ %%PKGCONFIGDIR%%/tdb.pc
+
.if defined(NO_PYTHON)
CONFIGURE_ARGS+= --disable-python
.else
-USES+= python:2
+USES+= python:2.7+
+
PLIST_FILES+= %%PYTHON_SITELIBDIR%%/tdb.so \
%%PYTHON_SITELIBDIR%%/_tdb_text.py
+# 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_SAMBA_PYTHON3) && ${WITH_SAMBA_PYTHON3:Mpython3\.[0-9]}
+SAMBA_PYTHON3= ${WITH_SAMBA_PYTHON3}
+SAMBA_PYTHON3_VERSION:= ${SAMBA_PYTHON3:S/^python//}
+SAMBA_PYTHON3_VER:= ${SAMBA_PYTHON3_VERSION:C/\.//}
+.if !exists(${PORTSDIR}/lang/python${SAMBA_PYTHON3_VER})
+.error unsupported or unknown Python version ${SAMBA_PYTHON3_VERSION}
+.endif
+BUILD_DEPENDS+= ${SAMBA_PYTHON3}:lang/python${SAMBA_PYTHON3_VER}
+RUN_DEPENDS+= ${SAMBA_PYTHON3}:lang/python${SAMBA_PYTHON3_VER}
+# cpython-36m
+SAMBA_PYTHON3_SO_ABI!= [ ! -f "${LOCALBASE}/bin/${SAMBA_PYTHON3}" ] || ${LOCALBASE}/bin/${SAMBA_PYTHON3} -c 'import sysconfig; print(sysconfig.get_config_var("SOABI") or "")' 2>/dev/null
+SAMBA_PYTHON3_SITELIBDIR=lib/python${SAMBA_PYTHON3_VERSION}/site-packages
+
+CONFIGURE_ENV+= PYTHON3_SO_ABI_FLAG=.${SAMBA_PYTHON3_SO_ABI}
+CONFIGURE_ARGS+= --extra-python=${LOCALBASE}/bin/${SAMBA_PYTHON3}
+
+PLIST_SUB+= SAMBA_PYTHON3_SO_ABI=${SAMBA_PYTHON3_SO_ABI} \
+ SAMBA_PYTHON3_SITELIBDIR=${SAMBA_PYTHON3_SITELIBDIR}
+
+PLIST_FILES+= %%SAMBA_PYTHON3_SITELIBDIR%%/tdb.so \
+ %%SAMBA_PYTHON3_SITELIBDIR%%/_tdb_text.py
+.endif
.endif
.include <bsd.port.pre.mk>
@@ -48,16 +84,6 @@ CONFIGURE_ENV+= XSLTPROC="true"
BUILD_DEPENDS+= ${LOCALBASE}/share/xsl/docbook/manpages/docbook.xsl:textproc/docbook-xsl \
xsltproc:textproc/libxslt
.endif
-
-PLIST_FILES+= bin/tdbbackup \
- bin/tdbdump \
- bin/tdbrestore \
- bin/tdbtool \
- include/tdb.h \
- lib/libtdb.so \
- lib/libtdb.so.1 \
- %%PKGCONFIGDIR%%/tdb.pc
-
# No fancy color error messages
.if ${COMPILER_TYPE} == "clang"
CFLAGS+= -fno-color-diagnostics
@@ -72,8 +98,6 @@ TDB_MAN8= man/man8/tdbbackup.8.gz \
PLIST_FILES+= ${TDB_MAN8}
-IGNORE_NONTHREAD_PYTHON=needs port lang/python${PYTHON_SUFFIX} to be build with THREADS support
-
post-patch:
@${REINPLACE_CMD} -e 's|%%PKGCONFIGDIR%%|${PKGCONFIGDIR}|g' \
${BUILD_WRKSRC}/wscript
@@ -87,12 +111,21 @@ pre-configure:
${FALSE}; \
fi
-pre-build:
-.if ! ${PORT_OPTIONS:MMANPAGES}
+pre-build-MANPAGES-off:
-${MKDIR} ${BUILD_WRKSRC}/bin/default/man
-. for man in ${TDB_MAN8}
+.for man in ${TDB_MAN8}
${INSTALL_MAN} ${FILESDIR}/`basename ${man} .gz` ${BUILD_WRKSRC}/bin/default/man
-. endfor
+.endfor
+
+post-install:
+.for lib in ${TDB_BINS} lib/libtdb.so
+ ${STRIP_CMD} ${STAGEDIR}${PREFIX}/${lib}
+.endfor
+.if !defined(NO_PYTHON)
+ ${STRIP_CMD} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/tdb.so
+.if defined(SAMBA_PYTHON3)
+ ${STRIP_CMD} ${STAGEDIR}${PREFIX}/${SAMBA_PYTHON3_SITELIBDIR}/tdb.so
+.endif
.endif
.include <bsd.port.post.mk>
diff --git a/databases/tdb/distinfo b/databases/tdb/distinfo
index 3c934cc6839f..2cc8d01b3183 100644
--- a/databases/tdb/distinfo
+++ b/databases/tdb/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1483301977
-SHA256 (tdb-1.3.12.tar.gz) = 60134e32253cac8e2efe5e0185d20123c208bcf6ad15edf2f50d80daadf8c348
-SIZE (tdb-1.3.12.tar.gz) = 495520
+TIMESTAMP = 1507427511
+SHA256 (tdb-1.3.15.tar.gz) = b4a1bf3833601bd9f10aff363cb750860aef9ce5b4617989239923192f946728
+SIZE (tdb-1.3.15.tar.gz) = 502627
diff --git a/databases/tdb/files/patch-buildtools__wafsamba__samba_autoconf.py b/databases/tdb/files/patch-buildtools__wafsamba__samba_autoconf.py
new file mode 100644
index 000000000000..5245d0e4857b
--- /dev/null
+++ b/databases/tdb/files/patch-buildtools__wafsamba__samba_autoconf.py
@@ -0,0 +1,11 @@
+--- buildtools/wafsamba/samba_autoconf.py.orig 2016-10-07 04:45:35 UTC
++++ buildtools/wafsamba/samba_autoconf.py
+@@ -873,7 +873,7 @@ def SAMBA_CHECK_UNDEFINED_SYMBOL_FLAGS(c
+ conf.env.undefined_ldflags = conf.ADD_LDFLAGS('-Wl,-no-undefined', testflags=True)
+
+ if not sys.platform.startswith("openbsd") and conf.env.undefined_ignore_ldflags == []:
+- if conf.CHECK_LDFLAGS(['-undefined', 'dynamic_lookup']):
++ if conf.CHECK_LDFLAGS(['-undefined', 'dynamic_lookup'] + conf.env.WERROR_CFLAGS):
+ conf.env.undefined_ignore_ldflags = ['-undefined', 'dynamic_lookup']
+
+ @conf
diff --git a/databases/tdb/files/patch-buildtools__wafsamba__samba_python.py b/databases/tdb/files/patch-buildtools__wafsamba__samba_python.py
new file mode 100644
index 000000000000..dcea3ffd78c3
--- /dev/null
+++ b/databases/tdb/files/patch-buildtools__wafsamba__samba_python.py
@@ -0,0 +1,36 @@
+--- buildtools/wafsamba/samba_python.py.orig 2017-04-28 08:57:26 UTC
++++ buildtools/wafsamba/samba_python.py
+@@ -76,17 +76,31 @@ def SAMBA_CHECK_PYTHON_HEADERS(conf, man
+
+ def _check_python_headers(conf, mandatory):
+ try:
++ from python import _get_python_variables
+ Configure.ConfigurationError
+ conf.check_python_headers(mandatory=mandatory)
++ conf.env['PYTHON_SO_ABI'] = _get_python_variables(
++ conf.env['PYTHON'],
++ ["get_config_var('SOABI') or ''"],
++ ['from distutils.sysconfig import get_config_var']
++ )[0]
+ except Configure.ConfigurationError:
+ if mandatory:
+ raise
+
+ if conf.env['PYTHON_VERSION'] > '3':
+- abi_pattern = os.path.splitext(conf.env['pyext_PATTERN'])[0]
+- conf.env['PYTHON_SO_ABI_FLAG'] = abi_pattern % ''
++ override_PYTHON3_SO_ABI_FLAG = os.getenv('PYTHON3_SO_ABI_FLAG', None)
++ if override_PYTHON3_SO_ABI_FLAG is not None:
++ conf.env['PYTHON_SO_ABI_FLAG'] = override_PYTHON3_SO_ABI_FLAG
++ if not conf.env['PYTHON_SO_ABI_FLAG']:
++ if conf.env['PYTHON_SO_ABI']:
++ conf.env['PYTHON_SO_ABI_FLAG'] = '.'+conf.env['PYTHON_SO_ABI']
++ else:
++ abi_pattern = os.path.splitext(conf.env['pyext_PATTERN'])[0]
++ conf.env['PYTHON_SO_ABI_FLAG'] = abi_pattern % ''
+ else:
+ conf.env['PYTHON_SO_ABI_FLAG'] = ''
++
+ conf.env['PYTHON_LIBNAME_SO_ABI_FLAG'] = (
+ conf.env['PYTHON_SO_ABI_FLAG'].replace('_', '-'))
+
diff --git a/databases/tdb/files/patch-lib__replace__wscript b/databases/tdb/files/patch-lib__replace__wscript
new file mode 100644
index 000000000000..d6d32b6c3dca
--- /dev/null
+++ b/databases/tdb/files/patch-lib__replace__wscript
@@ -0,0 +1,11 @@
+--- lib/replace/wscript.orig 2017-08-24 11:27:53 UTC
++++ lib/replace/wscript
+@@ -81,7 +81,7 @@ def configure(conf):
+ conf.CHECK_HEADERS('sys/atomic.h')
+ conf.CHECK_HEADERS('libgen.h')
+
+- if conf.CHECK_CFLAGS('-Wno-format-truncation'):
++ if conf.CHECK_CFLAGS(['-Wno-format-truncation'] + conf.env.WERROR_CFLAGS):
+ conf.define('HAVE_WNO_FORMAT_TRUNCATION', '1')
+
+ # Check for process set name support
diff --git a/databases/tdb/files/patch-wscript b/databases/tdb/files/patch-wscript
index ce7c161e3ab1..c1b8d4560be8 100644
--- a/databases/tdb/files/patch-wscript
+++ b/databases/tdb/files/patch-wscript
@@ -1,7 +1,7 @@
---- ./wscript.orig 2012-04-11 12:36:12.000000000 +0000
-+++ ./wscript 2013-01-29 20:56:34.289900427 +0000
-@@ -68,7 +68,7 @@
- io.c open.c transaction.c hash.c summary.c''')
+--- wscript.orig 2017-08-24 11:29:08 UTC
++++ wscript
+@@ -115,7 +115,7 @@ def build(bld):
+ COMMON_SRC = bld.SUBDIR('common', COMMON_FILES)
if bld.env.standalone_tdb:
- bld.env.PKGCONFIGDIR = '${LIBDIR}/pkgconfig'