mirror of
https://git.freebsd.org/ports.git
synced 2025-04-28 09:36:41 -04:00
*/*: Rework manpages handling in Samba-related ports
* Remove outdated, incorrect, precompiled manpages from ${FILESDIR}/files/man. * Properly disable manpages generation since XSLTPROC was set to true(1) WAF always assumed xsltproc(1) to work and if any automatic dependency pulled in textproc/docbook-xsl, manpages were generated even if explicitly disabled. Approved by: jrm (mentor) Differential Revision: https://reviews.freebsd.org/D49327
This commit is contained in:
parent
9e3b3289bf
commit
47b3df7594
44 changed files with 58 additions and 5125 deletions
|
@ -1,5 +1,6 @@
|
|||
PORTNAME= ldb
|
||||
PORTVERSION= 2.5.3
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= databases
|
||||
MASTER_SITES= SAMBA
|
||||
PKGNAMESUFFIX?= 25
|
||||
|
@ -41,13 +42,17 @@ CONFIGURE_ARGS+= --bundled-libraries=!talloc,!tevent,!tdb,!popt,!cmocka \
|
|||
--without-gettext
|
||||
|
||||
OPTIONS_DEFINE= DEBUG MANPAGES PYTHON3
|
||||
MANPAGES_DESC= Build and install manpages (requires textproc/docbook-xsl)
|
||||
OPTIONS_DEFAULT= MANPAGES
|
||||
|
||||
DEBUG_CONFIGURE_ON= --enable-debug \
|
||||
--verbose
|
||||
DEBUG_MAKE_ARGS= --verbose
|
||||
DEBUG_FLAGS= -g -ggdb3 -O0
|
||||
|
||||
MANPAGES_BUILD_DEPENDS= ${LOCALBASE}/share/xsl/docbook/manpages/docbook.xsl:textproc/docbook-xsl \
|
||||
xsltproc:textproc/libxslt
|
||||
MANPAGES_CONFIGURE_ENV_OFF= XSLTPROC="false"
|
||||
|
||||
.include <bsd.port.options.mk>
|
||||
|
||||
LDB_BINS= bin/ldbedit bin/ldbmodify bin/ldbadd bin/ldbdel bin/ldbsearch \
|
||||
|
@ -84,13 +89,6 @@ PLIST_FILES= ${LDB_BINS} \
|
|||
# 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
|
||||
|
@ -121,8 +119,10 @@ LDB_MAN1= share/man/man1/ldbadd.1.gz \
|
|||
|
||||
LDB_MAN3= share/man/man3/ldb.3.gz
|
||||
|
||||
.if ${PORT_OPTIONS:MMANPAGES}
|
||||
PLIST_FILES+= ${LDB_MAN1} \
|
||||
${LDB_MAN3}
|
||||
.endif
|
||||
|
||||
post-patch:
|
||||
@${REINPLACE_CMD} -e 's|%%PKGCONFIGDIR%%|${PKGCONFIGDIR}|g' \
|
||||
|
@ -137,12 +137,6 @@ pre-configure:
|
|||
${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}
|
||||
|
|
|
@ -1,427 +0,0 @@
|
|||
'\" 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
|
|
@ -1,78 +0,0 @@
|
|||
'\" 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
|
|
@ -1,80 +0,0 @@
|
|||
'\" 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
|
|
@ -1,111 +0,0 @@
|
|||
'\" 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
|
|
@ -1,73 +0,0 @@
|
|||
'\" 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
|
||||
.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
|
|
@ -1,81 +0,0 @@
|
|||
'\" t
|
||||
.\" Title: ldbrename
|
||||
.\" 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 "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 <ldb\-url>
|
||||
.RS 4
|
||||
LDB URL to connect to\&. See ldb(3) for details\&.
|
||||
.RE
|
||||
.PP
|
||||
\-o options
|
||||
.RS 4
|
||||
Extra ldb options, such as modules\&.
|
||||
.RE
|
||||
.SH "ENVIRONMENT"
|
||||
.PP
|
||||
LDB_URL
|
||||
.RS 4
|
||||
LDB URL to connect to (can be 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
|
|
@ -1,91 +0,0 @@
|
|||
'\" t
|
||||
.\" Title: ldbsearch
|
||||
.\" 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 "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 <ldb\-url>
|
||||
.RS 4
|
||||
LDB URL to connect to\&. See ldb(3) for details\&.
|
||||
.RE
|
||||
.PP
|
||||
\-s one|sub|base
|
||||
.RS 4
|
||||
Search scope to use\&. One\-level, subtree or base\&.
|
||||
.RE
|
||||
.PP
|
||||
\-i
|
||||
.RS 4
|
||||
Read search expressions from stdin\&.
|
||||
.RE
|
||||
.PP
|
||||
\-b basedn
|
||||
.RS 4
|
||||
Specify Base DN to use\&.
|
||||
.RE
|
||||
.SH "ENVIRONMENT"
|
||||
.PP
|
||||
LDB_URL
|
||||
.RS 4
|
||||
LDB URL to connect to (can be 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
|
|
@ -1,5 +1,6 @@
|
|||
PORTNAME= ldb
|
||||
PORTVERSION= 2.8.2
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= databases
|
||||
MASTER_SITES= SAMBA
|
||||
PKGNAMESUFFIX?= ${PORTVERSION:C/([[:digit:]]+)[.]([[:digit:]]+).*/\1\2/}
|
||||
|
@ -47,8 +48,6 @@ 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 \
|
||||
|
@ -59,12 +58,11 @@ PLIST_FILES= ${_LDB_BINS} \
|
|||
PLIST_SUB+= PKGCONFIGDIR=${PKGCONFIGDIR:S;${PREFIX}/;;}
|
||||
|
||||
OPTIONS_DEFINE= MANPAGES PYTHON3
|
||||
OPTIONS_DEFAULT= PYTHON3
|
||||
MANPAGES_DESC= Build and install manpages (requires textproc/docbook-xsl)
|
||||
OPTIONS_DEFAULT= MANPAGES PYTHON3
|
||||
|
||||
MANPAGES_BUILD_DEPENDS= ${LOCALBASE}/share/xsl/docbook/manpages/docbook.xsl:textproc/docbook-xsl \
|
||||
xsltproc:textproc/libxslt
|
||||
MANPAGES_CONFIGURE_ENV_OFF= XSLTPROC="true"
|
||||
MANPAGES_CONFIGURE_ENV_OFF= XSLTPROC="false"
|
||||
|
||||
PYTHON3_USES= gettext-runtime python
|
||||
PYTHON3_USES_OFF= python:build,test
|
||||
|
@ -111,6 +109,11 @@ CONFIGURE_ARGS+= --enable-debug \
|
|||
_LDB_LIBS_64= lib/ldb/libldb-mdb-int.so lib/shared-modules/ldb/mdb.so
|
||||
.endif
|
||||
|
||||
.if ${PORT_OPTIONS:MMANPAGES}
|
||||
PLIST_FILES+= ${_LDB_MAN1} \
|
||||
${_LDB_MAN3}
|
||||
.endif
|
||||
|
||||
.if defined(NO_PYTHON)
|
||||
WARNING+= "${PKGNAME} does not support NO_PYTHON anymore; use option PYTHON3 instead"
|
||||
.endif
|
||||
|
@ -128,12 +131,6 @@ pre-configure:
|
|||
${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}
|
||||
|
|
|
@ -1,427 +0,0 @@
|
|||
'\" 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
|
|
@ -1,78 +0,0 @@
|
|||
'\" 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
|
|
@ -1,80 +0,0 @@
|
|||
'\" 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
|
|
@ -1,111 +0,0 @@
|
|||
'\" 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
|
|
@ -1,73 +0,0 @@
|
|||
'\" 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
|
||||
.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
|
|
@ -1,81 +0,0 @@
|
|||
'\" t
|
||||
.\" Title: ldbrename
|
||||
.\" 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 "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 <ldb\-url>
|
||||
.RS 4
|
||||
LDB URL to connect to\&. See ldb(3) for details\&.
|
||||
.RE
|
||||
.PP
|
||||
\-o options
|
||||
.RS 4
|
||||
Extra ldb options, such as modules\&.
|
||||
.RE
|
||||
.SH "ENVIRONMENT"
|
||||
.PP
|
||||
LDB_URL
|
||||
.RS 4
|
||||
LDB URL to connect to (can be 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
|
|
@ -1,91 +0,0 @@
|
|||
'\" t
|
||||
.\" Title: ldbsearch
|
||||
.\" 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 "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 <ldb\-url>
|
||||
.RS 4
|
||||
LDB URL to connect to\&. See ldb(3) for details\&.
|
||||
.RE
|
||||
.PP
|
||||
\-s one|sub|base
|
||||
.RS 4
|
||||
Search scope to use\&. One\-level, subtree or base\&.
|
||||
.RE
|
||||
.PP
|
||||
\-i
|
||||
.RS 4
|
||||
Read search expressions from stdin\&.
|
||||
.RE
|
||||
.PP
|
||||
\-b basedn
|
||||
.RS 4
|
||||
Specify Base DN to use\&.
|
||||
.RE
|
||||
.SH "ENVIRONMENT"
|
||||
.PP
|
||||
LDB_URL
|
||||
.RS 4
|
||||
LDB URL to connect to (can be 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
|
|
@ -1,6 +1,6 @@
|
|||
PORTNAME= ldb
|
||||
PORTVERSION= 2.9.2
|
||||
PORTREVISION= 1
|
||||
PORTREVISION= 2
|
||||
CATEGORIES= databases
|
||||
MASTER_SITES= SAMBA
|
||||
PKGNAMESUFFIX?= ${PORTVERSION:C/([[:digit:]]+)[.]([[:digit:]]+).*/\1\2/}
|
||||
|
@ -48,8 +48,6 @@ 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 \
|
||||
|
@ -60,12 +58,11 @@ PLIST_FILES= ${_LDB_BINS} \
|
|||
PLIST_SUB+= PKGCONFIGDIR=${PKGCONFIGDIR:S;${PREFIX}/;;}
|
||||
|
||||
OPTIONS_DEFINE= MANPAGES PYTHON3
|
||||
OPTIONS_DEFAULT= PYTHON3
|
||||
MANPAGES_DESC= Build and install manpages (requires textproc/docbook-xsl)
|
||||
OPTIONS_DEFAULT= MANPAGES PYTHON3
|
||||
|
||||
MANPAGES_BUILD_DEPENDS= ${LOCALBASE}/share/xsl/docbook/manpages/docbook.xsl:textproc/docbook-xsl \
|
||||
xsltproc:textproc/libxslt
|
||||
MANPAGES_CONFIGURE_ENV_OFF= XSLTPROC="true"
|
||||
MANPAGES_CONFIGURE_ENV_OFF= XSLTPROC="false"
|
||||
|
||||
PYTHON3_USES= gettext-runtime python
|
||||
PYTHON3_USES_OFF= python:build,test
|
||||
|
@ -112,6 +109,11 @@ CONFIGURE_ARGS+= --enable-debug \
|
|||
_LDB_LIBS_64= lib/ldb/libldb-mdb-int.so lib/shared-modules/ldb/mdb.so
|
||||
.endif
|
||||
|
||||
.if ${PORT_OPTIONS:MMANPAGES}
|
||||
PLIST_FILES+= ${_LDB_MAN1} \
|
||||
${_LDB_MAN3}
|
||||
.endif
|
||||
|
||||
.if defined(NO_PYTHON)
|
||||
WARNING+= "${PKGNAME} does not support NO_PYTHON anymore; use option PYTHON3 instead"
|
||||
.endif
|
||||
|
@ -129,12 +131,6 @@ pre-configure:
|
|||
${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}
|
||||
|
|
|
@ -1,427 +0,0 @@
|
|||
'\" 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
|
|
@ -1,78 +0,0 @@
|
|||
'\" 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
|
|
@ -1,80 +0,0 @@
|
|||
'\" 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
|
|
@ -1,111 +0,0 @@
|
|||
'\" 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
|
|
@ -1,73 +0,0 @@
|
|||
'\" 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
|
||||
.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
|
|
@ -1,81 +0,0 @@
|
|||
'\" t
|
||||
.\" Title: ldbrename
|
||||
.\" 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 "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 <ldb\-url>
|
||||
.RS 4
|
||||
LDB URL to connect to\&. See ldb(3) for details\&.
|
||||
.RE
|
||||
.PP
|
||||
\-o options
|
||||
.RS 4
|
||||
Extra ldb options, such as modules\&.
|
||||
.RE
|
||||
.SH "ENVIRONMENT"
|
||||
.PP
|
||||
LDB_URL
|
||||
.RS 4
|
||||
LDB URL to connect to (can be 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
|
|
@ -1,91 +0,0 @@
|
|||
'\" t
|
||||
.\" Title: ldbsearch
|
||||
.\" 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 "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 <ldb\-url>
|
||||
.RS 4
|
||||
LDB URL to connect to\&. See ldb(3) for details\&.
|
||||
.RE
|
||||
.PP
|
||||
\-s one|sub|base
|
||||
.RS 4
|
||||
Search scope to use\&. One\-level, subtree or base\&.
|
||||
.RE
|
||||
.PP
|
||||
\-i
|
||||
.RS 4
|
||||
Read search expressions from stdin\&.
|
||||
.RE
|
||||
.PP
|
||||
\-b basedn
|
||||
.RS 4
|
||||
Specify Base DN to use\&.
|
||||
.RE
|
||||
.SH "ENVIRONMENT"
|
||||
.PP
|
||||
LDB_URL
|
||||
.RS 4
|
||||
LDB URL to connect to (can be 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
|
|
@ -1,5 +1,6 @@
|
|||
PORTNAME= tdb
|
||||
DISTVERSION= 1.4.9
|
||||
PORTREVISION= 1
|
||||
PORTEPOCH= 1
|
||||
CATEGORIES= databases
|
||||
MASTER_SITES= SAMBA
|
||||
|
@ -29,10 +30,8 @@ MAKE_ENV= PYTHONHASHSEED=1
|
|||
|
||||
CONFLICTS_INSTALL= tdb[0-9]*
|
||||
|
||||
MANPAGES_DESC= Build and install manpages (requires textproc/docbook-xsl)
|
||||
|
||||
OPTIONS_DEFINE= MANPAGES DEBUG PYTHON
|
||||
OPTIONS_DEFAULT= PYTHON
|
||||
OPTIONS_DEFAULT= MANPAGES PYTHON
|
||||
OPTIONS_SUB= yes
|
||||
|
||||
DEBUG_CFLAGS= -g -ggdb3 -O0
|
||||
|
@ -44,9 +43,10 @@ PYTHON_USE+= python=py3kplist
|
|||
PYTHON_USES_OFF= python:build,test
|
||||
PYTHON_CONFIGURE_OFF= --disable-python
|
||||
|
||||
MANPAGES_CONFIGURE_ENV_OFF+= XSLTPROC="true"
|
||||
MANPAGES_BUILD_DEPENDS+= ${LOCALBASE}/share/xsl/docbook/manpages/docbook.xsl:textproc/docbook-xsl \
|
||||
MANPAGES_BUILD_DEPENDS= ${LOCALBASE}/share/xsl/docbook/manpages/docbook.xsl:textproc/docbook-xsl \
|
||||
xsltproc:textproc/libxslt
|
||||
MANPAGES_CONFIGURE_ENV_OFF= XSLTPROC="false"
|
||||
|
||||
# No fancy color error messages
|
||||
CFLAGS+= ${CFLAGS_${CHOSEN_COMPILER_TYPE}}
|
||||
CFLAGS_clang= -fno-color-diagnostics
|
||||
|
@ -61,10 +61,6 @@ post-patch:
|
|||
@${REINPLACE_CMD} -e 's|%%PKGCONFIGDIR%%|${PKGCONFIGDIR}|g' \
|
||||
${BUILD_WRKSRC}/wscript
|
||||
|
||||
pre-build-MANPAGES-off:
|
||||
${MKDIR} ${BUILD_WRKSRC}/bin/default/man
|
||||
${INSTALL_MAN} ${FILESDIR}/tdb*.8 ${BUILD_WRKSRC}/bin/default/man
|
||||
|
||||
post-install:
|
||||
${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/tdb*
|
||||
${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libtdb.so.1
|
||||
|
|
|
@ -1,129 +0,0 @@
|
|||
'\" t
|
||||
.\" Title: tdbbackup
|
||||
.\" Author: [see the "AUTHOR" section]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
|
||||
.\" Date: 2015-04-25
|
||||
.\" Manual: System Administration tools
|
||||
.\" Source: Samba 3.6
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "TDBBACKUP" "8" "2015\-04\-25" "Samba 3\&.6" "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"
|
||||
tdbbackup \- tool for backing up and for validating the integrity of samba \&.tdb files
|
||||
.SH "SYNOPSIS"
|
||||
.HP \w'\fBtdbbackup\fR\ 'u
|
||||
\fBtdbbackup\fR [\-s\ suffix] [\-v] [\-h] [\-l]
|
||||
.SH "DESCRIPTION"
|
||||
.PP
|
||||
This tool is part of the
|
||||
\fBsamba\fR(1)
|
||||
suite\&.
|
||||
.PP
|
||||
\fBtdbbackup\fR
|
||||
is a tool that may be used to backup samba \&.tdb files\&. This tool may also be used to verify the integrity of the \&.tdb files prior to samba startup or during normal operation\&. If it finds file damage and it finds a prior backup the backup file will be restored\&.
|
||||
.SH "OPTIONS"
|
||||
.PP
|
||||
\-h
|
||||
.RS 4
|
||||
Get help information\&.
|
||||
.RE
|
||||
.PP
|
||||
\-s suffix
|
||||
.RS 4
|
||||
The
|
||||
\fB\-s\fR
|
||||
option allows the administrator to specify a file backup extension\&. This way it is possible to keep a history of tdb backup files by using a new suffix for each backup\&.
|
||||
.RE
|
||||
.PP
|
||||
\-v
|
||||
.RS 4
|
||||
The
|
||||
\fB\-v\fR
|
||||
will check the database for damages (corrupt data) which if detected causes the backup to be restored\&.
|
||||
.RE
|
||||
.PP
|
||||
\-l
|
||||
.RS 4
|
||||
This options disables any locking, by passing TDB_NOLOCK to tdb_open_ex()\&. Only use this for database files which are not used by any other process! And also only if it is otherwise not possible to open the database, e\&.g\&. databases which were created with mutex locking\&.
|
||||
.RE
|
||||
.SH "COMMANDS"
|
||||
.PP
|
||||
\fIGENERAL INFORMATION\fR
|
||||
.PP
|
||||
The
|
||||
\fBtdbbackup\fR
|
||||
utility can safely be run at any time\&. It was designed so that it can be used at any time to validate the integrity of tdb files, even during Samba operation\&. Typical usage for the command will be:
|
||||
.PP
|
||||
tdbbackup [\-s suffix] *\&.tdb
|
||||
.PP
|
||||
Before restarting samba the following command may be run to validate \&.tdb files:
|
||||
.PP
|
||||
tdbbackup \-v [\-s suffix] *\&.tdb
|
||||
.PP
|
||||
Samba \&.tdb files are stored in various locations, be sure to run backup all \&.tdb file on the system\&. Important files includes:
|
||||
.sp
|
||||
.RS 4
|
||||
.ie n \{\
|
||||
\h'-04'\(bu\h'+03'\c
|
||||
.\}
|
||||
.el \{\
|
||||
.sp -1
|
||||
.IP \(bu 2.3
|
||||
.\}
|
||||
|
||||
\fBsecrets\&.tdb\fR
|
||||
\- usual location is in the /usr/local/samba/private directory, or on some systems in /etc/samba\&.
|
||||
.RE
|
||||
.sp
|
||||
.RS 4
|
||||
.ie n \{\
|
||||
\h'-04'\(bu\h'+03'\c
|
||||
.\}
|
||||
.el \{\
|
||||
.sp -1
|
||||
.IP \(bu 2.3
|
||||
.\}
|
||||
|
||||
\fBpassdb\&.tdb\fR
|
||||
\- usual location is in the /usr/local/samba/private directory, or on some systems in /etc/samba\&.
|
||||
.RE
|
||||
.sp
|
||||
.RS 4
|
||||
.ie n \{\
|
||||
\h'-04'\(bu\h'+03'\c
|
||||
.\}
|
||||
.el \{\
|
||||
.sp -1
|
||||
.IP \(bu 2.3
|
||||
.\}
|
||||
|
||||
\fB*\&.tdb\fR
|
||||
located in the /usr/local/samba/var directory or on some systems in the /var/cache or /var/lib/samba directories\&.
|
||||
.RE
|
||||
.SH "VERSION"
|
||||
.PP
|
||||
This man page is correct for version 3 of the Samba suite\&.
|
||||
.SH "AUTHOR"
|
||||
.PP
|
||||
The original Samba software and related utilities were created by Andrew Tridgell\&. Samba is now developed by the Samba Team as an Open Source project similar to the way the Linux kernel is developed\&.
|
||||
.PP
|
||||
The tdbbackup man page was written by John H Terpstra\&.
|
|
@ -1,72 +0,0 @@
|
|||
'\" t
|
||||
.\" Title: tdbdump
|
||||
.\" Author: [see the "AUTHOR" section]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
|
||||
.\" Date: 2015-04-25
|
||||
.\" Manual: System Administration tools
|
||||
.\" Source: Samba 3.6
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "TDBDUMP" "8" "2015\-04\-25" "Samba 3\&.6" "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"
|
||||
tdbdump \- tool for printing the contents of a TDB file
|
||||
.SH "SYNOPSIS"
|
||||
.HP \w'\fBtdbdump\fR\ 'u
|
||||
\fBtdbdump\fR [\-k\ \fIkeyname\fR] [\-e] [\-h] {filename}
|
||||
.SH "DESCRIPTION"
|
||||
.PP
|
||||
This tool is part of the
|
||||
\fBsamba\fR(1)
|
||||
suite\&.
|
||||
.PP
|
||||
\fBtdbdump\fR
|
||||
is a very simple utility that \*(Aqdumps\*(Aq the contents of a TDB (Trivial DataBase) file to standard output in a human\-readable format\&.
|
||||
.PP
|
||||
This tool can be used when debugging problems with TDB files\&. It is intended for those who are somewhat familiar with Samba internals\&.
|
||||
.SH "OPTIONS"
|
||||
.PP
|
||||
\-h
|
||||
.RS 4
|
||||
Get help information\&.
|
||||
.RE
|
||||
.PP
|
||||
\-k \fIkeyname\fR
|
||||
.RS 4
|
||||
The
|
||||
\fB\-k\fR
|
||||
option restricts dumping to a single key, if found\&.
|
||||
.RE
|
||||
.PP
|
||||
\-e
|
||||
.RS 4
|
||||
The
|
||||
\fB\-e\fR
|
||||
tries to dump out from a corrupt database\&. Naturally, such a dump is unreliable, at best\&.
|
||||
.RE
|
||||
.SH "VERSION"
|
||||
.PP
|
||||
This man page is correct for version 3 of the Samba suite\&.
|
||||
.SH "AUTHOR"
|
||||
.PP
|
||||
The original Samba software and related utilities were created by Andrew Tridgell\&. Samba is now developed by the Samba Team as an Open Source project similar to the way the Linux kernel is developed\&.
|
||||
.PP
|
||||
The tdbdump man page was written by Jelmer Vernooij\&.
|
|
@ -1,54 +0,0 @@
|
|||
'\" t
|
||||
.\" Title: tdbrestore
|
||||
.\" Author: [see the "AUTHOR" section]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
|
||||
.\" Date: 2015-04-25
|
||||
.\" Manual: System Administration tools
|
||||
.\" Source: Samba 3.6
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "TDBRESTORE" "8" "2015\-04\-25" "Samba 3\&.6" "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"
|
||||
tdbrestore \- tool for creating a TDB file out of a tdbdump output
|
||||
.SH "SYNOPSIS"
|
||||
.HP \w'\fBtdbrestore\fR\ 'u
|
||||
\fBtdbrestore\fR {tdbfilename}
|
||||
.SH "DESCRIPTION"
|
||||
.PP
|
||||
This tool is part of the
|
||||
\fBsamba\fR(1)
|
||||
suite\&.
|
||||
.PP
|
||||
\fBtdbrestore\fR
|
||||
is a very simple utility that \*(Aqrestores\*(Aq the contents of dump file into TDB (Trivial DataBase) file\&. The dump file is obtained from the tdbdump command\&.
|
||||
.PP
|
||||
This tool wait on the standard input for the content of the dump and will write the tdb in the tdbfilename parameter\&.
|
||||
.PP
|
||||
This tool can be used for unpacking the content of tdb as backup mean\&.
|
||||
.SH "VERSION"
|
||||
.PP
|
||||
This man page is correct for version 3 of the Samba suite\&.
|
||||
.SH "AUTHOR"
|
||||
.PP
|
||||
The original Samba software and related utilities were created by Andrew Tridgell\&. Samba is now developed by the Samba Team as an Open Source project similar to the way the Linux kernel is developed\&. This tool was initially written by Volker Lendecke based on an idea by Simon McVittie\&.
|
||||
.PP
|
||||
The tdbrestore man page was written by Matthieu Patou\&.
|
|
@ -1,170 +0,0 @@
|
|||
'\" t
|
||||
.\" Title: tdbtool
|
||||
.\" Author: [see the "AUTHOR" section]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
|
||||
.\" Date: 2015-04-25
|
||||
.\" Manual: System Administration tools
|
||||
.\" Source: Samba 4.0
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "TDBTOOL" "8" "2015\-04\-25" "Samba 4\&.0" "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"
|
||||
tdbtool \- manipulate the contents TDB files
|
||||
.SH "SYNOPSIS"
|
||||
.HP \w'\fBtdbtool\fR\ 'u
|
||||
\fBtdbtool\fR
|
||||
.HP \w'\fBtdbtool\fR\ 'u
|
||||
\fBtdbtool\fR [\-l] \fITDBFILE\fR [\fICOMMANDS\fR...]
|
||||
.SH "DESCRIPTION"
|
||||
.PP
|
||||
This tool is part of the
|
||||
\fBsamba\fR(1)
|
||||
suite\&.
|
||||
.PP
|
||||
\fBtdbtool\fR
|
||||
a tool for displaying and altering the contents of Samba TDB (Trivial DataBase) files\&. Each of the commands listed below can be entered interactively or provided on the command line\&.
|
||||
.SH "OPTIONS"
|
||||
.PP
|
||||
\-l
|
||||
.RS 4
|
||||
This options disables any locking, by passing TDB_NOLOCK to tdb_open_ex()\&. Only use this for database files which are not used by any other process! And also only if it is otherwise not possible to open the database, e\&.g\&. databases which were created with mutex locking\&.
|
||||
.RE
|
||||
.SH "COMMANDS"
|
||||
.PP
|
||||
\fBcreate\fR \fITDBFILE\fR
|
||||
.RS 4
|
||||
Create a new database named
|
||||
\fITDBFILE\fR\&.
|
||||
.RE
|
||||
.PP
|
||||
\fBopen\fR \fITDBFILE\fR
|
||||
.RS 4
|
||||
Open an existing database named
|
||||
\fITDBFILE\fR\&.
|
||||
.RE
|
||||
.PP
|
||||
\fBerase\fR
|
||||
.RS 4
|
||||
Erase the current database\&.
|
||||
.RE
|
||||
.PP
|
||||
\fBdump\fR
|
||||
.RS 4
|
||||
Dump the current database as strings\&.
|
||||
.RE
|
||||
.PP
|
||||
\fBcdump\fR
|
||||
.RS 4
|
||||
Dump the current database as connection records\&.
|
||||
.RE
|
||||
.PP
|
||||
\fBkeys\fR
|
||||
.RS 4
|
||||
Dump the current database keys as strings\&.
|
||||
.RE
|
||||
.PP
|
||||
\fBhexkeys\fR
|
||||
.RS 4
|
||||
Dump the current database keys as hex values\&.
|
||||
.RE
|
||||
.PP
|
||||
\fBinfo\fR
|
||||
.RS 4
|
||||
Print summary information about the current database\&.
|
||||
.RE
|
||||
.PP
|
||||
\fBinsert\fR \fIKEY\fR \fIDATA\fR
|
||||
.RS 4
|
||||
Insert a record into the current database\&.
|
||||
.RE
|
||||
.PP
|
||||
\fBmove\fR \fIKEY\fR \fITDBFILE\fR
|
||||
.RS 4
|
||||
Move a record from the current database into
|
||||
\fITDBFILE\fR\&.
|
||||
.RE
|
||||
.PP
|
||||
\fBstore\fR \fIKEY\fR \fIDATA\fR
|
||||
.RS 4
|
||||
Store (replace) a record in the current database\&.
|
||||
.RE
|
||||
.PP
|
||||
\fBshow\fR \fIKEY\fR
|
||||
.RS 4
|
||||
Show a record by key\&.
|
||||
.RE
|
||||
.PP
|
||||
\fBdelete\fR \fIKEY\fR
|
||||
.RS 4
|
||||
Delete a record by key\&.
|
||||
.RE
|
||||
.PP
|
||||
\fBlist\fR
|
||||
.RS 4
|
||||
Print the current database hash table and free list\&.
|
||||
.RE
|
||||
.PP
|
||||
\fBfree\fR
|
||||
.RS 4
|
||||
Print the current database and free list\&.
|
||||
.RE
|
||||
.PP
|
||||
\fB!\fR \fICOMMAND\fR
|
||||
.RS 4
|
||||
Execute the given system command\&.
|
||||
.RE
|
||||
.PP
|
||||
\fBfirst\fR
|
||||
.RS 4
|
||||
Print the first record in the current database\&.
|
||||
.RE
|
||||
.PP
|
||||
\fBnext\fR
|
||||
.RS 4
|
||||
Print the next record in the current database\&.
|
||||
.RE
|
||||
.PP
|
||||
\fBcheck\fR
|
||||
.RS 4
|
||||
Check the integrity of the current database\&.
|
||||
.RE
|
||||
.PP
|
||||
\fBrepack\fR
|
||||
.RS 4
|
||||
Repack a database using a temporary file to remove fragmentation\&.
|
||||
.RE
|
||||
.PP
|
||||
\fBquit\fR
|
||||
.RS 4
|
||||
Exit
|
||||
\fBtdbtool\fR\&.
|
||||
.RE
|
||||
.SH "CAVEATS"
|
||||
.PP
|
||||
The contents of the Samba TDB files are private to the implementation and should not be altered with
|
||||
\fBtdbtool\fR\&.
|
||||
.SH "VERSION"
|
||||
.PP
|
||||
This man page is correct for version 3\&.6 of the Samba suite\&.
|
||||
.SH "AUTHOR"
|
||||
.PP
|
||||
The original Samba software and related utilities were created by Andrew Tridgell\&. Samba is now developed by the Samba Team as an Open Source project similar to the way the Linux kernel is developed\&.
|
|
@ -8,7 +8,7 @@ lib/libtdb.so.1
|
|||
%%PYTHON%%%%PYTHON_SITELIBDIR%%/_tdb_text.py
|
||||
%%PYTHON%%%%PYTHON_SITELIBDIR%%/tdb%%PYTHON_EXT_SUFFIX%%.so
|
||||
libdata/pkgconfig/tdb.pc
|
||||
share/man/man8/tdbbackup.8.gz
|
||||
share/man/man8/tdbdump.8.gz
|
||||
share/man/man8/tdbrestore.8.gz
|
||||
share/man/man8/tdbtool.8.gz
|
||||
%%MANPAGES%%share/man/man8/tdbbackup.8.gz
|
||||
%%MANPAGES%%share/man/man8/tdbdump.8.gz
|
||||
%%MANPAGES%%share/man/man8/tdbrestore.8.gz
|
||||
%%MANPAGES%%share/man/man8/tdbtool.8.gz
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
PORTNAME= tdb
|
||||
DISTVERSION= 1.4.10
|
||||
PORTREVISION= 1
|
||||
PORTREVISION= 2
|
||||
PORTEPOCH= 1
|
||||
CATEGORIES= databases
|
||||
MASTER_SITES= SAMBA
|
||||
|
@ -31,10 +31,8 @@ MAKE_ENV= PYTHONHASHSEED=1
|
|||
|
||||
CONFLICTS_INSTALL= tdb
|
||||
|
||||
MANPAGES_DESC= Build and install manpages (requires textproc/docbook-xsl)
|
||||
|
||||
OPTIONS_DEFINE= MANPAGES DEBUG PYTHON
|
||||
OPTIONS_DEFAULT= PYTHON
|
||||
OPTIONS_DEFAULT= MANPAGES PYTHON
|
||||
OPTIONS_SUB= yes
|
||||
|
||||
DEBUG_CFLAGS= -g -ggdb3 -O0
|
||||
|
@ -46,9 +44,10 @@ PYTHON_USE+= python=py3kplist
|
|||
PYTHON_USES_OFF= python:build,test
|
||||
PYTHON_CONFIGURE_OFF= --disable-python
|
||||
|
||||
MANPAGES_CONFIGURE_ENV_OFF+= XSLTPROC="true"
|
||||
MANPAGES_BUILD_DEPENDS+= ${LOCALBASE}/share/xsl/docbook/manpages/docbook.xsl:textproc/docbook-xsl \
|
||||
MANPAGES_BUILD_DEPENDS= ${LOCALBASE}/share/xsl/docbook/manpages/docbook.xsl:textproc/docbook-xsl \
|
||||
xsltproc:textproc/libxslt
|
||||
MANPAGES_CONFIGURE_ENV_OFF= XSLTPROC="false"
|
||||
|
||||
# No fancy color error messages
|
||||
CFLAGS+= ${CFLAGS_${CHOSEN_COMPILER_TYPE}}
|
||||
CFLAGS_clang= -fno-color-diagnostics
|
||||
|
@ -63,10 +62,6 @@ post-patch:
|
|||
@${REINPLACE_CMD} -e 's|%%PKGCONFIGDIR%%|${PKGCONFIGDIR}|g' \
|
||||
${BUILD_WRKSRC}/wscript
|
||||
|
||||
pre-build-MANPAGES-off:
|
||||
${MKDIR} ${BUILD_WRKSRC}/bin/default/man
|
||||
${INSTALL_MAN} ${FILESDIR}/tdb*.8 ${BUILD_WRKSRC}/bin/default/man
|
||||
|
||||
post-install:
|
||||
${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/tdb*
|
||||
${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libtdb.so.1
|
||||
|
|
|
@ -1,129 +0,0 @@
|
|||
'\" t
|
||||
.\" Title: tdbbackup
|
||||
.\" Author: [see the "AUTHOR" section]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
|
||||
.\" Date: 2015-04-25
|
||||
.\" Manual: System Administration tools
|
||||
.\" Source: Samba 3.6
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "TDBBACKUP" "8" "2015\-04\-25" "Samba 3\&.6" "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"
|
||||
tdbbackup \- tool for backing up and for validating the integrity of samba \&.tdb files
|
||||
.SH "SYNOPSIS"
|
||||
.HP \w'\fBtdbbackup\fR\ 'u
|
||||
\fBtdbbackup\fR [\-s\ suffix] [\-v] [\-h] [\-l]
|
||||
.SH "DESCRIPTION"
|
||||
.PP
|
||||
This tool is part of the
|
||||
\fBsamba\fR(1)
|
||||
suite\&.
|
||||
.PP
|
||||
\fBtdbbackup\fR
|
||||
is a tool that may be used to backup samba \&.tdb files\&. This tool may also be used to verify the integrity of the \&.tdb files prior to samba startup or during normal operation\&. If it finds file damage and it finds a prior backup the backup file will be restored\&.
|
||||
.SH "OPTIONS"
|
||||
.PP
|
||||
\-h
|
||||
.RS 4
|
||||
Get help information\&.
|
||||
.RE
|
||||
.PP
|
||||
\-s suffix
|
||||
.RS 4
|
||||
The
|
||||
\fB\-s\fR
|
||||
option allows the administrator to specify a file backup extension\&. This way it is possible to keep a history of tdb backup files by using a new suffix for each backup\&.
|
||||
.RE
|
||||
.PP
|
||||
\-v
|
||||
.RS 4
|
||||
The
|
||||
\fB\-v\fR
|
||||
will check the database for damages (corrupt data) which if detected causes the backup to be restored\&.
|
||||
.RE
|
||||
.PP
|
||||
\-l
|
||||
.RS 4
|
||||
This options disables any locking, by passing TDB_NOLOCK to tdb_open_ex()\&. Only use this for database files which are not used by any other process! And also only if it is otherwise not possible to open the database, e\&.g\&. databases which were created with mutex locking\&.
|
||||
.RE
|
||||
.SH "COMMANDS"
|
||||
.PP
|
||||
\fIGENERAL INFORMATION\fR
|
||||
.PP
|
||||
The
|
||||
\fBtdbbackup\fR
|
||||
utility can safely be run at any time\&. It was designed so that it can be used at any time to validate the integrity of tdb files, even during Samba operation\&. Typical usage for the command will be:
|
||||
.PP
|
||||
tdbbackup [\-s suffix] *\&.tdb
|
||||
.PP
|
||||
Before restarting samba the following command may be run to validate \&.tdb files:
|
||||
.PP
|
||||
tdbbackup \-v [\-s suffix] *\&.tdb
|
||||
.PP
|
||||
Samba \&.tdb files are stored in various locations, be sure to run backup all \&.tdb file on the system\&. Important files includes:
|
||||
.sp
|
||||
.RS 4
|
||||
.ie n \{\
|
||||
\h'-04'\(bu\h'+03'\c
|
||||
.\}
|
||||
.el \{\
|
||||
.sp -1
|
||||
.IP \(bu 2.3
|
||||
.\}
|
||||
|
||||
\fBsecrets\&.tdb\fR
|
||||
\- usual location is in the /usr/local/samba/private directory, or on some systems in /etc/samba\&.
|
||||
.RE
|
||||
.sp
|
||||
.RS 4
|
||||
.ie n \{\
|
||||
\h'-04'\(bu\h'+03'\c
|
||||
.\}
|
||||
.el \{\
|
||||
.sp -1
|
||||
.IP \(bu 2.3
|
||||
.\}
|
||||
|
||||
\fBpassdb\&.tdb\fR
|
||||
\- usual location is in the /usr/local/samba/private directory, or on some systems in /etc/samba\&.
|
||||
.RE
|
||||
.sp
|
||||
.RS 4
|
||||
.ie n \{\
|
||||
\h'-04'\(bu\h'+03'\c
|
||||
.\}
|
||||
.el \{\
|
||||
.sp -1
|
||||
.IP \(bu 2.3
|
||||
.\}
|
||||
|
||||
\fB*\&.tdb\fR
|
||||
located in the /usr/local/samba/var directory or on some systems in the /var/cache or /var/lib/samba directories\&.
|
||||
.RE
|
||||
.SH "VERSION"
|
||||
.PP
|
||||
This man page is correct for version 3 of the Samba suite\&.
|
||||
.SH "AUTHOR"
|
||||
.PP
|
||||
The original Samba software and related utilities were created by Andrew Tridgell\&. Samba is now developed by the Samba Team as an Open Source project similar to the way the Linux kernel is developed\&.
|
||||
.PP
|
||||
The tdbbackup man page was written by John H Terpstra\&.
|
|
@ -1,72 +0,0 @@
|
|||
'\" t
|
||||
.\" Title: tdbdump
|
||||
.\" Author: [see the "AUTHOR" section]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
|
||||
.\" Date: 2015-04-25
|
||||
.\" Manual: System Administration tools
|
||||
.\" Source: Samba 3.6
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "TDBDUMP" "8" "2015\-04\-25" "Samba 3\&.6" "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"
|
||||
tdbdump \- tool for printing the contents of a TDB file
|
||||
.SH "SYNOPSIS"
|
||||
.HP \w'\fBtdbdump\fR\ 'u
|
||||
\fBtdbdump\fR [\-k\ \fIkeyname\fR] [\-e] [\-h] {filename}
|
||||
.SH "DESCRIPTION"
|
||||
.PP
|
||||
This tool is part of the
|
||||
\fBsamba\fR(1)
|
||||
suite\&.
|
||||
.PP
|
||||
\fBtdbdump\fR
|
||||
is a very simple utility that \*(Aqdumps\*(Aq the contents of a TDB (Trivial DataBase) file to standard output in a human\-readable format\&.
|
||||
.PP
|
||||
This tool can be used when debugging problems with TDB files\&. It is intended for those who are somewhat familiar with Samba internals\&.
|
||||
.SH "OPTIONS"
|
||||
.PP
|
||||
\-h
|
||||
.RS 4
|
||||
Get help information\&.
|
||||
.RE
|
||||
.PP
|
||||
\-k \fIkeyname\fR
|
||||
.RS 4
|
||||
The
|
||||
\fB\-k\fR
|
||||
option restricts dumping to a single key, if found\&.
|
||||
.RE
|
||||
.PP
|
||||
\-e
|
||||
.RS 4
|
||||
The
|
||||
\fB\-e\fR
|
||||
tries to dump out from a corrupt database\&. Naturally, such a dump is unreliable, at best\&.
|
||||
.RE
|
||||
.SH "VERSION"
|
||||
.PP
|
||||
This man page is correct for version 3 of the Samba suite\&.
|
||||
.SH "AUTHOR"
|
||||
.PP
|
||||
The original Samba software and related utilities were created by Andrew Tridgell\&. Samba is now developed by the Samba Team as an Open Source project similar to the way the Linux kernel is developed\&.
|
||||
.PP
|
||||
The tdbdump man page was written by Jelmer Vernooij\&.
|
|
@ -1,54 +0,0 @@
|
|||
'\" t
|
||||
.\" Title: tdbrestore
|
||||
.\" Author: [see the "AUTHOR" section]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
|
||||
.\" Date: 2015-04-25
|
||||
.\" Manual: System Administration tools
|
||||
.\" Source: Samba 3.6
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "TDBRESTORE" "8" "2015\-04\-25" "Samba 3\&.6" "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"
|
||||
tdbrestore \- tool for creating a TDB file out of a tdbdump output
|
||||
.SH "SYNOPSIS"
|
||||
.HP \w'\fBtdbrestore\fR\ 'u
|
||||
\fBtdbrestore\fR {tdbfilename}
|
||||
.SH "DESCRIPTION"
|
||||
.PP
|
||||
This tool is part of the
|
||||
\fBsamba\fR(1)
|
||||
suite\&.
|
||||
.PP
|
||||
\fBtdbrestore\fR
|
||||
is a very simple utility that \*(Aqrestores\*(Aq the contents of dump file into TDB (Trivial DataBase) file\&. The dump file is obtained from the tdbdump command\&.
|
||||
.PP
|
||||
This tool wait on the standard input for the content of the dump and will write the tdb in the tdbfilename parameter\&.
|
||||
.PP
|
||||
This tool can be used for unpacking the content of tdb as backup mean\&.
|
||||
.SH "VERSION"
|
||||
.PP
|
||||
This man page is correct for version 3 of the Samba suite\&.
|
||||
.SH "AUTHOR"
|
||||
.PP
|
||||
The original Samba software and related utilities were created by Andrew Tridgell\&. Samba is now developed by the Samba Team as an Open Source project similar to the way the Linux kernel is developed\&. This tool was initially written by Volker Lendecke based on an idea by Simon McVittie\&.
|
||||
.PP
|
||||
The tdbrestore man page was written by Matthieu Patou\&.
|
|
@ -1,170 +0,0 @@
|
|||
'\" t
|
||||
.\" Title: tdbtool
|
||||
.\" Author: [see the "AUTHOR" section]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
|
||||
.\" Date: 2015-04-25
|
||||
.\" Manual: System Administration tools
|
||||
.\" Source: Samba 4.0
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "TDBTOOL" "8" "2015\-04\-25" "Samba 4\&.0" "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"
|
||||
tdbtool \- manipulate the contents TDB files
|
||||
.SH "SYNOPSIS"
|
||||
.HP \w'\fBtdbtool\fR\ 'u
|
||||
\fBtdbtool\fR
|
||||
.HP \w'\fBtdbtool\fR\ 'u
|
||||
\fBtdbtool\fR [\-l] \fITDBFILE\fR [\fICOMMANDS\fR...]
|
||||
.SH "DESCRIPTION"
|
||||
.PP
|
||||
This tool is part of the
|
||||
\fBsamba\fR(1)
|
||||
suite\&.
|
||||
.PP
|
||||
\fBtdbtool\fR
|
||||
a tool for displaying and altering the contents of Samba TDB (Trivial DataBase) files\&. Each of the commands listed below can be entered interactively or provided on the command line\&.
|
||||
.SH "OPTIONS"
|
||||
.PP
|
||||
\-l
|
||||
.RS 4
|
||||
This options disables any locking, by passing TDB_NOLOCK to tdb_open_ex()\&. Only use this for database files which are not used by any other process! And also only if it is otherwise not possible to open the database, e\&.g\&. databases which were created with mutex locking\&.
|
||||
.RE
|
||||
.SH "COMMANDS"
|
||||
.PP
|
||||
\fBcreate\fR \fITDBFILE\fR
|
||||
.RS 4
|
||||
Create a new database named
|
||||
\fITDBFILE\fR\&.
|
||||
.RE
|
||||
.PP
|
||||
\fBopen\fR \fITDBFILE\fR
|
||||
.RS 4
|
||||
Open an existing database named
|
||||
\fITDBFILE\fR\&.
|
||||
.RE
|
||||
.PP
|
||||
\fBerase\fR
|
||||
.RS 4
|
||||
Erase the current database\&.
|
||||
.RE
|
||||
.PP
|
||||
\fBdump\fR
|
||||
.RS 4
|
||||
Dump the current database as strings\&.
|
||||
.RE
|
||||
.PP
|
||||
\fBcdump\fR
|
||||
.RS 4
|
||||
Dump the current database as connection records\&.
|
||||
.RE
|
||||
.PP
|
||||
\fBkeys\fR
|
||||
.RS 4
|
||||
Dump the current database keys as strings\&.
|
||||
.RE
|
||||
.PP
|
||||
\fBhexkeys\fR
|
||||
.RS 4
|
||||
Dump the current database keys as hex values\&.
|
||||
.RE
|
||||
.PP
|
||||
\fBinfo\fR
|
||||
.RS 4
|
||||
Print summary information about the current database\&.
|
||||
.RE
|
||||
.PP
|
||||
\fBinsert\fR \fIKEY\fR \fIDATA\fR
|
||||
.RS 4
|
||||
Insert a record into the current database\&.
|
||||
.RE
|
||||
.PP
|
||||
\fBmove\fR \fIKEY\fR \fITDBFILE\fR
|
||||
.RS 4
|
||||
Move a record from the current database into
|
||||
\fITDBFILE\fR\&.
|
||||
.RE
|
||||
.PP
|
||||
\fBstore\fR \fIKEY\fR \fIDATA\fR
|
||||
.RS 4
|
||||
Store (replace) a record in the current database\&.
|
||||
.RE
|
||||
.PP
|
||||
\fBshow\fR \fIKEY\fR
|
||||
.RS 4
|
||||
Show a record by key\&.
|
||||
.RE
|
||||
.PP
|
||||
\fBdelete\fR \fIKEY\fR
|
||||
.RS 4
|
||||
Delete a record by key\&.
|
||||
.RE
|
||||
.PP
|
||||
\fBlist\fR
|
||||
.RS 4
|
||||
Print the current database hash table and free list\&.
|
||||
.RE
|
||||
.PP
|
||||
\fBfree\fR
|
||||
.RS 4
|
||||
Print the current database and free list\&.
|
||||
.RE
|
||||
.PP
|
||||
\fB!\fR \fICOMMAND\fR
|
||||
.RS 4
|
||||
Execute the given system command\&.
|
||||
.RE
|
||||
.PP
|
||||
\fBfirst\fR
|
||||
.RS 4
|
||||
Print the first record in the current database\&.
|
||||
.RE
|
||||
.PP
|
||||
\fBnext\fR
|
||||
.RS 4
|
||||
Print the next record in the current database\&.
|
||||
.RE
|
||||
.PP
|
||||
\fBcheck\fR
|
||||
.RS 4
|
||||
Check the integrity of the current database\&.
|
||||
.RE
|
||||
.PP
|
||||
\fBrepack\fR
|
||||
.RS 4
|
||||
Repack a database using a temporary file to remove fragmentation\&.
|
||||
.RE
|
||||
.PP
|
||||
\fBquit\fR
|
||||
.RS 4
|
||||
Exit
|
||||
\fBtdbtool\fR\&.
|
||||
.RE
|
||||
.SH "CAVEATS"
|
||||
.PP
|
||||
The contents of the Samba TDB files are private to the implementation and should not be altered with
|
||||
\fBtdbtool\fR\&.
|
||||
.SH "VERSION"
|
||||
.PP
|
||||
This man page is correct for version 3\&.6 of the Samba suite\&.
|
||||
.SH "AUTHOR"
|
||||
.PP
|
||||
The original Samba software and related utilities were created by Andrew Tridgell\&. Samba is now developed by the Samba Team as an Open Source project similar to the way the Linux kernel is developed\&.
|
|
@ -8,7 +8,7 @@ lib/libtdb.so.1
|
|||
%%PYTHON%%%%PYTHON_SITELIBDIR%%/_tdb_text.py
|
||||
%%PYTHON%%%%PYTHON_SITELIBDIR%%/tdb%%PYTHON_EXT_SUFFIX%%.so
|
||||
libdata/pkgconfig/tdb.pc
|
||||
share/man/man8/tdbbackup.8.gz
|
||||
share/man/man8/tdbdump.8.gz
|
||||
share/man/man8/tdbrestore.8.gz
|
||||
share/man/man8/tdbtool.8.gz
|
||||
%%MANPAGES%%share/man/man8/tdbbackup.8.gz
|
||||
%%MANPAGES%%share/man/man8/tdbdump.8.gz
|
||||
%%MANPAGES%%share/man/man8/tdbrestore.8.gz
|
||||
%%MANPAGES%%share/man/man8/tdbtool.8.gz
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
PORTNAME= talloc
|
||||
DISTVERSION= 2.4.1
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= devel
|
||||
MASTER_SITES= SAMBA
|
||||
|
||||
|
@ -28,10 +29,8 @@ MAKE_ENV= PYTHONHASHSEED=1
|
|||
|
||||
CONFLICTS_INSTALL= talloc[0-9]*
|
||||
|
||||
MANPAGES_DESC= Build and install manpages (requires textproc/docbook-xsl)
|
||||
|
||||
OPTIONS_DEFINE= DEBUG MANPAGES PYTHON
|
||||
OPTIONS_DEFAULT= PYTHON
|
||||
OPTIONS_DEFAULT= MANPAGES PYTHON
|
||||
OPTIONS_SUB= yes
|
||||
|
||||
DEBUG_CFLAGS= -g -ggdb3 -O0
|
||||
|
@ -42,9 +41,10 @@ PYTHON_USES= gettext-runtime python
|
|||
PYTHON_USES_OFF= python:build,test
|
||||
PYTHON_CONFIGURE_OFF= --disable-python
|
||||
|
||||
MANPAGES_CONFIGURE_ENV_OFF+= XSLTPROC="true"
|
||||
MANPAGES_BUILD_DEPENDS+= ${LOCALBASE}/share/xsl/docbook/manpages/docbook.xsl:textproc/docbook-xsl \
|
||||
MANPAGES_BUILD_DEPENDS= ${LOCALBASE}/share/xsl/docbook/manpages/docbook.xsl:textproc/docbook-xsl \
|
||||
xsltproc:textproc/libxslt
|
||||
MANPAGES_CONFIGURE_ENV_OFF= XSLTPROC="false"
|
||||
|
||||
# No fancy color error messages
|
||||
CFLAGS+= ${CFLAGS_${CHOSEN_COMPILER_TYPE}}
|
||||
CFLAGS_clang= -fno-color-diagnostics
|
||||
|
@ -59,10 +59,6 @@ post-patch:
|
|||
@${REINPLACE_CMD} -e 's|%%PKGCONFIGDIR%%|${PKGCONFIGDIR}|g' \
|
||||
${BUILD_WRKSRC}/wscript
|
||||
|
||||
pre-build-MANPAGES-off:
|
||||
-${MKDIR} ${BUILD_WRKSRC}/bin/default/man
|
||||
${INSTALL_MAN} ${FILESDIR}/talloc.3 ${BUILD_WRKSRC}/bin/default/man
|
||||
|
||||
post-install:
|
||||
${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libtalloc.so.2
|
||||
|
||||
|
|
|
@ -1,677 +0,0 @@
|
|||
'\" t
|
||||
.\" Title: talloc
|
||||
.\" Author: [see the "AUTHOR" section]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
|
||||
.\" Date: 2015-04-10
|
||||
.\" Manual: System Administration tools
|
||||
.\" Source: Samba 4.0
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "TALLOC" "3" "2015\-04\-10" "Samba 4\&.0" "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"
|
||||
talloc \- hierarchical reference counted memory pool system with destructors
|
||||
.SH "SYNOPSIS"
|
||||
.sp
|
||||
.nf
|
||||
#include <talloc\&.h>
|
||||
.fi
|
||||
.SH "DESCRIPTION"
|
||||
.PP
|
||||
If you are used to talloc from Samba3 then please read this carefully, as talloc has changed a lot\&.
|
||||
.PP
|
||||
The new talloc is a hierarchical, reference counted memory pool system with destructors\&. Quite a mouthful really, but not too bad once you get used to it\&.
|
||||
.PP
|
||||
Perhaps the biggest change from Samba3 is that there is no distinction between a "talloc context" and a "talloc pointer"\&. Any pointer returned from talloc() is itself a valid talloc context\&. This means you can do this:
|
||||
.sp
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
struct foo *X = talloc(mem_ctx, struct foo);
|
||||
X\->name = talloc_strdup(X, "foo");
|
||||
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.PP
|
||||
and the pointer
|
||||
X\->name
|
||||
would be a "child" of the talloc context
|
||||
X
|
||||
which is itself a child of
|
||||
mem_ctx\&. So if you do
|
||||
talloc_free(mem_ctx)
|
||||
then it is all destroyed, whereas if you do
|
||||
talloc_free(X)
|
||||
then just
|
||||
X
|
||||
and
|
||||
X\->name
|
||||
are destroyed, and if you do
|
||||
talloc_free(X\->name)
|
||||
then just the name element of
|
||||
X
|
||||
is destroyed\&.
|
||||
.PP
|
||||
If you think about this, then what this effectively gives you is an n\-ary tree, where you can free any part of the tree with talloc_free()\&.
|
||||
.PP
|
||||
If you find this confusing, then I suggest you run the
|
||||
testsuite
|
||||
program to watch talloc in action\&. You may also like to add your own tests to
|
||||
testsuite\&.c
|
||||
to clarify how some particular situation is handled\&.
|
||||
.SH "TALLOC API"
|
||||
.PP
|
||||
The following is a complete guide to the talloc API\&. Read it all at least twice\&.
|
||||
.SS "(type *)talloc(const void *ctx, type);"
|
||||
.PP
|
||||
The talloc() macro is the core of the talloc library\&. It takes a memory
|
||||
\fIctx\fR
|
||||
and a
|
||||
\fItype\fR, and returns a pointer to a new area of memory of the given
|
||||
\fItype\fR\&.
|
||||
.PP
|
||||
The returned pointer is itself a talloc context, so you can use it as the
|
||||
\fIctx\fR
|
||||
argument to more calls to talloc() if you wish\&.
|
||||
.PP
|
||||
The returned pointer is a "child" of the supplied context\&. This means that if you talloc_free() the
|
||||
\fIctx\fR
|
||||
then the new child disappears as well\&. Alternatively you can free just the child\&.
|
||||
.PP
|
||||
The
|
||||
\fIctx\fR
|
||||
argument to talloc() can be NULL, in which case a new top level context is created\&.
|
||||
.SS "void *talloc_size(const void *ctx, size_t size);"
|
||||
.PP
|
||||
The function talloc_size() should be used when you don\*(Aqt have a convenient type to pass to talloc()\&. Unlike talloc(), it is not type safe (as it returns a void *), so you are on your own for type checking\&.
|
||||
.SS "(typeof(ptr)) talloc_ptrtype(const void *ctx, ptr);"
|
||||
.PP
|
||||
The talloc_ptrtype() macro should be used when you have a pointer and want to allocate memory to point at with this pointer\&. When compiling with gcc >= 3 it is typesafe\&. Note this is a wrapper of talloc_size() and talloc_get_name() will return the current location in the source file\&. and not the type\&.
|
||||
.SS "int talloc_free(void *ptr);"
|
||||
.PP
|
||||
The talloc_free() function frees a piece of talloc memory, and all its children\&. You can call talloc_free() on any pointer returned by talloc()\&.
|
||||
.PP
|
||||
The return value of talloc_free() indicates success or failure, with 0 returned for success and \-1 for failure\&. The only possible failure condition is if
|
||||
\fIptr\fR
|
||||
had a destructor attached to it and the destructor returned \-1\&. See
|
||||
\(lqtalloc_set_destructor()\(rq
|
||||
for details on destructors\&.
|
||||
.PP
|
||||
If this pointer has an additional parent when talloc_free() is called then the memory is not actually released, but instead the most recently established parent is destroyed\&. See
|
||||
\(lqtalloc_reference()\(rq
|
||||
for details on establishing additional parents\&.
|
||||
.PP
|
||||
For more control on which parent is removed, see
|
||||
\(lqtalloc_unlink()\(rq\&.
|
||||
.PP
|
||||
talloc_free() operates recursively on its children\&.
|
||||
.PP
|
||||
From the 2\&.0 version of talloc, as a special case, talloc_free() is refused on pointers that have more than one parent, as talloc would have no way of knowing which parent should be removed\&. To free a pointer that has more than one parent please use talloc_unlink()\&.
|
||||
.PP
|
||||
To help you find problems in your code caused by this behaviour, if you do try and free a pointer with more than one parent then the talloc logging function will be called to give output like this:
|
||||
.PP
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
ERROR: talloc_free with references at some_dir/source/foo\&.c:123
|
||||
reference at some_dir/source/other\&.c:325
|
||||
reference at some_dir/source/third\&.c:121
|
||||
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.PP
|
||||
Please see the documentation for talloc_set_log_fn() and talloc_set_log_stderr() for more information on talloc logging functions\&.
|
||||
.SS "void *talloc_reference(const void *ctx, const void *ptr);"
|
||||
.PP
|
||||
The talloc_reference() function makes
|
||||
\fIctx\fR
|
||||
an additional parent of
|
||||
\fIptr\fR\&.
|
||||
.PP
|
||||
The return value of talloc_reference() is always the original pointer
|
||||
\fIptr\fR, unless talloc ran out of memory in creating the reference in which case it will return NULL (each additional reference consumes around 48 bytes of memory on intel x86 platforms)\&.
|
||||
.PP
|
||||
If
|
||||
\fIptr\fR
|
||||
is NULL, then the function is a no\-op, and simply returns NULL\&.
|
||||
.PP
|
||||
After creating a reference you can free it in one of the following ways:
|
||||
.PP
|
||||
.RS 4
|
||||
.ie n \{\
|
||||
\h'-04'\(bu\h'+03'\c
|
||||
.\}
|
||||
.el \{\
|
||||
.sp -1
|
||||
.IP \(bu 2.3
|
||||
.\}
|
||||
you can talloc_free() any parent of the original pointer\&. That will reduce the number of parents of this pointer by 1, and will cause this pointer to be freed if it runs out of parents\&.
|
||||
.RE
|
||||
.sp
|
||||
.RS 4
|
||||
.ie n \{\
|
||||
\h'-04'\(bu\h'+03'\c
|
||||
.\}
|
||||
.el \{\
|
||||
.sp -1
|
||||
.IP \(bu 2.3
|
||||
.\}
|
||||
you can talloc_free() the pointer itself if it has at maximum one parent\&. This behaviour has been changed since the release of version 2\&.0\&. Further informations in the description of "talloc_free"\&.
|
||||
.RE
|
||||
.PP
|
||||
For more control on which parent to remove, see
|
||||
\(lqtalloc_unlink()\(rq\&.
|
||||
.SS "int talloc_unlink(const void *ctx, void *ptr);"
|
||||
.PP
|
||||
The talloc_unlink() function removes a specific parent from
|
||||
\fIptr\fR\&. The
|
||||
\fIctx\fR
|
||||
passed must either be a context used in talloc_reference() with this pointer, or must be a direct parent of ptr\&.
|
||||
.PP
|
||||
Note that if the parent has already been removed using talloc_free() then this function will fail and will return \-1\&. Likewise, if
|
||||
\fIptr\fR
|
||||
is NULL, then the function will make no modifications and return \-1\&.
|
||||
.PP
|
||||
Usually you can just use talloc_free() instead of talloc_unlink(), but sometimes it is useful to have the additional control on which parent is removed\&.
|
||||
.SS "void talloc_set_destructor(const void *ptr, int (*destructor)(void *));"
|
||||
.PP
|
||||
The function talloc_set_destructor() sets the
|
||||
\fIdestructor\fR
|
||||
for the pointer
|
||||
\fIptr\fR\&. A
|
||||
\fIdestructor\fR
|
||||
is a function that is called when the memory used by a pointer is about to be released\&. The destructor receives
|
||||
\fIptr\fR
|
||||
as an argument, and should return 0 for success and \-1 for failure\&.
|
||||
.PP
|
||||
The
|
||||
\fIdestructor\fR
|
||||
can do anything it wants to, including freeing other pieces of memory\&. A common use for destructors is to clean up operating system resources (such as open file descriptors) contained in the structure the destructor is placed on\&.
|
||||
.PP
|
||||
You can only place one destructor on a pointer\&. If you need more than one destructor then you can create a zero\-length child of the pointer and place an additional destructor on that\&.
|
||||
.PP
|
||||
To remove a destructor call talloc_set_destructor() with NULL for the destructor\&.
|
||||
.PP
|
||||
If your destructor attempts to talloc_free() the pointer that it is the destructor for then talloc_free() will return \-1 and the free will be ignored\&. This would be a pointless operation anyway, as the destructor is only called when the memory is just about to go away\&.
|
||||
.SS "int talloc_increase_ref_count(const void *\fIptr\fR);"
|
||||
.PP
|
||||
The talloc_increase_ref_count(\fIptr\fR) function is exactly equivalent to:
|
||||
.sp
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
talloc_reference(NULL, ptr);
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.PP
|
||||
You can use either syntax, depending on which you think is clearer in your code\&.
|
||||
.PP
|
||||
It returns 0 on success and \-1 on failure\&.
|
||||
.SS "size_t talloc_reference_count(const void *\fIptr\fR);"
|
||||
.PP
|
||||
Return the number of references to the pointer\&.
|
||||
.SS "void talloc_set_name(const void *ptr, const char *fmt, \&.\&.\&.);"
|
||||
.PP
|
||||
Each talloc pointer has a "name"\&. The name is used principally for debugging purposes, although it is also possible to set and get the name on a pointer in as a way of "marking" pointers in your code\&.
|
||||
.PP
|
||||
The main use for names on pointer is for "talloc reports"\&. See
|
||||
\(lqtalloc_report_depth_cb()\(rq,
|
||||
\(lqtalloc_report_depth_file()\(rq,
|
||||
\(lqtalloc_report()\(rq
|
||||
\(lqtalloc_report()\(rq
|
||||
and
|
||||
\(lqtalloc_report_full()\(rq
|
||||
for details\&. Also see
|
||||
\(lqtalloc_enable_leak_report()\(rq
|
||||
and
|
||||
\(lqtalloc_enable_leak_report_full()\(rq\&.
|
||||
.PP
|
||||
The talloc_set_name() function allocates memory as a child of the pointer\&. It is logically equivalent to:
|
||||
.sp
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
talloc_set_name_const(ptr, talloc_asprintf(ptr, fmt, \&.\&.\&.));
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.PP
|
||||
Note that multiple calls to talloc_set_name() will allocate more memory without releasing the name\&. All of the memory is released when the ptr is freed using talloc_free()\&.
|
||||
.SS "void talloc_set_name_const(const void *\fIptr\fR, const char *\fIname\fR);"
|
||||
.PP
|
||||
The function talloc_set_name_const() is just like talloc_set_name(), but it takes a string constant, and is much faster\&. It is extensively used by the "auto naming" macros, such as talloc_p()\&.
|
||||
.PP
|
||||
This function does not allocate any memory\&. It just copies the supplied pointer into the internal representation of the talloc ptr\&. This means you must not pass a
|
||||
\fIname\fR
|
||||
pointer to memory that will disappear before
|
||||
\fIptr\fR
|
||||
is freed with talloc_free()\&.
|
||||
.SS "void *talloc_named(const void *\fIctx\fR, size_t \fIsize\fR, const char *\fIfmt\fR, \&.\&.\&.);"
|
||||
.PP
|
||||
The talloc_named() function creates a named talloc pointer\&. It is equivalent to:
|
||||
.sp
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
ptr = talloc_size(ctx, size);
|
||||
talloc_set_name(ptr, fmt, \&.\&.\&.\&.);
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.SS "void *talloc_named_const(const void *\fIctx\fR, size_t \fIsize\fR, const char *\fIname\fR);"
|
||||
.PP
|
||||
This is equivalent to:
|
||||
.sp
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
ptr = talloc_size(ctx, size);
|
||||
talloc_set_name_const(ptr, name);
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.SS "const char *talloc_get_name(const void *\fIptr\fR);"
|
||||
.PP
|
||||
This returns the current name for the given talloc pointer,
|
||||
\fIptr\fR\&. See
|
||||
\(lqtalloc_set_name()\(rq
|
||||
for details\&.
|
||||
.SS "void *talloc_init(const char *\fIfmt\fR, \&.\&.\&.);"
|
||||
.PP
|
||||
This function creates a zero length named talloc context as a top level context\&. It is equivalent to:
|
||||
.sp
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
talloc_named(NULL, 0, fmt, \&.\&.\&.);
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.SS "void *talloc_new(void *\fIctx\fR);"
|
||||
.PP
|
||||
This is a utility macro that creates a new memory context hanging off an existing context, automatically naming it "talloc_new: __location__" where __location__ is the source line it is called from\&. It is particularly useful for creating a new temporary working context\&.
|
||||
.SS "(\fItype\fR *)talloc_realloc(const void *\fIctx\fR, void *\fIptr\fR, \fItype\fR, \fIcount\fR);"
|
||||
.PP
|
||||
The talloc_realloc() macro changes the size of a talloc pointer\&. It has the following equivalences:
|
||||
.sp
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
talloc_realloc(ctx, NULL, type, 1) ==> talloc(ctx, type);
|
||||
talloc_realloc(ctx, ptr, type, 0) ==> talloc_free(ptr);
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.PP
|
||||
The
|
||||
\fIctx\fR
|
||||
argument is only used if
|
||||
\fIptr\fR
|
||||
is not NULL, otherwise it is ignored\&.
|
||||
.PP
|
||||
talloc_realloc() returns the new pointer, or NULL on failure\&. The call will fail either due to a lack of memory, or because the pointer has more than one parent (see
|
||||
\(lqtalloc_reference()\(rq)\&.
|
||||
.SS "void *talloc_realloc_size(const void *ctx, void *ptr, size_t size);"
|
||||
.PP
|
||||
the talloc_realloc_size() function is useful when the type is not known so the type\-safe talloc_realloc() cannot be used\&.
|
||||
.SS "TYPE *talloc_steal(const void *\fInew_ctx\fR, const TYPE *\fIptr\fR);"
|
||||
.PP
|
||||
The talloc_steal() function changes the parent context of a talloc pointer\&. It is typically used when the context that the pointer is currently a child of is going to be freed and you wish to keep the memory for a longer time\&.
|
||||
.PP
|
||||
The talloc_steal() function returns the pointer that you pass it\&. It does not have any failure modes\&.
|
||||
.PP
|
||||
It is possible to produce loops in the parent/child relationship if you are not careful with talloc_steal()\&. No guarantees are provided as to your sanity or the safety of your data if you do this\&.
|
||||
.PP
|
||||
Note that if you try and call talloc_steal() on a pointer that has more than one parent then the result is ambiguous\&. Talloc will choose to remove the parent that is currently indicated by talloc_parent() and replace it with the chosen parent\&. You will also get a message like this via the talloc logging functions:
|
||||
.PP
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
WARNING: talloc_steal with references at some_dir/source/foo\&.c:123
|
||||
reference at some_dir/source/other\&.c:325
|
||||
reference at some_dir/source/third\&.c:121
|
||||
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.PP
|
||||
To unambiguously change the parent of a pointer please see the function
|
||||
\(lqtalloc_reparent()\(rq\&. See the talloc_set_log_fn() documentation for more information on talloc logging\&.
|
||||
.SS "TYPE *talloc_reparent(const void *\fIold_parent\fR, const void *\fInew_parent\fR, const TYPE *\fIptr\fR);"
|
||||
.PP
|
||||
The talloc_reparent() function changes the parent context of a talloc pointer\&. It is typically used when the context that the pointer is currently a child of is going to be freed and you wish to keep the memory for a longer time\&.
|
||||
.PP
|
||||
The talloc_reparent() function returns the pointer that you pass it\&. It does not have any failure modes\&.
|
||||
.PP
|
||||
The difference between talloc_reparent() and talloc_steal() is that talloc_reparent() can specify which parent you wish to change\&. This is useful when a pointer has multiple parents via references\&.
|
||||
.SS "TYPE *talloc_move(const void *\fInew_ctx\fR, TYPE **\fIptr\fR);"
|
||||
.PP
|
||||
The talloc_move() function is a wrapper around talloc_steal() which zeros the source pointer after the move\&. This avoids a potential source of bugs where a programmer leaves a pointer in two structures, and uses the pointer from the old structure after it has been moved to a new one\&.
|
||||
.SS "size_t talloc_total_size(const void *\fIptr\fR);"
|
||||
.PP
|
||||
The talloc_total_size() function returns the total size in bytes used by this pointer and all child pointers\&. Mostly useful for debugging\&.
|
||||
.PP
|
||||
Passing NULL is allowed, but it will only give a meaningful result if talloc_enable_leak_report() or talloc_enable_leak_report_full() has been called\&.
|
||||
.SS "size_t talloc_total_blocks(const void *\fIptr\fR);"
|
||||
.PP
|
||||
The talloc_total_blocks() function returns the total memory block count used by this pointer and all child pointers\&. Mostly useful for debugging\&.
|
||||
.PP
|
||||
Passing NULL is allowed, but it will only give a meaningful result if talloc_enable_leak_report() or talloc_enable_leak_report_full() has been called\&.
|
||||
.SS "void talloc_report(const void *ptr, FILE *f);"
|
||||
.PP
|
||||
The talloc_report() function prints a summary report of all memory used by
|
||||
\fIptr\fR\&. One line of report is printed for each immediate child of ptr, showing the total memory and number of blocks used by that child\&.
|
||||
.PP
|
||||
You can pass NULL for the pointer, in which case a report is printed for the top level memory context, but only if talloc_enable_leak_report() or talloc_enable_leak_report_full() has been called\&.
|
||||
.SS "void talloc_report_full(const void *\fIptr\fR, FILE *\fIf\fR);"
|
||||
.PP
|
||||
This provides a more detailed report than talloc_report()\&. It will recursively print the entire tree of memory referenced by the pointer\&. References in the tree are shown by giving the name of the pointer that is referenced\&.
|
||||
.PP
|
||||
You can pass NULL for the pointer, in which case a report is printed for the top level memory context, but only if talloc_enable_leak_report() or talloc_enable_leak_report_full() has been called\&.
|
||||
.SS ""
|
||||
.HP \w'void\ talloc_report_depth_cb('u
|
||||
.BI "void talloc_report_depth_cb(" "const\ void\ *ptr" ", " "int\ depth" ", " "int\ max_depth" ", " "void\ (*callback)(const\ void\ *ptr,\ int\ depth,\ int\ max_depth,\ int\ is_ref,\ void\ *priv)" ", " "void\ *priv" ");"
|
||||
.PP
|
||||
This provides a more flexible reports than talloc_report()\&. It will recursively call the callback for the entire tree of memory referenced by the pointer\&. References in the tree are passed with
|
||||
\fIis_ref = 1\fR
|
||||
and the pointer that is referenced\&.
|
||||
.PP
|
||||
You can pass NULL for the pointer, in which case a report is printed for the top level memory context, but only if talloc_enable_leak_report() or talloc_enable_leak_report_full() has been called\&.
|
||||
.PP
|
||||
The recursion is stopped when depth >= max_depth\&. max_depth = \-1 means only stop at leaf nodes\&.
|
||||
.SS ""
|
||||
.HP \w'void\ talloc_report_depth_file('u
|
||||
.BI "void talloc_report_depth_file(" "const\ void\ *ptr" ", " "int\ depth" ", " "int\ max_depth" ", " "FILE\ *f" ");"
|
||||
.PP
|
||||
This provides a more flexible reports than talloc_report()\&. It will let you specify the depth and max_depth\&.
|
||||
.SS "void talloc_enable_leak_report(void);"
|
||||
.PP
|
||||
This enables calling of talloc_report(NULL, stderr) when the program exits\&. In Samba4 this is enabled by using the \-\-leak\-report command line option\&.
|
||||
.PP
|
||||
For it to be useful, this function must be called before any other talloc function as it establishes a "null context" that acts as the top of the tree\&. If you don\*(Aqt call this function first then passing NULL to talloc_report() or talloc_report_full() won\*(Aqt give you the full tree printout\&.
|
||||
.PP
|
||||
Here is a typical talloc report:
|
||||
.sp
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
talloc report on \*(Aqnull_context\*(Aq (total 267 bytes in 15 blocks)
|
||||
libcli/auth/spnego_parse\&.c:55 contains 31 bytes in 2 blocks
|
||||
libcli/auth/spnego_parse\&.c:55 contains 31 bytes in 2 blocks
|
||||
iconv(UTF8,CP850) contains 42 bytes in 2 blocks
|
||||
libcli/auth/spnego_parse\&.c:55 contains 31 bytes in 2 blocks
|
||||
iconv(CP850,UTF8) contains 42 bytes in 2 blocks
|
||||
iconv(UTF8,UTF\-16LE) contains 45 bytes in 2 blocks
|
||||
iconv(UTF\-16LE,UTF8) contains 45 bytes in 2 blocks
|
||||
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.SS "void talloc_enable_leak_report_full(void);"
|
||||
.PP
|
||||
This enables calling of talloc_report_full(NULL, stderr) when the program exits\&. In Samba4 this is enabled by using the \-\-leak\-report\-full command line option\&.
|
||||
.PP
|
||||
For it to be useful, this function must be called before any other talloc function as it establishes a "null context" that acts as the top of the tree\&. If you don\*(Aqt call this function first then passing NULL to talloc_report() or talloc_report_full() won\*(Aqt give you the full tree printout\&.
|
||||
.PP
|
||||
Here is a typical full report:
|
||||
.sp
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
full talloc report on \*(Aqroot\*(Aq (total 18 bytes in 8 blocks)
|
||||
p1 contains 18 bytes in 7 blocks (ref 0)
|
||||
r1 contains 13 bytes in 2 blocks (ref 0)
|
||||
reference to: p2
|
||||
p2 contains 1 bytes in 1 blocks (ref 1)
|
||||
x3 contains 1 bytes in 1 blocks (ref 0)
|
||||
x2 contains 1 bytes in 1 blocks (ref 0)
|
||||
x1 contains 1 bytes in 1 blocks (ref 0)
|
||||
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.SS "(\fItype\fR *)talloc_zero(const void *\fIctx\fR, \fItype\fR);"
|
||||
.PP
|
||||
The talloc_zero() macro is equivalent to:
|
||||
.sp
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
ptr = talloc(ctx, type);
|
||||
if (ptr) memset(ptr, 0, sizeof(type));
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.SS "void *talloc_zero_size(const void *\fIctx\fR, size_t \fIsize\fR)"
|
||||
.PP
|
||||
The talloc_zero_size() function is useful when you don\*(Aqt have a known type\&.
|
||||
.SS "void *talloc_memdup(const void *\fIctx\fR, const void *\fIp\fR, size_t size);"
|
||||
.PP
|
||||
The talloc_memdup() function is equivalent to:
|
||||
.sp
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
ptr = talloc_size(ctx, size);
|
||||
if (ptr) memcpy(ptr, p, size);
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.SS "char *talloc_strdup(const void *\fIctx\fR, const char *\fIp\fR);"
|
||||
.PP
|
||||
The talloc_strdup() function is equivalent to:
|
||||
.sp
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
ptr = talloc_size(ctx, strlen(p)+1);
|
||||
if (ptr) memcpy(ptr, p, strlen(p)+1);
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.PP
|
||||
This function sets the name of the new pointer to the passed string\&. This is equivalent to:
|
||||
.sp
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
talloc_set_name_const(ptr, ptr)
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.SS "char *talloc_strndup(const void *\fIt\fR, const char *\fIp\fR, size_t \fIn\fR);"
|
||||
.PP
|
||||
The talloc_strndup() function is the talloc equivalent of the C library function strndup(3)\&.
|
||||
.PP
|
||||
This function sets the name of the new pointer to the passed string\&. This is equivalent to:
|
||||
.sp
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
talloc_set_name_const(ptr, ptr)
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.SS "char *talloc_vasprintf(const void *\fIt\fR, const char *\fIfmt\fR, va_list \fIap\fR);"
|
||||
.PP
|
||||
The talloc_vasprintf() function is the talloc equivalent of the C library function vasprintf(3)\&.
|
||||
.PP
|
||||
This function sets the name of the new pointer to the new string\&. This is equivalent to:
|
||||
.sp
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
talloc_set_name_const(ptr, ptr)
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.SS "char *talloc_asprintf(const void *\fIt\fR, const char *\fIfmt\fR, \&.\&.\&.);"
|
||||
.PP
|
||||
The talloc_asprintf() function is the talloc equivalent of the C library function asprintf(3)\&.
|
||||
.PP
|
||||
This function sets the name of the new pointer to the passed string\&. This is equivalent to:
|
||||
.sp
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
talloc_set_name_const(ptr, ptr)
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.SS "char *talloc_asprintf_append(char *s, const char *fmt, \&.\&.\&.);"
|
||||
.PP
|
||||
The talloc_asprintf_append() function appends the given formatted string to the given string\&.
|
||||
.PP
|
||||
This function sets the name of the new pointer to the new string\&. This is equivalent to:
|
||||
.sp
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
talloc_set_name_const(ptr, ptr)
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.SS "(type *)talloc_array(const void *ctx, type, unsigned int count);"
|
||||
.PP
|
||||
The talloc_array() macro is equivalent to:
|
||||
.sp
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
(type *)talloc_size(ctx, sizeof(type) * count);
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.PP
|
||||
except that it provides integer overflow protection for the multiply, returning NULL if the multiply overflows\&.
|
||||
.SS "void *talloc_array_size(const void *ctx, size_t size, unsigned int count);"
|
||||
.PP
|
||||
The talloc_array_size() function is useful when the type is not known\&. It operates in the same way as talloc_array(), but takes a size instead of a type\&.
|
||||
.SS "(typeof(ptr)) talloc_array_ptrtype(const void *ctx, ptr, unsigned int count);"
|
||||
.PP
|
||||
The talloc_ptrtype() macro should be used when you have a pointer to an array and want to allocate memory of an array to point at with this pointer\&. When compiling with gcc >= 3 it is typesafe\&. Note this is a wrapper of talloc_array_size() and talloc_get_name() will return the current location in the source file\&. and not the type\&.
|
||||
.SS "void *talloc_realloc_fn(const void *ctx, void *ptr, size_t size)"
|
||||
.PP
|
||||
This is a non\-macro version of talloc_realloc(), which is useful as libraries sometimes want a realloc function pointer\&. A realloc(3) implementation encapsulates the functionality of malloc(3), free(3) and realloc(3) in one call, which is why it is useful to be able to pass around a single function pointer\&.
|
||||
.SS "void *talloc_autofree_context(void);"
|
||||
.PP
|
||||
This is a handy utility function that returns a talloc context which will be automatically freed on program exit\&. This can be used to reduce the noise in memory leak reports\&.
|
||||
.SS "void *talloc_check_name(const void *ptr, const char *name);"
|
||||
.PP
|
||||
This function checks if a pointer has the specified
|
||||
\fIname\fR\&. If it does then the pointer is returned\&. It it doesn\*(Aqt then NULL is returned\&.
|
||||
.SS "(type *)talloc_get_type(const void *ptr, type);"
|
||||
.PP
|
||||
This macro allows you to do type checking on talloc pointers\&. It is particularly useful for void* private pointers\&. It is equivalent to this:
|
||||
.sp
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
(type *)talloc_check_name(ptr, #type)
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.SS "talloc_set_type(const void *ptr, type);"
|
||||
.PP
|
||||
This macro allows you to force the name of a pointer to be a particular
|
||||
\fItype\fR\&. This can be used in conjunction with talloc_get_type() to do type checking on void* pointers\&.
|
||||
.PP
|
||||
It is equivalent to this:
|
||||
.sp
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
talloc_set_name_const(ptr, #type)
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.SS "talloc_set_log_fn(void (*log_fn)(const char *message));"
|
||||
.PP
|
||||
This function sets a logging function that talloc will use for warnings and errors\&. By default talloc will not print any warnings or errors\&.
|
||||
.SS "talloc_set_log_stderr(void);"
|
||||
.PP
|
||||
This sets the talloc log function to write log messages to stderr
|
||||
.SH "PERFORMANCE"
|
||||
.PP
|
||||
All the additional features of talloc(3) over malloc(3) do come at a price\&. We have a simple performance test in Samba4 that measures talloc() versus malloc() performance, and it seems that talloc() is about 10% slower than malloc() on my x86 Debian Linux box\&. For Samba, the great reduction in code complexity that we get by using talloc makes this worthwhile, especially as the total overhead of talloc/malloc in Samba is already quite small\&.
|
||||
.SH "SEE ALSO"
|
||||
.PP
|
||||
malloc(3), strndup(3), vasprintf(3), asprintf(3),
|
||||
\m[blue]\fB\%http://talloc.samba.org/\fR\m[]
|
||||
.SH "AUTHOR"
|
||||
.PP
|
||||
The original Samba software and related utilities were created by Andrew Tridgell\&. Samba is now developed by the Samba Team as an Open Source project similar to the way the Linux kernel is developed\&.
|
||||
.SH "COPYRIGHT/LICENSE"
|
||||
.PP
|
||||
Copyright (C) Andrew Tridgell 2004
|
||||
.PP
|
||||
This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version\&.
|
||||
.PP
|
||||
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE\&. See the GNU General Public License for more details\&.
|
||||
.PP
|
||||
You should have received a copy of the GNU General Public License along with this program; if not, see http://www\&.gnu\&.org/licenses/\&.
|
|
@ -7,4 +7,4 @@ lib/libtalloc.so.2
|
|||
%%PYTHON%%%%PYTHON_SITELIBDIR%%/talloc%%PYTHON_EXT_SUFFIX%%.so
|
||||
%%PYTHON%%%%PKGCONFIGDIR%%/pytalloc-util%%PYTHON_EXT_SUFFIX%%.pc
|
||||
%%PKGCONFIGDIR%%/talloc.pc
|
||||
share/man/man3/talloc.3.gz
|
||||
%%MANPAGES%%share/man/man3/talloc.3.gz
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
PORTNAME= talloc
|
||||
DISTVERSION= 2.4.2
|
||||
PORTREVISION= 1
|
||||
PORTREVISION= 2
|
||||
CATEGORIES= devel
|
||||
MASTER_SITES= SAMBA
|
||||
PKGNAMESUFFIX= 242
|
||||
|
@ -30,10 +30,8 @@ MAKE_ENV= PYTHONHASHSEED=1
|
|||
|
||||
CONFLICTS_INSTALL= talloc
|
||||
|
||||
MANPAGES_DESC= Build and install manpages (requires textproc/docbook-xsl)
|
||||
|
||||
OPTIONS_DEFINE= DEBUG MANPAGES PYTHON
|
||||
OPTIONS_DEFAULT= PYTHON
|
||||
OPTIONS_DEFAULT= MANPAGES PYTHON
|
||||
OPTIONS_SUB= yes
|
||||
|
||||
DEBUG_CFLAGS= -g -ggdb3 -O0
|
||||
|
@ -44,9 +42,10 @@ PYTHON_USES= gettext-runtime python
|
|||
PYTHON_USES_OFF= python:build,test
|
||||
PYTHON_CONFIGURE_OFF= --disable-python
|
||||
|
||||
MANPAGES_CONFIGURE_ENV_OFF+= XSLTPROC="true"
|
||||
MANPAGES_BUILD_DEPENDS+= ${LOCALBASE}/share/xsl/docbook/manpages/docbook.xsl:textproc/docbook-xsl \
|
||||
MANPAGES_BUILD_DEPENDS= ${LOCALBASE}/share/xsl/docbook/manpages/docbook.xsl:textproc/docbook-xsl \
|
||||
xsltproc:textproc/libxslt
|
||||
MANPAGES_CONFIGURE_ENV_OFF= XSLTPROC="false"
|
||||
|
||||
# No fancy color error messages
|
||||
CFLAGS+= ${CFLAGS_${CHOSEN_COMPILER_TYPE}}
|
||||
CFLAGS_clang= -fno-color-diagnostics
|
||||
|
@ -61,10 +60,6 @@ post-patch:
|
|||
@${REINPLACE_CMD} -e 's|%%PKGCONFIGDIR%%|${PKGCONFIGDIR}|g' \
|
||||
${BUILD_WRKSRC}/wscript
|
||||
|
||||
pre-build-MANPAGES-off:
|
||||
-${MKDIR} ${BUILD_WRKSRC}/bin/default/man
|
||||
${INSTALL_MAN} ${FILESDIR}/talloc.3 ${BUILD_WRKSRC}/bin/default/man
|
||||
|
||||
post-install:
|
||||
${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libtalloc.so.2
|
||||
|
||||
|
|
|
@ -1,677 +0,0 @@
|
|||
'\" t
|
||||
.\" Title: talloc
|
||||
.\" Author: [see the "AUTHOR" section]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
|
||||
.\" Date: 2015-04-10
|
||||
.\" Manual: System Administration tools
|
||||
.\" Source: Samba 4.0
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "TALLOC" "3" "2015\-04\-10" "Samba 4\&.0" "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"
|
||||
talloc \- hierarchical reference counted memory pool system with destructors
|
||||
.SH "SYNOPSIS"
|
||||
.sp
|
||||
.nf
|
||||
#include <talloc\&.h>
|
||||
.fi
|
||||
.SH "DESCRIPTION"
|
||||
.PP
|
||||
If you are used to talloc from Samba3 then please read this carefully, as talloc has changed a lot\&.
|
||||
.PP
|
||||
The new talloc is a hierarchical, reference counted memory pool system with destructors\&. Quite a mouthful really, but not too bad once you get used to it\&.
|
||||
.PP
|
||||
Perhaps the biggest change from Samba3 is that there is no distinction between a "talloc context" and a "talloc pointer"\&. Any pointer returned from talloc() is itself a valid talloc context\&. This means you can do this:
|
||||
.sp
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
struct foo *X = talloc(mem_ctx, struct foo);
|
||||
X\->name = talloc_strdup(X, "foo");
|
||||
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.PP
|
||||
and the pointer
|
||||
X\->name
|
||||
would be a "child" of the talloc context
|
||||
X
|
||||
which is itself a child of
|
||||
mem_ctx\&. So if you do
|
||||
talloc_free(mem_ctx)
|
||||
then it is all destroyed, whereas if you do
|
||||
talloc_free(X)
|
||||
then just
|
||||
X
|
||||
and
|
||||
X\->name
|
||||
are destroyed, and if you do
|
||||
talloc_free(X\->name)
|
||||
then just the name element of
|
||||
X
|
||||
is destroyed\&.
|
||||
.PP
|
||||
If you think about this, then what this effectively gives you is an n\-ary tree, where you can free any part of the tree with talloc_free()\&.
|
||||
.PP
|
||||
If you find this confusing, then I suggest you run the
|
||||
testsuite
|
||||
program to watch talloc in action\&. You may also like to add your own tests to
|
||||
testsuite\&.c
|
||||
to clarify how some particular situation is handled\&.
|
||||
.SH "TALLOC API"
|
||||
.PP
|
||||
The following is a complete guide to the talloc API\&. Read it all at least twice\&.
|
||||
.SS "(type *)talloc(const void *ctx, type);"
|
||||
.PP
|
||||
The talloc() macro is the core of the talloc library\&. It takes a memory
|
||||
\fIctx\fR
|
||||
and a
|
||||
\fItype\fR, and returns a pointer to a new area of memory of the given
|
||||
\fItype\fR\&.
|
||||
.PP
|
||||
The returned pointer is itself a talloc context, so you can use it as the
|
||||
\fIctx\fR
|
||||
argument to more calls to talloc() if you wish\&.
|
||||
.PP
|
||||
The returned pointer is a "child" of the supplied context\&. This means that if you talloc_free() the
|
||||
\fIctx\fR
|
||||
then the new child disappears as well\&. Alternatively you can free just the child\&.
|
||||
.PP
|
||||
The
|
||||
\fIctx\fR
|
||||
argument to talloc() can be NULL, in which case a new top level context is created\&.
|
||||
.SS "void *talloc_size(const void *ctx, size_t size);"
|
||||
.PP
|
||||
The function talloc_size() should be used when you don\*(Aqt have a convenient type to pass to talloc()\&. Unlike talloc(), it is not type safe (as it returns a void *), so you are on your own for type checking\&.
|
||||
.SS "(typeof(ptr)) talloc_ptrtype(const void *ctx, ptr);"
|
||||
.PP
|
||||
The talloc_ptrtype() macro should be used when you have a pointer and want to allocate memory to point at with this pointer\&. When compiling with gcc >= 3 it is typesafe\&. Note this is a wrapper of talloc_size() and talloc_get_name() will return the current location in the source file\&. and not the type\&.
|
||||
.SS "int talloc_free(void *ptr);"
|
||||
.PP
|
||||
The talloc_free() function frees a piece of talloc memory, and all its children\&. You can call talloc_free() on any pointer returned by talloc()\&.
|
||||
.PP
|
||||
The return value of talloc_free() indicates success or failure, with 0 returned for success and \-1 for failure\&. The only possible failure condition is if
|
||||
\fIptr\fR
|
||||
had a destructor attached to it and the destructor returned \-1\&. See
|
||||
\(lqtalloc_set_destructor()\(rq
|
||||
for details on destructors\&.
|
||||
.PP
|
||||
If this pointer has an additional parent when talloc_free() is called then the memory is not actually released, but instead the most recently established parent is destroyed\&. See
|
||||
\(lqtalloc_reference()\(rq
|
||||
for details on establishing additional parents\&.
|
||||
.PP
|
||||
For more control on which parent is removed, see
|
||||
\(lqtalloc_unlink()\(rq\&.
|
||||
.PP
|
||||
talloc_free() operates recursively on its children\&.
|
||||
.PP
|
||||
From the 2\&.0 version of talloc, as a special case, talloc_free() is refused on pointers that have more than one parent, as talloc would have no way of knowing which parent should be removed\&. To free a pointer that has more than one parent please use talloc_unlink()\&.
|
||||
.PP
|
||||
To help you find problems in your code caused by this behaviour, if you do try and free a pointer with more than one parent then the talloc logging function will be called to give output like this:
|
||||
.PP
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
ERROR: talloc_free with references at some_dir/source/foo\&.c:123
|
||||
reference at some_dir/source/other\&.c:325
|
||||
reference at some_dir/source/third\&.c:121
|
||||
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.PP
|
||||
Please see the documentation for talloc_set_log_fn() and talloc_set_log_stderr() for more information on talloc logging functions\&.
|
||||
.SS "void *talloc_reference(const void *ctx, const void *ptr);"
|
||||
.PP
|
||||
The talloc_reference() function makes
|
||||
\fIctx\fR
|
||||
an additional parent of
|
||||
\fIptr\fR\&.
|
||||
.PP
|
||||
The return value of talloc_reference() is always the original pointer
|
||||
\fIptr\fR, unless talloc ran out of memory in creating the reference in which case it will return NULL (each additional reference consumes around 48 bytes of memory on intel x86 platforms)\&.
|
||||
.PP
|
||||
If
|
||||
\fIptr\fR
|
||||
is NULL, then the function is a no\-op, and simply returns NULL\&.
|
||||
.PP
|
||||
After creating a reference you can free it in one of the following ways:
|
||||
.PP
|
||||
.RS 4
|
||||
.ie n \{\
|
||||
\h'-04'\(bu\h'+03'\c
|
||||
.\}
|
||||
.el \{\
|
||||
.sp -1
|
||||
.IP \(bu 2.3
|
||||
.\}
|
||||
you can talloc_free() any parent of the original pointer\&. That will reduce the number of parents of this pointer by 1, and will cause this pointer to be freed if it runs out of parents\&.
|
||||
.RE
|
||||
.sp
|
||||
.RS 4
|
||||
.ie n \{\
|
||||
\h'-04'\(bu\h'+03'\c
|
||||
.\}
|
||||
.el \{\
|
||||
.sp -1
|
||||
.IP \(bu 2.3
|
||||
.\}
|
||||
you can talloc_free() the pointer itself if it has at maximum one parent\&. This behaviour has been changed since the release of version 2\&.0\&. Further informations in the description of "talloc_free"\&.
|
||||
.RE
|
||||
.PP
|
||||
For more control on which parent to remove, see
|
||||
\(lqtalloc_unlink()\(rq\&.
|
||||
.SS "int talloc_unlink(const void *ctx, void *ptr);"
|
||||
.PP
|
||||
The talloc_unlink() function removes a specific parent from
|
||||
\fIptr\fR\&. The
|
||||
\fIctx\fR
|
||||
passed must either be a context used in talloc_reference() with this pointer, or must be a direct parent of ptr\&.
|
||||
.PP
|
||||
Note that if the parent has already been removed using talloc_free() then this function will fail and will return \-1\&. Likewise, if
|
||||
\fIptr\fR
|
||||
is NULL, then the function will make no modifications and return \-1\&.
|
||||
.PP
|
||||
Usually you can just use talloc_free() instead of talloc_unlink(), but sometimes it is useful to have the additional control on which parent is removed\&.
|
||||
.SS "void talloc_set_destructor(const void *ptr, int (*destructor)(void *));"
|
||||
.PP
|
||||
The function talloc_set_destructor() sets the
|
||||
\fIdestructor\fR
|
||||
for the pointer
|
||||
\fIptr\fR\&. A
|
||||
\fIdestructor\fR
|
||||
is a function that is called when the memory used by a pointer is about to be released\&. The destructor receives
|
||||
\fIptr\fR
|
||||
as an argument, and should return 0 for success and \-1 for failure\&.
|
||||
.PP
|
||||
The
|
||||
\fIdestructor\fR
|
||||
can do anything it wants to, including freeing other pieces of memory\&. A common use for destructors is to clean up operating system resources (such as open file descriptors) contained in the structure the destructor is placed on\&.
|
||||
.PP
|
||||
You can only place one destructor on a pointer\&. If you need more than one destructor then you can create a zero\-length child of the pointer and place an additional destructor on that\&.
|
||||
.PP
|
||||
To remove a destructor call talloc_set_destructor() with NULL for the destructor\&.
|
||||
.PP
|
||||
If your destructor attempts to talloc_free() the pointer that it is the destructor for then talloc_free() will return \-1 and the free will be ignored\&. This would be a pointless operation anyway, as the destructor is only called when the memory is just about to go away\&.
|
||||
.SS "int talloc_increase_ref_count(const void *\fIptr\fR);"
|
||||
.PP
|
||||
The talloc_increase_ref_count(\fIptr\fR) function is exactly equivalent to:
|
||||
.sp
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
talloc_reference(NULL, ptr);
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.PP
|
||||
You can use either syntax, depending on which you think is clearer in your code\&.
|
||||
.PP
|
||||
It returns 0 on success and \-1 on failure\&.
|
||||
.SS "size_t talloc_reference_count(const void *\fIptr\fR);"
|
||||
.PP
|
||||
Return the number of references to the pointer\&.
|
||||
.SS "void talloc_set_name(const void *ptr, const char *fmt, \&.\&.\&.);"
|
||||
.PP
|
||||
Each talloc pointer has a "name"\&. The name is used principally for debugging purposes, although it is also possible to set and get the name on a pointer in as a way of "marking" pointers in your code\&.
|
||||
.PP
|
||||
The main use for names on pointer is for "talloc reports"\&. See
|
||||
\(lqtalloc_report_depth_cb()\(rq,
|
||||
\(lqtalloc_report_depth_file()\(rq,
|
||||
\(lqtalloc_report()\(rq
|
||||
\(lqtalloc_report()\(rq
|
||||
and
|
||||
\(lqtalloc_report_full()\(rq
|
||||
for details\&. Also see
|
||||
\(lqtalloc_enable_leak_report()\(rq
|
||||
and
|
||||
\(lqtalloc_enable_leak_report_full()\(rq\&.
|
||||
.PP
|
||||
The talloc_set_name() function allocates memory as a child of the pointer\&. It is logically equivalent to:
|
||||
.sp
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
talloc_set_name_const(ptr, talloc_asprintf(ptr, fmt, \&.\&.\&.));
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.PP
|
||||
Note that multiple calls to talloc_set_name() will allocate more memory without releasing the name\&. All of the memory is released when the ptr is freed using talloc_free()\&.
|
||||
.SS "void talloc_set_name_const(const void *\fIptr\fR, const char *\fIname\fR);"
|
||||
.PP
|
||||
The function talloc_set_name_const() is just like talloc_set_name(), but it takes a string constant, and is much faster\&. It is extensively used by the "auto naming" macros, such as talloc_p()\&.
|
||||
.PP
|
||||
This function does not allocate any memory\&. It just copies the supplied pointer into the internal representation of the talloc ptr\&. This means you must not pass a
|
||||
\fIname\fR
|
||||
pointer to memory that will disappear before
|
||||
\fIptr\fR
|
||||
is freed with talloc_free()\&.
|
||||
.SS "void *talloc_named(const void *\fIctx\fR, size_t \fIsize\fR, const char *\fIfmt\fR, \&.\&.\&.);"
|
||||
.PP
|
||||
The talloc_named() function creates a named talloc pointer\&. It is equivalent to:
|
||||
.sp
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
ptr = talloc_size(ctx, size);
|
||||
talloc_set_name(ptr, fmt, \&.\&.\&.\&.);
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.SS "void *talloc_named_const(const void *\fIctx\fR, size_t \fIsize\fR, const char *\fIname\fR);"
|
||||
.PP
|
||||
This is equivalent to:
|
||||
.sp
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
ptr = talloc_size(ctx, size);
|
||||
talloc_set_name_const(ptr, name);
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.SS "const char *talloc_get_name(const void *\fIptr\fR);"
|
||||
.PP
|
||||
This returns the current name for the given talloc pointer,
|
||||
\fIptr\fR\&. See
|
||||
\(lqtalloc_set_name()\(rq
|
||||
for details\&.
|
||||
.SS "void *talloc_init(const char *\fIfmt\fR, \&.\&.\&.);"
|
||||
.PP
|
||||
This function creates a zero length named talloc context as a top level context\&. It is equivalent to:
|
||||
.sp
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
talloc_named(NULL, 0, fmt, \&.\&.\&.);
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.SS "void *talloc_new(void *\fIctx\fR);"
|
||||
.PP
|
||||
This is a utility macro that creates a new memory context hanging off an existing context, automatically naming it "talloc_new: __location__" where __location__ is the source line it is called from\&. It is particularly useful for creating a new temporary working context\&.
|
||||
.SS "(\fItype\fR *)talloc_realloc(const void *\fIctx\fR, void *\fIptr\fR, \fItype\fR, \fIcount\fR);"
|
||||
.PP
|
||||
The talloc_realloc() macro changes the size of a talloc pointer\&. It has the following equivalences:
|
||||
.sp
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
talloc_realloc(ctx, NULL, type, 1) ==> talloc(ctx, type);
|
||||
talloc_realloc(ctx, ptr, type, 0) ==> talloc_free(ptr);
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.PP
|
||||
The
|
||||
\fIctx\fR
|
||||
argument is only used if
|
||||
\fIptr\fR
|
||||
is not NULL, otherwise it is ignored\&.
|
||||
.PP
|
||||
talloc_realloc() returns the new pointer, or NULL on failure\&. The call will fail either due to a lack of memory, or because the pointer has more than one parent (see
|
||||
\(lqtalloc_reference()\(rq)\&.
|
||||
.SS "void *talloc_realloc_size(const void *ctx, void *ptr, size_t size);"
|
||||
.PP
|
||||
the talloc_realloc_size() function is useful when the type is not known so the type\-safe talloc_realloc() cannot be used\&.
|
||||
.SS "TYPE *talloc_steal(const void *\fInew_ctx\fR, const TYPE *\fIptr\fR);"
|
||||
.PP
|
||||
The talloc_steal() function changes the parent context of a talloc pointer\&. It is typically used when the context that the pointer is currently a child of is going to be freed and you wish to keep the memory for a longer time\&.
|
||||
.PP
|
||||
The talloc_steal() function returns the pointer that you pass it\&. It does not have any failure modes\&.
|
||||
.PP
|
||||
It is possible to produce loops in the parent/child relationship if you are not careful with talloc_steal()\&. No guarantees are provided as to your sanity or the safety of your data if you do this\&.
|
||||
.PP
|
||||
Note that if you try and call talloc_steal() on a pointer that has more than one parent then the result is ambiguous\&. Talloc will choose to remove the parent that is currently indicated by talloc_parent() and replace it with the chosen parent\&. You will also get a message like this via the talloc logging functions:
|
||||
.PP
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
WARNING: talloc_steal with references at some_dir/source/foo\&.c:123
|
||||
reference at some_dir/source/other\&.c:325
|
||||
reference at some_dir/source/third\&.c:121
|
||||
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.PP
|
||||
To unambiguously change the parent of a pointer please see the function
|
||||
\(lqtalloc_reparent()\(rq\&. See the talloc_set_log_fn() documentation for more information on talloc logging\&.
|
||||
.SS "TYPE *talloc_reparent(const void *\fIold_parent\fR, const void *\fInew_parent\fR, const TYPE *\fIptr\fR);"
|
||||
.PP
|
||||
The talloc_reparent() function changes the parent context of a talloc pointer\&. It is typically used when the context that the pointer is currently a child of is going to be freed and you wish to keep the memory for a longer time\&.
|
||||
.PP
|
||||
The talloc_reparent() function returns the pointer that you pass it\&. It does not have any failure modes\&.
|
||||
.PP
|
||||
The difference between talloc_reparent() and talloc_steal() is that talloc_reparent() can specify which parent you wish to change\&. This is useful when a pointer has multiple parents via references\&.
|
||||
.SS "TYPE *talloc_move(const void *\fInew_ctx\fR, TYPE **\fIptr\fR);"
|
||||
.PP
|
||||
The talloc_move() function is a wrapper around talloc_steal() which zeros the source pointer after the move\&. This avoids a potential source of bugs where a programmer leaves a pointer in two structures, and uses the pointer from the old structure after it has been moved to a new one\&.
|
||||
.SS "size_t talloc_total_size(const void *\fIptr\fR);"
|
||||
.PP
|
||||
The talloc_total_size() function returns the total size in bytes used by this pointer and all child pointers\&. Mostly useful for debugging\&.
|
||||
.PP
|
||||
Passing NULL is allowed, but it will only give a meaningful result if talloc_enable_leak_report() or talloc_enable_leak_report_full() has been called\&.
|
||||
.SS "size_t talloc_total_blocks(const void *\fIptr\fR);"
|
||||
.PP
|
||||
The talloc_total_blocks() function returns the total memory block count used by this pointer and all child pointers\&. Mostly useful for debugging\&.
|
||||
.PP
|
||||
Passing NULL is allowed, but it will only give a meaningful result if talloc_enable_leak_report() or talloc_enable_leak_report_full() has been called\&.
|
||||
.SS "void talloc_report(const void *ptr, FILE *f);"
|
||||
.PP
|
||||
The talloc_report() function prints a summary report of all memory used by
|
||||
\fIptr\fR\&. One line of report is printed for each immediate child of ptr, showing the total memory and number of blocks used by that child\&.
|
||||
.PP
|
||||
You can pass NULL for the pointer, in which case a report is printed for the top level memory context, but only if talloc_enable_leak_report() or talloc_enable_leak_report_full() has been called\&.
|
||||
.SS "void talloc_report_full(const void *\fIptr\fR, FILE *\fIf\fR);"
|
||||
.PP
|
||||
This provides a more detailed report than talloc_report()\&. It will recursively print the entire tree of memory referenced by the pointer\&. References in the tree are shown by giving the name of the pointer that is referenced\&.
|
||||
.PP
|
||||
You can pass NULL for the pointer, in which case a report is printed for the top level memory context, but only if talloc_enable_leak_report() or talloc_enable_leak_report_full() has been called\&.
|
||||
.SS ""
|
||||
.HP \w'void\ talloc_report_depth_cb('u
|
||||
.BI "void talloc_report_depth_cb(" "const\ void\ *ptr" ", " "int\ depth" ", " "int\ max_depth" ", " "void\ (*callback)(const\ void\ *ptr,\ int\ depth,\ int\ max_depth,\ int\ is_ref,\ void\ *priv)" ", " "void\ *priv" ");"
|
||||
.PP
|
||||
This provides a more flexible reports than talloc_report()\&. It will recursively call the callback for the entire tree of memory referenced by the pointer\&. References in the tree are passed with
|
||||
\fIis_ref = 1\fR
|
||||
and the pointer that is referenced\&.
|
||||
.PP
|
||||
You can pass NULL for the pointer, in which case a report is printed for the top level memory context, but only if talloc_enable_leak_report() or talloc_enable_leak_report_full() has been called\&.
|
||||
.PP
|
||||
The recursion is stopped when depth >= max_depth\&. max_depth = \-1 means only stop at leaf nodes\&.
|
||||
.SS ""
|
||||
.HP \w'void\ talloc_report_depth_file('u
|
||||
.BI "void talloc_report_depth_file(" "const\ void\ *ptr" ", " "int\ depth" ", " "int\ max_depth" ", " "FILE\ *f" ");"
|
||||
.PP
|
||||
This provides a more flexible reports than talloc_report()\&. It will let you specify the depth and max_depth\&.
|
||||
.SS "void talloc_enable_leak_report(void);"
|
||||
.PP
|
||||
This enables calling of talloc_report(NULL, stderr) when the program exits\&. In Samba4 this is enabled by using the \-\-leak\-report command line option\&.
|
||||
.PP
|
||||
For it to be useful, this function must be called before any other talloc function as it establishes a "null context" that acts as the top of the tree\&. If you don\*(Aqt call this function first then passing NULL to talloc_report() or talloc_report_full() won\*(Aqt give you the full tree printout\&.
|
||||
.PP
|
||||
Here is a typical talloc report:
|
||||
.sp
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
talloc report on \*(Aqnull_context\*(Aq (total 267 bytes in 15 blocks)
|
||||
libcli/auth/spnego_parse\&.c:55 contains 31 bytes in 2 blocks
|
||||
libcli/auth/spnego_parse\&.c:55 contains 31 bytes in 2 blocks
|
||||
iconv(UTF8,CP850) contains 42 bytes in 2 blocks
|
||||
libcli/auth/spnego_parse\&.c:55 contains 31 bytes in 2 blocks
|
||||
iconv(CP850,UTF8) contains 42 bytes in 2 blocks
|
||||
iconv(UTF8,UTF\-16LE) contains 45 bytes in 2 blocks
|
||||
iconv(UTF\-16LE,UTF8) contains 45 bytes in 2 blocks
|
||||
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.SS "void talloc_enable_leak_report_full(void);"
|
||||
.PP
|
||||
This enables calling of talloc_report_full(NULL, stderr) when the program exits\&. In Samba4 this is enabled by using the \-\-leak\-report\-full command line option\&.
|
||||
.PP
|
||||
For it to be useful, this function must be called before any other talloc function as it establishes a "null context" that acts as the top of the tree\&. If you don\*(Aqt call this function first then passing NULL to talloc_report() or talloc_report_full() won\*(Aqt give you the full tree printout\&.
|
||||
.PP
|
||||
Here is a typical full report:
|
||||
.sp
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
full talloc report on \*(Aqroot\*(Aq (total 18 bytes in 8 blocks)
|
||||
p1 contains 18 bytes in 7 blocks (ref 0)
|
||||
r1 contains 13 bytes in 2 blocks (ref 0)
|
||||
reference to: p2
|
||||
p2 contains 1 bytes in 1 blocks (ref 1)
|
||||
x3 contains 1 bytes in 1 blocks (ref 0)
|
||||
x2 contains 1 bytes in 1 blocks (ref 0)
|
||||
x1 contains 1 bytes in 1 blocks (ref 0)
|
||||
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.SS "(\fItype\fR *)talloc_zero(const void *\fIctx\fR, \fItype\fR);"
|
||||
.PP
|
||||
The talloc_zero() macro is equivalent to:
|
||||
.sp
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
ptr = talloc(ctx, type);
|
||||
if (ptr) memset(ptr, 0, sizeof(type));
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.SS "void *talloc_zero_size(const void *\fIctx\fR, size_t \fIsize\fR)"
|
||||
.PP
|
||||
The talloc_zero_size() function is useful when you don\*(Aqt have a known type\&.
|
||||
.SS "void *talloc_memdup(const void *\fIctx\fR, const void *\fIp\fR, size_t size);"
|
||||
.PP
|
||||
The talloc_memdup() function is equivalent to:
|
||||
.sp
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
ptr = talloc_size(ctx, size);
|
||||
if (ptr) memcpy(ptr, p, size);
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.SS "char *talloc_strdup(const void *\fIctx\fR, const char *\fIp\fR);"
|
||||
.PP
|
||||
The talloc_strdup() function is equivalent to:
|
||||
.sp
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
ptr = talloc_size(ctx, strlen(p)+1);
|
||||
if (ptr) memcpy(ptr, p, strlen(p)+1);
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.PP
|
||||
This function sets the name of the new pointer to the passed string\&. This is equivalent to:
|
||||
.sp
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
talloc_set_name_const(ptr, ptr)
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.SS "char *talloc_strndup(const void *\fIt\fR, const char *\fIp\fR, size_t \fIn\fR);"
|
||||
.PP
|
||||
The talloc_strndup() function is the talloc equivalent of the C library function strndup(3)\&.
|
||||
.PP
|
||||
This function sets the name of the new pointer to the passed string\&. This is equivalent to:
|
||||
.sp
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
talloc_set_name_const(ptr, ptr)
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.SS "char *talloc_vasprintf(const void *\fIt\fR, const char *\fIfmt\fR, va_list \fIap\fR);"
|
||||
.PP
|
||||
The talloc_vasprintf() function is the talloc equivalent of the C library function vasprintf(3)\&.
|
||||
.PP
|
||||
This function sets the name of the new pointer to the new string\&. This is equivalent to:
|
||||
.sp
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
talloc_set_name_const(ptr, ptr)
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.SS "char *talloc_asprintf(const void *\fIt\fR, const char *\fIfmt\fR, \&.\&.\&.);"
|
||||
.PP
|
||||
The talloc_asprintf() function is the talloc equivalent of the C library function asprintf(3)\&.
|
||||
.PP
|
||||
This function sets the name of the new pointer to the passed string\&. This is equivalent to:
|
||||
.sp
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
talloc_set_name_const(ptr, ptr)
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.SS "char *talloc_asprintf_append(char *s, const char *fmt, \&.\&.\&.);"
|
||||
.PP
|
||||
The talloc_asprintf_append() function appends the given formatted string to the given string\&.
|
||||
.PP
|
||||
This function sets the name of the new pointer to the new string\&. This is equivalent to:
|
||||
.sp
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
talloc_set_name_const(ptr, ptr)
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.SS "(type *)talloc_array(const void *ctx, type, unsigned int count);"
|
||||
.PP
|
||||
The talloc_array() macro is equivalent to:
|
||||
.sp
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
(type *)talloc_size(ctx, sizeof(type) * count);
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.PP
|
||||
except that it provides integer overflow protection for the multiply, returning NULL if the multiply overflows\&.
|
||||
.SS "void *talloc_array_size(const void *ctx, size_t size, unsigned int count);"
|
||||
.PP
|
||||
The talloc_array_size() function is useful when the type is not known\&. It operates in the same way as talloc_array(), but takes a size instead of a type\&.
|
||||
.SS "(typeof(ptr)) talloc_array_ptrtype(const void *ctx, ptr, unsigned int count);"
|
||||
.PP
|
||||
The talloc_ptrtype() macro should be used when you have a pointer to an array and want to allocate memory of an array to point at with this pointer\&. When compiling with gcc >= 3 it is typesafe\&. Note this is a wrapper of talloc_array_size() and talloc_get_name() will return the current location in the source file\&. and not the type\&.
|
||||
.SS "void *talloc_realloc_fn(const void *ctx, void *ptr, size_t size)"
|
||||
.PP
|
||||
This is a non\-macro version of talloc_realloc(), which is useful as libraries sometimes want a realloc function pointer\&. A realloc(3) implementation encapsulates the functionality of malloc(3), free(3) and realloc(3) in one call, which is why it is useful to be able to pass around a single function pointer\&.
|
||||
.SS "void *talloc_autofree_context(void);"
|
||||
.PP
|
||||
This is a handy utility function that returns a talloc context which will be automatically freed on program exit\&. This can be used to reduce the noise in memory leak reports\&.
|
||||
.SS "void *talloc_check_name(const void *ptr, const char *name);"
|
||||
.PP
|
||||
This function checks if a pointer has the specified
|
||||
\fIname\fR\&. If it does then the pointer is returned\&. It it doesn\*(Aqt then NULL is returned\&.
|
||||
.SS "(type *)talloc_get_type(const void *ptr, type);"
|
||||
.PP
|
||||
This macro allows you to do type checking on talloc pointers\&. It is particularly useful for void* private pointers\&. It is equivalent to this:
|
||||
.sp
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
(type *)talloc_check_name(ptr, #type)
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.SS "talloc_set_type(const void *ptr, type);"
|
||||
.PP
|
||||
This macro allows you to force the name of a pointer to be a particular
|
||||
\fItype\fR\&. This can be used in conjunction with talloc_get_type() to do type checking on void* pointers\&.
|
||||
.PP
|
||||
It is equivalent to this:
|
||||
.sp
|
||||
.if n \{\
|
||||
.RS 4
|
||||
.\}
|
||||
.nf
|
||||
talloc_set_name_const(ptr, #type)
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
.\}
|
||||
.SS "talloc_set_log_fn(void (*log_fn)(const char *message));"
|
||||
.PP
|
||||
This function sets a logging function that talloc will use for warnings and errors\&. By default talloc will not print any warnings or errors\&.
|
||||
.SS "talloc_set_log_stderr(void);"
|
||||
.PP
|
||||
This sets the talloc log function to write log messages to stderr
|
||||
.SH "PERFORMANCE"
|
||||
.PP
|
||||
All the additional features of talloc(3) over malloc(3) do come at a price\&. We have a simple performance test in Samba4 that measures talloc() versus malloc() performance, and it seems that talloc() is about 10% slower than malloc() on my x86 Debian Linux box\&. For Samba, the great reduction in code complexity that we get by using talloc makes this worthwhile, especially as the total overhead of talloc/malloc in Samba is already quite small\&.
|
||||
.SH "SEE ALSO"
|
||||
.PP
|
||||
malloc(3), strndup(3), vasprintf(3), asprintf(3),
|
||||
\m[blue]\fB\%http://talloc.samba.org/\fR\m[]
|
||||
.SH "AUTHOR"
|
||||
.PP
|
||||
The original Samba software and related utilities were created by Andrew Tridgell\&. Samba is now developed by the Samba Team as an Open Source project similar to the way the Linux kernel is developed\&.
|
||||
.SH "COPYRIGHT/LICENSE"
|
||||
.PP
|
||||
Copyright (C) Andrew Tridgell 2004
|
||||
.PP
|
||||
This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version\&.
|
||||
.PP
|
||||
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE\&. See the GNU General Public License for more details\&.
|
||||
.PP
|
||||
You should have received a copy of the GNU General Public License along with this program; if not, see http://www\&.gnu\&.org/licenses/\&.
|
|
@ -7,4 +7,4 @@ lib/libtalloc.so.2
|
|||
%%PYTHON%%%%PYTHON_SITELIBDIR%%/talloc%%PYTHON_EXT_SUFFIX%%.so
|
||||
%%PYTHON%%%%PKGCONFIGDIR%%/pytalloc-util%%PYTHON_EXT_SUFFIX%%.pc
|
||||
%%PKGCONFIGDIR%%/talloc.pc
|
||||
share/man/man3/talloc.3.gz
|
||||
%%MANPAGES%%share/man/man3/talloc.3.gz
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
PORTNAME= tevent
|
||||
DISTVERSION= 0.15.0
|
||||
PORTREVISION= 1
|
||||
PORTEPOCH= 0
|
||||
CATEGORIES= devel
|
||||
MASTER_SITES= SAMBA
|
||||
|
@ -32,9 +33,7 @@ MAKE_ENV= PYTHONHASHSEED=1
|
|||
|
||||
CONFLICTS_INSTALL= tevent[0-9]*
|
||||
|
||||
MANPAGES_DESC= Build and install manpages (requires textproc/docbook-xsl)
|
||||
|
||||
OPTIONS_DEFINE= DEBUG MANPAGES PYTHON
|
||||
OPTIONS_DEFINE= DEBUG PYTHON
|
||||
OPTIONS_DEFAULT= PYTHON
|
||||
OPTIONS_SUB= yes
|
||||
|
||||
|
@ -47,9 +46,6 @@ PYTHON_USE= python=py3kplist
|
|||
PYTHON_USES_OFF= python:build,test
|
||||
PYTHON_CONFIGURE_OFF= --disable-python
|
||||
|
||||
MANPAGES_CONFIGURE_ENV_OFF= XSLTPROC="true"
|
||||
MANPAGES_BUILD_DEPENDS= ${LOCALBASE}/share/xsl/docbook/manpages/docbook.xsl:textproc/docbook-xsl \
|
||||
xsltproc:textproc/libxslt
|
||||
# No fancy color error messages
|
||||
CFLAGS+= ${CFLAGS_${CHOSEN_COMPILER_TYPE}}
|
||||
CFLAGS_clang= -fno-color-diagnostics
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
PORTNAME= tevent
|
||||
DISTVERSION= 0.16.1
|
||||
PORTREVISION= 1
|
||||
PORTREVISION= 2
|
||||
PORTEPOCH= 0
|
||||
CATEGORIES= devel
|
||||
MASTER_SITES= SAMBA
|
||||
|
@ -34,9 +34,7 @@ MAKE_ENV= PYTHONHASHSEED=1
|
|||
|
||||
CONFLICTS_INSTALL= tevent
|
||||
|
||||
MANPAGES_DESC= Build and install manpages (requires textproc/docbook-xsl)
|
||||
|
||||
OPTIONS_DEFINE= DEBUG MANPAGES PYTHON
|
||||
OPTIONS_DEFINE= DEBUG PYTHON
|
||||
OPTIONS_DEFAULT= PYTHON
|
||||
OPTIONS_SUB= yes
|
||||
|
||||
|
@ -49,9 +47,6 @@ PYTHON_USE= python=py3kplist
|
|||
PYTHON_USES_OFF= python:build,test
|
||||
PYTHON_CONFIGURE_OFF= --disable-python
|
||||
|
||||
MANPAGES_CONFIGURE_ENV_OFF= XSLTPROC="true"
|
||||
MANPAGES_BUILD_DEPENDS= ${LOCALBASE}/share/xsl/docbook/manpages/docbook.xsl:textproc/docbook-xsl \
|
||||
xsltproc:textproc/libxslt
|
||||
# No fancy color error messages
|
||||
CFLAGS+= ${CFLAGS_${CHOSEN_COMPILER_TYPE}}
|
||||
CFLAGS_clang= -fno-color-diagnostics
|
||||
|
|
Loading…
Add table
Reference in a new issue