Commit 3ec5d07e 3ec5d07e67044b614b8beab0e34908b4eec23eab by Sergey Poznyakoff

Update docs + minor changes.

* .gitmodules: Add imprimatur.
* Makefile.am: Likewise.
* configure.ac: Likewise.
* doc/Makefile.am: Likewise.
* bootstrap.conf: Comment out make in doc/texinfo
* doc/texinfo/Makefile.am: Rewrite.
* doc/texinfo/fdl.texi: Minor change.
* doc/texinfo/getdate.texi: Minor change.
* doc/texinfo/mailutils.texi: begin rewrite.
* doc/texinfo/mu-mh.texi: Minor change.
* doc/texinfo/programs.texi: begin rewrite.
* doc/texinfo/sieve.texi: Minor change.
* doc/texinfo/usage.texi: Minor change.

* libmailutils/cfg/lexer.l: Allow for @ in unquoted strings
* pop3d/bulletin.c: Relax safety checks for bulletin.db
* pop3d/logindelay.c: Relax safety checks for stat.sb
* pop3d/pop3d.h (DEFAULT_GROUP_DB_SAFETY): New define.
1 parent 6d9c7d66
1 [submodule "gint"] 1 [submodule "gint"]
2 path = gint 2 path = gint
3 url = git://git.gnu.org.ua/gint.git 3 url = git://git.gnu.org.ua/gint.git
4 [submodule "doc/imprimatur"]
5 path = doc/imprimatur
6 url = git://git.gnu.org.ua/imprimatur.git
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
15 ## You should have received a copy of the GNU General Public License 15 ## You should have received a copy of the GNU General Public License
16 ## along with GNU Mailutils. If not, see <http://www.gnu.org/licenses/>. 16 ## along with GNU Mailutils. If not, see <http://www.gnu.org/licenses/>.
17 17
18 ACLOCAL_AMFLAGS = -I m4 -I am -I gint 18 ACLOCAL_AMFLAGS = -I m4 -I am -I gint -I doc/imprimatur
19 19
20 if MU_COND_PYTHON 20 if MU_COND_PYTHON
21 PYTHON_DIR = python 21 PYTHON_DIR = python
......
...@@ -100,5 +100,5 @@ done ...@@ -100,5 +100,5 @@ done
100 wget -P m4 http://git.savannah.gnu.org/cgit/radius.git/plain/scripts/radius.m4 100 wget -P m4 http://git.savannah.gnu.org/cgit/radius.git/plain/scripts/radius.m4
101 101
102 # Create included listings for texinfo docs. 102 # Create included listings for texinfo docs.
103 make -C doc/texinfo -f maint.mk 103 #make -C doc/texinfo -f maint.mk
104 104
......
...@@ -1316,23 +1316,7 @@ dnl get sysconfdir expanded. ...@@ -1316,23 +1316,7 @@ dnl get sysconfdir expanded.
1316 CPPFLAGS="$CPPFLAGS -DSYSCONFDIR=\\\"\$(sysconfdir)\\\"" 1316 CPPFLAGS="$CPPFLAGS -DSYSCONFDIR=\\\"\$(sysconfdir)\\\""
1317 1317
1318 # Doc hints. 1318 # Doc hints.
1319 # Select a rendition level: 1319 IMPRIMATUR_INIT([doc/imprimatur])
1320 # DISTRIB for stable releases (at most one dot in the version number)
1321 # and maintenance releases (two dots, patchlevel < 50)
1322 # PROOF for alpha releases.
1323 # PUBLISH can only be required manually when running make in doc/
1324 AC_SUBST(RENDITION)
1325 case `echo $VERSION|sed 's/[[^.]]//g'` in
1326 ""|".") RENDITION=DISTRIB;;
1327 "..") if test `echo $VERSION | sed 's/.*\.//'` -lt 50; then
1328 RENDITION=DISTRIB
1329 else
1330 AC_DEFINE_UNQUOTED([MU_ALPHA_RELEASE], 1,
1331 [Define if this is an alpha release])
1332 RENDITION=PROOF
1333 fi;;
1334 *) RENDITION=PROOF;;
1335 esac
1336 1320
1337 AC_CONFIG_COMMANDS([status],[ 1321 AC_CONFIG_COMMANDS([status],[
1338 cat <<EOF 1322 cat <<EOF
......
...@@ -15,5 +15,5 @@ ...@@ -15,5 +15,5 @@
15 ## You should have received a copy of the GNU General Public License 15 ## You should have received a copy of the GNU General Public License
16 ## along with GNU Mailutils. If not, see <http://www.gnu.org/licenses/>. 16 ## along with GNU Mailutils. If not, see <http://www.gnu.org/licenses/>.
17 17
18 SUBDIRS = texinfo man 18 SUBDIRS = imprimatur texinfo man
19 EXTRA_DIST = ChangeLog.CVS rfc/README 19 EXTRA_DIST = ChangeLog.CVS rfc/README
......
imprimatur @ f32ef198
1 Subproject commit f32ef1983968e755cd580b06e369476d7e7f88b6
...@@ -19,6 +19,10 @@ mailutils.tmp ...@@ -19,6 +19,10 @@ mailutils.tmp
19 mailutils.toc 19 mailutils.toc
20 mailutils.tp 20 mailutils.tp
21 mailutils.vr 21 mailutils.vr
22 mailutils.fl
23 mailutils.kw
24 mailutils.pdf
25 mailutils.pr
22 mdate-sh 26 mdate-sh
23 muint.info* 27 muint.info*
24 stamp-1 28 stamp-1
......
...@@ -17,174 +17,53 @@ ...@@ -17,174 +17,53 @@
17 17
18 info_TEXINFOS = mailutils.texi 18 info_TEXINFOS = mailutils.texi
19 19
20 INCFILES = \
21 addr.inc\
22 http.inc\
23 mailcap.inc\
24 numaddr.inc\
25 sfrom.inc\
26 url-parse.inc
27
28 RENDITION_TEXI=rendition.texi macros.texi
29
30 mailutils_TEXINFOS = \ 20 mailutils_TEXINFOS = \
31 address.texi\
32 attribute.texi\
33 auth.texi\
34 body.texi\
35 c-api.texi\
36 encoding.texi\
37 envelope.texi\
38 fdl.texi\ 21 fdl.texi\
39 folder.texi\
40 framework.texi\
41 getdate.texi\ 22 getdate.texi\
42 headers.texi\ 23 macros.texi\
43 imap4.texi\
44 iterator.texi\
45 libmu_scm.texi\
46 libmu_auth.texi\
47 libmu_sieve.texi\
48 locker.texi\
49 mailbox.texi\
50 mailcap.texi\
51 maildir.texi\
52 mailer.texi\
53 mbox.texi\
54 message.texi\
55 mh.texi\
56 mu-mh.texi\ 24 mu-mh.texi\
57 mu_address.texi\
58 mu_body.texi\
59 mu_logger.texi\
60 mu_mailbox.texi\
61 mu_message.texi\
62 mu_mime.texi\
63 mu_scm.texi\
64 nntp.texi\
65 parse822.texi\
66 pop3.texi\
67 programs.texi\ 25 programs.texi\
68 sendmail.texi\
69 sieve.texi\ 26 sieve.texi\
70 smtp.texi\
71 stream.texi\
72 usage.texi\ 27 usage.texi\
73 url.texi\ 28 version.texi
74 $(RENDITION_TEXI)\
75 $(INCFILES)
76 29
77 DISTCLEANFILES=*.pgs *.kys *.vrs
78 clean-local: 30 clean-local:
79 rm -rf manual 31 rm -rf manual
80 32
81 # The rendering level is one of PUBLISH, DISTRIB or PROOF. 33 AM_MAKEINFOFLAGS = @IMPRIMATUR_MAKEINFOFLAGS@
82 # Just call `make RENDITION=PROOF [target]' if you want PROOF rendition. 34 # Imprimatur setup
83 35 imprimatur_INPUT=$(info_TEXINFOS) $(mailutils_TEXINFOS)
84 MAKEINFOFLAGS=-D$(RENDITION) 36 include ../imprimatur/imprimatur.mk
85 GENDOCS=gendocs.sh 37 #CHECK_DOCS=$(top_srcdir)/@IMPRIMATUR_MODULE_DIR@/check-docs.sh
86 TEXI2DVI=texi2dvi -t '@set $(RENDITION)' -E
87
88 # Make sure you set TEXINPUTS.
89 # TEXINPUTS=/usr/share/texmf/pdftex/plain/misc/ is ok for most distributions
90
91 TEXINPUTS=$(srcdir):$(top_srcdir)/build-aux:$$TEXINPUTS
92
93 manual:
94 TEXINPUTS=$(srcdir):$(top_srcdir)/build-aux:$(TEXINPUTS) \
95 MAKEINFO="$(MAKEINFO) $(MAKEINFOFLAGS)" \
96 TEXI2DVI="$(TEXI2DVI) -t @finalout" \
97 $(GENDOCS) --texi2html $(PACKAGE) '$(PACKAGE_NAME) manual'
98
99
100 EXTRA_DIST=gendocs_template mastermenu.el untabify.el
101 38
102 master-menu: 39 # Checking
103 emacs -batch -l mastermenu.el -f make-master-menu $(info_TEXINFOS) 40 all-check-docs: imprimatur-basic-checks
104 41
105 untabify: 42 check-docs:
106 emacs -batch -l untabify.el $(info_TEXINFOS) $(mailutils_TEXINFOS) 43 @$(MAKE) -k all-check-docs
107
108 fix-sentence-spacing:
109 for file in $(info_TEXINFOS) $(mailutils_TEXINFOS); \
110 do \
111 if grep -q '\. [@A-Z]' $$file; then \
112 mv $$file $${file}~; \
113 sed -r 's/\. ([@A-Z])/. \1/g' $${file}~ > $$file; \
114 fi; \
115 done
116
117 final: untabify fix-sentence-spacing master-menu
118
119
120 # Checks
121 check-tabs:
122 @if test -n "`cat $(info_TEXINFOS) $(mailutils_TEXINFOS) |\
123 tr -d -c '\t'`"; then \
124 echo >&2 "Sources contain tabs; run make untabify"; \
125 false; \
126 fi
127
128 check-sentence-spacing:
129 @if grep -q '\. [@A-Z]' $(info_TEXINFOS) $(mailutils_TEXINFOS); then \
130 echo >&2 "Sources contain double-space sentence separators"; \
131 echo >&2 "Run make fix-sentence-spacing to fix"; \
132 fi
133 44
134 check-format: check-tabs check-sentence-spacing 45 #
135 46
136 check-refs: 47 master-menu: imprimatur-master-menu
137 @for file in $(info_TEXINFOS) $(mailutils_TEXINFOS); \ 48 untabify: imprimatur-untabify
138 do \ 49 final: imprimatur-final
139 sed -e = $$file | \
140 sed -n 'N;/@FIXME-.*ref/{s/\(^[0-9][0-9]*\).*@FIXME-.*ref{\([^}]*\)}.*/'$$file':\1: \2/gp}'; \
141 done > $@-t; \
142 if [ -s $@-t ]; then \
143 echo >&2 "Unresolved cross-references:"; \
144 cat $@-t >&2;\
145 rm $@-t; \
146 else \
147 rm -f $@-t; \
148 fi
149 50
150 check-fixmes: 51 # Web manual
151 @for file in $(info_TEXINFOS) $(mailutils_TEXINFOS); \ 52 #EXTRA_DIST = \
152 do \ 53 # gendocs_template
153 sed -e = $$file | \
154 sed -n 'N;/@FIXME{/{s/\(^[0-9][0-9]*\).*@FIXME{\([^}]*\).*/'$$file':\1: \2/gp}'; \
155 done > $@-t; \
156 if [ -s $@-t ]; then \
157 echo >&2 "Unresolved FIXMEs:"; \
158 cat $@-t >&2; \
159 rm $@-t; \
160 false; \
161 else \
162 rm -f $@-t; \
163 fi
164 54
165 check-writeme: 55 GENDOCS=gendocs.sh
166 @grep -Hn @WRITEME $(info_TEXINFOS) $(mailutils_TEXINFOS) > $@-t; \ 56 TEXI2DVI=texi2dvi -t '@set $(RENDITION)' -E
167 if [ -s $@-t ]; then \
168 echo "Empty nodes:"; \
169 cat $@-t; \
170 rm $@-t; \
171 false;\
172 else \
173 rm $@-t; \
174 fi
175 57
176 check-unrevised: 58 .PHONY: manual
177 @grep -Hn @UNREVISED $(info_TEXINFOS) $(mailutils_TEXINFOS) > $@-t; \ 59 manual:
178 if [ -s $@-t ]; then \ 60 TEXINPUTS=$(srcdir):$(top_srcdir)/build-aux:$(TEXINPUTS) \
179 echo >&2 "Unrevised nodes:"; \ 61 MAKEINFO="$(MAKEINFO) $(MAKEINFOFLAGS) $(AM_MAKEINFOFLAGS)" \
180 cat $@-t >&2; \ 62 TEXI2DVI="$(TEXI2DVI)" \
181 rm $@-t; \ 63 TEXI2HTML="texi2html $(AM_MAKEINFOFLAGS)" \
182 false;\ 64 $(GENDOCS) --texi2html $(PACKAGE) '$(PACKAGE_NAME) manual'
183 else \
184 rm $@-t; \
185 fi
186 65
187 all-check-docs: check-format check-writeme check-unrevised check-refs check-fixmes 66 manual.tar.bz2: manual
67 tar cfj manual.tar.bz2 manual
188 68
189 check-docs: 69 man-tar: manual.tar.bz2
190 $(MAKE) -k all-check-docs
......
1 @setfilename fdl.info
2 @node GNU FDL
3 @appendix GNU Free Documentation License
4 @cindex FDL, GNU Free Documentation License 1 @cindex FDL, GNU Free Documentation License
5 @center Version 1.2, November 2002 2 @center Version 1.2, November 2002
6 3
......
...@@ -3,12 +3,11 @@ ...@@ -3,12 +3,11 @@
3 @setfilename mailutils.info 3 @setfilename mailutils.info
4 @settitle GNU Mailutils Manual 4 @settitle GNU Mailutils Manual
5 @setchapternewpage odd 5 @setchapternewpage odd
6 @finalout
7 @c %**end of header 6 @c %**end of header
8 7
9 @include version.texi 8 @include version.texi
10 @include macros.texi
11 @include rendition.texi 9 @include rendition.texi
10 @include macros.texi
12 11
13 @c Define indices 12 @c Define indices
14 @defcodeindex op 13 @defcodeindex op
...@@ -42,7 +41,7 @@ ...@@ -42,7 +41,7 @@
42 * readmsg: (mailutils)readmsg. Extract Messages from a Folder. 41 * readmsg: (mailutils)readmsg. Extract Messages from a Folder.
43 * sieve: (mailutils)sieve. Mail Filtering Utility. 42 * sieve: (mailutils)sieve. Mail Filtering Utility.
44 * mimeview: (mailutils)mimeview. View MIME Messages. 43 * mimeview: (mailutils)mimeview. View MIME Messages.
45 * mailutils-config: (mailutils)mailutils-config. List Information about Mailutils. 44 * mu: (mailutils)mu. Mailutils Multi-Purpose Tool
46 @end direntry 45 @end direntry
47 @end ifinfo 46 @end ifinfo
48 47
...@@ -57,13 +56,9 @@ Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2008, 2009, ...@@ -57,13 +56,9 @@ Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2008, 2009,
57 Permission is granted to copy, distribute and/or modify this document 56 Permission is granted to copy, distribute and/or modify this document
58 under the terms of the GNU Free Documentation License, Version 1.2 or 57 under the terms of the GNU Free Documentation License, Version 1.2 or
59 any later version published by the Free Software Foundation; with no 58 any later version published by the Free Software Foundation; with no
60 Invariant Sections, with the Front-Cover texts being ``A GNU Manual'', 59 Invariant Sections, no Front-Cover, and no Back-Cover texts.
61 and with the Back-Cover Texts as in (a) below. A copy of the license 60 A copy of the license is included in the section entitled ``GNU Free
62 is included in the section entitled ``GNU Free Documentation License''. 61 Documentation License''.
63
64 (a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
65 this GNU Manual, like GNU software. Copies published by the Free
66 Software Foundation raise funds for GNU development.''
67 @end copying 62 @end copying
68 63
69 @titlepage 64 @titlepage
...@@ -75,9 +70,11 @@ Software Foundation raise funds for GNU development.'' ...@@ -75,9 +70,11 @@ Software Foundation raise funds for GNU development.''
75 @insertcopying 70 @insertcopying
76 @end titlepage 71 @end titlepage
77 72
73 @ifnothtml
78 @page 74 @page
79 @summarycontents 75 @summarycontents
80 @page 76 @page
77 @end ifnothtml
81 @contents 78 @contents
82 79
83 @ifnottex 80 @ifnottex
...@@ -125,6 +122,7 @@ Mailutils Programs ...@@ -125,6 +122,7 @@ Mailutils Programs
125 122
126 * command line:: Command Line Syntax. 123 * command line:: Command Line Syntax.
127 * configuration:: Common Configuration File. 124 * configuration:: Common Configuration File.
125 * debugging::
128 126
129 * frm and from:: List Headers from a Mailbox. 127 * frm and from:: List Headers from a Mailbox.
130 * mail:: Send and Receive Mail. 128 * mail:: Send and Receive Mail.
...@@ -145,7 +143,7 @@ Mailutils Programs ...@@ -145,7 +143,7 @@ Mailutils Programs
145 143
146 * mh:: The MH Message Handling System. 144 * mh:: The MH Message Handling System.
147 145
148 * mailutils-config:: Get the Information about the Mailutils Build. 146 * mu:: Mailutils Multi-Purpose Tool.
149 147
150 Command Line 148 Command Line
151 149
...@@ -177,13 +175,19 @@ Configuration File Syntax ...@@ -177,13 +175,19 @@ Configuration File Syntax
177 175
178 * Comments:: 176 * Comments::
179 * Statements:: 177 * Statements::
180 * Block Statements:: 178 * Paths::
181 179
182 Server Settings 180 Server Settings
183 181
184 * General Server Configuration:: 182 * General Server Configuration::
185 * Server Statement:: 183 * Server Statement::
186 184
185 Debugging
186
187 * Level Syntax::
188 * Level BNF::
189 * Debugging Categories::
190
187 @command{mail} --- Send and Receive Mail 191 @command{mail} --- Send and Receive Mail
188 192
189 * Invoking Mail:: Command Line Options. 193 * Invoking Mail:: Command Line Options.
...@@ -232,6 +236,7 @@ Reading Mail ...@@ -232,6 +236,7 @@ Reading Mail
232 236
233 * Movemail Configuration:: 237 * Movemail Configuration::
234 * Movemail Options:: Description of the Available Options 238 * Movemail Options:: Description of the Available Options
239 * Ownership:: Setting Destination Mailbox Ownership
235 * Summary:: Short Movemail Invocation Summary 240 * Summary:: Short Movemail Invocation Summary
236 241
237 @command{readmsg} --- Extract Messages from a Folder 242 @command{readmsg} --- Extract Messages from a Folder
...@@ -279,6 +284,7 @@ Maidag Scripting ...@@ -279,6 +284,7 @@ Maidag Scripting
279 284
280 * Sieve Maidag Filters:: 285 * Sieve Maidag Filters::
281 * Scheme Maidag Filters:: 286 * Scheme Maidag Filters::
287 * Python Maidag Filters::
282 288
283 mimeview 289 mimeview
284 290
...@@ -310,7 +316,7 @@ Configuring @command{comsatd} ...@@ -310,7 +316,7 @@ Configuring @command{comsatd}
310 * General Settings:: 316 * General Settings::
311 * Security Settings:: 317 * Security Settings::
312 318
313 @acronym{MH} --- The MH Message Handling System 319 MH --- The MH Message Handling System
314 320
315 * Diffs:: Major differences between Mailutils MH and other MH 321 * Diffs:: Major differences between Mailutils MH and other MH
316 implementations. 322 implementations.
...@@ -321,70 +327,32 @@ Major differences between Mailutils MH and other MH implementations ...@@ -321,70 +327,32 @@ Major differences between Mailutils MH and other MH implementations
321 * Profile Variable Diffs:: 327 * Profile Variable Diffs::
322 * Program Diffs:: 328 * Program Diffs::
323 329
324 @command{mailutils-config} --- Get the Information about the Mailutils Build 330 MU
325 331
326 * Compiler Flags:: Getting Compiler Flags. 332 * mu invocation syntax::
327 * Loader Flags:: Getting Loader Flags. 333 * mu help::
328 * General Information:: Obtaining General Build Information. 334 * mu info::
329 335 * mu cflags::
330 Mailutils Libraries 336 * mu ldflags::
331 337 * mu query::
332 * libmailutils:: The Core Library. 338 * mu 2047::
333 * libmu_auth:: Auxiliary Library for Authenticating Users. 339 * mu filter::
334 * libmu_scm:: Mailutils to Scheme Interface. 340 * mu acl::
335 * libmu_sieve:: GNU Implementation of Sieve Mail Filtering. 341 * mu wicket::
336 342 * mu dbm::
337 Framework 343 * mu logger::
338 344 * mu pop::
339 * Folder:: Folder. 345 * mu imap::
340 * Mailbox:: Mailbox. 346
341 * Mailer:: Protocol Used to Send Mail. 347 mu dbm
342 * Message:: Message. 348
343 * Envelope:: Envelope. 349 * Create a Database::
344 * Headers:: Headers. 350 * Add Records to a Database::
345 * Body:: Body. 351 * Delete Records::
346 * Attribute:: Attribute. 352 * List the Database::
347 * Stream:: Stream. 353 * Dump the Database::
348 * Iterator:: Iterator. 354 * Dump Formats::
349 * Authenticator:: Authenticator. 355 * Dbm Exit Codes::
350 * Address:: Address.
351 * Locker:: Locker.
352 * URL:: Uniform Resource Locators.
353 * Parse822:: Parsing RFC 822 headers.
354 * Mailcap:: Parsing RFC 1524 file.
355
356 Authentication Library
357
358 * Data Types::
359 * Initializing libmu_auth::
360 * Module Creation and Destruction::
361 * Obtaining Authorization Information::
362 * Existing Modules::
363 * Using libmu_auth in Your Programs::
364
365 Mailutils to Scheme Interface
366
367 * Address Functions::
368 * Mailbox Functions::
369 * Message Functions::
370 * MIME Functions::
371 * Logging Functions::
372 * Other Functions::
373
374 Using @file{libmu_scm}
375
376 * Direct Linking::
377 * Dynamic Linking::
378
379 Sieve Library
380
381 * Sieve Data Types::
382 * Manipulating the Sieve Machine::
383 * Logging and Diagnostic Functions::
384 * Symbol Space Functions::
385 * Memory Allocation::
386 * Compiling and Executing the Script::
387 * Writing Loadable Commands::
388 356
389 Sieve Language 357 Sieve Language
390 358
...@@ -437,36 +405,58 @@ Date Input Formats ...@@ -437,36 +405,58 @@ Date Input Formats
437 405
438 @node Introduction 406 @node Introduction
439 @chapter Introduction 407 @chapter Introduction
440 408 GNU Mailutils is a set of libraries and utilities for handling
441 GNU Mailutils is a rich and powerful protocol-independent mail 409 electronic mail. It addresses a wide audience and can be of interest
442 framework. It contains a series of useful mail libraries, clients, 410 to application developers, casual users and system administrators alike.
443 and servers. These are the primary mail utilities for the GNU system. 411
444 The central library is capable of handling electronic mail in various 412 It provides programmers with a consistent API allowing them to
445 mailbox formats and protocols, both local and remote. Specifically, 413 handle a variety of different mailbox formats transparently and
446 this project contains a POP3 server, an IMAP4 server, and a Sieve mail 414 without having to delve into complexities of their internal structure.
447 filter. It also provides a POSIX `mailx' client, and a collection of 415 While doing so, it also provides interfaces that simplify common
448 other handy tools. 416 programming tasks, such as handling lists, parsing configuration
449 417 files, etc. The philosophy of Mailutils is to have a single and
450 The GNU Mailutils libraries supply an ample set of primitives for 418 consistent programming interface for various objects designed to
451 handling electronic mail in programs written in C, C++, Python or 419 handle the same task. It tries to use their similarities to create an
452 Scheme. 420 interface that hides their differences and complexities. This covers
453 421 a wide variety of programming tasks: apart from mailbox handling,
454 At the core of Mailutils is libmailutils, a library which provides 422 Mailutils also contains a unified iterface for work with various DBM
455 universal access to various mailboxes and protocols: UNIX mailbox, 423 databases and much more.
456 Maildir, MH, POP3, IMAP4, Sendmail, SMTP. Mailutils offers functions 424
457 for almost any mail-related task, such as parsing of messages, email 425 The utilities built upon these libraries share that same distinctive
458 addresses and URLs, handling MIME messages, listing mail folders, 426 feature: no matter what is the internal structure of an object, it is
459 mailcap facilities, extensible Sieve filtering, access control lists. 427 always handled the same way as other objects that do the same task.
460 It supports various modern data security and authentication 428 Again, the most common example of this approach are, of course,
461 techniques: TLS encryption, SASL and GSSAPI, to name a few. 429 mailboxes. Whatever Mailutils program you use, you can be sure it is
462 The framework is able to work with a wide variety of authorization 430 able to handle various mailbox formats. You even don't have to inform
463 databases, ranging from traditional system password database up to 431 it about what type a mailbox is: it will do its best to discover it
464 RADIUS, SQL and LDAP. 432 automatically.
465 433
466 The utilities provided by Mailutils include imap4d and pop3d mail 434 This approach sometimes covers entities which are seldom regarded as
467 servers, mail reporting utility comsatd, general-purpose mail delivery 435 compatible. For example, using Mailutils it is possible to treat an SMTP
468 agent maidag, mail filtering program sieve, and an implementation of 436 connection as a mailbox opened only for appending new messages. This
469 MH message handling system. 437 in turn, provides a way for extending the functionality of some
438 utilities. As an example, using this concept of mailboxes, the usual
439 mail delivery agent becomes able to do things usually reserved for
440 mail transport agents only!
441
442 At the core of Mailutils is @file{libmailutils}, a library which
443 provides an API for accessing a generalized mailbox. A set of
444 complementary libraries provide methods for handling particular
445 mailbox implementations: UNIX mailbox, Maildir, MH, POP3, IMAP4,
446 even SMTP. Mailutils offers functions for almost any mail-related
447 task, such as parsing of messages, email addresses and URLs, handling
448 MIME messages, listing mail folders, mailcap facilities, extensible
449 Sieve filtering, access control lists. It supports various modern
450 data security and authentication techniques: TLS encryption, SASL and
451 GSSAPI, to name a few. Mailutils is able to work with a wide
452 variety of authorization databases, ranging from traditional system
453 password database up to RADIUS, SQL and LDAP.
454
455 The utilities provided by Mailutils include @command{imap4d} and
456 @command{pop3d} mail servers, mail reporting utility
457 @command{comsatd}, general-purpose mail delivery agent
458 @command{maidag}, mail filtering program @command{sieve}, an implementation
459 of MH message handling system and much more.
470 460
471 All utilities share the same subset of command line options and use 461 All utilities share the same subset of command line options and use
472 a unified configuration mechanism, which allows to easily configure 462 a unified configuration mechanism, which allows to easily configure
...@@ -511,64 +501,34 @@ reference. ...@@ -511,64 +501,34 @@ reference.
511 This version of the book is not finished. The places that may 501 This version of the book is not finished. The places that may
512 contain inaccurate information carry prominent notices stating so. 502 contain inaccurate information carry prominent notices stating so.
513 For updated versions of the documentation, visit 503 For updated versions of the documentation, visit
514 @uref{http://www.gnu.org/software/mailutils/manual}. If you have any 504 @uref{http://mailutils.org/manual}. All material that ends up in this
515 questions, feel free to ask them at the mailing list 505 document is first published in the Mailutils Wiki, available at
516 @email{bug-mailutils@@gnu.org}. 506 @uref{http://mailutils.org/wiki}. Be sure to visit it for latest
507 updates.
508
509 If you have any questions that are not answered there, feel free to
510 ask them at the mailing list @email{bug-mailutils@@gnu.org}.
511
512 @FIXME{Mailutils 3.0 introduced such amount of changes, most of which
513 being a complete rewrite of the existing codebase, that the library
514 tutorial and reference became hopelessly obsolete. It is my deep
515 conviction that using incorrect documentation is much worse than
516 having no documentation at all, therefore I have withdrawn the
517 obsolete parts from this edition of GNU Mailutils manual. I am doing
518 my best to document new Mailutils libraries and hope to be able to
519 re-introduce these parts of the documentation soon.}
517 520
518 @node History 521 @node History
519 @section A bit of History, and why use this package? 522 @section A bit of History, and why use this package?
520 @UNREVISED 523 @UNREVISED
521 524
522 This package started off to try and handle large mailbox files more 525 This package started off to try and handle large mailbox files more
523 gracefully then current POP3 servers did. While it handles this task, 526 gracefully then available at that time POP3 servers did. While it
524 it also allows you to support a variety of different mailbox formats 527 handles this task, it also allows you to support a variety of
525 without any real effort on your part. Also, if a new format is added 528 different mailbox formats without any real effort on your part. Also,
526 at a later date, your program will support that new format 529 if a new format is added at a later date, your program will support
527 automatically as soon as it is compiled against the new library. 530 that new format automatically as soon as it is compiled against the
528 531 new library.
529 @node Programs
530 @chapter Mailutils Programs
531 @cindex Programs
532 @include programs.texi
533
534 @node Libraries
535 @chapter Mailutils Libraries
536 @cindex Libraries
537
538 @menu
539 * libmailutils:: The Core Library.
540 * libmu_auth:: Auxiliary Library for Authenticating Users.
541 * libmu_scm:: Mailutils to Scheme Interface.
542 * libmu_sieve:: GNU Implementation of Sieve Mail Filtering.
543 @end menu
544
545 @node libmailutils
546 @section Framework
547 @cindex Framework
548 @include framework.texi
549
550 @node libmu_auth
551 @section Authentication Library
552 @cindex Authentication Library
553 @cindex libmu_auth
554 @include libmu_auth.texi
555
556 @node libmu_scm
557 @section Mailutils to Scheme Interface
558 @cindex Scheme
559 @cindex libmu_scm
560 @include libmu_scm.texi
561
562 @node libmu_sieve
563 @section Sieve Library
564 @cindex Sieve Library
565 @cindex libmu_sieve
566 @include libmu_sieve.texi
567
568 @node Sieve Language
569 @chapter Sieve Language
570 @cindex Sieve Language
571 @include sieve.texi
572 532
573 @node Reporting Bugs 533 @node Reporting Bugs
574 @chapter Reporting Bugs 534 @chapter Reporting Bugs
...@@ -588,15 +548,33 @@ needed is: ...@@ -588,15 +548,33 @@ needed is:
588 The archives of bug-mailutils mailing list are available from 548 The archives of bug-mailutils mailing list are available from
589 @url{http://mail.gnu.org/@/mailman/@/listinfo/@/bug-mailutils}. 549 @url{http://mail.gnu.org/@/mailman/@/listinfo/@/bug-mailutils}.
590 550
551 @node Programs
552 @chapter Mailutils Programs
553 @cindex Programs
554 @include programs.texi
555
556 @node Libraries
557 @chapter Mailutils Libraries
558 @cindex Libraries
559 @WRITEME
560
561 @node Sieve Language
562 @chapter Sieve Language
563 @cindex Sieve Language
564 @include sieve.texi
565
591 @node News 566 @node News
592 @chapter Getting News About GNU Mailutils 567 @chapter Getting News About GNU Mailutils
593 568
594 The two places to look for any news regarding GNU Mailutils are the 569 The two places to look for any news regarding GNU Mailutils are the
595 Mailutils homepage at @url{http://www.gnu.org/@/software/@/mailutils}, and the 570 Mailutils homepage at @url{http://mailutils.org} or
596 project page at @url{http://savannah.gnu.org/@/projects/@/mailutils}. 571 @url{http://www.gnu.org/@/software/@/mailutils}, and the project page
572 at @url{http://savannah.gnu.org/@/projects/@/mailutils}.
597 573
598 The updated versions of this manual are available online from 574 The updated versions of this manual are available online from
599 @url{http://www.gnu.org/@/software/@/mailutils/@/manual}. 575 @uref{http://mailutils.org/manual}. See also
576 @uref{http://mailutils.org/wiki, Mailutils Wiki} for the latest
577 updates.
600 578
601 @node Acknowledgement 579 @node Acknowledgement
602 @chapter Acknowledgement 580 @chapter Acknowledgement
...@@ -630,128 +608,18 @@ Wojciech Polak @email{polak@@gnu.org} ...@@ -630,128 +608,18 @@ Wojciech Polak @email{polak@@gnu.org}
630 608
631 @node References 609 @node References
632 @appendix References 610 @appendix References
633 611 @WRITEME
634 @itemize @bullet
635 @item SMTP
636
637 @itemize @minus
638 @item
639 @cite{RFC 2821: Simple Mail Transfer Protocol}
640
641 @item
642 @cite{RFC 2368: The mailto URL scheme}
643
644 @item
645 @cite{RFC 2487: SMTP Service Extension for Secure SMTP over TLS}
646 @end itemize
647
648 @item POP3
649
650 @itemize @minus
651 @item
652 @cite{RFC 1939: Post Office Protocol - Version 3}
653
654 @item
655 @cite{RFC 1734: POP3 AUTHentication command}
656
657 @item
658 @cite{RFC 1957: Some Observations on Implementations of the Post Office
659 Protocol (POP3)}
660
661 @item
662 @cite{RFC 2449: POP3 Extension Mechanism}
663
664 @item
665 @cite{RFC 2384: POP URL Scheme}
666
667 @item
668 @cite{RFC 2595: Using TLS with IMAP, POP3 and ACAP}
669 @end itemize
670
671 @item IMAP4
672
673 @itemize @minus
674 @item
675 @cite{RFC 2060: INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1}
676
677 @item
678 @cite{RFC 2088: IMAP4 non-synchronizing literals}
679
680 @item
681 @cite{RFC 2193: IMAP4 Mailbox Referrals}
682
683 @item
684 @cite{RFC 2221: IMAP4 Login Referrals}
685
686 @item
687 @cite{RFC 2342: IMAP4 Namespace}
688
689 @item
690 @cite{RFC 2192: IMAP URL Scheme}
691
692 @item
693 @cite{RFC 1731: IMAP4 Authentication Mechanisms}
694
695 @item
696 @cite{RFC 2245: Anonymous SASL Mechanism}
697
698 @item
699 @cite{RFC 2595: Using TLS with IMAP, POP3 and ACAP}
700 @end itemize
701
702 @item message formats
703
704 @itemize @minus
705 @item
706 @cite{RFC 2822: Internet Message Format}
707
708 @item
709 @cite{RFC 2045: Multipurpose Internet Mail Extensions (MIME) Part One:
710 Format of Internet Message Bodies}
711
712 @item
713 @cite{RFC 2046: Multipurpose Internet Mail Extensions (MIME) Part Two:
714 Media Types}
715
716 @item
717 @cite{RFC 2047: Multipurpose Internet Mail Extensions (MIME) Part Three:
718 Message Header Extensions for Non-ASCII Text}
719
720 @item
721 @cite{RFC 2049: Multipurpose Internet Mail Extensions (MIME) Part Five:
722 Conformance Criteria and Examples}
723
724 @item
725 @cite{RFC 2111: Content-ID and Message-ID Uniform Resource Locators}
726 @end itemize
727
728 @item miscellaneous related topics
729
730 @itemize @minus
731 @item
732 @cite{RFC 1738: Uniform Resource Locators (URL)}
733
734 @item
735 @cite{RFC 2298: An Extensible Message Format for Message Disposition
736 Notifications}
737
738 @item
739 @cite{RFC 3028: Sieve: A Mail Filtering Language}
740
741 @item
742 @cite{RFC 3431: Sieve Extension: Relational Tests}
743
744 @item
745 @cite{Internet Email Protocols: A Developer's Guide, by Kevin Johnson}
746 @end itemize
747 @end itemize
748 612
749 @node Date Input Formats 613 @node Date Input Formats
750 @appendix Date Input Formats 614 @appendix Date Input Formats
751 @include getdate.texi 615 @include getdate.texi
752 616
617 @node Usage Vars
618 @appendix Configuring Help Summary
753 @include usage.texi 619 @include usage.texi
754 620
621 @node GNU FDL
622 @appendix GNU Free Documentation License
755 @include fdl.texi 623 @include fdl.texi
756 624
757 @node Function Index 625 @node Function Index
......
...@@ -16,7 +16,7 @@ For the information about the current state of Mailutils MH ...@@ -16,7 +16,7 @@ For the information about the current state of Mailutils MH
16 implementation please refer to file @file{mh/TODO} in the Mailutils 16 implementation please refer to file @file{mh/TODO} in the Mailutils
17 distribution directory. 17 distribution directory.
18 18
19 [FIXME] 19 @FIXME{This is perhaps not so important now.}
20 20
21 @menu 21 @menu
22 * Diffs:: Major differences between Mailutils MH and other MH 22 * Diffs:: Major differences between Mailutils MH and other MH
......
This diff could not be displayed because it is too large.
...@@ -3,8 +3,6 @@ ...@@ -3,8 +3,6 @@
3 @c 2008, 2010, 2011 Free Software Foundation, Inc. 3 @c 2008, 2010, 2011 Free Software Foundation, Inc.
4 @c See file mailutils.texi for copying conditions. 4 @c See file mailutils.texi for copying conditions.
5 @comment ******************************************************************* 5 @comment *******************************************************************
6 @node Usage Vars
7 @appendix Configuring Help Summary
8 6
9 Running @command{@var{prog} --help} displays the short usage summary 7 Running @command{@var{prog} --help} displays the short usage summary
10 for @var{prog} utility (@pxref{Common Options}). This summary is 8 for @var{prog} utility (@pxref{Common Options}). This summary is
......
...@@ -100,7 +100,7 @@ P [1-9][0-9]* ...@@ -100,7 +100,7 @@ P [1-9][0-9]*
100 yylval.string = _mu_line_finish (); 100 yylval.string = _mu_line_finish ();
101 return MU_TOK_IDENT; } 101 return MU_TOK_IDENT; }
102 /* Strings */ 102 /* Strings */
103 [a-zA-Z0-9_\./:\*=-]+ { _mu_line_begin (); 103 [a-zA-Z0-9_\./:\*=@-]+ { _mu_line_begin ();
104 _mu_line_add (yytext, yyleng); 104 _mu_line_add (yytext, yyleng);
105 yylval.string = _mu_line_finish (); 105 yylval.string = _mu_line_finish ();
106 return MU_TOK_STRING; } 106 return MU_TOK_STRING; }
......
...@@ -133,6 +133,8 @@ read_bulletin_db (size_t *pnum) ...@@ -133,6 +133,8 @@ read_bulletin_db (size_t *pnum)
133 return rc; 133 return rc;
134 } 134 }
135 135
136 mu_dbm_safety_set_flags (db, DEFAULT_GROUP_DB_SAFETY);
137
136 rc = mu_dbm_safety_check (db); 138 rc = mu_dbm_safety_check (db);
137 if (rc) 139 if (rc)
138 { 140 {
...@@ -225,6 +227,8 @@ write_bulletin_db (size_t num) ...@@ -225,6 +227,8 @@ write_bulletin_db (size_t num)
225 return rc; 227 return rc;
226 } 228 }
227 229
230 mu_dbm_safety_set_flags (db, DEFAULT_GROUP_DB_SAFETY);
231
228 rc = mu_dbm_safety_check (db); 232 rc = mu_dbm_safety_check (db);
229 if (rc && rc != ENOENT) 233 if (rc && rc != ENOENT)
230 { 234 {
......
...@@ -32,8 +32,10 @@ open_stat_db (int mode) ...@@ -32,8 +32,10 @@ open_stat_db (int mode)
32 return NULL; 32 return NULL;
33 } 33 }
34 34
35 mu_dbm_safety_set_flags (db, DEFAULT_GROUP_DB_SAFETY);
36
35 rc = mu_dbm_safety_check (db); 37 rc = mu_dbm_safety_check (db);
36 if (rc) 38 if (rc && rc != ENOENT)
37 { 39 {
38 mu_diag_output (MU_DIAG_ERROR, 40 mu_diag_output (MU_DIAG_ERROR,
39 _("statistics db fails safety check: %s"), 41 _("statistics db fails safety check: %s"),
......
...@@ -201,6 +201,17 @@ extern char *apop_database_name; ...@@ -201,6 +201,17 @@ extern char *apop_database_name;
201 extern int apop_database_safety; 201 extern int apop_database_safety;
202 extern int apop_database_safety_set; 202 extern int apop_database_safety_set;
203 203
204 /* Safety checks for group-rw database files, such as stat and bulletin
205 databases */
206
207 #define DEFAULT_GROUP_DB_SAFETY \
208 (MU_FILE_SAFETY_WORLD_WRITABLE| \
209 MU_FILE_SAFETY_WORLD_READABLE| \
210 MU_FILE_SAFETY_LINKED_WRDIR| \
211 MU_FILE_SAFETY_DIR_IWGRP| \
212 MU_FILE_SAFETY_DIR_IWOTH)
213
214
204 extern pop3d_command_handler_t pop3d_find_command (const char *name); 215 extern pop3d_command_handler_t pop3d_find_command (const char *name);
205 216
206 extern int pop3d_stat (char *); 217 extern int pop3d_stat (char *);
......