git: 00b64ce160e6 - main - database/ldb29: LDAP-Like embedded database
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 30 Jan 2025 14:43:52 UTC
The branch main has been updated by kiwi:
URL: https://cgit.FreeBSD.org/ports/commit/?id=00b64ce160e6b4f2dc878bb27640ded614b4c7a9
commit 00b64ce160e6b4f2dc878bb27640ded614b4c7a9
Author: Xavier Beaudouin <kiwi@FreeBSD.org>
AuthorDate: 2025-01-28 09:19:34 +0000
Commit: Xavier Beaudouin <kiwi@FreeBSD.org>
CommitDate: 2025-01-30 14:41:57 +0000
database/ldb29: LDAP-Like embedded database
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.
This port is needed for Samba 4.20.
This commit is just a repocopy. I will update the port to the correct
version and connect it to the build in the next commit.
PR: 280533
Sponsored by: Klara, Inc.
Approved by: 0mp (mentor)
Approved by: samba (0mp, kiwi)
Differential Revision: https://reviews.freebsd.org/D48656
---
databases/ldb29/Makefile | 146 +++++++
databases/ldb29/distinfo | 3 +
databases/ldb29/files/man/ldb.3 | 427 +++++++++++++++++++++
databases/ldb29/files/man/ldbadd.1 | 78 ++++
databases/ldb29/files/man/ldbdel.1 | 80 ++++
databases/ldb29/files/man/ldbedit.1 | 111 ++++++
databases/ldb29/files/man/ldbmodify.1 | 73 ++++
databases/ldb29/files/man/ldbrename.1 | 81 ++++
databases/ldb29/files/man/ldbsearch.1 | 91 +++++
.../patch-buildtools_wafsamba_samba__autoconf.py | 50 +++
.../patch-buildtools_wafsamba_samba__install.py | 11 +
.../ldb29/files/patch-buildtools_wafsamba_wscript | 22 ++
databases/ldb29/files/patch-include_ldb__module.h | 15 +
.../files/patch-ldb_key_value__ldb_kv_cache.c | 13 +
databases/ldb29/files/patch-lib_replace_replace.c | 20 +
databases/ldb29/files/patch-lib_replace_wscript | 11 +
databases/ldb29/files/patch-wscript | 40 ++
databases/ldb29/pkg-descr | 7 +
18 files changed, 1279 insertions(+)
diff --git a/databases/ldb29/Makefile b/databases/ldb29/Makefile
new file mode 100644
index 000000000000..69f6e5605b69
--- /dev/null
+++ b/databases/ldb29/Makefile
@@ -0,0 +1,146 @@
+PORTNAME= ldb
+PORTVERSION= 2.8.2
+CATEGORIES= databases
+MASTER_SITES= SAMBA
+PKGNAMESUFFIX?= ${PORTVERSION:C/([[:digit:]]+)[.]([[:digit:]]+).*/\1\2/}
+
+MAINTAINER= samba@FreeBSD.org
+COMMENT= LDAP-like embedded database
+WWW= https://ldb.samba.org/
+
+LICENSE= GPLv3+
+
+IGNORE_NONTHREAD_PYTHON= needs port lang/python${PYTHON_SUFFIX} to be \
+ build with THREADS support
+
+BUILD_DEPENDS= ${_LDB_DEPENDS} \
+ cmocka>=1.1.3:sysutils/cmocka
+RUN_DEPENDS= ${_LDB_DEPENDS}
+TEST_DEPENDS= ${_LDB_DEPENDS} \
+ cmocka>=1.1.3:sysutils/cmocka
+
+USES= compiler ldap localbase:ldflags pkgconfig
+USE_LDCONFIG= yes
+
+HAS_CONFIGURE= yes
+CONFIGURE_LOG= ${BUILD_WRKSRC}/bin/config.log
+PKGCONFIGDIR?= ${PREFIX}/libdata/pkgconfig
+CONFIGURE_ARGS+= --bundled-libraries=!talloc,!tevent,!tdb,!popt,!cmocka \
+ --disable-rpath \
+ --with-modulesdir=${PREFIX}/lib/shared-modules \
+ --with-openldap=${LOCALBASE} \
+ --with-privatelibdir=${PREFIX}/lib/ldb \
+ --without-gettext
+CONFIGURE_ENV+= NOCOLOR=yes
+MAKE_ENV+= NOCOLOR=yes
+CFLAGS+= ${_CFLAGS_${COMPILER_TYPE}}
+DEBUG_FLAGS= -g -ggdb3 -O0
+# Some symbols in ldb's linker version scripts are not defined, but since the
+# scripts are generated dynamically, suppress errors with lld >= 17 due to these
+# undefined symbols.
+LDFLAGS+= -Wl,--undefined-version
+
+CONFLICTS_INSTALL= ldb[0-9][0-9] # include/ldb.h
+
+BINARY_ALIAS= python3=${PYTHON_CMD}
+
+PLIST_FILES= ${_LDB_BINS} \
+ ${_LDB_LIBS_64} \
+ ${_LDB_LIBS} \
+ ${_LDB_MAN1} \
+ ${_LDB_MAN3} \
+ ${PKGCONFIGDIR}/ldb.pc \
+ include/ldb.h \
+ include/ldb_errors.h \
+ include/ldb_handlers.h \
+ include/ldb_module.h \
+ include/ldb_version.h
+
+PLIST_SUB+= PKGCONFIGDIR=${PKGCONFIGDIR:S;${PREFIX}/;;}
+
+OPTIONS_DEFINE= MANPAGES PYTHON3
+OPTIONS_DEFAULT= PYTHON3
+MANPAGES_DESC= Build and install manpages (requires textproc/docbook-xsl)
+
+MANPAGES_BUILD_DEPENDS= ${LOCALBASE}/share/xsl/docbook/manpages/docbook.xsl:textproc/docbook-xsl \
+ xsltproc:textproc/libxslt
+MANPAGES_CONFIGURE_ENV_OFF= XSLTPROC="true"
+
+PYTHON3_USES= gettext-runtime python
+PYTHON3_USES_OFF= python:build,test
+PYTHON3_CONFIGURE_OFF= --disable-python
+PYTHON3_PLIST_FILES= ${PKGCONFIGDIR}/pyldb-util${PYTHON_EXT_SUFFIX}.pc \
+ ${PYTHON_SITELIBDIR}/_ldb_text.py \
+ ${PYTHON_SITELIBDIR}/ldb${PYTHON_EXT_SUFFIX}.so \
+ include/pyldb.h \
+ lib/libpyldb-util${PYTHON_EXT_SUFFIX}.so \
+ lib/libpyldb-util${PYTHON_EXT_SUFFIX}.so.2
+
+# No fancy color error messages
+_CFLAGS_clang= -fno-color-diagnostics
+
+_LDB_DEPENDS= talloc>=2.2.0:devel/talloc tevent>=0.10.0:devel/tevent \
+ tdb>=1.4.0:databases/tdb lmdb>=0.9.23:databases/lmdb \
+ popt>=0:devel/popt
+_LDB_BINS= bin/ldbedit bin/ldbmodify bin/ldbadd bin/ldbdel bin/ldbsearch \
+ bin/ldbrename
+_LDB_LIBS= lib/libldb.so lib/libldb.so.2 lib/ldb/libldb-tdb-int.so \
+ lib/ldb/libldb-tdb-err-map.so lib/ldb/libldb-key-value.so \
+ lib/ldb/libldb-cmdline.so lib/shared-modules/ldb/skel.so \
+ lib/shared-modules/ldb/server_sort.so \
+ lib/shared-modules/ldb/sample.so \
+ lib/shared-modules/ldb/rdn_name.so \
+ lib/shared-modules/ldb/paged_searches.so \
+ lib/shared-modules/ldb/ldb.so lib/shared-modules/ldb/ldap.so \
+ lib/shared-modules/ldb/asq.so lib/shared-modules/ldb/tdb.so
+_LDB_MAN1= share/man/man1/ldbadd.1.gz share/man/man1/ldbdel.1.gz \
+ share/man/man1/ldbedit.1.gz share/man/man1/ldbmodify.1.gz \
+ share/man/man1/ldbrename.1.gz share/man/man1/ldbsearch.1.gz
+_LDB_MAN3= share/man/man3/ldb.3.gz
+
+.include <bsd.port.options.mk>
+
+.if defined(WITH_DEBUG)
+CONFIGURE_ARGS+= --enable-debug \
+ --verbose
+.endif
+
+# Only for 64-bit architectures
+.if ${ARCH} != armv6 && ${ARCH} != armv7 && ${ARCH} != i386 && ${ARCH} != mips && \
+ ${ARCH} != powerpc && ${ARCH} != powerpcspe
+_LDB_LIBS_64= lib/ldb/libldb-mdb-int.so lib/shared-modules/ldb/mdb.so
+.endif
+
+.if defined(NO_PYTHON)
+WARNING+= "${PKGNAME} does not support NO_PYTHON anymore; use option PYTHON3 instead"
+.endif
+
+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}/man/`basename ${man} .gz` ${BUILD_WRKSRC}/bin/default/man
+.endfor
+
+post-install:
+.for lib in ${_LDB_BINS} ${_LDB_LIBS} ${_LDB_LIBS_64}
+ ${STRIP_CMD} ${STAGEDIR}${PREFIX}/${lib}
+.endfor
+
+post-install-PYTHON3-on:
+ ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libpyldb-util${PYTHON_EXT_SUFFIX}.so
+ ${STRIP_CMD} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/ldb${PYTHON_EXT_SUFFIX}.so
+
+.include <bsd.port.mk>
diff --git a/databases/ldb29/distinfo b/databases/ldb29/distinfo
new file mode 100644
index 000000000000..57b172f6663e
--- /dev/null
+++ b/databases/ldb29/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1729271994
+SHA256 (ldb-2.8.2.tar.gz) = 0e9aeb657aedbd048b1c0de4afe5b01a8dd33c24a6adb8361a0829374a2fc016
+SIZE (ldb-2.8.2.tar.gz) = 1746336
diff --git a/databases/ldb29/files/man/ldb.3 b/databases/ldb29/files/man/ldb.3
new file mode 100644
index 000000000000..ee748545d8f1
--- /dev/null
+++ b/databases/ldb29/files/man/ldb.3
@@ -0,0 +1,427 @@
+'\" t
+.\" Title: ldb
+.\" Author: [see the "Author" section]
+.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
+.\" Date: 09/23/2020
+.\" Manual: System Administration tools
+.\" Source: LDB 1.1
+.\" Language: English
+.\"
+.TH "LDB" "3" "09/23/2020" "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/ldb29/files/man/ldbadd.1 b/databases/ldb29/files/man/ldbadd.1
new file mode 100644
index 000000000000..90014c9d6703
--- /dev/null
+++ b/databases/ldb29/files/man/ldbadd.1
@@ -0,0 +1,78 @@
+'\" t
+.\" Title: ldbadd
+.\" Author: [see the "AUTHOR" section]
+.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
+.\" Date: 09/23/2020
+.\" Manual: System Administration tools
+.\" Source: LDB 1.1
+.\" Language: English
+.\"
+.TH "LDBADD" "1" "09/23/2020" "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 overridden 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/ldb29/files/man/ldbdel.1 b/databases/ldb29/files/man/ldbdel.1
new file mode 100644
index 000000000000..86541dccc899
--- /dev/null
+++ b/databases/ldb29/files/man/ldbdel.1
@@ -0,0 +1,80 @@
+'\" t
+.\" Title: ldbdel
+.\" Author: [see the "AUTHOR" section]
+.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
+.\" Date: 09/23/2020
+.\" Manual: System Administration tools
+.\" Source: LDB 1.1
+.\" Language: English
+.\"
+.TH "LDBDEL" "1" "09/23/2020" "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 overridden 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/ldb29/files/man/ldbedit.1 b/databases/ldb29/files/man/ldbedit.1
new file mode 100644
index 000000000000..cb7b75fe8d67
--- /dev/null
+++ b/databases/ldb29/files/man/ldbedit.1
@@ -0,0 +1,111 @@
+'\" t
+.\" Title: ldbedit
+.\" Author: [see the "AUTHOR" section]
+.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
+.\" Date: 09/23/2020
+.\" Manual: System Administration tools
+.\" Source: LDB 1.1
+.\" Language: English
+.\"
+.TH "LDBEDIT" "1" "09/23/2020" "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/ldb29/files/man/ldbmodify.1 b/databases/ldb29/files/man/ldbmodify.1
new file mode 100644
index 000000000000..be4815da7287
--- /dev/null
+++ b/databases/ldb29/files/man/ldbmodify.1
@@ -0,0 +1,73 @@
+'\" t
+.\" Title: ldbmodify
+.\" Author: [see the "AUTHOR" section]
+.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
+.\" Date: 09/23/2020
+.\" Manual: System Administration tools
+.\" Source: LDB 1.1
+.\" Language: English
+.\"
+.TH "LDBMODIFY" "1" "09/23/2020" "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
*** 452 LINES SKIPPED ***