commit 7ed7926b00bed60a30173c5357203396aa58774d Author: yo Date: Sun Jun 4 10:14:27 2023 +0200 first commit diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..106b6a5 --- /dev/null +++ b/Makefile @@ -0,0 +1,165 @@ +PORTNAME= ldb +PORTVERSION= 2.3.4 +PORTREVISION= 1 +PORTEPOCH= 0 +CATEGORIES= databases +MASTER_SITES= SAMBA +PKGNAMESUFFIX?= 23 + +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 + +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 pkgconfig waf + +CONFLICTS_INSTALL= ldb-1.1.* ldb1[2-9]-1.* ldb2[013-9]-2.* + +USE_LDCONFIG= yes +WAF_CMD= ${BUILD_WRKSRC}/buildtools/bin/waf +CONFIGURE_LOG= ${BUILD_WRKSRC}/bin/config.log + +USE_OPENLDAP= yes +PKGCONFIGDIR?= ${PREFIX}/libdata/pkgconfig +PLIST_SUB+= PKGCONFIGDIR=${PKGCONFIGDIR:S;${PREFIX}/;;} + +CONFIGURE_ARGS+= --bundled-libraries=!talloc,!tevent,!tdb,!popt,!cmocka \ + --with-modulesdir=${PREFIX}/lib/shared-modules \ + --with-privatelibdir=${PREFIX}/lib/ldb \ + --mandir=${MANPREFIX}/man \ + --with-openldap=${LOCALBASE} \ + --disable-rpath \ + --without-gettext + +OPTIONS_DEFINE= MANPAGES DEBUG PYTHON3 +MANPAGES_DESC= Build and install manpages (requires textproc/docbook-xsl) + +DEBUG_CONFIGURE_ON= --verbose --enable-debug +DEBUG_MAKE_ARGS= --verbose +DEBUG_FLAGS= -g -ggdb3 -O0 + +.include + +LDB_BINS= bin/ldbedit \ + bin/ldbmodify \ + bin/ldbadd \ + bin/ldbdel \ + bin/ldbsearch \ + bin/ldbrename + +LDB_LIBS= lib/libldb.so \ + lib/libldb.so.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= 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 + +.include + +CFLAGS+= -I${LOCALBASE}/include +LDFLAGS+= -L${LOCALBASE}/lib + +.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:3.6+ + +PLIST_FILES+= include/pyldb.h \ + lib/libpyldb-util${PYTHON_EXT_SUFFIX}.so \ + lib/libpyldb-util${PYTHON_EXT_SUFFIX}.so.2 \ + ${PYTHON_SITELIBDIR}/ldb${PYTHON_EXT_SUFFIX}.so \ + ${PYTHON_SITELIBDIR}/_ldb_text.py \ + ${PKGCONFIGDIR}/pyldb-util${PYTHON_EXT_SUFFIX}.pc +.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}/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 diff --git a/distinfo b/distinfo new file mode 100644 index 0000000..822e0f2 --- /dev/null +++ b/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1685865419 +SHA256 (ldb-2.3.4.tar.gz) = f2e88dcab7b6007d92724b62f8a16e7c6e77275885c60eb4f87097e4aa4082c1 +SIZE (ldb-2.3.4.tar.gz) = 1721000 diff --git a/files/man/ldb.3 b/files/man/ldb.3 new file mode 100644 index 0000000..ee74854 --- /dev/null +++ b/files/man/ldb.3 @@ -0,0 +1,427 @@ +'\" t +.\" Title: ldb +.\" Author: [see the "Author" section] +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" 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 +.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/files/man/ldbadd.1 b/files/man/ldbadd.1 new file mode 100644 index 0000000..90014c9 --- /dev/null +++ b/files/man/ldbadd.1 @@ -0,0 +1,78 @@ +'\" t +.\" Title: ldbadd +.\" Author: [see the "AUTHOR" section] +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" 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 +.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/files/man/ldbdel.1 b/files/man/ldbdel.1 new file mode 100644 index 0000000..86541dc --- /dev/null +++ b/files/man/ldbdel.1 @@ -0,0 +1,80 @@ +'\" t +.\" Title: ldbdel +.\" Author: [see the "AUTHOR" section] +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" 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 +.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/files/man/ldbedit.1 b/files/man/ldbedit.1 new file mode 100644 index 0000000..cb7b75f --- /dev/null +++ b/files/man/ldbedit.1 @@ -0,0 +1,111 @@ +'\" t +.\" Title: ldbedit +.\" Author: [see the "AUTHOR" section] +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" 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 +.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/files/man/ldbmodify.1 b/files/man/ldbmodify.1 new file mode 100644 index 0000000..be4815d --- /dev/null +++ b/files/man/ldbmodify.1 @@ -0,0 +1,73 @@ +'\" t +.\" Title: ldbmodify +.\" Author: [see the "AUTHOR" section] +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" 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 +.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), 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/files/man/ldbrename.1 b/files/man/ldbrename.1 new file mode 100644 index 0000000..0bdbc67 --- /dev/null +++ b/files/man/ldbrename.1 @@ -0,0 +1,81 @@ +'\" t +.\" Title: ldbrename +.\" Author: [see the "AUTHOR" section] +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 09/23/2020 +.\" Manual: System Administration tools +.\" Source: LDB 1.1 +.\" Language: English +.\" +.TH "LDBRENAME" "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" +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 +.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 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/files/man/ldbsearch.1 b/files/man/ldbsearch.1 new file mode 100644 index 0000000..ff7645b --- /dev/null +++ b/files/man/ldbsearch.1 @@ -0,0 +1,91 @@ +'\" t +.\" Title: ldbsearch +.\" Author: [see the "AUTHOR" section] +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 09/23/2020 +.\" Manual: System Administration tools +.\" Source: LDB 1.1 +.\" Language: English +.\" +.TH "LDBSEARCH" "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" +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 +.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 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), 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/files/patch-buildtools_wafsamba_samba__autoconf.py b/files/patch-buildtools_wafsamba_samba__autoconf.py new file mode 100644 index 0000000..0403fd0 --- /dev/null +++ b/files/patch-buildtools_wafsamba_samba__autoconf.py @@ -0,0 +1,50 @@ +--- buildtools/wafsamba/samba_autoconf.py.orig 2019-09-04 10:53:16 UTC ++++ buildtools/wafsamba/samba_autoconf.py +@@ -573,7 +573,7 @@ def library_flags(self, libs): + + + @conf +-def CHECK_LIB(conf, libs, mandatory=False, empty_decl=True, set_target=True, shlib=False): ++def CHECK_LIB(conf, libs, mandatory=False, empty_decl=True, set_target=True, shlib=False, msg=None): + '''check if a set of libraries exist as system libraries + + returns the sublist of libs that do exist as a syslib or [] +@@ -593,11 +593,29 @@ int foo() + ret.append(lib) + continue + ++ if msg is None: ++ msg = 'Checking for library %s' % lib ++ + (ccflags, ldflags, cpppath) = library_flags(conf, lib) ++ + if shlib: +- res = conf.check(features='c cshlib', fragment=fragment, lib=lib, uselib_store=lib, cflags=ccflags, ldflags=ldflags, uselib=lib.upper(), mandatory=False) ++ res = conf.check(features='c cshlib', ++ fragment=fragment, ++ lib=lib, ++ uselib_store=lib, ++ cflags=ccflags, ++ ldflags=ldflags, ++ uselib=lib.upper(), ++ mandatory=False, ++ msg=msg) + else: +- res = conf.check(lib=lib, uselib_store=lib, cflags=ccflags, ldflags=ldflags, uselib=lib.upper(), mandatory=False) ++ res = conf.check(lib=lib, ++ uselib_store=lib, ++ cflags=ccflags, ++ ldflags=ldflags, ++ uselib=lib.upper(), ++ mandatory=False, ++ msg=msg) + + if not res: + if mandatory: +@@ -944,5 +962,5 @@ def SAMBA_CHECK_UNDEFINED_SYMBOL_FLAGS(c + conf.env.undefined_ldflags = conf.ADD_LDFLAGS('-Wl,-no-undefined', testflags=True) + + if (conf.env.undefined_ignore_ldflags == [] and +- conf.CHECK_LDFLAGS(['-undefined', 'dynamic_lookup'])): ++ conf.CHECK_LDFLAGS(['-undefined', 'dynamic_lookup'] + conf.env.WERROR_CFLAGS)): + conf.env.undefined_ignore_ldflags = ['-undefined', 'dynamic_lookup'] diff --git a/files/patch-buildtools_wafsamba_samba__install.py b/files/patch-buildtools_wafsamba_samba__install.py new file mode 100644 index 0000000..5a85a03 --- /dev/null +++ b/files/patch-buildtools_wafsamba_samba__install.py @@ -0,0 +1,11 @@ +--- buildtools/wafsamba/samba_install.py.orig 2019-03-21 10:12:32 UTC ++++ buildtools/wafsamba/samba_install.py +@@ -115,7 +115,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 or not t.env.SONAME_ST: diff --git a/files/patch-buildtools_wafsamba_wscript b/files/patch-buildtools_wafsamba_wscript new file mode 100644 index 0000000..9327600 --- /dev/null +++ b/files/patch-buildtools_wafsamba_wscript @@ -0,0 +1,22 @@ +--- buildtools/wafsamba/wscript.orig 2017-04-28 11:57:26 UTC ++++ buildtools/wafsamba/wscript +@@ -74,12 +74,17 @@ def set_options(opt): + help=("private library directory [PREFIX/lib/%s]" % Utils.g_module.APPNAME), + action="store", dest='PRIVATELIBDIR', default=None) + ++ opt.add_option('--with-openldap', ++ help='additional directory to search for OpenLDAP libs', ++ action='store', dest='ldap_open', default=None, ++ match = ['Checking for library lber', 'Checking for library ldap']) ++ + opt.add_option('--with-libiconv', + help='additional directory to search for libiconv', +- action='store', dest='iconv_open', default='/usr/local', ++ action='store', dest='iconv_open', default=None, + match = ['Checking for library iconv', 'Checking for iconv_open', 'Checking for header iconv.h']) + opt.add_option('--without-gettext', +- help=("Disable use of gettext"), ++ help=("disable use of gettext"), + action="store_true", dest='disable_gettext', default=False) + + gr = opt.option_group('developer options') diff --git a/files/patch-ldb_key_value__ldb_kv_cache.c b/files/patch-ldb_key_value__ldb_kv_cache.c new file mode 100644 index 0000000..34ab1a1 --- /dev/null +++ b/files/patch-ldb_key_value__ldb_kv_cache.c @@ -0,0 +1,13 @@ +--- ldb_key_value/ldb_kv_cache.c.orig 2019-01-14 23:24:45 UTC ++++ ldb_key_value/ldb_kv_cache.c +@@ -90,7 +90,9 @@ static int ldb_schema_attribute_compare( + { + const struct ldb_schema_attribute *sa1 = (const struct ldb_schema_attribute *)p1; + const struct ldb_schema_attribute *sa2 = (const struct ldb_schema_attribute *)p2; +- return ldb_attr_cmp(sa1->name, sa2->name); ++ int res = ldb_attr_cmp(sa1->name, sa2->name); ++ ++ return (res) ? res : (sa1->flags > sa2->flags) ? 1 : (sa1->flags < sa2->flags) ? -1 : 0; + } + + /* diff --git a/files/patch-lib_replace_wscript b/files/patch-lib_replace_wscript new file mode 100644 index 0000000..d476cec --- /dev/null +++ b/files/patch-lib_replace_wscript @@ -0,0 +1,11 @@ +--- lib/replace/wscript.orig 2019-03-21 10:12:32 UTC ++++ lib/replace/wscript +@@ -119,7 +119,7 @@ def configure(conf): + conf.CHECK_HEADERS('sys/atomic.h stdatomic.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') + + if conf.CHECK_CFLAGS('-Wno-unused-function'): diff --git a/files/patch-wscript b/files/patch-wscript new file mode 100644 index 0000000..c6a5822 --- /dev/null +++ b/files/patch-wscript @@ -0,0 +1,31 @@ +--- wscript.orig 2019-09-04 10:53:16 UTC ++++ wscript +@@ -207,7 +207,7 @@ def build(bld): + if bld.env.standalone_ldb: + if not 'PACKAGE_VERSION' in bld.env: + bld.env.PACKAGE_VERSION = VERSION +- bld.env.PKGCONFIGDIR = '${LIBDIR}/pkgconfig' ++ bld.env.PKGCONFIGDIR = '%%PKGCONFIGDIR%%' + private_library = False + else: + private_library = True +@@ -497,11 +497,6 @@ def build(bld): + deps='cmocka ldb', + install=False) + +- bld.SAMBA_BINARY('ldb_match_test', +- source='tests/ldb_match_test.c', +- deps='cmocka ldb', +- install=False) +- + bld.SAMBA_BINARY('ldb_key_value_test', + source='tests/ldb_key_value_test.c', + deps='cmocka ldb ldb_tdb_err_map', +@@ -614,7 +609,6 @@ def test(ctx): + 'ldb_msg_test', + 'ldb_tdb_kv_ops_test', + 'ldb_tdb_test', +- 'ldb_match_test', + 'ldb_key_value_test', + # we currently don't run ldb_key_value_sub_txn_tdb_test as it + # tests the nested/sub transaction handling diff --git a/pkg-descr b/pkg-descr new file mode 100644 index 0000000..92cd13b --- /dev/null +++ b/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: https://ldb.samba.org/