git: fcceba49c9c1 - main - databases/ldb25: Add port, needed for noldb flavor of Samba

From: Mateusz Piotrowski <0mp_at_FreeBSD.org>
Date: Tue, 12 Mar 2024 19:44:01 UTC
The branch main has been updated by 0mp:

URL: https://cgit.FreeBSD.org/ports/commit/?id=fcceba49c9c175ecd36f7bb04c4aac822b283589

commit fcceba49c9c175ecd36f7bb04c4aac822b283589
Author:     Xavier Beaudouin <xavier.beaudouin@klarasystems.com>
AuthorDate: 2024-03-12 19:27:58 +0000
Commit:     Mateusz Piotrowski <0mp@FreeBSD.org>
CommitDate: 2024-03-12 19:42:41 +0000

    databases/ldb25: Add port, needed for noldb flavor of Samba
    
    Sponsored by:           Klara, Inc.
    Differential Revision:  https://reviews.freebsd.org/D43748
---
 databases/Makefile                                 |   1 +
 databases/ldb25/Makefile                           | 158 ++++++++
 databases/ldb25/distinfo                           |   3 +
 databases/ldb25/files/man/ldb.3                    | 427 +++++++++++++++++++++
 databases/ldb25/files/man/ldbadd.1                 |  78 ++++
 databases/ldb25/files/man/ldbdel.1                 |  80 ++++
 databases/ldb25/files/man/ldbedit.1                | 111 ++++++
 databases/ldb25/files/man/ldbmodify.1              |  73 ++++
 databases/ldb25/files/man/ldbrename.1              |  81 ++++
 databases/ldb25/files/man/ldbsearch.1              |  91 +++++
 .../patch-buildtools_wafsamba_samba__autoconf.py   |  50 +++
 .../patch-buildtools_wafsamba_samba__install.py    |  11 +
 .../ldb25/files/patch-buildtools_wafsamba_wscript  |  22 ++
 databases/ldb25/files/patch-include_ldb__module.h  |  15 +
 .../files/patch-ldb_key_value__ldb_kv_cache.c      |  13 +
 databases/ldb25/files/patch-lib_replace_replace.c  |  20 +
 databases/ldb25/files/patch-lib_replace_wscript    |  11 +
 databases/ldb25/files/patch-wscript                |  40 ++
 databases/ldb25/pkg-descr                          |   7 +
 19 files changed, 1292 insertions(+)

diff --git a/databases/Makefile b/databases/Makefile
index 038899032be4..04615c9f9d68 100644
--- a/databases/Makefile
+++ b/databases/Makefile
@@ -118,6 +118,7 @@
     SUBDIR += ldb20
     SUBDIR += ldb21
     SUBDIR += ldb22
+    SUBDIR += ldb25
     SUBDIR += leo_center
     SUBDIR += leofs
     SUBDIR += leveldb
diff --git a/databases/ldb25/Makefile b/databases/ldb25/Makefile
new file mode 100644
index 000000000000..69df3c7b72cf
--- /dev/null
+++ b/databases/ldb25/Makefile
@@ -0,0 +1,158 @@
+PORTNAME=	ldb
+PORTVERSION=	2.5.3
+CATEGORIES=	databases
+MASTER_SITES=	SAMBA
+PKGNAMESUFFIX?=	25
+
+MAINTAINER=	xavier.beaudouin@klarasystems.com
+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
+
+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
+BUILD_DEPENDS=	${LDB_DEPENDS} \
+		cmocka>=1.1.3:sysutils/cmocka
+TEST_DEPENDS=	${LDB_DEPENDS} \
+		cmocka>=1.1.3:sysutils/cmocka
+RUN_DEPENDS=	${LDB_DEPENDS}
+
+USES=		compiler ldap pkgconfig waf
+
+CONFLICTS_INSTALL=	ldb[0-9][0-9] # include/ldb.h
+
+USE_LDCONFIG=	yes
+WAF_CMD=	${BUILD_WRKSRC}/buildtools/bin/waf
+CONFIGURE_LOG=	${BUILD_WRKSRC}/bin/config.log
+
+PKGCONFIGDIR?=	${PREFIX}/libdata/pkgconfig
+PLIST_SUB+=	PKGCONFIGDIR=${PKGCONFIGDIR:S;${PREFIX}/;;}
+
+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
+
+OPTIONS_DEFINE=	DEBUG MANPAGES PYTHON3
+MANPAGES_DESC=	Build and install manpages (requires textproc/docbook-xsl)
+
+DEBUG_CONFIGURE_ON=	--enable-debug \
+			--verbose
+DEBUG_MAKE_ARGS=	--verbose
+DEBUG_FLAGS=		-g -ggdb3 -O0
+
+.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.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
+# Only for 64-bit architectures
+.if ${ARCH} != armv6 && ${ARCH} != armv7 && ${ARCH} != i386 && ${ARCH} != mips && \
+	${ARCH} != powerpc && ${ARCH} != powerpcspe
+LDB_LIBS+=	lib/ldb/libldb-mdb-int.so lib/shared-modules/ldb/mdb.so
+.endif
+
+PLIST_FILES=	${LDB_BINS} \
+		${LDB_LIBS} \
+		${PKGCONFIGDIR}/ldb.pc \
+		include/ldb.h \
+		include/ldb_errors.h \
+		include/ldb_handlers.h \
+		include/ldb_module.h \
+		include/ldb_version.h
+
+.include <bsd.port.pre.mk>
+
+CFLAGS+=	-I${LOCALBASE}/include
+LDFLAGS+=	-L${LOCALBASE}/lib
+
+# 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
+
+.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
+
+.if !${PORT_OPTIONS:MPYTHON3} || defined(NO_PYTHON)
+USES+=			python:build,test
+CONFIGURE_ARGS+=	--disable-python
+.else
+USES+=			gettext-runtime python
+
+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
+.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=	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
+
+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}/man/`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 ${PORT_OPTIONS:MPYTHON3} && !defined(NO_PYTHON)
+	${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libpyldb-util${PYTHON_EXT_SUFFIX}.so
+	${STRIP_CMD} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/ldb${PYTHON_EXT_SUFFIX}.so
+.endif
+
+.include <bsd.port.post.mk>
diff --git a/databases/ldb25/distinfo b/databases/ldb25/distinfo
new file mode 100644
index 000000000000..321b00a2cf87
--- /dev/null
+++ b/databases/ldb25/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1700563483
+SHA256 (ldb-2.5.3.tar.gz) = 396d8bb9bb926a0fd2e6aa4ebec56e50942cc53648737aabcdf18d30fe6ac226
+SIZE (ldb-2.5.3.tar.gz) = 1736354
diff --git a/databases/ldb25/files/man/ldb.3 b/databases/ldb25/files/man/ldb.3
new file mode 100644
index 000000000000..ee748545d8f1
--- /dev/null
+++ b/databases/ldb25/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/ldb25/files/man/ldbadd.1 b/databases/ldb25/files/man/ldbadd.1
new file mode 100644
index 000000000000..90014c9d6703
--- /dev/null
+++ b/databases/ldb25/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/ldb25/files/man/ldbdel.1 b/databases/ldb25/files/man/ldbdel.1
new file mode 100644
index 000000000000..86541dccc899
--- /dev/null
+++ b/databases/ldb25/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/ldb25/files/man/ldbedit.1 b/databases/ldb25/files/man/ldbedit.1
new file mode 100644
index 000000000000..cb7b75fe8d67
--- /dev/null
+++ b/databases/ldb25/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/ldb25/files/man/ldbmodify.1 b/databases/ldb25/files/man/ldbmodify.1
new file mode 100644
index 000000000000..be4815da7287
--- /dev/null
+++ b/databases/ldb25/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\&.
*** 461 LINES SKIPPED ***