diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2008-02-26 13:42:41 +0000 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2008-02-26 13:42:41 +0000 |
commit | f439e7de17824c8c22c6cbbd80ac78eb6877f2cd (patch) | |
tree | 8ef85bbcc6da98f378ea2d99ed27271204db0772 | |
download | pies-f439e7de17824c8c22c6cbbd80ac78eb6877f2cd.tar.gz pies-f439e7de17824c8c22c6cbbd80ac78eb6877f2cd.tar.bz2 |
* pies/pies.c: New configuration statement "chdir".
* pies/progman.c (struct prog.v.p): New member `dir'.
(register_prog): Initialize newp->v.p.dir;
(prog_start): Change to the working directory, if required by
config.
-rw-r--r-- | AUTHORS | 1 | ||||
-rwxr-xr-x | bootstrap | 312 | ||||
-rw-r--r-- | doc/Makefile.am | 141 | ||||
-rwxr-xr-x | doc/check-docs.sh | 74 | ||||
-rw-r--r-- | doc/fdl.texi | 450 | ||||
-rwxr-xr-x | doc/gendocs_template | 123 | ||||
-rw-r--r-- | doc/macros.texi | 31 | ||||
-rw-r--r-- | doc/mastermenu.el | 90 | ||||
-rw-r--r-- | doc/rendition.texi | 85 | ||||
-rw-r--r-- | doc/untabify.el | 13 | ||||
-rw-r--r-- | pies/Makefile.am | 39 | ||||
-rw-r--r-- | pies/depmap.c | 170 | ||||
-rw-r--r-- | pies/pies.c | 1010 | ||||
-rw-r--r-- | pies/pies.h | 119 | ||||
-rw-r--r-- | pies/pies.rcin | 25 | ||||
-rw-r--r-- | pies/progman.c | 971 |
16 files changed, 3654 insertions, 0 deletions
@@ -0,0 +1 @@ +Sergey Poznyakoff gray@gnu.org diff --git a/bootstrap b/bootstrap new file mode 100755 index 0000000..51d94b2 --- /dev/null +++ b/bootstrap @@ -0,0 +1,312 @@ +#! /bin/sh +############################ +## Configuration +############################ + +GNULIB_DATE=2007-05-12 +GNU_SOURCE_BASE=gnu + +MODLIST="argp\ + fprintftime\ + getline\ + gettext\ + malloc\ + memrchr\ + mkdtemp\ + obstack\ + realloc\ + regex\ + save-cwd\ + snprintf\ + strtok_r\ + vasprintf" + +MODAVOID="xalloc-die openat-die" + +# Other locale categories that need message catalogs. +EXTRA_LOCALE_CATEGORIES= + +NLS_MARKERS="\ + MF_THROW:2\ + MF_ASSERT:3\ + parse_error:1\ + parse_error_locus:2\ + mu_error:1\ + gacopyz_io_log:3\ + gacopyz_logmsg:2\ + gacopyz_log:3" + +# Additional xgettext options to use. Use "\\\newline" to break lines. +XGETTEXT_OPTIONS='\\\ + --flag=_:1:pass-c-format\\\ + --flag=N_:1:pass-c-format\\\ + --flag=error:3:c-format --flag=error_at_line:5:c-format\\\ +' + +COPYRIGHT_HOLDER="Sergey Poznyakoff" + +# Translation Project URL, for the registry of all projects +# and for the translation-team master directory. +# (for future use) +tp_url() { + echo "http://translationproject.org/domain/$1.html" +} + +############################ +## Implementation +############################ + +usage() { + echo >&2 "\ +Usage: $0 [OPTION]... GNULIB_DIR +Bootstrap this package from the checked-out sources. + + --copy Copy files instead of creating symbolic links. + --force Attempt to bootstrap even if the sources seem + not to have been checked out. + --skip-po Do not download po files. + --update-po[=LANG] Update po file(s) and exit. + +The only argument specifes the file name of the directory were gnulib +sources are located. You will have to check out them beforehand, \`bootstrap' +won't do this for you. + +Local defaults can be provided by placing the file \`.bootstrap' in the +current working directory. The file is read, comments and empty lines are +removed, shell variables expanded and the result is prepended to the command +line options. + +Running without arguments will suffice in most cases. +" +} + +# Read local configuration file +if [ -r .bootstrap ]; then + echo "$0: Reading configuration file .bootstrap" + eval set -- "`sed 's/#.*$//;/^$/d' .bootstrap | tr '\n' ' '` $*" +fi + +extract_package_name=' + /^AC_INIT(/{ + /.*,.*,.*,/{ + s/// + s/[][]//g + p + q + } + s/AC_INIT(\[*// + s/]*,.*// + s/^GNU // + y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ + s/[^A-Za-z0-9_]/-/g + p + } +' +package=`sed -n "$extract_package_name" configure.ac` || exit + +extract_bug_address=' + /^AC-INIT-BUG-ADDRESS/{ + s/[][]//g + s/.*=//p + } +' +bug_address=`m4 -D'AC_INIT=AC-INIT-BUG-ADDRESS=$3' configure.ac | sed -n "$extract_bug_address"` +if test -z "$bug_address"; then + bug_address="bug-${package}@gnu.org.ua" +fi + +# Whether to use copies instead of symlinks. +copy=false + +GNULIB_OPTION= +DOWNLOAD_PO= + +for option +do + case $option in + --help) + usage + exit;; + --skip-po | --no-po) # --no-po is for compatibility with 'tar' tradition. + DOWNLOAD_PO=skip;; + --update-po=*) + DOWNLOAD_PO=`expr "$option" : '--update-po=\(.*\)'`;; + --update-po) + DOWNLOAD_PO=only;; + --copy) + copy=true;; + -*) + echo >&2 "$0: $option: unknown option" + exit 1;; + *) + if [ -n "$NULIB_OPTION" ]; then + echo "$0: gnulib directory specified twice">&2 + exit 1 + fi + GNULIB_DIR=$option;; + esac +done + +datecmp() { + test `echo "1 $1 +2 $2" | tr '-' ' ' | sort -n -k2 -k3 -k4 -k1 | sed -n '1s/ .*//p'` -eq 1 +} + +if [ -n "$GNULIB_DIR" ]; then + if [ -d "$GNULIB_DIR" ]; then + PATH="$GNULIB_DIR:$PATH" + if [ -r "$GNULIB_DIR/ChangeLog" ]; then + GNULIB_REV=`sed '/^[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}/q' "$GNULIB_DIR/ChangeLog"` + if datecmp "$GNULIB_DATE" "$GNULIB_REV"; then :; + else + echo "$0: Gnulib version is too old: $GNULIB_REV">&2 + echo "$0: It should not be older than $GNULIB_DATE">&2 + echo "$0: Please, update gnulib and retry">&2 + exit + fi + else + echo "$0: No $GNULIB_DIR/ChangeLog file found">&2 + fi + else + echo "$0: specified gnulib location is not a directory">&2 + fi +else + echo "$0: warning: gnulib source directory not specified">&2 + echo "$0: warning: looking for gnulib-tool in PATH...">&2 +fi + +gnulib-tool --version >/dev/null 2>&1 +if [ $? -ne 0 ]; then + echo "$0: Cannot run gnulib-tool. Try \`$0 --help' for more info.">&2 + exit 1 +fi + +echo "$0: Bootstrapping $package" + +echo "$0: Running autopoint" +autopoint -f || exit 1 + +# Create gettext configuration. +echo "$0: Creating po/Makevars from po/Makevars.template ..." +rm -f po/Makevars + +if [ -n "$NLS_MARKERS" ]; then + XGETTEXT_OPTIONS="$XGETTEXT_OPTIONS "`echo $NLS_MARKERS | tr ' ' '\n' | sed 's/.*/ --flag=&:pass-c-format\\\\\\\\\\\\/'`" +" +fi + +sed ' + 1i\ +# -*- buffer-read-only: t -*- vi: set ro:\ +# DO NOT EDIT! GENERATED AUTOMATICALLY! + + /^COPYRIGHT_HOLDER *=/s/=.*/= '"$COPYRIGHT_HOLDER"'/ + /^EXTRA_LOCALE_CATEGORIES *=/s/=.*/= '"$EXTRA_LOCALE_CATEGORIES"'/ + /^MSGID_BUGS_ADDRESS *=/s/=.*/= '"$bug_address"'/ + /^XGETTEXT_OPTIONS *=/{ + s/$/ \\/ + a\ + '"$XGETTEXT_OPTIONS"' $${end_of_xgettext_options+} + } +' po/Makevars.template >po/Makevars + +# Get translations. + +get_translations() { + subdir=$1 + domain=$2 + po_file=$3 + + case $WGET_COMMAND in + '') + echo "$0: wget not available; skipping translations";; + ?*) + url=`tp_url $domain` + baseurl=`expr "$url" : '\(.*\)/.*'` + echo "$0: getting translations into $subdir for $domain..." && + case $po_file in + '') (cd $subdir && rm -f dummy `ls | sed -n '/\.gmo$/p; /\.po/p'`);; + esac && + + $WGET_COMMAND -O "$subdir/$domain.html" "$url" && + + sed -n 's|.*href="\(.*\)/\([^/][^/]*\)/'"$domain"'-\([^/"]*\)\.[^."]*\.po".*|\2:\3:\1|p' <"$subdir/$domain.html" | + sort -t: -k 1,1 -k 2,2n -k2,2 -k3,3n -k3,3 -k4,4n -k4,4 -k5,5n -k5.5 | + awk -F: ' + { if (lang && $1 != lang) print lang, ver, $3 } + { lang = $1; ver = $2 } + END { if (lang) print lang, ver, $3 } + ' | awk -v domain="$domain" -v baseurl="$baseurl" -v subdir="$subdir" \ + -v po_file="$po_file" ' + { + lang = $1 + if (po_file && po_file != (lang ".po")) next + ver = $2 + printf "{ $WGET_COMMAND -O %s/%s.po %s/%s/%s/%s-%s.%s.po &&\n", subdir, lang, baseurl, $3, lang, domain, ver, lang + printf " msgfmt -c -o /dev/null %s/%s.po || {\n", subdir, lang + printf " echo >&2 '\'"$0"': omitting translation for %s'\''\n", lang + printf " rm -f %s/%s.po; }; } &&\n", subdir, lang + } + END { print ":" } + ' | WGET_COMMAND="$WGET_COMMAND" sh + ;; + esac && + ls "$subdir"/*.po 2>/dev/null | + sed 's|.*/||; s|\.po$||' >"$subdir/LINGUAS" && + rm -f "$subdir/$domain.html" +} + +save_LC_ALL="$LC_ALL" +LC_ALL=C +case `wget --help` in +*'--no-cache'*) + WGET_COMMAND='wget -nv --no-cache';; +*'--cache=on/off'*) + WGET_COMMAND='wget -nv --cache=off';; +*'--non-verbose'*) + WGET_COMMAND='wget -nv';; +*) + WGET_COMMAND='';; +esac +LC_ALL="$save_LC_ALL" + +case $DOWNLOAD_PO in +'skip') + ;; +'') + get_translations po $package || exit + ;; +'only') + get_translations po $package + exit + ;; +*.po) + get_translations po $package "$DOWNLOAD_PO" + exit + ;; +*) + get_translations po $package "${DOWNLOAD_PO}.po" + exit +esac + +echo "$0: Importing gnulib files ..." +if [ -n "$MODAVOID" ]; then + gnulib_tool_options="`echo $MODAVOID | sed 's/\([^ ][^ ]*\)/--avoid &/g'`" +fi + +test -d $GNU_SOURCE_BASE || mkdir $GNU_SOURCE_BASE +gnulib-tool --import --source-base=$GNU_SOURCE_BASE $gnulib_tool_options $MODLIST + +echo "$0: Reconfiguring ..." + +for command in \ + 'aclocal --force -I m4' \ + 'autoconf --force' \ + 'autoheader --force' \ + 'automake --add-missing --copy --force-missing'; +do + echo "$0: $command ..." + $command || exit +done + +echo "$0: done. Now you can run './configure'." diff --git a/doc/Makefile.am b/doc/Makefile.am new file mode 100644 index 0000000..0394d05 --- /dev/null +++ b/doc/Makefile.am @@ -0,0 +1,141 @@ +# This file is part of Mailfromd. +# Copyright (C) 2005, 2006, 2007, 2008 Sergey Poznyakoff +# +# Mailfromd is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3, or (at your option) +# any later version. +# +# Mailfromd 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. +# +# You should have received a copy of the GNU General Public License +# along with Mailfromd. If not, see <http://www.gnu.org/licenses/>. + +info_TEXINFOS=mailfromd.texi +mailfromd_TEXINFOS=\ + fdl.texi\ + gacopyz.texi\ + macros.texi\ + mtasim.texi\ + rendition.texi\ + strftime.texi\ + values.texi + +EXTRA_DIST = \ + check-docs.sh\ + gendocs_template\ + mastermenu.el\ + untabify.el + +clean-local: + rm -rf manual + +# Checking +check-format: + @if test -n "`cat $(info_TEXINFOS) $(mailfromd_TEXINFOS) | tr -d -c '\t'`"; then \ + echo "Sources contain tabs; run make untabify"; \ + false; \ + fi + +check-pragmas: + @check-docs.sh pragmas \ + '/} option_cache\[\] = {/,/^}/s/[ \t]*{ *"\(.*\)".*/\1/pg' \ + 's/@deffnx* {pragma option} *\([^@, ]*\) .*/\1/p' \ + $(top_srcdir)/mfd/main.c -- \ + $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -E - \ + $(info_TEXINFOS) + +check-options: + @check-docs.sh options \ + '/argp_option options\[\] = /,/^}/s/[ \t]*{ *"\([^,"]*\)".*/\1/pg' \ + 's/@opindex *\([^@,]*\).*/\1/p' \ + $(top_srcdir)/mfd/main.c -- \ + $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -E - \ + $(info_TEXINFOS) + +check-builtins: + @check-docs.sh builtins \ + '/MF_DEFUN/{s/[ \t]*MF_DEFUN *(\([^,][^,]*\),.*/\1/p;\ + s/[ \t]*MF_DEFUN_VARARGS *(\([^,][^,]*\),.*/\1/p}' \ + 's/@deftypefn {Built-in Function} *[^ ][^ ]* *\([^ ]*\).*/\1/p' \ + $(top_srcdir)/mfd/bi_*.m4 -- \ + $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -E - \ + $(info_TEXINFOS) + +check-mflib: + @check-docs.sh "library functions" \ + '/^[ \t]*func[ \t][ \t]*__/b;\ + /^[ \t]*func/s/[ \t]*func[ \t][ \t]*\(.[^ \t(]*\).*/\1/p' \ + 's/@deftypefn {Library Function} *[^ ][^ ]* *\([^ ]*\).*/\1/p' \ + $(top_srcdir)/mflib/*.mf -- \ + $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -E - \ + $(info_TEXINFOS) + +check-exceptions: + @check-docs.sh exceptions \ + '/typedef enum mf_status_code {/,/^};/s/[ \t]*mf_\(.*\),.*/\1/p' \ + 's/@cindex \([^,][^,]*\), exception type/\1/p' \ + $(top_srcdir)/mfd/mailfromd.h -- \ + $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -E - \ + $(info_TEXINFOS) + +check-refs: + @sed -e = $(info_TEXINFOS) $(mailfromd_TEXINFOS) | \ + sed -n 'N;/@FIXME-.*ref/{s/\(^[0-9][0-9]*\).*@FIXME-.*ref{\([^}]*\)}.*/$(info_TEXINFOS):\1: \2/gp}' > $@-t; \ + if [ -s $@-t ]; then echo "Unresolved cross-references:"; cat $@-t;\ + fi + rm -f $@-t + +check-fixmes: + @sed -e = $(info_TEXINFOS) | \ + sed -n 'N;/@FIXME{/{s/\(^[0-9][0-9]*\).*@FIXME{\([^}]*\).*/$(info_TEXINFOS):\1: \2/gp}' > $@-t; \ + if [ -s $@-t ]; then echo "Unresolved FIXMEs:"; cat $@-t;\ + fi + rm -f $@-t + +check-unrevised: + @grep -Hn @UNREVISED $(info_TEXINFOS) > $@-t; \ + if [ -s $@-t ]; then \ + echo "Unrevised nodes:"; \ + cat $@-t; \ + rm $@-t; \ + false;\ + else \ + rm $@-t; \ + fi + +all-check-docs: check-format check-options check-pragmas check-builtins check-mflib check-exceptions check-refs check-fixmes check-unrevised + +check-docs: + $(MAKE) -k all-check-docs + +# + +master-menu: + emacs -batch -l mastermenu.el -f make-master-menu $(info_TEXINFOS) + +untabify: + emacs -batch -l untabify.el $(info_TEXINFOS) $(mailfromd_TEXINFOS) + +final: untabify master-menu + +# The rendering level is one of PUBLISH, DISTRIB or PROOF. +# Just call `make RENDITION=PROOF [target]' if you want PROOF rendition. + +MAKEINFOFLAGS=-D$(RENDITION) + +GENDOCS=gendocs.sh + +TEXI2DVI=texi2dvi -t '@set $(RENDITION)' -E + +# Make sure you set TEXINPUTS. +# TEXINPUTS=/usr/share/texmf/pdftex/plain/misc/ is ok for most distributions +manual: + TEXINPUTS=$(srcdir):$(top_srcdir)/build-aux:$(TEXINPUTS) \ + MAKEINFO="$(MAKEINFO) $(MAKEINFOFLAGS)" \ + TEXI2DVI="$(TEXI2DVI) -t @finalout" \ + $(GENDOCS) --texi2html $(PACKAGE) '$(PACKAGE_NAME) manual' + diff --git a/doc/check-docs.sh b/doc/check-docs.sh new file mode 100755 index 0000000..c0b0487 --- /dev/null +++ b/doc/check-docs.sh @@ -0,0 +1,74 @@ +#! /bin/sh +# This file is part of mailfrom filter. +# Copyright (C) 2006, 2007 Sergey Poznyakoff +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3, or (at your option) +# any later version. +# +# 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. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +usage() { + cat <<EOT +usage: $0 item code-sed doc-sed sources -- args... +EOT +} + +if [ $# -le 4 ]; then + usage + exit 2 +fi + +item=$1 +shift +codesexp="$1" +shift +docsexp=$1 +shift + +source= +while [ $# -ne 0 ] +do + if [ "$1" = "--" ]; then + shift + break; + fi + source="$source $1" + shift +done + +TEMPDIR=/tmp/mfck.$$ +mkdir $TEMPDIR || exit 1 +trap 'rm -rf $TEMPDIR' 1 2 13 15 + +sed -n "$codesexp" $source | sort | uniq > $TEMPDIR/src +$* | \ + sed -n '/^@macro/,/^@end macro/d;'"$docsexp" \ + | sort | uniq > $TEMPDIR/doc + +join -v1 $TEMPDIR/src $TEMPDIR/doc > $TEMPDIR/src-doc +join -v2 $TEMPDIR/src $TEMPDIR/doc > $TEMPDIR/doc-src +(if [ -s $TEMPDIR/src-doc ]; then + echo "Not documented $item:" + cat $TEMPDIR/src-doc + fi + if [ -s $TEMPDIR/doc-src ]; then + echo "Non-existing $item:" + cat $TEMPDIR/doc-src + fi) > $TEMPDIR/report + +if [ -s $TEMPDIR/report ]; then + cat $TEMPDIR/report + rm -rf $TEMPDIR + exit 1 +else + rm -rf $TEMPDIR + exit 0 +fi diff --git a/doc/fdl.texi b/doc/fdl.texi new file mode 100644 index 0000000..a3c8c6f --- /dev/null +++ b/doc/fdl.texi @@ -0,0 +1,450 @@ +@setfilename fdl.info +@appendix GNU Free Documentation License +@cindex FDL, GNU Free Documentation License +@center Version 1.2, November 2002 + +@display +Copyright @copyright{} 2000,2001,2002 Free Software Foundation, Inc. +59 Temple Place, Suite 330, Boston, MA 02111-1307, USA + +Everyone is permitted to copy and distribute verbatim copies +of this license document, but changing it is not allowed. +@end display + +@enumerate 0 +@item +PREAMBLE + +The purpose of this License is to make a manual, textbook, or other +functional and useful document @dfn{free} in the sense of freedom: to +assure everyone the effective freedom to copy and redistribute it, +with or without modifying it, either commercially or noncommercially. +Secondarily, this License preserves for the author and publisher a way +to get credit for their work, while not being considered responsible +for modifications made by others. + +This License is a kind of ``copyleft'', which means that derivative +works of the document must themselves be free in the same sense. It +complements the GNU General Public License, which is a copyleft +license designed for free software. + +We have designed this License in order to use it for manuals for free +software, because free software needs free documentation: a free +program should come with manuals providing the same freedoms that the +software does. But this License is not limited to software manuals; +it can be used for any textual work, regardless of subject matter or +whether it is published as a printed book. We recommend this License +principally for works whose purpose is instruction or reference. + +@item +APPLICABILITY AND DEFINITIONS + +This License applies to any manual or other work, in any medium, that +contains a notice placed by the copyright holder saying it can be +distributed under the terms of this License. Such a notice grants a +world-wide, royalty-free license, unlimited in duration, to use that +work under the conditions stated herein. The ``Document'', below, +refers to any such manual or work. Any member of the public is a +licensee, and is addressed as ``you''. You accept the license if you +copy, modify or distribute the work in a way requiring permission +under copyright law. + +A ``Modified Version'' of the Document means any work containing the +Document or a portion of it, either copied verbatim, or with +modifications and/or translated into another language. + +A ``Secondary Section'' is a named appendix or a front-matter section +of the Document that deals exclusively with the relationship of the +publishers or authors of the Document to the Document's overall +subject (or to related matters) and contains nothing that could fall +directly within that overall subject. (Thus, if the Document is in +part a textbook of mathematics, a Secondary Section may not explain +any mathematics.) The relationship could be a matter of historical +connection with the subject or with related matters, or of legal, +commercial, philosophical, ethical or political position regarding +them. + +The ``Invariant Sections'' are certain Secondary Sections whose titles +are designated, as being those of Invariant Sections, in the notice +that says that the Document is released under this License. If a +section does not fit the above definition of Secondary then it is not +allowed to be designated as Invariant. The Document may contain zero +Invariant Sections. If the Document does not identify any Invariant +Sections then there are none. + +The ``Cover Texts'' are certain short passages of text that are listed, +as Front-Cover Texts or Back-Cover Texts, in the notice that says that +the Document is released under this License. A Front-Cover Text may +be at most 5 words, and a Back-Cover Text may be at most 25 words. + +A ``Transparent'' copy of the Document means a machine-readable copy, +represented in a format whose specification is available to the +general public, that is suitable for revising the document +straightforwardly with generic text editors or (for images composed of +pixels) generic paint programs or (for drawings) some widely available +drawing editor, and that is suitable for input to text formatters or +for automatic translation to a variety of formats suitable for input +to text formatters. A copy made in an otherwise Transparent file +format whose markup, or absence of markup, has been arranged to thwart +or discourage subsequent modification by readers is not Transparent. +An image format is not Transparent if used for any substantial amount +of text. A copy that is not ``Transparent'' is called ``Opaque''. + +Examples of suitable formats for Transparent copies include plain +@sc{ascii} without markup, Texinfo input format, La@TeX{} input +format, @acronym{SGML} or @acronym{XML} using a publicly available +@acronym{DTD}, and standard-conforming simple @acronym{HTML}, +PostScript or @acronym{PDF} designed for human modification. Examples +of transparent image formats include @acronym{PNG}, @acronym{XCF} and +@acronym{JPG}. Opaque formats include proprietary formats that can be +read and edited only by proprietary word processors, @acronym{SGML} or +@acronym{XML} for which the @acronym{DTD} and/or processing tools are +not generally available, and the machine-generated @acronym{HTML}, +PostScript or @acronym{PDF} produced by some word processors for +output purposes only. + +The ``Title Page'' means, for a printed book, the title page itself, +plus such following pages as are needed to hold, legibly, the material +this License requires to appear in the title page. For works in +formats which do not have any title page as such, ``Title Page'' means +the text near the most prominent appearance of the work's title, +preceding the beginning of the body of the text. + +A section ``Entitled XYZ'' means a named subunit of the Document whose +title either is precisely XYZ or contains XYZ in parentheses following +text that translates XYZ in another language. (Here XYZ stands for a +specific section name mentioned below, such as ``Acknowledgements'', +``Dedications'', ``Endorsements'', or ``History''.) To ``Preserve the Title'' +of such a section when you modify the Document means that it remains a +section ``Entitled XYZ'' according to this definition. + +The Document may include Warranty Disclaimers next to the notice which +states that this License applies to the Document. These Warranty +Disclaimers are considered to be included by reference in this +License, but only as regards disclaiming warranties: any other +implication that these Warranty Disclaimers may have is void and has +no effect on the meaning of this License. + +@item +VERBATIM COPYING + +You may copy and distribute the Document in any medium, either +commercially or noncommercially, provided that this License, the +copyright notices, and the license notice saying this License applies +to the Document are reproduced in all copies, and that you add no other +conditions whatsoever to those of this License. You may not use +technical measures to obstruct or control the reading or further +copying of the copies you make or distribute. However, you may accept +compensation in exchange for copies. If you distribute a large enough +number of copies you must also follow the conditions in section 3. + +You may also lend copies, under the same conditions stated above, and +you may publicly display copies. + +@item +COPYING IN QUANTITY + +If you publish printed copies (or copies in media that commonly have +printed covers) of the Document, numbering more than 100, and the +Document's license notice requires Cover Texts, you must enclose the +copies in covers that carry, clearly and legibly, all these Cover +Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on +the back cover. Both covers must also clearly and legibly identify +you as the publisher of these copies. The front cover must present +the full title with all words of the title equally prominent and +visible. You may add other material on the covers in addition. +Copying with changes limited to the covers, as long as they preserve +the title of the Document and satisfy these conditions, can be treated +as verbatim copying in other respects. + +If the required texts for either cover are too voluminous to fit +legibly, you should put the first ones listed (as many as fit +reasonably) on the actual cover, and continue the rest onto adjacent +pages. + +If you publish or distribute Opaque copies of the Document numbering +more than 100, you must either include a machine-readable Transparent +copy along with each Opaque copy, or state in or with each Opaque copy +a computer-network location from which the general network-using +public has access to download using public-standard network protocols +a complete Transparent copy of the Document, free of added material. +If you use the latter option, you must take reasonably prudent steps, +when you begin distribution of Opaque copies in quantity, to ensure +that this Transparent copy will remain thus accessible at the stated +location until at least one year after the last time you distribute an +Opaque copy (directly or through your agents or retailers) of that +edition to the public. + +It is requested, but not required, that you contact the authors of the +Document well before redistributing any large number of copies, to give +them a chance to provide you with an updated version of the Document. + +@item +MODIFICATIONS + +You may copy and distribute a Modified Version of the Document under +the conditions of sections 2 and 3 above, provided that you release +the Modified Version under precisely this License, with the Modified +Version filling the role of the Document, thus licensing distribution +and modification of the Modified Version to whoever possesses a copy +of it. In addition, you must do these things in the Modified Version: + +@enumerate A +@item +Use in the Title Page (and on the covers, if any) a title distinct +from that of the Document, and from those of previous versions +(which should, if there were any, be listed in the History section +of the Document). You may use the same title as a previous version +if the original publisher of that version gives permission. + +@item +List on the Title Page, as authors, one or more persons or entities +responsible for authorship of the modifications in the Modified +Version, together with at least five of the principal authors of the +Document (all of its principal authors, if it has fewer than five), +unless they release you from this requirement. + +@item +State on the Title page the name of the publisher of the +Modified Version, as the publisher. + +@item +Preserve all the copyright notices of the Document. + +@item +Add an appropriate copyright notice for your modifications +adjacent to the other copyright notices. + +@item +Include, immediately after the copyright notices, a license notice +giving the public permission to use the Modified Version under the +terms of this License, in the form shown in the Addendum below. + +@item +Preserve in that license notice the full lists of Invariant Sections +and required Cover Texts given in the Document's license notice. + +@item +Include an unaltered copy of this License. + +@item +Preserve the section Entitled ``History'', Preserve its Title, and add +to it an item stating at least the title, year, new authors, and +publisher of the Modified Version as given on the Title Page. If +there is no section Entitled ``History'' in the Document, create one +stating the title, year, authors, and publisher of the Document as +given on its Title Page, then add an item describing the Modified +Version as stated in the previous sentence. + +@item +Preserve the network location, if any, given in the Document for +public access to a Transparent copy of the Document, and likewise +the network locations given in the Document for previous versions +it was based on. These may be placed in the ``History'' section. +You may omit a network location for a work that was published at +least four years before the Document itself, or if the original +publisher of the version it refers to gives permission. + +@item +For any section Entitled ``Acknowledgements'' or ``Dedications'', Preserve +the Title of the section, and preserve in the section all the +substance and tone of each of the contributor acknowledgements and/or +dedications given therein. + +@item +Preserve all the Invariant Sections of the Document, +unaltered in their text and in their titles. Section numbers +or the equivalent are not considered part of the section titles. + +@item +Delete any section Entitled ``Endorsements''. Such a section +may not be included in the Modified Version. + +@item +Do not retitle any existing section to be Entitled ``Endorsements'' or +to conflict in title with any Invariant Section. + +@item +Preserve any Warranty Disclaimers. +@end enumerate + +If the Modified Version includes new front-matter sections or +appendices that qualify as Secondary Sections and contain no material +copied from the Document, you may at your option designate some or all +of these sections as invariant. To do this, add their titles to the +list of Invariant Sections in the Modified Version's license notice. +These titles must be distinct from any other section titles. + +You may add a section Entitled ``Endorsements'', provided it contains +nothing but endorsements of your Modified Version by various +parties---for example, statements of peer review or that the text has +been approved by an organization as the authoritative definition of a +standard. + +You may add a passage of up to five words as a Front-Cover Text, and a +passage of up to 25 words as a Back-Cover Text, to the end of the list +of Cover Texts in the Modified Version. Only one passage of +Front-Cover Text and one of Back-Cover Text may be added by (or +through arrangements made by) any one entity. If the Document already +includes a cover text for the same cover, previously added by you or +by arrangement made by the same entity you are acting on behalf of, +you may not add another; but you may replace the old one, on explicit +permission from the previous publisher that added the old one. + +The author(s) and publisher(s) of the Document do not by this License +give permission to use their names for publicity for or to assert or +imply endorsement of any Modified Version. + +@item +COMBINING DOCUMENTS + +You may combine the Document with other documents released under this +License, under the terms defined in section 4 above for modified +versions, provided that you include in the combination all of the +Invariant Sections of all of the original documents, unmodified, and +list them all as Invariant Sections of your combined work in its +license notice, and that you preserve all their Warranty Disclaimers. + +The combined work need only contain one copy of this License, and +multiple identical Invariant Sections may be replaced with a single +copy. If there are multiple Invariant Sections with the same name but +different contents, make the title of each such section unique by +adding at the end of it, in parentheses, the name of the original +author or publisher of that section if known, or else a unique number. +Make the same adjustment to the section titles in the list of +Invariant Sections in the license notice of the combined work. + +In the combination, you must combine any sections Entitled ``History'' +in the various original documents, forming one section Entitled +``History''; likewise combine any sections Entitled ``Acknowledgements'', +and any sections Entitled ``Dedications''. You must delete all +sections Entitled ``Endorsements.'' + +@item +COLLECTIONS OF DOCUMENTS + +You may make a collection consisting of the Document and other documents +released under this License, and replace the individual copies of this +License in the various documents with a single copy that is included in +the collection, provided that you follow the rules of this License for +verbatim copying of each of the documents in all other respects. + +You may extract a single document from such a collection, and distribute +it individually under this License, provided you insert a copy of this +License into the extracted document, and follow this License in all +other respects regarding verbatim copying of that document. + +@item +AGGREGATION WITH INDEPENDENT WORKS + +A compilation of the Document or its derivatives with other separate +and independent documents or works, in or on a volume of a storage or +distribution medium, is called an ``aggregate'' if the copyright +resulting from the compilation is not used to limit the legal rights +of the compilation's users beyond what the individual works permit. +When the Document is included an aggregate, this License does not +apply to the other works in the aggregate which are not themselves +derivative works of the Document. + +If the Cover Text requirement of section 3 is applicable to these +copies of the Document, then if the Document is less than one half of +the entire aggregate, the Document's Cover Texts may be placed on +covers that bracket the Document within the aggregate, or the +electronic equivalent of covers if the Document is in electronic form. +Otherwise they must appear on printed covers that bracket the whole +aggregate. + +@item +TRANSLATION + +Translation is considered a kind of modification, so you may +distribute translations of the Document under the terms of section 4. +Replacing Invariant Sections with translations requires special +permission from their copyright holders, but you may include +translations of some or all Invariant Sections in addition to the +original versions of these Invariant Sections. You may includ |