From: Mark Wooding Date: Sat, 15 May 2021 13:57:00 +0000 (+0100) Subject: Add '.ext/cfd/' from commit 'e370d22add00480a67fd028c0e7d3148737fe484' X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/runlisp/commitdiff_plain/1dff83f1891c628ec7dab32bc4958f91fc6e9464?hp=-c Add '.ext/cfd/' from commit 'e370d22add00480a67fd028c0e7d3148737fe484' git-subtree-dir: .ext/cfd git-subtree-mainline: f50ecbe185f8866970ab62157b2e45bf613907d2 git-subtree-split: e370d22add00480a67fd028c0e7d3148737fe484 --- 1dff83f1891c628ec7dab32bc4958f91fc6e9464 diff --combined .ext/cfd/.gitignore index 0000000,0000000..9828376 new file mode 100644 --- /dev/null +++ b/.ext/cfd/.gitignore @@@ -1,0 -1,0 +1,30 @@@ ++COPYING ++Makefile.in ++aclocal.m4 ++build ++common.info ++configure ++stamp-vti ++version.texi ++deb-build ++texinfo.tex ++mkinstalldirs ++autom4te.cache ++missing ++install-sh ++acinclude.m4 ++config ++*.aux ++*.cp ++*.dvi ++*.fn ++*.info ++*.ky ++*.log ++*.out ++*.pdf ++*.pg ++*.ps ++*.toc ++*.tp ++*.vr diff --combined .ext/cfd/.skelrc index 0000000,0000000..3b4e199 new file mode 100644 --- /dev/null +++ b/.ext/cfd/.skelrc @@@ -1,0 -1,0 +1,9 @@@ ++;;; -*-emacs-lisp-*- ++ ++(setq skel-alist ++ (append ++ '((author . "Mark Wooding") ++ (full-title . "the Common Files Distribution (`common')") ++ (Program . "`Common'") ++ (program . "`common'")) ++ skel-alist)) diff --combined .ext/cfd/build/auto-version index 0000000,2b37944..2b37944 mode 000000,100755..100755 --- a/.ext/cfd/build/auto-version +++ b/.ext/cfd/build/auto-version @@@ -1,0 -1,99 +1,99 @@@ + #! /bin/sh + ### -*-sh-*- + ### + ### Make autoconf-like substitutions in files + ### + ### (c) 2008 Mark Wooding + ### + + ###----- Licensing notice --------------------------------------------------- + ### + ### This file is part of the Common Files Distribution (`common'). + ### + ### `Common' 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 2 of the License, or + ### (at your option) any later version. + ### + ### `Common' 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 `common'; if not, write to the Free Software Foundation, + ### Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + set -e + + ###-------------------------------------------------------------------------- + ### Parse command line arguments. + + while [ $# -gt 0 ]; do + case $1 in + -h | --h | --he | --hel | --help) + cat <&2 + exit 1 + ;; + *) + break + ;; + esac + shift + done + + if [ $# -ne 0 ]; then + echo >&2 "Usage: auto-version" + exit 1 + fi + + ###-------------------------------------------------------------------------- + ### Main program. + + ## If this is a Git checkout then Git should be able to identify the version. + ## If there's also a Debian version, and that ends in a `~', then prefix the + ## Git version with this. Note that `pkg-config' is not very good, and, in + ## particular, doesn't support the convention that `~' sorts before anything + ## else, even the empty string, despite claiming to implement the RPM + ## version-comparison algorithm which specifies this behaviour, so one must + ## be careful when choosing `~' prefixes. + if [ -e .git ] && version=$(git describe --abbrev=4 --dirty=+ 2>/dev/null); then + debver=$(sed -n '/^.*(\(.*\)).*$/ { s::\1:p; q; }' debian/changelog) + case $debver in *~) version=$debver$version ;; esac + echo "$version" + exit 0 + fi + + ## If this was unpacked from a source distribution, the RELEASE file should + ## say what the version was. + if [ -f RELEASE ]; then + cat RELEASE + exit 0 + fi + + ## If we're Debianized, then the Debian changelog ought to know. + if [ -f debian/changelog ]; then + sed -n '/^.*(\(.*\)).*$/ { s::\1:p; q; }' debian/changelog + exit 0 + fi + + ## Otherwise we're screwed. + echo UNKNOWN + exit 0 + + ###----- That's all, folks -------------------------------------------------- diff --combined .ext/cfd/build/autotest.am index 0000000,435f7a5..435f7a5 mode 000000,100644..100644 --- a/.ext/cfd/build/autotest.am +++ b/.ext/cfd/build/autotest.am @@@ -1,0 -1,97 +1,97 @@@ + ### -*-makefile-*- + ### + ### Build script for test framework + ### + ### (c) 2008 Straylight/Edgeware + ### + + ###----- Licensing notice --------------------------------------------------- + ### + ### This file is part of the Common Files Distribution (`common'). + ### + ### `Common' 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 2 of the License, or + ### (at your option) any later version. + ### + ### `Common' 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 `common'; if not, write to the Free Software Foundation, + ### Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + EXTRA_DIST = + CLEANFILES = + DISTCLEANFILES = + MAINTAINERCLEANFILES = + + ###-------------------------------------------------------------------------- + ### The test suite. + + check-local: atconfig run-tests + ./run-tests $(TEST_ARGS) + + ###-------------------------------------------------------------------------- + ### Building the test suite. + + ## testsuite + all_autotest_TESTS = $(autotest_TESTS) $(nodist_autotest_TESTS) + TESTDEPS = testsuite.at Makefile.in $(all_autotest_TESTS) + CLEANFILES += testsuite.log + DISTCLEANFILES += atconfig + MAINTAINERCLEANFILES += $(srcdir)/testsuite + EXTRA_DIST += testsuite.at testsuite $(autotest_TESTS) + + $(srcdir)/testsuite: $(TESTDEPS) + $(AM_V_GEN)$(AUTOM4TE) --language=autotest \ + -I$(srcdir) $@.at -o $@.new && mv $@.new $@ + + clean-local: clean-testsuite-dir + .PHONY: clean-testsuite-dir + clean-testsuite-dir: + -rm -rf testsuite.dir + + ## run-tests + CLEANFILES += run-tests + + run-tests: Makefile $(srcdir)/testsuite + $(AM_V_GEN) \ + { echo '#! /bin/sh'; \ + echo 'exec $(SHELL) $(srcdir)/testsuite "$$@"'; \ + } >$@.new && chmod +x $@.new && mv $@.new $@ + + ###-------------------------------------------------------------------------- + ### Infrastructure for the test suite build process. + + ## tests.m4 + TESTDEPS += $(srcdir)/tests.m4 + MAINTAINERCLEANFILES += $(srcdir)/tests.m4 + EXTRA_DIST += tests.m4 + + $(srcdir)/tests.m4: Makefile.in + $(AM_V_GEN) \ + for i in $(all_autotest_TESTS); do \ + echo $$i | sed \ + -e 's:^$(top_srcdir):$(top_builddir):' \ + -e 's:\(.*\)/\([^/]*\)$$:TESTS([\1], [\2]):'; \ + done >$@.new && mv $@.new $@ + + ## package.m4 + TESTDEPS += $(srcdir)/package.m4 + MAINTAINERCLEANFILES += $(srcdir)/package.m4 + EXTRA_DIST += package.m4 + + $(srcdir)/package.m4: $(top_srcdir)/configure.ac + $(AM_V_GEN) \ + { echo '### package information'; \ + echo 'm4_define([AT_PACKAGE_NAME], [@PACKAGE_NAME@])'; \ + echo 'm4_define([AT_PACKAGE_TARNAME], [@PACKAGE_TARNAME@])'; \ + echo 'm4_define([AT_PACKAGE_VERSION], [@PACKAGE_VERSION@])'; \ + echo 'm4_define([AT_PACKAGE_STRING], [@PACKAGE_STRING@])'; \ + echo 'm4_define([AT_PACKAGE_BUGREPORT], [@PACKAGE_BUGREPORT@])'; \ + } >$@.new && mv $@.new $@ + + ###----- That's all, folks -------------------------------------------------- diff --combined .ext/cfd/build/confsubst index 0000000,2638a71..2638a71 mode 000000,100755..100755 --- a/.ext/cfd/build/confsubst +++ b/.ext/cfd/build/confsubst @@@ -1,0 -1,82 +1,82 @@@ + #! /bin/sh + ### -*-sh-*- + ### + ### Make autoconf-like substitutions in files + ### + ### (c) 2008 Mark Wooding + ### + + ###----- Licensing notice --------------------------------------------------- + ### + ### This file is part of the Common Files Distribution (`common'). + ### + ### `Common' 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 2 of the License, or + ### (at your option) any later version. + ### + ### `Common' 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 `common'; if not, write to the Free Software Foundation, + ### Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + set -e + + ###-------------------------------------------------------------------------- + ### Parse command line arguments. + + while [ $# -gt 0 ]; do + case $1 in + -h | --h | --he | --hel | --help) + cat <&2 + exit 1 + ;; + *) + break + ;; + esac + shift + done + + if [ $# -lt 1 ]; then + echo >&2 "Usage: confsubst FILE TAG=VALUE..." + exit 1 + fi + file=$1; shift + + ###-------------------------------------------------------------------------- + ### Main code. + + subst="" + for fixup; do + case "$fixup" in + *?=*) ;; + *) echo >&2 "$0: bad substitution: $fixup"; exit 1 ;; + esac + tag=${fixup%%=*} value=${fixup#*=} + subst="$subst s@$tag@$valueg;" + done + + sed "$subst" $file || exit $? + + ###----- That's all, folks -------------------------------------------------- diff --combined .ext/cfd/build/maninst index 0000000,20fbf6c..20fbf6c mode 000000,100755..100755 --- a/.ext/cfd/build/maninst +++ b/.ext/cfd/build/maninst @@@ -1,0 -1,55 +1,55 @@@ + #! /bin/sh + + set -e + ext="" mandir=/usr/local/man srcdir=. inst=install mode=644 + while [ $# -gt 0 ]; do + case $1 in + -h) + echo "$0: [-e EXT] [-d DIR] [-i INSTALL] [-m MODE] [un]install FILE ..." + exit 0 + ;; + -e) ext=$2; shift 2 ;; + -d) mandir=$2; shift 2 ;; + -i) inst=$2; shift 2 ;; + -m) mode=$2; shift 2 ;; + -s) srcdir=$2; shift 2 ;; + --) shift; break ;; + -*) echo >&2 "$0: unknown option \`$1'"; exit 1 ;; + *) break ;; + esac + done + op=$1; shift + case $op in + install | uninstall) ;; + *) echo >&2 "$0: unknown operation \`$1'"; exit 1 ;; + esac + for i; do + base=${i##*/} sec=${base##*.} + case $op in + install) + echo -n " Installing manpage $base$ext" + $inst -d "$mandir/man$sec" + $inst -m $mode "$srcdir/$i" "$mandir/man$sec/$base$ext" + ;; + uninstall) + rm -f "$mandir/man$sec/$base$ext" + ;; + esac + for l in `sed 's:^\.\\\" *@::p; d' "$srcdir/$i"`; do + case $op in + install) + if [ "$l.$sec" != "$base" ]; then + echo -n "." + echo ".so man$sec/$base$ext" >"$mandir/man$sec/$l.$sec$ext" + chmod $mode "$mandir/man$sec/$l.$sec$ext" + fi + ;; + uninstall) + rm -f "$mandir/man$sec/$l.$sec$ext" + ;; + esac + done + case $op in + install) echo ;; + esac + done diff --combined .ext/cfd/build/mdwsetup.py index 0000000,876297e..876297e mode 000000,100644..100644 --- a/.ext/cfd/build/mdwsetup.py +++ b/.ext/cfd/build/mdwsetup.py @@@ -1,0 -1,423 +1,423 @@@ + ### -*-python-*- + ### + ### Utility module for Python build systems + ### + ### (c) 2009 Straylight/Edgeware + ### + + ###----- Licensing notice --------------------------------------------------- + ### + ### This file is part of the Common Files Distribution (`common') + ### + ### `Common' 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 2 of the License, or + ### (at your option) any later version. + ### + ### `Common' 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 `common'; if not, write to the Free Software Foundation, + ### Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + from __future__ import with_statement + + import sys as SYS + import os as OS + import re as RE + import signal as SIG + import subprocess as SUB + + import distutils.core as DC + import distutils.log as DL + + ###-------------------------------------------------------------------------- + ### Preliminaries. + + ## Turn off Python's `SIGINT' handler. If we get stuck in a native-code loop + ## then ^C will just set a flag that will be noticed by the main interpreter + ## loop if we ever get to it again. And raising `SIGINT' is how Emacs `C-c + ## C-k' aborts a compilation, so this is really unsatisfactory. + SIG.signal(SIG.SIGINT, SIG.SIG_DFL) + + ###-------------------------------------------------------------------------- + ### Compatibility hacks. + + def with_metaclass(meta, *supers): + return meta("#" % meta.__name__, + supers or (object,), dict()) + + ###-------------------------------------------------------------------------- + ### Random utilities. + + def uniquify(seq): + """ + Return a list of the elements of SEQ, with duplicates removed. + + Only the first occurrence (according to `==') is left. + """ + seen = {} + out = [] + for item in seq: + if item not in seen: + seen[item] = True + out.append(item) + return out + + ###-------------------------------------------------------------------------- + ### Subprocess hacking. + + class SubprocessFailure (Exception): + def __init__(me, file, rc): + me.args = (file, rc) + me.file = file + me.rc = rc + def __str__(me): + if OS.WIFEXITED(me.rc): + return '%s failed (rc = %d)' % (me.file, OS.WEXITSTATUS(me.rc)) + elif OS.WIFSIGNALED(me.rc): + return '%s died (signal %d)' % (me.file, OS.WTERMSIG(me.rc)) + else: + return '%s died inexplicably' % (me.file) + + def progoutput(command): + """ + Run the shell COMMAND and return its standard output. + + The COMMAND must produce exactly one line of output, and must exit with + status zero. + """ + kid = SUB.Popen(command, stdout = SUB.PIPE, universal_newlines = True) + try: + out = kid.stdout.readline() + junk = kid.stdout.read(1) + finally: + kid.stdout.close() + if junk != '': raise ValueError \ + ("Child process `%s' produced unspected output %r" % (command, junk)) + rc = kid.wait() + if rc != 0: raise SubprocessFailure(command, rc) + return out.rstrip('\n') + + ###-------------------------------------------------------------------------- + ### External library packages. + + INCLUDEDIRS = [] + LIBDIRS = [] + LIBS = [] + + def pkg_config(pkg, version): + """ + Find the external package PKG and store the necessary compiler flags. + + The include-directory names are stored in INCLUDEDIRS; the + library-directory names are in LIBDIRS; and the library names themselves + are in LIBS. + """ + + def weird(what, word): + raise ValueError \ + ("Unexpected `%s' item `%s' from package `%s'" % (what, word, pkg)) + + spec = '%s >= %s' % (pkg, version) + + try: cflags = OS.environ["%s_CFLAGS" % pkg] + except KeyError: cflags = progoutput(['pkg-config', '--cflags', spec]) + for word in cflags.split(): + if word.startswith('-I'): INCLUDEDIRS.append(word[2:]) + else: weird('CFLAGS', word) + try: libs = OS.environ["%s_LIBS" % pkg] + except KeyError: libs = progoutput(['pkg-config', '--libs', spec]) + for word in libs.split(): + if word.startswith('-L'): LIBDIRS.append(word[2:]) + elif word.startswith('-l'): LIBS.append(word[2:]) + else: weird('LIBS', word) + + ###-------------------------------------------------------------------------- + ### Substituting variables in files. + + class BaseGenFile (object): + """ + A base class for file generators. + + Instances of subclasses are suitable for listing in the `genfiles' + attribute, passed to `setup'. + + Subclasses need to implement `_gen', which should simply do the work of + generating the target file from its sources. This class will print + progress messages and check whether the target actually needs regenerating. + """ + def __init__(me, target, sources = []): + me.target = target + me.sources = sources + def _needs_update_p(me): + if not OS.path.exists(me.target): return True + t_target = OS.stat(me.target).st_mtime + for s in me.sources: + if OS.stat(s).st_mtime >= t_target: return True + return False + def gen(me, dry_run_p = False): + if not me._needs_update_p(): return + DL.log(DL.INFO, "generate `%s' from %s", me.target, + ', '.join("`%s'" % s for s in me.sources)) + if not dry_run_p: me._gen() + def clean(me, dry_run_p): + if not OS.path.exists(me.target): return + DL.log(DL.INFO, "delete `%s'", me.target) + if not dry_run_p: OS.remove(me.target) + + class Derive (BaseGenFile): + """ + Derive TARGET from SOURCE by making simple substitutions. + + The SOURCE may contain markers %FOO%; these are replaced by SUBSTMAP['FOO'] + in the TARGET file. + """ + RX_SUBST = RE.compile(r'\%(\w+)\%') + def __init__(me, target, source, substmap): + BaseGenFile.__init__(me, target, [source]) + me._map = substmap + def _gen(me): + temp = me.target + '.new' + with open(temp, 'w') as ft: + with open(me.sources[0], 'r') as fs: + for line in fs: + ft.write(me.RX_SUBST.sub((lambda m: me._map[m.group(1)]), line)) + OS.rename(temp, me.target) + + class Generate (BaseGenFile): + """ + Generate TARGET by running the SOURCE Python script. + + If SOURCE is omitted, replace the extension of TARGET by `.py'. + """ + def __init__(me, target, source = None): + if source is None: source = OS.path.splitext(target)[0] + '.py' + BaseGenFile.__init__(me, target, [source]) + def _gen(me): + temp = me.target + '.new' + with open(temp, 'w') as ft: + rc = SUB.call([SYS.executable, me.sources[0]], stdout = ft) + if rc != 0: raise SubprocessFailure(me.sources[0], rc << 8) + OS.rename(temp, me.target) + + ## Backward compatibility. + def derive(target, source, substmap): Derive(target, source, substmap).gen() + def generate(target, source = None): Generate(target, source).gen() + + ###-------------------------------------------------------------------------- + ### Discovering version numbers. + + def auto_version(writep = True): + """ + Returns the package version number. + + As a side-effect, if WRITEP is true, then write the version number to the + RELEASE file so that it gets included in distributions. + + All of this is for backwards compatibility. New projects should omit the + `version' keyword entirely and let `setup' discover it and write it into + tarballs automatically. + """ + version = progoutput(['./auto-version']) + if writep: + with open('RELEASE.new', 'w') as ft: ft.write('%s\n' % version) + OS.rename('RELEASE.new', 'RELEASE') + return version + + ###-------------------------------------------------------------------------- + ### Adding new commands. + + CMDS = {} + + class CommandClass (type): + """ + Metaclass for command classes: automatically adds them to the `CMDS' map. + """ + def __new__(cls, name, supers, dict): + c = super(CommandClass, cls).__new__(cls, name, supers, dict) + try: name = c.NAME + except AttributeError: pass + else: CMDS[name] = c + return c + + class Command (with_metaclass(CommandClass, DC.Command, object)): + """ + Base class for `mdwsetup' command classes. + + This provides the automatic registration machinery, via the metaclass, and + also trivial implementations of various responsibilities of `DC.Command' + methods and attributes. + """ + __metaclass__ = CommandClass + user_options = [] + def initialize_options(me): pass + def finalize_options(me): pass + def run_subs(me): + for s in me.get_sub_commands(): me.run_command(s) + + ###-------------------------------------------------------------------------- + ### Some handy new commands. + + class distdir (Command): + NAME = 'distdir' + description = "print the distribution directory name to stdout" + def run(me): + d = me.distribution + print('%s-%s' % (d.get_name(), d.get_version())) + + class build_gen (Command): + """ + Generate files, according to the `genfiles'. + + The `genfiles' keyword argument to `setup' lists a number of objects which + guide the generation of output files. These objects must implement the + following methods. + + clean(DRY_RUN_P) Remove the output files. + + gen(DRY_RUN_P) Generate the output files, if they don't exist or are + out of date with respect to their prerequisites. + + If DRY_RUN_P is true then the methods must not actually do anything with a + lasting effect, but should print progress messages as usual. + """ + NAME = 'build_gen' + description = "build generated source files" + def run(me): + d = me.distribution + for g in d.genfiles: g.gen(dry_run_p = me.dry_run) + + from distutils.command.build import build as _build + class build (_build, Command): + ## Add `build_gen' early in the list of subcommands. + NAME = 'build' + sub_commands = [('build_gen', lambda me: me.distribution.genfiles)] + sub_commands += _build.sub_commands + + class test (Command): + """ + Run unit tests, according to the `unittests'. + + The `unittests' keyword argument to `setup' lists module names (or other + things acceptable to the `loadTestsFromNames' test-loader method) to be + run. The build library directory is prepended to the load path before + running the tests to ensure that the newly built modules are tested. If + `unittest_dir' is set, then this is appended to the load path so that test + modules can be found there. + """ + NAME = "test" + description = "run the included test suite" + + user_options = \ + [('build-lib=', 'b', "directory containing compiled moules"), + ('tests=', 't', "tests to run"), + ('verbose-test', 'V', "run tests verbosely")] + + def initialize_options(me): + me.build_lib = None + me.verbose_test = False + me.tests = None + def finalize_options(me): + me.set_undefined_options('build', ('build_lib', 'build_lib')) + def run(me): + import unittest as U + d = me.distribution + SYS.path = [me.build_lib] + SYS.path + if d.unittest_dir is not None: SYS.path.append(d.unittest_dir) + if me.tests is not None: tests = me.tests.split(",") + else: tests = d.unittests + suite = U.defaultTestLoader.loadTestsFromNames(tests) + runner = U.TextTestRunner(verbosity = me.verbose_test and 2 or 1) + if me.dry_run: return + result = runner.run(suite) + if result.errors or result.failures or \ + getattr(result, "unexpectedSuccesses", 0): + SYS.exit(2) + + class clean_gen (Command): + """ + Remove the generated files, as listed in `genfiles'. + + See the `build_gen' command for more detailed information. + """ + NAME = 'clean_gen' + description = "clean generated source files" + def run(me): + d = me.distribution + for g in d.genfiles: g.clean(dry_run_p = me.dry_run) + + class clean_others (Command): + """ + Remove the files listed in the `cleanfiles' argument to `setup'. + """ + NAME = 'clean_others' + description = "clean miscellaneous output files" + def run(me): + d = me.distribution + for f in d.cleanfiles: + if not OS.path.exists(f): continue + DL.log(DL.INFO, "delete `%s'", f) + if not me.dry_run: OS.remove(f) + + from distutils.command.clean import clean as _clean + class clean (_clean, Command): + ## Add `clean_gen' and `clean_others' to the list of subcommands. + NAME = 'clean' + sub_commands = [('clean_gen', lambda me: me.distribution.genfiles), + ('clean_others', lambda me: me.distribution.cleanfiles)] + sub_commands += _clean.sub_commands + def run(me): + me.run_subs() + _clean.run(me) + + from distutils.command.sdist import sdist as _sdist + class sdist (_sdist, Command): + ## Write a `RELEASE' file to the output, if we extracted the version number + ## from version control. Also arrange to dereference symbolic links while + ## copying. Symlinks to directories will go horribly wrong, so don't do + ## that. + NAME = 'sdist' + def make_release_tree(me, base_dir, files): + _sdist.make_release_tree(me, base_dir, files) + d = me.distribution + if d._auto_version_p: + v = d.metadata.get_version() + DL.log(DL.INFO, "write `RELEASE' file: %s" % v) + with open(OS.path.join(base_dir, 'RELEASE'), 'w') as f: + f.write('%s\n' % v) + def copy_file(me, infile, outfile, link = None, *args, **kw): + if OS.path.islink(infile): link = None + return _sdist.copy_file(me, infile, outfile, link = link, *args, **kw) + + ###-------------------------------------------------------------------------- + ### Our own version of `setup'. + + class Dist (DC.Distribution): + ## Like the usual version, but with some additional attributes to support + ## our enhanced commands. + def __init__(me, attrs = None): + me.genfiles = [] + me.unittest_dir = None + me.unittests = [] + me.cleanfiles = [] + me._auto_version_p = False + DC.Distribution.__init__(me, attrs) + if me.metadata.version is None: + me.metadata.version = auto_version(writep = False) + me._auto_version_p = True + me.cleanfiles = set(me.cleanfiles) + me.cleanfiles.add('MANIFEST') + + def setup(cmdclass = {}, distclass = Dist, **kw): + ## Like the usual version, but provides defaults more suited to our + ## purposes. + cmds = dict() + cmds.update(CMDS) + cmds.update(cmdclass) + DC.setup(cmdclass = cmds, distclass = distclass, **kw) + + ###----- That's all, folks -------------------------------------------------- diff --combined .ext/cfd/build/pysetup.mk index 0000000,8e6e607..8e6e607 mode 000000,100644..100644 --- a/.ext/cfd/build/pysetup.mk +++ b/.ext/cfd/build/pysetup.mk @@@ -1,0 -1,76 +1,76 @@@ + ### -*-makefile-*- + ### + ### Standard Makefile for Python packages. + + default: all + + PYTHON ?= python + PYTHONS ?= $(PYTHON) + prefix ?= /usr/local + + ###-------------------------------------------------------------------------- + ### Version information. + + distdir := $(shell $(PYTHON) setup.py -q distdir) + + ###-------------------------------------------------------------------------- + ### Useful targets implemented by the `setup.py' program. + + SINGLE_PYTARGETS += gen + CMD-gen ?= build_gen + + PYTARGETS += all + CMD-all ?= build + $(foreach p,$(PYTHONS),all/$p):: all/%: gen + + PYTARGETS += clean + OPTS-clean ?= --all + clean-hook::; rm -f MANIFEST RELEASE + + SINGLE_PYTARGETS += dist + CMD-dist ?= sdist + OPTS-dist += --dist-dir . + + PYTARGETS += install + OPTS-install += --prefix $(prefix) \ + $(and $(DESTDIR),--root $(DESTDIR)) + + PYTARGETS += check + CMD-check ?= test + $(foreach p,$(PYTHONS),check/$p):: check/%: all/% + + ###-------------------------------------------------------------------------- + ### Interfacing `setup.py' to make. + + pysetup = $(or $2,$(PYTHON)) setup.py \ + $(if $(filter-out undefined,$(origin CMD-$1)),$(CMD-$1),$1) \ + $(OPTS-$1) $(OPTS-$1/$(or $2,$(PYTHON))) + + PYTHON_PYTARGETS = $(foreach t, $(PYTARGETS), \ + $(foreach p, $(PYTHONS), \ + $t/$p)) + ALL_PYTARGETS = $(PYTARGETS) + ALL_PYTARGETS += $(SINGLE_PYTARGETS) $(PYTHON_PYTARGETS) + + $(foreach t, $(ALL_PYTARGETS), $t-hook):: %: + + $(SINGLE_PYTARGETS):: %: %-hook setup.py + $(call pysetup,$*) + $(PYTARGETS):: %: %-hook $(foreach p, $(PYTHONS), %/$p) + $(PYTHON_PYTARGETS):: %: %-hook setup.py + $(call pysetup,$(patsubst %/,%,$(dir $*)),$(notdir $*)) + + .PHONY: $(ALL_PYTARGETS) + + ###-------------------------------------------------------------------------- + ### Release builds. + + distcheck: + rm -rf _distcheck + $(PYTHON) setup.py sdist --dist-dir _distcheck + cd _distcheck && tar xvfz $(distdir).tar.gz + cd _distcheck/$(distdir) && $(MAKE) check && $(MAKE) dist + cp _distcheck/$(distdir)/$(distdir).tar.gz . + rm -rf _distcheck + + ###----- That's all, folks -------------------------------------------------- diff --combined .ext/cfd/build/testsuite.at index 0000000,2122f5f..2122f5f mode 000000,100644..100644 --- a/.ext/cfd/build/testsuite.at +++ b/.ext/cfd/build/testsuite.at @@@ -1,0 -1,37 +1,37 @@@ + dnl -*-autotest-*- + dnl + dnl Generic test framework + dnl + dnl (c) 2008 Straylight/Edgeware + dnl + + dnl----- Licensing notice --------------------------------------------------- + dnl + dnl This file is part of the Common Files Distribution (`common'). + dnl + dnl `Common' is free software; you can redistribute it and/or modify + dnl it under the terms of the GNU General Public License as published by + dnl the Free Software Foundation; either version 2 of the License, or + dnl (at your option) any later version. + dnl + dnl `Common' is distributed in the hope that it will be useful, + dnl but WITHOUT ANY WARRANTY; without even the implied warranty of + dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + dnl GNU General Public License for more details. + dnl + dnl You should have received a copy of the GNU General Public License + dnl along with `common'; if not, write to the Free Software Foundation, + dnl Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + AT_INIT + + m4_define([TESTS], [dnl + m4_pushdef([SRCDIR], [$abs_srcdir/$1]) + m4_pushdef([BUILDDIR], [$abs_builddir/$1]) + m4_include([$1/$2]) + m4_popdef([BUILDDIR]) + m4_popdef([SRCDIR]) + ]) + m4_include([tests.m4]) + + dnl----- That's all, folks -------------------------------------------------- diff --combined .ext/cfd/doc/INSTALL index 0000000,3b50ea9..3b50ea9 mode 000000,100644..100644 --- a/.ext/cfd/doc/INSTALL +++ b/.ext/cfd/doc/INSTALL @@@ -1,0 -1,176 +1,176 @@@ + Basic Installation + ================== + + These are generic installation instructions. + + The `configure' shell script attempts to guess correct values for + various system-dependent variables used during compilation. It uses + those values to create a `Makefile' in each directory of the package. + It may also create one or more `.h' files containing system-dependent + definitions. Finally, it creates a shell script `config.status' that + you can run in the future to recreate the current configuration, a file + `config.cache' that saves the results of its tests to speed up + reconfiguring, and a file `config.log' containing compiler output + (useful mainly for debugging `configure'). + + If you need to do unusual things to compile the package, please try + to figure out how `configure' could check whether to do them, and mail + diffs or instructions to the address given in the `README' so they can + be considered for the next release. If at some point `config.cache' + contains results you don't want to keep, you may remove or edit it. + + The file `configure.in' is used to create `configure' by a program + called `autoconf'. You only need `configure.in' if you want to change + it or regenerate `configure' using a newer version of `autoconf'. + + The simplest way to compile this package is: + + 1. `cd' to the directory containing the package's source code and type + `./configure' to configure the package for your system. If you're + using `csh' on an old version of System V, you might need to type + `sh ./configure' instead to prevent `csh' from trying to execute + `configure' itself. + + Running `configure' takes a while. While running, it prints some + messages telling which features it is checking for. + + 2. Type `make' to compile the package. + + 3. Optionally, type `make check' to run any self-tests that come with + the package. + + 4. Type `make install' to install the programs and any data files and + documentation. + + 5. You can remove the program binaries and object files from the + source code directory by typing `make clean'. To also remove the + files that `configure' created (so you can compile the package for + a different kind of computer), type `make distclean'. There is + also a `make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + + Compilers and Options + ===================== + + Some systems require unusual options for compilation or linking that + the `configure' script does not know about. You can give `configure' + initial values for variables by setting them in the environment. Using + a Bourne-compatible shell, you can do that on the command line like + this: + CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure + + Or on systems that have the `env' program, you can do it like this: + env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure + + Compiling For Multiple Architectures + ==================================== + + You can compile the package for more than one kind of computer at the + same time, by placing the object files for each architecture in their + own directory. To do this, you must use a version of `make' that + supports the `VPATH' variable, such as GNU `make'. `cd' to the + directory where you want the object files and executables to go and run + the `configure' script. `configure' automatically checks for the + source code in the directory that `configure' is in and in `..'. + + If you have to use a `make' that does not supports the `VPATH' + variable, you have to compile the package for one architecture at a time + in the source code directory. After you have installed the package for + one architecture, use `make distclean' before reconfiguring for another + architecture. + + Installation Names + ================== + + By default, `make install' will install the package's files in + `/usr/local/bin', `/usr/local/man', etc. You can specify an + installation prefix other than `/usr/local' by giving `configure' the + option `--prefix=PATH'. + + You can specify separate installation prefixes for + architecture-specific files and architecture-independent files. If you + give `configure' the option `--exec-prefix=PATH', the package will use + PATH as the prefix for installing programs and libraries. + Documentation and other data files will still use the regular prefix. + + If the package supports it, you can cause programs to be installed + with an extra prefix or suffix on their names by giving `configure' the + option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + + Optional Features + ================= + + Some packages pay attention to `--enable-FEATURE' options to + `configure', where FEATURE indicates an optional part of the package. + They may also pay attention to `--with-PACKAGE' options, where PACKAGE + is something like `gnu-as' or `x' (for the X Window System). The + `README' should mention any `--enable-' and `--with-' options that the + package recognizes. + + For packages that use the X Window System, `configure' can usually + find the X include and library files automatically, but if it doesn't, + you can use the `configure' options `--x-includes=DIR' and + `--x-libraries=DIR' to specify their locations. + + Specifying the System Type + ========================== + + There may be some features `configure' can not figure out + automatically, but needs to determine by the type of host the package + will run on. Usually `configure' can figure that out, but if it prints + a message saying it can not guess the host type, give it the + `--host=TYPE' option. TYPE can either be a short name for the system + type, such as `sun4', or a canonical name with three fields: + CPU-COMPANY-SYSTEM + + See the file `config.sub' for the possible values of each field. If + `config.sub' isn't included in this package, then this package doesn't + need to know the host type. + + If you are building compiler tools for cross-compiling, you can also + use the `--target=TYPE' option to select the type of system they will + produce code for and the `--build=TYPE' option to select the type of + system on which you are compiling the package. + + Sharing Defaults + ================ + + If you want to set default values for `configure' scripts to share, + you can create a site shell script called `config.site' that gives + default values for variables like `CC', `cache_file', and `prefix'. + `configure' looks for `PREFIX/share/config.site' if it exists, then + `PREFIX/etc/config.site' if it exists. Or, you can set the + `CONFIG_SITE' environment variable to the location of the site script. + A warning: not all `configure' scripts look for a site script. + + Operation Controls + ================== + + `configure' recognizes the following options to control how it + operates. + + `--cache-file=FILE' + Use and save the results of the tests in FILE instead of + `./config.cache'. Set FILE to `/dev/null' to disable caching, for + debugging `configure'. + + `--help' + Print a summary of the options to `configure', and exit. + + `--quiet' + `--silent' + `-q' + Do not print messages saying which checks are being made. + + `--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + `configure' can determine that directory automatically. + + `--version' + Print the version of Autoconf used to generate the `configure' + script, and exit. + + `configure' also accepts some other, not widely useful, options. + diff --combined .ext/cfd/doc/texinice.tex index 0000000,b4d84de..b4d84de mode 000000,100644..100644 --- a/.ext/cfd/doc/texinice.tex +++ b/.ext/cfd/doc/texinice.tex @@@ -1,0 -1,117 +1,117 @@@ + @tex % -*-tex-*- + % + % Make Texinfo printed output look nice + % + % (c) 1998 Mark Wooding + % + + %----- Licensing notice ----------------------------------------------------- + % + % This file 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 2 of the License, or + % (at your option) any later version. + % + % This file 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 file; if not, write to the Free Software Foundation, + % Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + \global\parskip = 10pt + \global\parindent = 0pt + \global\defaultparindent = 0pt + + \global\smallskipamount = 6pt + + \gdef\afourpaper{ + \global\tolerance=700 + \global\hfuzz=1pt + \setleading{12pt} + \global\topskip = 36pt + %%% NO!!! \global\parskip 15pt plus 1pt + + \global\vsize= 53\baselineskip + \global\advance\vsize by \topskip + \global\hsize= 5.85in % A4 wide 10pt + %\global\hsize= 6.5in + \global\outerhsize=\hsize + \global\advance\outerhsize by 0.5in + \global\outervsize=\vsize + \global\advance\outervsize by 0.6in + + \ifx\txipagewidth\xxundefined + \global\let\txipagewidth=\pagewidth + \global\let\txipageheight=\pageheight + \fi + \global\txipagewidth=\hsize + \global\txipageheight=\vsize + } + + \global\contentsrightmargin = 0pt + + \global\font\textrm = pplr7t at 10pt + \global\font\texttt = pcrr7tn at 10pt + \global\font\textbf = pplb7t at 10pt + \global\font\textit = pplri7t at 10pt + %\global\font\textsl = pplro7t at 10pt + \global\let\textsl = \textit + \global\font\textsc = pplrc7t at 10pt + \global\font\textsf = phvr7t at 10pt + \global\font\textttsl = pcrro7t at 10pt + + \global\let\defbf = \textbf + \global\let\deftt = \texttt + + \global\font\ninett = pcrr7tn at 9pt + \global\font\indrm = pplr7t at 9pt + \global\font\intit = pplri7t at 9pt + %\global\font\indsl = pplro7t at 9pt + \global\let\indsl = \indit + \global\let\indtt = \ninett + \global\let\indttsl = \ninett + \global\let\indsf = \indrm + \global\let\indbf = \indrm + \global\font\indsc = pplrc7t at 9pt + + \global\font\chaprm = phvb7t at 14.4pt + \global\font\chapsl = phvbo7t at 14.4pt + \global\let\chapit = \chapsl + \global\font\chaptt = pcrb7t at 14.4pt + \global\font\chapttsl = pcrbo7t at 14.4pt + \global\let\chapsf = \chaprm + \global\font\chapsc = phvbc7t at 14.4pt + \global\let\chapbf = \chaprm + + \global\font\secrm = phvb7t at 12pt + \global\font\secsl = phvbo7t at 12pt + \global\let\secit = \secsl + \global\font\sectt = pcrb7t at 12pt + \global\font\secttsl = pcrbo7t at 12pt + \global\let\secsf = \secrm + \global\font\secsc = phvbc7t at 12pt + \global\let\secbf = \secrm + + \global\font\ssecrm = phvb7t at 10pt + \global\font\ssecsl = phvbo7t at 10pt + \global\let\ssecit = \ssecsl + \global\font\ssectt = pcrb7t at 10pt + \global\font\ssecttsl = pcrbo7t at 10pt + \global\let\ssecsf = \ssecrm + \global\font\ssecsc = phvbc7t at 10pt + \global\let\ssecbf = \ssecrm + + \global\font\titlerm = phvb7t at 20pt + \global\let\authorrm = \secrm + + % \gdef\var#1{\leavevmode\hbox{$\langle$\textit#1\/$\rangle$}} + + %----- That's all, folks ---------------------------------------------------- + + @end tex + @textfonts + @textrm + @raggedbottom diff --combined .ext/cfd/licence/AGPL-3 index 0000000,dba13ed..dba13ed mode 000000,100644..100644 --- a/.ext/cfd/licence/AGPL-3 +++ b/.ext/cfd/licence/AGPL-3 @@@ -1,0 -1,661 +1,661 @@@ + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU Affero General Public License is a free, copyleft license for + software and other kinds of works, specifically designed to ensure + cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed + to take away your freedom to share and change the works. By contrast, + our General Public Licenses are intended to guarantee your freedom to + share and change all versions of a program--to make sure it remains free + software for all its users. + + When we speak of free software, we are referring to freedom, not + price. Our General Public Licenses are designed to make sure that you + have the freedom to distribute copies of free software (and charge for + them if you wish), that you receive source code or can get it if you + want it, that you can change the software or use pieces of it in new + free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights + with two steps: (1) assert copyright on the software, and (2) offer + you this License which gives you legal permission to copy, distribute + and/or modify the software. + + A secondary benefit of defending all users' freedom is that + improvements made in alternate versions of the program, if they + receive widespread use, become available for other developers to + incorporate. Many developers of free software are heartened and + encouraged by the resulting cooperation. However, in the case of + software used on network servers, this result may fail to come about. + The GNU General Public License permits making a modified version and + letting the public access it on a server without ever releasing its + source code to the public. + + The GNU Affero General Public License is designed specifically to + ensure that, in such cases, the modified source code becomes available + to the community. It requires the operator of a network server to + provide the source code of the modified version running there to the + users of that server. Therefore, public use of a modified version, on + a publicly accessible server, gives the public access to the source + code of the modified version. + + An older license, called the Affero General Public License and + published by Affero, was designed to accomplish similar goals. This is + a different license, not a version of the Affero GPL, but Affero has + released a new version of the Affero GPL which permits relicensing under + this license. + + The precise terms and conditions for copying, distribution and + modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU Affero General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of + works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this + License. Each licensee is addressed as "you". "Licensees" and + "recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work + in a fashion requiring copyright permission, other than the making of an + exact copy. The resulting work is called a "modified version" of the + earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based + on the Program. + + To "propagate" a work means to do anything with it that, without + permission, would make you directly or secondarily liable for + infringement under applicable copyright law, except executing it on a + computer or modifying a private copy. Propagation includes copying, + distribution (with or without modification), making available to the + public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other + parties to make or receive copies. Mere interaction with a user through + a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" + to the extent that it includes a convenient and prominently visible + feature that (1) displays an appropriate copyright notice, and (2) + tells the user that there is no warranty for the work (except to the + extent that warranties are provided), that licensees may convey the + work under this License, and how to view a copy of this License. If + the interface presents a list of user commands or options, such as a + menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work + for making modifications to it. "Object code" means any non-source + form of a work. + + A "Standard Interface" means an interface that either is an official + standard defined by a recognized standards body, or, in the case of + interfaces specified for a particular programming language, one that + is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other + than the work as a whole, that (a) is included in the normal form of + packaging a Major Component, but which is not part of that Major + Component, and (b) serves only to enable use of the work with that + Major Component, or to implement a Standard Interface for which an + implementation is available to the public in source code form. A + "Major Component", in this context, means a major essential component + (kernel, window system, and so on) of the specific operating system + (if any) on which the executable work runs, or a compiler used to + produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all + the source code needed to generate, install, and (for an executable + work) run the object code and to modify the work, including scripts to + control those activities. However, it does not include the work's + System Libraries, or general-purpose tools or generally available free + programs which are used unmodified in performing those activities but + which are not part of the work. For example, Corresponding Source + includes interface definition files associated with source files for + the work, and the source code for shared libraries and dynamically + linked subprograms that the work is specifically designed to require, + such as by intimate data communication or control flow between those + subprograms and other parts of the work. + + The Corresponding Source need not include anything that users + can regenerate automatically from other parts of the Corresponding + Source. + + The Corresponding Source for a work in source code form is that + same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of + copyright on the Program, and are irrevocable provided the stated + conditions are met. This License explicitly affirms your unlimited + permission to run the unmodified Program. The output from running a + covered work is covered by this License only if the output, given its + content, constitutes a covered work. This License acknowledges your + rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not + convey, without conditions so long as your license otherwise remains + in force. You may convey covered works to others for the sole purpose + of having them make modifications exclusively for you, or provide you + with facilities for running those works, provided that you comply with + the terms of this License in conveying all material for which you do + not control copyright. Those thus making or running the covered works + for you must do so exclusively on your behalf, under your direction + and control, on terms that prohibit them from making any copies of + your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under + the conditions stated below. Sublicensing is not allowed; section 10 + makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological + measure under any applicable law fulfilling obligations under article + 11 of the WIPO copyright treaty adopted on 20 December 1996, or + similar laws prohibiting or restricting circumvention of such + measures. + + When you convey a covered work, you waive any legal power to forbid + circumvention of technological measures to the extent such circumvention + is effected by exercising rights under this License with respect to + the covered work, and you disclaim any intention to limit operation or + modification of the work as a means of enforcing, against the work's + users, your or third parties' legal rights to forbid circumvention of + technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you + receive it, in any medium, provided that you conspicuously and + appropriately publish on each copy an appropriate copyright notice; + keep intact all notices stating that this License and any + non-permissive terms added in accord with section 7 apply to the code; + keep intact all notices of the absence of any warranty; and give all + recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, + and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to + produce it from the Program, in the form of source code under the + terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent + works, which are not by their nature extensions of the covered work, + and which are not combined with it such as to form a larger program, + in or on a volume of a storage or distribution medium, is called an + "aggregate" if the compilation and its resulting copyright are not + used to limit the access or legal rights of the compilation's users + beyond what the individual works permit. Inclusion of a covered work + in an aggregate does not cause this License to apply to the other + parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms + of sections 4 and 5, provided that you also convey the + machine-readable Corresponding Source under the terms of this License, + in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded + from the Corresponding Source as a System Library, need not be + included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any + tangible personal property which is normally used for personal, family, + or household purposes, or (2) anything designed or sold for incorporation + into a dwelling. In determining whether a product is a consumer product, + doubtful cases shall be resolved in favor of coverage. For a particular + product received by a particular user, "normally used" refers to a + typical or common use of that class of product, regardless of the status + of the particular user or of the way in which the particular user + actually uses, or expects or is expected to use, the product. A product + is a consumer product regardless of whether the product has substantial + commercial, industrial or non-consumer uses, unless such uses represent + the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, + procedures, authorization keys, or other information required to install + and execute modified versions of a covered work in that User Product from + a modified version of its Corresponding Source. The information must + suffice to ensure that the continued functioning of the modified object + code is in no case prevented or interfered with solely because + modification has been made. + + If you convey an object code work under this section in, or with, or + specifically for use in, a User Product, and the conveying occurs as + part of a transaction in which the right of possession and use of the + User Product is transferred to the recipient in perpetuity or for a + fixed term (regardless of how the transaction is characterized), the + Corresponding Source conveyed under this section must be accompanied + by the Installation Information. But this requirement does not apply + if neither you nor any third party retains the ability to install + modified object code on the User Product (for example, the work has + been installed in ROM). + + The requirement to provide Installation Information does not include a + requirement to continue to provide support service, warranty, or updates + for a work that has been modified or installed by the recipient, or for + the User Product in which it has been modified or installed. Access to a + network may be denied when the modification itself materially and + adversely affects the operation of the network or violates the rules and + protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, + in accord with this section must be in a format that is publicly + documented (and with an implementation available to the public in + source code form), and must require no special password or key for + unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this + License by making exceptions from one or more of its conditions. + Additional permissions that are applicable to the entire Program shall + be treated as though they were included in this License, to the extent + that they are valid under applicable law. If additional permissions + apply only to part of the Program, that part may be used separately + under those permissions, but the entire Program remains governed by + this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option + remove any additional permissions from that copy, or from any part of + it. (Additional permissions may be written to require their own + removal in certain cases when you modify the work.) You may place + additional permissions on material, added by you to a covered work, + for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you + add to a covered work, you may (if authorized by the copyright holders of + that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further + restrictions" within the meaning of section 10. If the Program as you + received it, or any part of it, contains a notice stating that it is + governed by this License along with a term that is a further + restriction, you may remove that term. If a license document contains + a further restriction but permits relicensing or conveying under this + License, you may add to a covered work material governed by the terms + of that license document, provided that the further restriction does + not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you + must place, in the relevant source files, a statement of the + additional terms that apply to those files, or a notice indicating + where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the + form of a separately written license, or stated as exceptions; + the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly + provided under this License. Any attempt otherwise to propagate or + modify it is void, and will automatically terminate your rights under + this License (including any patent licenses granted under the third + paragraph of section 11). + + However, if you cease all violation of this License, then your + license from a particular copyright holder is reinstated (a) + provisionally, unless and until the copyright holder explicitly and + finally terminates your license, and (b) permanently, if the copyright + holder fails to notify you of the violation by some reasonable means + prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is + reinstated permanently if the copyright holder notifies you of the + violation by some reasonable means, this is the first time you have + received notice of violation of this License (for any work) from that + copyright holder, and you cure the violation prior to 30 days after + your receipt of the notice. + + Termination of your rights under this section does not terminate the + licenses of parties who have received copies or rights from you under + this License. If your rights have been terminated and not permanently + reinstated, you do not qualify to receive new licenses for the same + material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or + run a copy of the Program. Ancillary propagation of a covered work + occurring solely as a consequence of using peer-to-peer transmission + to receive a copy likewise does not require acceptance. However, + nothing other than this License grants you permission to propagate or + modify any covered work. These actions infringe copyright if you do + not accept this License. Therefore, by modifying or propagating a + covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically + receives a license from the original licensors, to run, modify and + propagate that work, subject to this License. You are not responsible + for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an + organization, or substantially all assets of one, or subdividing an + organization, or merging organizations. If propagation of a covered + work results from an entity transaction, each party to that + transaction who receives a copy of the work also receives whatever + licenses to the work the party's predecessor in interest had or could + give under the previous paragraph, plus a right to possession of the + Corresponding Source of the work from the predecessor in interest, if + the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the + rights granted or affirmed under this License. For example, you may + not impose a license fee, royalty, or other charge for exercise of + rights granted under this License, and you may not initiate litigation + (including a cross-claim or counterclaim in a lawsuit) alleging that + any patent claim is infringed by making, using, selling, offering for + sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this + License of the Program or a work on which the Program is based. The + work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims + owned or controlled by the contributor, whether already acquired or + hereafter acquired, that would be infringed by some manner, permitted + by this License, of making, using, or selling its contributor version, + but do not include claims that would be infringed only as a + consequence of further modification of the contributor version. For + purposes of this definition, "control" includes the right to grant + patent sublicenses in a manner consistent with the requirements of + this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free + patent license under the contributor's essential patent claims, to + make, use, sell, offer for sale, import and otherwise run, modify and + propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express + agreement or commitment, however denominated, not to enforce a patent + (such as an express permission to practice a patent or covenant not to + sue for patent infringement). To "grant" such a patent license to a + party means to make such an agreement or commitment not to enforce a + patent against the party. + + If you convey a covered work, knowingly relying on a patent license, + and the Corresponding Source of the work is not available for anyone + to copy, free of charge and under the terms of this License, through a + publicly available network server or other readily accessible means, + then you must either (1) cause the Corresponding Source to be so + available, or (2) arrange to deprive yourself of the benefit of the + patent license for this particular work, or (3) arrange, in a manner + consistent with the requirements of this License, to extend the patent + license to downstream recipients. "Knowingly relying" means you have + actual knowledge that, but for the patent license, your conveying the + covered work in a country, or your recipient's use of the covered work + in a country, would infringe one or more identifiable patents in that + country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or + arrangement, you convey, or propagate by procuring conveyance of, a + covered work, and grant a patent license to some of the parties + receiving the covered work authorizing them to use, propagate, modify + or convey a specific copy of the covered work, then the patent license + you grant is automatically extended to all recipients of the covered + work and works based on it. + + A patent license is "discriminatory" if it does not include within + the scope of its coverage, prohibits the exercise of, or is + conditioned on the non-exercise of one or more of the rights that are + specifically granted under this License. You may not convey a covered + work if you are a party to an arrangement with a third party that is + in the business of distributing software, under which you make payment + to the third party based on the extent of your activity of conveying + the work, and under which the third party grants, to any of the + parties who would receive the covered work from you, a discriminatory + patent license (a) in connection with copies of the covered work + conveyed by you (or copies made from those copies), or (b) primarily + for and in connection with specific products or compilations that + contain the covered work, unless you entered into that arrangement, + or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting + any implied license or other defenses to infringement that may + otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or + otherwise) that contradict the conditions of this License, they do not + excuse you from the conditions of this License. If you cannot convey a + covered work so as to satisfy simultaneously your obligations under this + License and any other pertinent obligations, then as a consequence you may + not convey it at all. For example, if you agree to terms that obligate you + to collect a royalty for further conveying from those to whom you convey + the Program, the only way you could satisfy both those terms and this + License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the + Program, your modified version must prominently offer all users + interacting with it remotely through a computer network (if your version + supports such interaction) an opportunity to receive the Corresponding + Source of your version by providing access to the Corresponding Source + from a network server at no charge, through some standard or customary + means of facilitating copying of software. This Corresponding Source + shall include the Corresponding Source for any work covered by version 3 + of the GNU General Public License that is incorporated pursuant to the + following paragraph. + + Notwithstanding any other provision of this License, you have + permission to link or combine any covered work with a work licensed + under version 3 of the GNU General Public License into a single + combined work, and to convey the resulting work. The terms of this + License will continue to apply to the part which is the covered work, + but the work with which it is combined will remain governed by version + 3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of + the GNU Affero General Public License from time to time. Such new versions + will be similar in spirit to the present version, but may differ in detail to + address new problems or concerns. + + Each version is given a distinguishing version number. If the + Program specifies that a certain numbered version of the GNU Affero General + Public License "or any later version" applies to it, you have the + option of following the terms and conditions either of that numbered + version or of any later version published by the Free Software + Foundation. If the Program does not specify a version number of the + GNU Affero General Public License, you may choose any version ever published + by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future + versions of the GNU Affero General Public License can be used, that proxy's + public statement of acceptance of a version permanently authorizes you + to choose that version for the Program. + + Later license versions may give you additional or different + permissions. However, no additional obligations are imposed on any + author or copyright holder as a result of your choosing to follow a + later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY + APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT + HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY + OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, + THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM + IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF + ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING + WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS + THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY + GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE + USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF + DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD + PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), + EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF + SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided + above cannot be given local legal effect according to their terms, + reviewing courts shall apply local law that most closely approximates + an absolute waiver of all civil liability in connection with the + Program, unless a warranty or assumption of liability accompanies a + copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest + possible use to the public, the best way to achieve this is to make it + free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest + to attach them to the start of each source file to most effectively + state the exclusion of warranty; and each file should have at least + the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, 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 Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + + Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer + network, you should also make sure that it provides a way for users to + get its source. For example, if your program is a web application, its + interface could display a "Source" link that leads users to an archive + of the code. There are many ways you could offer source, and different + solutions will be better for different programs; see section 13 for the + specific requirements. + + You should also get your employer (if you work as a programmer) or school, + if any, to sign a "copyright disclaimer" for the program, if necessary. + For more information on this, and how to apply and follow the GNU AGPL, see + . diff --combined .ext/cfd/licence/GPL-1 index 0000000,8de98af..8de98af mode 000000,100644..100644 --- a/.ext/cfd/licence/GPL-1 +++ b/.ext/cfd/licence/GPL-1 @@@ -1,0 -1,251 +1,251 @@@ + + GNU GENERAL PUBLIC LICENSE + Version 1, February 1989 + + Copyright (C) 1989 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The license agreements of most software companies try to keep users + at the mercy of those companies. By contrast, our General Public + License is intended to guarantee your freedom to share and change free + software--to make sure the software is free for all its users. The + General Public License applies to the Free Software Foundation's + software and to any other program whose authors commit to using it. + You can use it for your programs, too. + + When we speak of free software, we are referring to freedom, not + price. Specifically, the General Public License is designed to make + sure that you have the freedom to give away or sell copies of free + software, that you receive source code or can get it if you want it, + that you can change the software or use pieces of it in new free + programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid + anyone to deny you these rights or to ask you to surrender the rights. + These restrictions translate to certain responsibilities for you if you + distribute copies of the software, or if you modify it. + + For example, if you distribute copies of a such a program, whether + gratis or for a fee, you must give the recipients all the rights that + you have. You must make sure that they, too, receive or can get the + source code. And you must tell them their rights. + + We protect your rights with two steps: (1) copyright the software, and + (2) offer you this license which gives you legal permission to copy, + distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain + that everyone understands that there is no warranty for this free + software. If the software is modified by someone else and passed on, we + want its recipients to know that what they have is not the original, so + that any problems introduced by others will not reflect on the original + authors' reputations. + + The precise terms and conditions for copying, distribution and + modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any program or other work which + contains a notice placed by the copyright holder saying it may be + distributed under the terms of this General Public License. The + "Program", below, refers to any such program or work, and a "work based + on the Program" means either the Program or any work containing the + Program or a portion of it, either verbatim or with modifications. Each + licensee is addressed as "you". + + 1. You may copy and distribute verbatim copies of the Program's source + code as you receive it, in any medium, provided that you conspicuously and + appropriately publish on each copy an appropriate copyright notice and + disclaimer of warranty; keep intact all the notices that refer to this + General Public License and to the absence of any warranty; and give any + other recipients of the Program a copy of this General Public License + along with the Program. You may charge a fee for the physical act of + transferring a copy. + + 2. You may modify your copy or copies of the Program or any portion of + it, and copy and distribute such modifications under the terms of Paragraph + 1 above, provided that you also do the following: + + a) cause the modified files to carry prominent notices stating that + you changed the files and the date of any change; and + + b) cause the whole of any work that you distribute or publish, that + in whole or in part contains the Program or any part thereof, either + with or without modifications, to be licensed at no charge to all + third parties under the terms of this General Public License (except + that you may choose to grant warranty protection to some or all + third parties, at your option). + + c) If the modified program normally reads commands interactively when + run, you must cause it, when started running for such interactive use + in the simplest and most usual way, to print or display an + announcement including an appropriate copyright notice and a notice + that there is no warranty (or else, saying that you provide a + warranty) and that users may redistribute the program under these + conditions, and telling the user how to view a copy of this General + Public License. + + d) You may charge a fee for the physical act of transferring a + copy, and you may at your option offer warranty protection in + exchange for a fee. + + Mere aggregation of another independent work with the Program (or its + derivative) on a volume of a storage or distribution medium does not bring + the other work under the scope of these terms. + + 3. You may copy and distribute the Program (or a portion or derivative of + it, under Paragraph 2) in object code or executable form under the terms of + Paragraphs 1 and 2 above provided that you also do one of the following: + + a) accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of + Paragraphs 1 and 2 above; or, + + b) accompany it with a written offer, valid for at least three + years, to give any third party free (except for a nominal charge + for the cost of distribution) a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of + Paragraphs 1 and 2 above; or, + + c) accompany it with the information you received as to where the + corresponding source code may be obtained. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form alone.) + + Source code for a work means the preferred form of the work for making + modifications to it. For an executable file, complete source code means + all the source code for all modules it contains; but, as a special + exception, it need not include source code for modules which are standard + libraries that accompany the operating system on which the executable + file runs, or for standard header files or definitions files that + accompany that operating system. + + 4. You may not copy, modify, sublicense, distribute or transfer the + Program except as expressly provided under this General Public License. + Any attempt otherwise to copy, modify, sublicense, distribute or transfer + the Program is void, and will automatically terminate your rights to use + the Program under this License. However, parties who have received + copies, or rights to use copies, from you under this General Public + License will not have their licenses terminated so long as such parties + remain in full compliance. + + 5. By copying, distributing or modifying the Program (or any work based + on the Program) you indicate your acceptance of this license to do so, + and all its terms and conditions. + + 6. Each time you redistribute the Program (or any work based on the + Program), the recipient automatically receives a license from the original + licensor to copy, distribute or modify the Program subject to these + terms and conditions. You may not impose any further restrictions on the + recipients' exercise of the rights granted herein. + + 7. The Free Software Foundation may publish revised and/or new versions + of the General Public License from time to time. Such new versions will + be similar in spirit to the present version, but may differ in detail to + address new problems or concerns. + + Each version is given a distinguishing version number. If the Program + specifies a version number of the license which applies to it and "any + later version", you have the option of following the terms and conditions + either of that version or of any later version published by the Free + Software Foundation. If the Program does not specify a version number of + the license, you may choose any version ever published by the Free Software + Foundation. + + 8. If you wish to incorporate parts of the Program into other free + programs whose distribution conditions are different, write to the author + to ask for permission. For software which is copyrighted by the Free + Software Foundation, write to the Free Software Foundation; we sometimes + make exceptions for this. Our decision will be guided by the two goals + of preserving the free status of all derivatives of our free software and + of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY + FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN + OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES + PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED + OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS + TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE + PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, + REPAIR OR CORRECTION. + + 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING + WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR + REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, + INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING + OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED + TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY + YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER + PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE + POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest + possible use to humanity, the best way to achieve this is to make it + free software which everyone can redistribute and change under these + terms. + + To do so, attach the following notices to the program. It is safest to + attach them to the start of each source file to most effectively convey + the exclusion of warranty; and each file should have at least the + "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) 19yy + + 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 1, 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, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA + + + Also add information on how to contact you by electronic and paper mail. + + If the program is interactive, make it output a short notice like this + when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19xx name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + + The hypothetical commands `show w' and `show c' should show the + appropriate parts of the General Public License. Of course, the + commands you use may be called something other than `show w' and `show + c'; they could even be mouse-clicks or menu items--whatever suits your + program. + + You should also get your employer (if you work as a programmer) or your + school, if any, to sign a "copyright disclaimer" for the program, if + necessary. Here a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + program `Gnomovision' (a program to direct compilers to make passes + at assemblers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + + That's all there is to it! diff --combined .ext/cfd/licence/GPL-2 index 0000000,d159169..d159169 mode 000000,100644..100644 --- a/.ext/cfd/licence/GPL-2 +++ b/.ext/cfd/licence/GPL-2 @@@ -1,0 -1,339 +1,339 @@@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your + freedom to share and change it. By contrast, the GNU General Public + License is intended to guarantee your freedom to share and change free + software--to make sure the software is free for all its users. This + General Public License applies to most of the Free Software + Foundation's software and to any other program whose authors commit to + using it. (Some other Free Software Foundation software is covered by + the GNU Lesser General Public License instead.) You can apply it to + your programs, too. + + When we speak of free software, we are referring to freedom, not + price. Our General Public Licenses are designed to make sure that you + have the freedom to distribute copies of free software (and charge for + this service if you wish), that you receive source code or can get it + if you want it, that you can change the software or use pieces of it + in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid + anyone to deny you these rights or to ask you to surrender the rights. + These restrictions translate to certain responsibilities for you if you + distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether + gratis or for a fee, you must give the recipients all the rights that + you have. You must make sure that they, too, receive or can get the + source code. And you must show them these terms so they know their + rights. + + We protect your rights with two steps: (1) copyright the software, and + (2) offer you this license which gives you legal permission to copy, + distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain + that everyone understands that there is no warranty for this free + software. If the software is modified by someone else and passed on, we + want its recipients to know that what they have is not the original, so + that any problems introduced by others will not reflect on the original + authors' reputations. + + Finally, any free program is threatened constantly by software + patents. We wish to avoid the danger that redistributors of a free + program will individually obtain patent licenses, in effect making the + program proprietary. To prevent this, we have made it clear that any + patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and + modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains + a notice placed by the copyright holder saying it may be distributed + under the terms of this General Public License. The "Program", below, + refers to any such program or work, and a "work based on the Program" + means either the Program or any derivative work under copyright law: + that is to say, a work containing the Program or a portion of it, + either verbatim or with modifications and/or translated into another + language. (Hereinafter, translation is included without limitation in + the term "modification".) Each licensee is addressed as "you". + + Activities other than copying, distribution and modification are not + covered by this License; they are outside its scope. The act of + running the Program is not restricted, and the output from the Program + is covered only if its contents constitute a work based on the + Program (independent of having been made by running the Program). + Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's + source code as you receive it, in any medium, provided that you + conspicuously and appropriately publish on each copy an appropriate + copyright notice and disclaimer of warranty; keep intact all the + notices that refer to this License and to the absence of any warranty; + and give any other recipients of the Program a copy of this License + along with the Program. + + You may charge a fee for the physical act of transferring a copy, and + you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion + of it, thus forming a work based on the Program, and copy and + distribute such modifications or work under the terms of Section 1 + above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + + These requirements apply to the modified work as a whole. If + identifiable sections of that work are not derived from the Program, + and can be reasonably considered independent and separate works in + themselves, then this License, and its terms, do not apply to those + sections when you distribute them as separate works. But when you + distribute the same sections as part of a whole which is a work based + on the Program, the distribution of the whole must be on the terms of + this License, whose permissions for other licensees extend to the + entire whole, and thus to each and every part regardless of who wrote it. + + Thus, it is not the intent of this section to claim rights or contest + your rights to work written entirely by you; rather, the intent is to + exercise the right to control the distribution of derivative or + collective works based on the Program. + + In addition, mere aggregation of another work not based on the Program + with the Program (or with a work based on the Program) on a volume of + a storage or distribution medium does not bring the other work under + the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, + under Section 2) in object code or executable form under the terms of + Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + + The source code for a work means the preferred form of the work for + making modifications to it. For an executable work, complete source + code means all the source code for all modules it contains, plus any + associated interface definition files, plus the scripts used to + control compilation and installation of the executable. However, as a + special exception, the source code distributed need not include + anything that is normally distributed (in either source or binary + form) with the major components (compiler, kernel, and so on) of the + operating system on which the executable runs, unless that component + itself accompanies the executable. + + If distribution of executable or object code is made by offering + access to copy from a designated place, then offering equivalent + access to copy the source code from the same place counts as + distribution of the source code, even though third parties are not + compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program + except as expressly provided under this License. Any attempt + otherwise to copy, modify, sublicense or distribute the Program is + void, and will automatically terminate your rights under this License. + However, parties who have received copies, or rights, from you under + this License will not have their licenses terminated so long as such + parties remain in full compliance. + + 5. You are not required to accept this License, since you have not + signed it. However, nothing else grants you permission to modify or + distribute the Program or its derivative works. These actions are + prohibited by law if you do not accept this License. Therefore, by + modifying or distributing the Program (or any work based on the + Program), you indicate your acceptance of this License to do so, and + all its terms and conditions for copying, distributing or modifying + the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the + Program), the recipient automatically receives a license from the + original licensor to copy, distribute or modify the Program subject to + these terms and conditions. You may not impose any further + restrictions on the recipients' exercise of the rights granted herein. + You are not responsible for enforcing compliance by third parties to + this License. + + 7. If, as a consequence of a court judgment or allegation of patent + infringement or for any other reason (not limited to patent issues), + conditions are imposed on you (whether by court order, agreement or + otherwise) that contradict the conditions of this License, they do not + excuse you from the conditions of this License. If you cannot + distribute so as to satisfy simultaneously your obligations under this + License and any other pertinent obligations, then as a consequence you + may not distribute the Program at all. For example, if a patent + license would not permit royalty-free redistribution of the Program by + all those who receive copies directly or indirectly through you, then + the only way you could satisfy both it and this License would be to + refrain entirely from distribution of the Program. + + If any portion of this section is held invalid or unenforceable under + any particular circumstance, the balance of the section is intended to + apply and the section as a whole is intended to apply in other + circumstances. + + It is not the purpose of this section to induce you to infringe any + patents or other property right claims or to contest validity of any + such claims; this section has the sole purpose of protecting the + integrity of the free software distribution system, which is + implemented by public license practices. Many people have made + generous contributions to the wide range of software distributed + through that system in reliance on consistent application of that + system; it is up to the author/donor to decide if he or she is willing + to distribute software through any other system and a licensee cannot + impose that choice. + + This section is intended to make thoroughly clear what is believed to + be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in + certain countries either by patents or by copyrighted interfaces, the + original copyright holder who places the Program under this License + may add an explicit geographical distribution limitation excluding + those countries, so that distribution is permitted only in or among + countries not thus excluded. In such case, this License incorporates + the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions + of the General Public License from time to time. Such new versions will + be similar in spirit to the present version, but may differ in detail to + address new problems or concerns. + + Each version is given a distinguishing version number. If the Program + specifies a version number of this License which applies to it and "any + later version", you have the option of following the terms and conditions + either of that version or of any later version published by the Free + Software Foundation. If the Program does not specify a version number of + this License, you may choose any version ever published by the Free Software + Foundation. + + 10. If you wish to incorporate parts of the Program into other free + programs whose distribution conditions are different, write to the author + to ask for permission. For software which is copyrighted by the Free + Software Foundation, write to the Free Software Foundation; we sometimes + make exceptions for this. Our decision will be guided by the two goals + of preserving the free status of all derivatives of our free software and + of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY + FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN + OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES + PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED + OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS + TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE + PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, + REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING + WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR + REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, + INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING + OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED + TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY + YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER + PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE + POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest + possible use to the public, the best way to achieve this is to make it + free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest + to attach them to the start of each source file to most effectively + convey the exclusion of warranty; and each file should have at least + the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + 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 2 of the License, 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, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + Also add information on how to contact you by electronic and paper mail. + + If the program is interactive, make it output a short notice like this + when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + + The hypothetical commands `show w' and `show c' should show the appropriate + parts of the General Public License. Of course, the commands you use may + be called something other than `show w' and `show c'; they could even be + mouse-clicks or menu items--whatever suits your program. + + You should also get your employer (if you work as a programmer) or your + school, if any, to sign a "copyright disclaimer" for the program, if + necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + + This General Public License does not permit incorporating your program into + proprietary programs. If your program is a subroutine library, you may + consider it more useful to permit linking proprietary applications with the + library. If this is what you want to do, use the GNU Lesser General + Public License instead of this License. diff --combined .ext/cfd/licence/GPL-3 index 0000000,94a9ed0..94a9ed0 mode 000000,100644..100644 --- a/.ext/cfd/licence/GPL-3 +++ b/.ext/cfd/licence/GPL-3 @@@ -1,0 -1,674 +1,674 @@@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for + software and other kinds of works. + + The licenses for most software and other practical works are designed + to take away your freedom to share and change the works. By contrast, + the GNU General Public License is intended to guarantee your freedom to + share and change all versions of a program--to make sure it remains free + software for all its users. We, the Free Software Foundation, use the + GNU General Public License for most of our software; it applies also to + any other work released this way by its authors. You can apply it to + your programs, too. + + When we speak of free software, we are referring to freedom, not + price. Our General Public Licenses are designed to make sure that you + have the freedom to distribute copies of free software (and charge for + them if you wish), that you receive source code or can get it if you + want it, that you can change the software or use pieces of it in new + free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you + these rights or asking you to surrender the rights. Therefore, you have + certain responsibilities if you distribute copies of the software, or if + you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether + gratis or for a fee, you must pass on to the recipients the same + freedoms that you received. You must make sure that they, too, receive + or can get the source code. And you must show them these terms so they + know their rights. + + Developers that use the GNU GPL protect your rights with two steps: + (1) assert copyright on the software, and (2) offer you this License + giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains + that there is no warranty for this free software. For both users' and + authors' sake, the GPL requires that modified versions be marked as + changed, so that their problems will not be attributed erroneously to + authors of previous versions. + + Some devices are designed to deny users access to install or run + modified versions of the software inside them, although the manufacturer + can do so. This is fundamentally incompatible with the aim of + protecting users' freedom to change the software. The systematic + pattern of such abuse occurs in the area of products for individuals to + use, which is precisely where it is most unacceptable. Therefore, we + have designed this version of the GPL to prohibit the practice for those + products. If such problems arise substantially in other domains, we + stand ready to extend this provision to those domains in future versions + of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. + States should not allow patents to restrict development and use of + software on general-purpose computers, but in those that do, we wish to + avoid the special danger that patents applied to a free program could + make it effectively proprietary. To prevent this, the GPL assures that + patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and + modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of + works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this + License. Each licensee is addressed as "you". "Licensees" and + "recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work + in a fashion requiring copyright permission, other than the making of an + exact copy. The resulting work is called a "modified version" of the + earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based + on the Program. + + To "propagate" a work means to do anything with it that, without + permission, would make you directly or secondarily liable for + infringement under applicable copyright law, except executing it on a + computer or modifying a private copy. Propagation includes copying, + distribution (with or without modification), making available to the + public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other + parties to make or receive copies. Mere interaction with a user through + a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" + to the extent that it includes a convenient and prominently visible + feature that (1) displays an appropriate copyright notice, and (2) + tells the user that there is no warranty for the work (except to the + extent that warranties are provided), that licensees may convey the + work under this License, and how to view a copy of this License. If + the interface presents a list of user commands or options, such as a + menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work + for making modifications to it. "Object code" means any non-source + form of a work. + + A "Standard Interface" means an interface that either is an official + standard defined by a recognized standards body, or, in the case of + interfaces specified for a particular programming language, one that + is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other + than the work as a whole, that (a) is included in the normal form of + packaging a Major Component, but which is not part of that Major + Component, and (b) serves only to enable use of the work with that + Major Component, or to implement a Standard Interface for which an + implementation is available to the public in source code form. A + "Major Component", in this context, means a major essential component + (kernel, window system, and so on) of the specific operating system + (if any) on which the executable work runs, or a compiler used to + produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all + the source code needed to generate, install, and (for an executable + work) run the object code and to modify the work, including scripts to + control those activities. However, it does not include the work's + System Libraries, or general-purpose tools or generally available free + programs which are used unmodified in performing those activities but + which are not part of the work. For example, Corresponding Source + includes interface definition files associated with source files for + the work, and the source code for shared libraries and dynamically + linked subprograms that the work is specifically designed to require, + such as by intimate data communication or control flow between those + subprograms and other parts of the work. + + The Corresponding Source need not include anything that users + can regenerate automatically from other parts of the Corresponding + Source. + + The Corresponding Source for a work in source code form is that + same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of + copyright on the Program, and are irrevocable provided the stated + conditions are met. This License explicitly affirms your unlimited + permission to run the unmodified Program. The output from running a + covered work is covered by this License only if the output, given its + content, constitutes a covered work. This License acknowledges your + rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not + convey, without conditions so long as your license otherwise remains + in force. You may convey covered works to others for the sole purpose + of having them make modifications exclusively for you, or provide you + with facilities for running those works, provided that you comply with + the terms of this License in conveying all material for which you do + not control copyright. Those thus making or running the covered works + for you must do so exclusively on your behalf, under your direction + and control, on terms that prohibit them from making any copies of + your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under + the conditions stated below. Sublicensing is not allowed; section 10 + makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological + measure under any applicable law fulfilling obligations under article + 11 of the WIPO copyright treaty adopted on 20 December 1996, or + similar laws prohibiting or restricting circumvention of such + measures. + + When you convey a covered work, you waive any legal power to forbid + circumvention of technological measures to the extent such circumvention + is effected by exercising rights under this License with respect to + the covered work, and you disclaim any intention to limit operation or + modification of the work as a means of enforcing, against the work's + users, your or third parties' legal rights to forbid circumvention of + technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you + receive it, in any medium, provided that you conspicuously and + appropriately publish on each copy an appropriate copyright notice; + keep intact all notices stating that this License and any + non-permissive terms added in accord with section 7 apply to the code; + keep intact all notices of the absence of any warranty; and give all + recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, + and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to + produce it from the Program, in the form of source code under the + terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent + works, which are not by their nature extensions of the covered work, + and which are not combined with it such as to form a larger program, + in or on a volume of a storage or distribution medium, is called an + "aggregate" if the compilation and its resulting copyright are not + used to limit the access or legal rights of the compilation's users + beyond what the individual works permit. Inclusion of a covered work + in an aggregate does not cause this License to apply to the other + parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms + of sections 4 and 5, provided that you also convey the + machine-readable Corresponding Source under the terms of this License, + in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded + from the Corresponding Source as a System Library, need not be + included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any + tangible personal property which is normally used for personal, family, + or household purposes, or (2) anything designed or sold for incorporation + into a dwelling. In determining whether a product is a consumer product, + doubtful cases shall be resolved in favor of coverage. For a particular + product received by a particular user, "normally used" refers to a + typical or common use of that class of product, regardless of the status + of the particular user or of the way in which the particular user + actually uses, or expects or is expected to use, the product. A product + is a consumer product regardless of whether the product has substantial + commercial, industrial or non-consumer uses, unless such uses represent + the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, + procedures, authorization keys, or other information required to install + and execute modified versions of a covered work in that User Product from + a modified version of its Corresponding Source. The information must + suffice to ensure that the continued functioning of the modified object + code is in no case prevented or interfered with solely because + modification has been made. + + If you convey an object code work under this section in, or with, or + specifically for use in, a User Product, and the conveying occurs as + part of a transaction in which the right of possession and use of the + User Product is transferred to the recipient in perpetuity or for a + fixed term (regardless of how the transaction is characterized), the + Corresponding Source conveyed under this section must be accompanied + by the Installation Information. But this requirement does not apply + if neither you nor any third party retains the ability to install + modified object code on the User Product (for example, the work has + been installed in ROM). + + The requirement to provide Installation Information does not include a + requirement to continue to provide support service, warranty, or updates + for a work that has been modified or installed by the recipient, or for + the User Product in which it has been modified or installed. Access to a + network may be denied when the modification itself materially and + adversely affects the operation of the network or violates the rules and + protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, + in accord with this section must be in a format that is publicly + documented (and with an implementation available to the public in + source code form), and must require no special password or key for + unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this + License by making exceptions from one or more of its conditions. + Additional permissions that are applicable to the entire Program shall + be treated as though they were included in this License, to the extent + that they are valid under applicable law. If additional permissions + apply only to part of the Program, that part may be used separately + under those permissions, but the entire Program remains governed by + this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option + remove any additional permissions from that copy, or from any part of + it. (Additional permissions may be written to require their own + removal in certain cases when you modify the work.) You may place + additional permissions on material, added by you to a covered work, + for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you + add to a covered work, you may (if authorized by the copyright holders of + that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further + restrictions" within the meaning of section 10. If the Program as you + received it, or any part of it, contains a notice stating that it is + governed by this License along with a term that is a further + restriction, you may remove that term. If a license document contains + a further restriction but permits relicensing or conveying under this + License, you may add to a covered work material governed by the terms + of that license document, provided that the further restriction does + not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you + must place, in the relevant source files, a statement of the + additional terms that apply to those files, or a notice indicating + where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the + form of a separately written license, or stated as exceptions; + the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly + provided under this License. Any attempt otherwise to propagate or + modify it is void, and will automatically terminate your rights under + this License (including any patent licenses granted under the third + paragraph of section 11). + + However, if you cease all violation of this License, then your + license from a particular copyright holder is reinstated (a) + provisionally, unless and until the copyright holder explicitly and + finally terminates your license, and (b) permanently, if the copyright + holder fails to notify you of the violation by some reasonable means + prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is + reinstated permanently if the copyright holder notifies you of the + violation by some reasonable means, this is the first time you have + received notice of violation of this License (for any work) from that + copyright holder, and you cure the violation prior to 30 days after + your receipt of the notice. + + Termination of your rights under this section does not terminate the + licenses of parties who have received copies or rights from you under + this License. If your rights have been terminated and not permanently + reinstated, you do not qualify to receive new licenses for the same + material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or + run a copy of the Program. Ancillary propagation of a covered work + occurring solely as a consequence of using peer-to-peer transmission + to receive a copy likewise does not require acceptance. However, + nothing other than this License grants you permission to propagate or + modify any covered work. These actions infringe copyright if you do + not accept this License. Therefore, by modifying or propagating a + covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically + receives a license from the original licensors, to run, modify and + propagate that work, subject to this License. You are not responsible + for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an + organization, or substantially all assets of one, or subdividing an + organization, or merging organizations. If propagation of a covered + work results from an entity transaction, each party to that + transaction who receives a copy of the work also receives whatever + licenses to the work the party's predecessor in interest had or could + give under the previous paragraph, plus a right to possession of the + Corresponding Source of the work from the predecessor in interest, if + the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the + rights granted or affirmed under this License. For example, you may + not impose a license fee, royalty, or other charge for exercise of + rights granted under this License, and you may not initiate litigation + (including a cross-claim or counterclaim in a lawsuit) alleging that + any patent claim is infringed by making, using, selling, offering for + sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this + License of the Program or a work on which the Program is based. The + work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims + owned or controlled by the contributor, whether already acquired or + hereafter acquired, that would be infringed by some manner, permitted + by this License, of making, using, or selling its contributor version, + but do not include claims that would be infringed only as a + consequence of further modification of the contributor version. For + purposes of this definition, "control" includes the right to grant + patent sublicenses in a manner consistent with the requirements of + this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free + patent license under the contributor's essential patent claims, to + make, use, sell, offer for sale, import and otherwise run, modify and + propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express + agreement or commitment, however denominated, not to enforce a patent + (such as an express permission to practice a patent or covenant not to + sue for patent infringement). To "grant" such a patent license to a + party means to make such an agreement or commitment not to enforce a + patent against the party. + + If you convey a covered work, knowingly relying on a patent license, + and the Corresponding Source of the work is not available for anyone + to copy, free of charge and under the terms of this License, through a + publicly available network server or other readily accessible means, + then you must either (1) cause the Corresponding Source to be so + available, or (2) arrange to deprive yourself of the benefit of the + patent license for this particular work, or (3) arrange, in a manner + consistent with the requirements of this License, to extend the patent + license to downstream recipients. "Knowingly relying" means you have + actual knowledge that, but for the patent license, your conveying the + covered work in a country, or your recipient's use of the covered work + in a country, would infringe one or more identifiable patents in that + country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or + arrangement, you convey, or propagate by procuring conveyance of, a + covered work, and grant a patent license to some of the parties + receiving the covered work authorizing them to use, propagate, modify + or convey a specific copy of the covered work, then the patent license + you grant is automatically extended to all recipients of the covered + work and works based on it. + + A patent license is "discriminatory" if it does not include within + the scope of its coverage, prohibits the exercise of, or is + conditioned on the non-exercise of one or more of the rights that are + specifically granted under this License. You may not convey a covered + work if you are a party to an arrangement with a third party that is + in the business of distributing software, under which you make payment + to the third party based on the extent of your activity of conveying + the work, and under which the third party grants, to any of the + parties who would receive the covered work from you, a discriminatory + patent license (a) in connection with copies of the covered work + conveyed by you (or copies made from those copies), or (b) primarily + for and in connection with specific products or compilations that + contain the covered work, unless you entered into that arrangement, + or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting + any implied license or other defenses to infringement that may + otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or + otherwise) that contradict the conditions of this License, they do not + excuse you from the conditions of this License. If you cannot convey a + covered work so as to satisfy simultaneously your obligations under this + License and any other pertinent obligations, then as a consequence you may + not convey it at all. For example, if you agree to terms that obligate you + to collect a royalty for further conveying from those to whom you convey + the Program, the only way you could satisfy both those terms and this + License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have + permission to link or combine any covered work with a work licensed + under version 3 of the GNU Affero General Public License into a single + combined work, and to convey the resulting work. The terms of this + License will continue to apply to the part which is the covered work, + but the special requirements of the GNU Affero General Public License, + section 13, concerning interaction through a network will apply to the + combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of + the GNU General Public License from time to time. Such new versions will + be similar in spirit to the present version, but may differ in detail to + address new problems or concerns. + + Each version is given a distinguishing version number. If the + Program specifies that a certain numbered version of the GNU General + Public License "or any later version" applies to it, you have the + option of following the terms and conditions either of that numbered + version or of any later version published by the Free Software + Foundation. If the Program does not specify a version number of the + GNU General Public License, you may choose any version ever published + by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future + versions of the GNU General Public License can be used, that proxy's + public statement of acceptance of a version permanently authorizes you + to choose that version for the Program. + + Later license versions may give you additional or different + permissions. However, no additional obligations are imposed on any + author or copyright holder as a result of your choosing to follow a + later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY + APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT + HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY + OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, + THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM + IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF + ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING + WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS + THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY + GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE + USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF + DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD + PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), + EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF + SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided + above cannot be given local legal effect according to their terms, + reviewing courts shall apply local law that most closely approximates + an absolute waiver of all civil liability in connection with the + Program, unless a warranty or assumption of liability accompanies a + copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest + possible use to the public, the best way to achieve this is to make it + free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest + to attach them to the start of each source file to most effectively + state the exclusion of warranty; and each file should have at least + the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + 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 of the License, 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 . + + Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short + notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + + The hypothetical commands `show w' and `show c' should show the appropriate + parts of the General Public License. Of course, your program's commands + might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, + if any, to sign a "copyright disclaimer" for the program, if necessary. + For more information on this, and how to apply and follow the GNU GPL, see + . + + The GNU General Public License does not permit incorporating your program + into proprietary programs. If your program is a subroutine library, you + may consider it more useful to permit linking proprietary applications with + the library. If this is what you want to do, use the GNU Lesser General + Public License instead of this License. But first, please read + . diff --combined .ext/cfd/licence/LGPL-2 index 0000000,5bc8fb2..5bc8fb2 mode 000000,100644..100644 --- a/.ext/cfd/licence/LGPL-2 +++ b/.ext/cfd/licence/LGPL-2 @@@ -1,0 -1,481 +1,481 @@@ + GNU LIBRARY GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1991 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + [This is the first released version of the library GPL. It is + numbered 2 because it goes with version 2 of the ordinary GPL.] + + Preamble + + The licenses for most software are designed to take away your + freedom to share and change it. By contrast, the GNU General Public + Licenses are intended to guarantee your freedom to share and change + free software--to make sure the software is free for all its users. + + This license, the Library General Public License, applies to some + specially designated Free Software Foundation software, and to any + other libraries whose authors decide to use it. You can use it for + your libraries, too. + + When we speak of free software, we are referring to freedom, not + price. Our General Public Licenses are designed to make sure that you + have the freedom to distribute copies of free software (and charge for + this service if you wish), that you receive source code or can get it + if you want it, that you can change the software or use pieces of it + in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid + anyone to deny you these rights or to ask you to surrender the rights. + These restrictions translate to certain responsibilities for you if + you distribute copies of the library, or if you modify it. + + For example, if you distribute copies of the library, whether gratis + or for a fee, you must give the recipients all the rights that we gave + you. You must make sure that they, too, receive or can get the source + code. If you link a program with the library, you must provide + complete object files to the recipients so that they can relink them + with the library, after making changes to the library and recompiling + it. And you must show them these terms so they know their rights. + + Our method of protecting your rights has two steps: (1) copyright + the library, and (2) offer you this license which gives you legal + permission to copy, distribute and/or modify the library. + + Also, for each distributor's protection, we want to make certain + that everyone understands that there is no warranty for this free + library. If the library is modified by someone else and passed on, we + want its recipients to know that what they have is not the original + version, so that any problems introduced by others will not reflect on + the original authors' reputations. + + Finally, any free program is threatened constantly by software + patents. We wish to avoid the danger that companies distributing free + software will individually obtain patent licenses, thus in effect + transforming the program into proprietary software. To prevent this, + we have made it clear that any patent must be licensed for everyone's + free use or not licensed at all. + + Most GNU software, including some libraries, is covered by the ordinary + GNU General Public License, which was designed for utility programs. This + license, the GNU Library General Public License, applies to certain + designated libraries. This license is quite different from the ordinary + one; be sure to read it in full, and don't assume that anything in it is + the same as in the ordinary license. + + The reason we have a separate public license for some libraries is that + they blur the distinction we usually make between modifying or adding to a + program and simply using it. Linking a program with a library, without + changing the library, is in some sense simply using the library, and is + analogous to running a utility program or application program. However, in + a textual and legal sense, the linked executable is a combined work, a + derivative of the original library, and the ordinary General Public License + treats it as such. + + Because of this blurred distinction, using the ordinary General + Public License for libraries did not effectively promote software + sharing, because most developers did not use the libraries. We + concluded that weaker conditions might promote sharing better. + + However, unrestricted linking of non-free programs would deprive the + users of those programs of all benefit from the free status of the + libraries themselves. This Library General Public License is intended to + permit developers of non-free programs to use free libraries, while + preserving your freedom as a user of such programs to change the free + libraries that are incorporated in them. (We have not seen how to achieve + this as regards changes in header files, but we have achieved it as regards + changes in the actual functions of the Library.) The hope is that this + will lead to faster development of free libraries. + + The precise terms and conditions for copying, distribution and + modification follow. Pay close attention to the difference between a + "work based on the library" and a "work that uses the library". The + former contains code derived from the library, while the latter only + works together with the library. + + Note that it is possible for a library to be covered by the ordinary + General Public License rather than by this special one. + + GNU LIBRARY GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library which + contains a notice placed by the copyright holder or other authorized + party saying it may be distributed under the terms of this Library + General Public License (also called "this License"). Each licensee is + addressed as "you". + + A "library" means a collection of software functions and/or data + prepared so as to be conveniently linked with application programs + (which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work + which has been distributed under these terms. A "work based on the + Library" means either the Library or any derivative work under + copyright law: that is to say, a work containing the Library or a + portion of it, either verbatim or with modifications and/or translated + straightforwardly into another language. (Hereinafter, translation is + included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for + making modifications to it. For a library, complete source code means + all the source code for all modules it contains, plus any associated + interface definition files, plus the scripts used to control compilation + and installation of the library. + + Activities other than copying, distribution and modification are not + covered by this License; they are outside its scope. The act of + running a program using the Library is not restricted, and output from + such a program is covered only if its contents constitute a work based + on the Library (independent of the use of the Library in a tool for + writing it). Whether that is true depends on what the Library does + and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's + complete source code as you receive it, in any medium, provided that + you conspicuously and appropriately publish on each copy an + appropriate copyright notice and disclaimer of warranty; keep intact + all the notices that refer to this License and to the absence of any + warranty; and distribute a copy of this License along with the + Library. + + You may charge a fee for the physical act of transferring a copy, + and you may at your option offer warranty protection in exchange for a + fee. + + 2. You may modify your copy or copies of the Library or any portion + of it, thus forming a work based on the Library, and copy and + distribute such modifications or work under the terms of Section 1 + above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + + These requirements apply to the modified work as a whole. If + identifiable sections of that work are not derived from the Library, + and can be reasonably considered independent and separate works in + themselves, then this License, and its terms, do not apply to those + sections when you distribute them as separate works. But when you + distribute the same sections as part of a whole which is a work based + on the Library, the distribution of the whole must be on the terms of + this License, whose permissions for other licensees extend to the + entire whole, and thus to each and every part regardless of who wrote + it. + + Thus, it is not the intent of this section to claim rights or contest + your rights to work written entirely by you; rather, the intent is to + exercise the right to control the distribution of derivative or + collective works based on the Library. + + In addition, mere aggregation of another work not based on the Library + with the Library (or with a work based on the Library) on a volume of + a storage or distribution medium does not bring the other work under + the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public + License instead of this License to a given copy of the Library. To do + this, you must alter all the notices that refer to this License, so + that they refer to the ordinary GNU General Public License, version 2, + instead of to this License. (If a newer version than version 2 of the + ordinary GNU General Public License has appeared, then you can specify + that version instead if you wish.) Do not make any other change in + these notices. + + Once this change is made in a given copy, it is irreversible for + that copy, so the ordinary GNU General Public License applies to all + subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of + the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or + derivative of it, under Section 2) in object code or executable form + under the terms of Sections 1 and 2 above provided that you accompany + it with the complete corresponding machine-readable source code, which + must be distributed under the terms of Sections 1 and 2 above on a + medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy + from a designated place, then offering equivalent access to copy the + source code from the same place satisfies the requirement to + distribute the source code, even though third parties are not + compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the + Library, but is designed to work with the Library by being compiled or + linked with it, is called a "work that uses the Library". Such a + work, in isolation, is not a derivative work of the Library, and + therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library + creates an executable that is a derivative of the Library (because it + contains portions of the Library), rather than a "work that uses the + library". The executable is therefore covered by this License. + Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file + that is part of the Library, the object code for the work may be a + derivative work of the Library even though the source code is not. + Whether this is true is especially significant if the work can be + linked without the Library, or if the work is itself a library. The + threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data + structure layouts and accessors, and small macros and small inline + functions (ten lines or less in length), then the use of the object + file is unrestricted, regardless of whether it is legally a derivative + work. (Executables containing this object code plus portions of the + Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may + distribute the object code for the work under the terms of Section 6. + Any executables containing that work also fall under Section 6, + whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also compile or + link a "work that uses the Library" with the Library to produce a + work containing portions of the Library, and distribute that work + under terms of your choice, provided that the terms permit + modification of the work for the customer's own use and reverse + engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the + Library is used in it and that the Library and its use are covered by + this License. You must supply a copy of this License. If the work + during execution displays copyright notices, you must include the + copyright notice for the Library among them, as well as a reference + directing the user to the copy of this License. Also, you must do one + of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + c) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + d) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the + Library" must include any data and utility programs needed for + reproducing the executable from it. However, as a special exception, + the source code distributed need not include anything that is normally + distributed (in either source or binary form) with the major + components (compiler, kernel, and so on) of the operating system on + which the executable runs, unless that component itself accompanies + the executable. + + It may happen that this requirement contradicts the license + restrictions of other proprietary libraries that do not normally + accompany the operating system. Such a contradiction means you cannot + use both them and the Library together in an executable that you + distribute. + + 7. You may place library facilities that are a work based on the + Library side-by-side in a single library together with other library + facilities not covered by this License, and distribute such a combined + library, provided that the separate distribution of the work based on + the Library and of the other library facilities is otherwise + permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute + the Library except as expressly provided under this License. Any + attempt otherwise to copy, modify, sublicense, link with, or + distribute the Library is void, and will automatically terminate your + rights under this License. However, parties who have received copies, + or rights, from you under this License will not have their licenses + terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not + signed it. However, nothing else grants you permission to modify or + distribute the Library or its derivative works. These actions are + prohibited by law if you do not accept this License. Therefore, by + modifying or distributing the Library (or any work based on the + Library), you indicate your acceptance of this License to do so, and + all its terms and conditions for copying, distributing or modifying + the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the + Library), the recipient automatically receives a license from the + original licensor to copy, distribute, link with or modify the Library + subject to these terms and conditions. You may not impose any further + restrictions on the recipients' exercise of the rights granted herein. + You are not responsible for enforcing compliance by third parties to + this License. + + 11. If, as a consequence of a court judgment or allegation of patent + infringement or for any other reason (not limited to patent issues), + conditions are imposed on you (whether by court order, agreement or + otherwise) that contradict the conditions of this License, they do not + excuse you from the conditions of this License. If you cannot + distribute so as to satisfy simultaneously your obligations under this + License and any other pertinent obligations, then as a consequence you + may not distribute the Library at all. For example, if a patent + license would not permit royalty-free redistribution of the Library by + all those who receive copies directly or indirectly through you, then + the only way you could satisfy both it and this License would be to + refrain entirely from distribution of the Library. + + If any portion of this section is held invalid or unenforceable under any + particular circumstance, the balance of the section is intended to apply, + and the section as a whole is intended to apply in other circumstances. + + It is not the purpose of this section to induce you to infringe any + patents or other property right claims or to contest validity of any + such claims; this section has the sole purpose of protecting the + integrity of the free software distribution system which is + implemented by public license practices. Many people have made + generous contributions to the wide range of software distributed + through that system in reliance on consistent application of that + system; it is up to the author/donor to decide if he or she is willing + to distribute software through any other system and a licensee cannot + impose that choice. + + This section is intended to make thoroughly clear what is believed to + be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in + certain countries either by patents or by copyrighted interfaces, the + original copyright holder who places the Library under this License may add + an explicit geographical distribution limitation excluding those countries, + so that distribution is permitted only in or among countries not thus + excluded. In such case, this License incorporates the limitation as if + written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new + versions of the Library General Public License from time to time. + Such new versions will be similar in spirit to the present version, + but may differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the Library + specifies a version number of this License which applies to it and + "any later version", you have the option of following the terms and + conditions either of that version or of any later version published by + the Free Software Foundation. If the Library does not specify a + license version number, you may choose any version ever published by + the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free + programs whose distribution conditions are incompatible with these, + write to the author to ask for permission. For software which is + copyrighted by the Free Software Foundation, write to the Free + Software Foundation; we sometimes make exceptions for this. Our + decision will be guided by the two goals of preserving the free status + of all derivatives of our free software and of promoting the sharing + and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO + WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. + EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR + OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY + KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE + LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME + THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN + WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY + AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU + FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR + CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE + LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING + RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A + FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF + SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest + possible use to the public, we recommend making it free software that + everyone can redistribute and change. You can do so by permitting + redistribution under these terms (or, alternatively, under the terms of the + ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is + safest to attach them to the start of each source file to most effectively + convey the exclusion of warranty; and each file should have at least the + "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + Also add information on how to contact you by electronic and paper mail. + + You should also get your employer (if you work as a programmer) or your + school, if any, to sign a "copyright disclaimer" for the library, if + necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + + That's all there is to it! diff --combined .ext/cfd/licence/LGPL-2.1 index 0000000,4362b49..4362b49 mode 000000,100644..100644 --- a/.ext/cfd/licence/LGPL-2.1 +++ b/.ext/cfd/licence/LGPL-2.1 @@@ -1,0 -1,502 +1,502 @@@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + [This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your + freedom to share and change it. By contrast, the GNU General Public + Licenses are intended to guarantee your freedom to share and change + free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some + specially designated software packages--typically libraries--of the + Free Software Foundation and other authors who decide to use it. You + can use it too, but we suggest you first think carefully about whether + this license or the ordinary General Public License is the better + strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, + not price. Our General Public Licenses are designed to make sure that + you have the freedom to distribute copies of free software (and charge + for this service if you wish); that you receive source code or can get + it if you want it; that you can change the software and use pieces of + it in new free programs; and that you are informed that you can do + these things. + + To protect your rights, we need to make restrictions that forbid + distributors to deny you these rights or to ask you to surrender these + rights. These restrictions translate to certain responsibilities for + you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis + or for a fee, you must give the recipients all the rights that we gave + you. You must make sure that they, too, receive or can get the source + code. If you link other code with the library, you must provide + complete object files to the recipients, so that they can relink them + with the library after making changes to the library and recompiling + it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the + library, and (2) we offer you this license, which gives you legal + permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that + there is no warranty for the free library. Also, if the library is + modified by someone else and passed on, the recipients should know + that what they have is not the original version, so that the original + author's reputation will not be affected by problems that might be + introduced by others. + + Finally, software patents pose a constant threat to the existence of + any free program. We wish to make sure that a company cannot + effectively restrict the users of a free program by obtaining a + restrictive license from a patent holder. Therefore, we insist that + any patent license obtained for a version of the library must be + consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the + ordinary GNU General Public License. This license, the GNU Lesser + General Public License, applies to certain designated libraries, and + is quite different from the ordinary General Public License. We use + this license for certain libraries in order to permit linking those + libraries into non-free programs. + + When a program is linked with a library, whether statically or using + a shared library, the combination of the two is legally speaking a + combined work, a derivative of the original library. The ordinary + General Public License therefore permits such linking only if the + entire combination fits its criteria of freedom. The Lesser General + Public License permits more lax criteria for linking other code with + the library. + + We call this license the "Lesser" General Public License because it + does Less to protect the user's freedom than the ordinary General + Public License. It also provides other free software developers Less + of an advantage over competing non-free programs. These disadvantages + are the reason we use the ordinary General Public License for many + libraries. However, the Lesser license provides advantages in certain + special circumstances. + + For example, on rare occasions, there may be a special need to + encourage the widest possible use of a certain library, so that it becomes + a de-facto standard. To achieve this, non-free programs must be + allowed to use the library. A more frequent case is that a free + library does the same job as widely used non-free libraries. In this + case, there is little to gain by limiting the free library to free + software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free + programs enables a greater number of people to use a large body of + free software. For example, permission to use the GNU C Library in + non-free programs enables many more people to use the whole GNU + operating system, as well as its variant, the GNU/Linux operating + system. + + Although the Lesser General Public License is Less protective of the + users' freedom, it does ensure that the user of a program that is + linked with the Library has the freedom and the wherewithal to run + that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and + modification follow. Pay close attention to the difference between a + "work based on the library" and a "work that uses the library". The + former contains code derived from the library, whereas the latter must + be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other + program which contains a notice placed by the copyright holder or + other authorized party saying it may be distributed under the terms of + this Lesser General Public License (also called "this License"). + Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data + prepared so as to be conveniently linked with application programs + (which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work + which has been distributed under these terms. A "work based on the + Library" means either the Library or any derivative work under + copyright law: that is to say, a work containing the Library or a + portion of it, either verbatim or with modifications and/or translated + straightforwardly into another language. (Hereinafter, translation is + included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for + making modifications to it. For a library, complete source code means + all the source code for all modules it contains, plus any associated + interface definition files, plus the scripts used to control compilation + and installation of the library. + + Activities other than copying, distribution and modification are not + covered by this License; they are outside its scope. The act of + running a program using the Library is not restricted, and output from + such a program is covered only if its contents constitute a work based + on the Library (independent of the use of the Library in a tool for + writing it). Whether that is true depends on what the Library does + and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's + complete source code as you receive it, in any medium, provided that + you conspicuously and appropriately publish on each copy an + appropriate copyright notice and disclaimer of warranty; keep intact + all the notices that refer to this License and to the absence of any + warranty; and distribute a copy of this License along with the + Library. + + You may charge a fee for the physical act of transferring a copy, + and you may at your option offer warranty protection in exchange for a + fee. + + 2. You may modify your copy or copies of the Library or any portion + of it, thus forming a work based on the Library, and copy and + distribute such modifications or work under the terms of Section 1 + above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + + These requirements apply to the modified work as a whole. If + identifiable sections of that work are not derived from the Library, + and can be reasonably considered independent and separate works in + themselves, then this License, and its terms, do not apply to those + sections when you distribute them as separate works. But when you + distribute the same sections as part of a whole which is a work based + on the Library, the distribution of the whole must be on the terms of + this License, whose permissions for other licensees extend to the + entire whole, and thus to each and every part regardless of who wrote + it. + + Thus, it is not the intent of this section to claim rights or contest + your rights to work written entirely by you; rather, the intent is to + exercise the right to control the distribution of derivative or + collective works based on the Library. + + In addition, mere aggregation of another work not based on the Library + with the Library (or with a work based on the Library) on a volume of + a storage or distribution medium does not bring the other work under + the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public + License instead of this License to a given copy of the Library. To do + this, you must alter all the notices that refer to this License, so + that they refer to the ordinary GNU General Public License, version 2, + instead of to this License. (If a newer version than version 2 of the + ordinary GNU General Public License has appeared, then you can specify + that version instead if you wish.) Do not make any other change in + these notices. + + Once this change is made in a given copy, it is irreversible for + that copy, so the ordinary GNU General Public License applies to all + subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of + the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or + derivative of it, under Section 2) in object code or executable form + under the terms of Sections 1 and 2 above provided that you accompany + it with the complete corresponding machine-readable source code, which + must be distributed under the terms of Sections 1 and 2 above on a + medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy + from a designated place, then offering equivalent access to copy the + source code from the same place satisfies the requirement to + distribute the source code, even though third parties are not + compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the + Library, but is designed to work with the Library by being compiled or + linked with it, is called a "work that uses the Library". Such a + work, in isolation, is not a derivative work of the Library, and + therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library + creates an executable that is a derivative of the Library (because it + contains portions of the Library), rather than a "work that uses the + library". The executable is therefore covered by this License. + Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file + that is part of the Library, the object code for the work may be a + derivative work of the Library even though the source code is not. + Whether this is true is especially significant if the work can be + linked without the Library, or if the work is itself a library. The + threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data + structure layouts and accessors, and small macros and small inline + functions (ten lines or less in length), then the use of the object + file is unrestricted, regardless of whether it is legally a derivative + work. (Executables containing this object code plus portions of the + Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may + distribute the object code for the work under the terms of Section 6. + Any executables containing that work also fall under Section 6, + whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or + link a "work that uses the Library" with the Library to produce a + work containing portions of the Library, and distribute that work + under terms of your choice, provided that the terms permit + modification of the work for the customer's own use and reverse + engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the + Library is used in it and that the Library and its use are covered by + this License. You must supply a copy of this License. If the work + during execution displays copyright notices, you must include the + copyright notice for the Library among them, as well as a reference + directing the user to the copy of this License. Also, you must do one + of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the + Library" must include any data and utility programs needed for + reproducing the executable from it. However, as a special exception, + the materials to be distributed need not include anything that is + normally distributed (in either source or binary form) with the major + components (compiler, kernel, and so on) of the operating system on + which the executable runs, unless that component itself accompanies + the executable. + + It may happen that this requirement contradicts the license + restrictions of other proprietary libraries that do not normally + accompany the operating system. Such a contradiction means you cannot + use both them and the Library together in an executable that you + distribute. + + 7. You may place library facilities that are a work based on the + Library side-by-side in a single library together with other library + facilities not covered by this License, and distribute such a combined + library, provided that the separate distribution of the work based on + the Library and of the other library facilities is otherwise + permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute + the Library except as expressly provided under this License. Any + attempt otherwise to copy, modify, sublicense, link with, or + distribute the Library is void, and will automatically terminate your + rights under this License. However, parties who have received copies, + or rights, from you under this License will not have their licenses + terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not + signed it. However, nothing else grants you permission to modify or + distribute the Library or its derivative works. These actions are + prohibited by law if you do not accept this License. Therefore, by + modifying or distributing the Library (or any work based on the + Library), you indicate your acceptance of this License to do so, and + all its terms and conditions for copying, distributing or modifying + the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the + Library), the recipient automatically receives a license from the + original licensor to copy, distribute, link with or modify the Library + subject to these terms and conditions. You may not impose any further + restrictions on the recipients' exercise of the rights granted herein. + You are not responsible for enforcing compliance by third parties with + this License. + + 11. If, as a consequence of a court judgment or allegation of patent + infringement or for any other reason (not limited to patent issues), + conditions are imposed on you (whether by court order, agreement or + otherwise) that contradict the conditions of this License, they do not + excuse you from the conditions of this License. If you cannot + distribute so as to satisfy simultaneously your obligations under this + License and any other pertinent obligations, then as a consequence you + may not distribute the Library at all. For example, if a patent + license would not permit royalty-free redistribution of the Library by + all those who receive copies directly or indirectly through you, then + the only way you could satisfy both it and this License would be to + refrain entirely from distribution of the Library. + + If any portion of this section is held invalid or unenforceable under any + particular circumstance, the balance of the section is intended to apply, + and the section as a whole is intended to apply in other circumstances. + + It is not the purpose of this section to induce you to infringe any + patents or other property right claims or to contest validity of any + such claims; this section has the sole purpose of protecting the + integrity of the free software distribution system which is + implemented by public license practices. Many people have made + generous contributions to the wide range of software distributed + through that system in reliance on consistent application of that + system; it is up to the author/donor to decide if he or she is willing + to distribute software through any other system and a licensee cannot + impose that choice. + + This section is intended to make thoroughly clear what is believed to + be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in + certain countries either by patents or by copyrighted interfaces, the + original copyright holder who places the Library under this License may add + an explicit geographical distribution limitation excluding those countries, + so that distribution is permitted only in or among countries not thus + excluded. In such case, this License incorporates the limitation as if + written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new + versions of the Lesser General Public License from time to time. + Such new versions will be similar in spirit to the present version, + but may differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the Library + specifies a version number of this License which applies to it and + "any later version", you have the option of following the terms and + conditions either of that version or of any later version published by + the Free Software Foundation. If the Library does not specify a + license version number, you may choose any version ever published by + the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free + programs whose distribution conditions are incompatible with these, + write to the author to ask for permission. For software which is + copyrighted by the Free Software Foundation, write to the Free + Software Foundation; we sometimes make exceptions for this. Our + decision will be guided by the two goals of preserving the free status + of all derivatives of our free software and of promoting the sharing + and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO + WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. + EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR + OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY + KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE + LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME + THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN + WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY + AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU + FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR + CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE + LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING + RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A + FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF + SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest + possible use to the public, we recommend making it free software that + everyone can redistribute and change. You can do so by permitting + redistribution under these terms (or, alternatively, under the terms of the + ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is + safest to attach them to the start of each source file to most effectively + convey the exclusion of warranty; and each file should have at least the + "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library 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 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + Also add information on how to contact you by electronic and paper mail. + + You should also get your employer (if you work as a programmer) or your + school, if any, to sign a "copyright disclaimer" for the library, if + necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + + That's all there is to it! diff --combined .ext/cfd/licence/LGPL-3 index 0000000,65c5ca8..65c5ca8 mode 000000,100644..100644 --- a/.ext/cfd/licence/LGPL-3 +++ b/.ext/cfd/licence/LGPL-3 @@@ -1,0 -1,165 +1,165 @@@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates + the terms and conditions of version 3 of the GNU General Public + License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser + General Public License, and the "GNU GPL" refers to version 3 of the GNU + General Public License. + + "The Library" refers to a covered work governed by this License, + other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided + by the Library, but which is not otherwise based on the Library. + Defining a subclass of a class defined by the Library is deemed a mode + of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an + Application with the Library. The particular version of the Library + with which the Combined Work was made is also called the "Linked + Version". + + The "Minimal Corresponding Source" for a Combined Work means the + Corresponding Source for the Combined Work, excluding any source code + for portions of the Combined Work that, considered in isolation, are + based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the + object code and/or source code for the Application, including any data + and utility programs needed for reproducing the Combined Work from the + Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License + without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a + facility refers to a function or data to be supplied by an Application + that uses the facility (other than as an argument passed when the + facility is invoked), then you may convey a copy of the modified + version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from + a header file that is part of the Library. You may convey such object + code under terms of your choice, provided that, if the incorporated + material is not limited to numerical parameters, data structure + layouts and accessors, or small macros, inline functions and templates + (ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, + taken together, effectively do not restrict modification of the + portions of the Library contained in the Combined Work and reverse + engineering for debugging such modifications, if you also do each of + the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the + Library side by side in a single library together with other library + facilities that are not Applications and are not covered by this + License, and convey such a combined library under terms of your + choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions + of the GNU Lesser General Public License from time to time. Such new + versions will be similar in spirit to the present version, but may + differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the + Library as you received it specifies that a certain numbered version + of the GNU Lesser General Public License "or any later version" + applies to it, you have the option of following the terms and + conditions either of that published version or of any later version + published by the Free Software Foundation. If the Library as you + received it does not specify a version number of the GNU Lesser + General Public License, you may choose any version of the GNU Lesser + General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide + whether future versions of the GNU Lesser General Public License shall + apply, that proxy's public statement of acceptance of any version is + permanent authorization for you to choose that version for the + Library. diff --combined .ext/cfd/licence/agpl-3.0.tex index 0000000,f5bd1f8..f5bd1f8 mode 000000,100644..100644 --- a/.ext/cfd/licence/agpl-3.0.tex +++ b/.ext/cfd/licence/agpl-3.0.tex @@@ -1,0 -1,758 +1,758 @@@ + % \iffalse + % + % The GNU Affero General Public License as a LaTeX section + % + % (c) 1989, 1991 Free Software Foundation, Inc. + % Minor LaTeX formatting changes by Mark Wooding + % + + % --- Chapter heading --- + % + % We don't know whether this ought to be a section or a chapter. Easy. + % We'll see if chapters are possible. + % + % \fi + + \begingroup + \makeatletter + + \edef\next#1#2#3{\relax + \ifx\chapter\@@undefined + \ifx\documentclass\@notprerr#2\else#3\fi + \else#1\fi + } + + \expandafter\endgroup\next + { + \let\gpltoplevel\chapter + \let\gplsec\section + \let\gplend\endinput + }{ + \let\gpltoplevel\section + \let\gplsec\subsection + \let\gplend\endinput + }{ + \documentclass[11pt]{article} + \def\gpltoplevel#1{% + \vspace*{1in}% + \hbox to\hsize{\hfil\LARGE\bfseries#1\hfil}% + \vspace{1in}% + } + \let\gplsec\section + \def\gplend{\end{document}} + \advance\textwidth1in + \advance\oddsidemargin-.5in + \sloppy + \begin{document} + } + + %^^A------------------------------------------------------------------------- + \gpltoplevel{The GNU Affero General Public License} + + + The following is the text of the GNU General Public License, under the terms + of which this software is distributed. + + \vspace{12pt} + + \begin{center} + \textbf{GNU AFFERO GENERAL PUBLIC LICENSE} \\ + Version 3, 19 November 2007 + \end{center} + + \begin{center} + {\parindent 0in + + Copyright \copyright\ 2007 Free Software Foundation, Inc. \texttt{http://fsf.org/} + + \bigskip + Everyone is permitted to copy and distribute verbatim copies of this \\ + license document, but changing it is not allowed.} + + \end{center} + + \renewcommand{\abstractname}{Preamble} + \begin{abstract} + The GNU Affero General Public License is a free, copyleft license + for software and other kinds of works, specifically designed to ensure + cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are + designed to take away your freedom to share and change the works. By + contrast, our General Public Licenses are intended to guarantee your + freedom to share and change all versions of a program--to make sure it + remains free software for all its users. + + When we speak of free software, we are referring to freedom, not + price. Our General Public Licenses are designed to make sure that you + have the freedom to distribute copies of free software (and charge for + them if you wish), that you receive source code or can get it if you + want it, that you can change the software or use pieces of it in new + free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights + with two steps: (1) assert copyright on the software, and (2) offer + you this License which gives you legal permission to copy, distribute + and/or modify the software. + + A secondary benefit of defending all users' freedom is that + improvements made in alternate versions of the program, if they + receive widespread use, become available for other developers to + incorporate. Many developers of free software are heartened and + encouraged by the resulting cooperation. However, in the case of + software used on network servers, this result may fail to come about. + The GNU General Public License permits making a modified version and + letting the public access it on a server without ever releasing its + source code to the public. + + The GNU Affero General Public License is designed specifically to + ensure that, in such cases, the modified source code becomes available + to the community. It requires the operator of a network server to + provide the source code of the modified version running there to the + users of that server. Therefore, public use of a modified version, on + a publicly accessible server, gives the public access to the source + code of the modified version. + + An older license, called the Affero General Public License and + published by Affero, was designed to accomplish similar goals. This is + a different license, not a version of the Affero GPL, but Affero has + released a new version of the Affero GPL which permits relicensing under + this license. + + The precise terms and conditions for copying, distribution and + modification follow. + \end{abstract} + + \begin{center} + {\Large \sc Terms and Conditions} + \end{center} + + + \begin{enumerate} + + \addtocounter{enumi}{-1} + + \item Definitions. + + ``This License'' refers to version 3 of the GNU Affero General Public License. + + ``Copyright'' also means copyright-like laws that apply to other kinds of + works, such as semiconductor masks. + + ``The Program'' refers to any copyrightable work licensed under this + License. Each licensee is addressed as ``you''. ``Licensees'' and + ``recipients'' may be individuals or organizations. + + To ``modify'' a work means to copy from or adapt all or part of the work + in a fashion requiring copyright permission, other than the making of an + exact copy. The resulting work is called a ``modified version'' of the + earlier work or a work ``based on'' the earlier work. + + A ``covered work'' means either the unmodified Program or a work based + on the Program. + + To ``propagate'' a work means to do anything with it that, without + permission, would make you directly or secondarily liable for + infringement under applicable copyright law, except executing it on a + computer or modifying a private copy. Propagation includes copying, + distribution (with or without modification), making available to the + public, and in some countries other activities as well. + + To ``convey'' a work means any kind of propagation that enables other + parties to make or receive copies. Mere interaction with a user through + a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays ``Appropriate Legal Notices'' + to the extent that it includes a convenient and prominently visible + feature that (1) displays an appropriate copyright notice, and (2) + tells the user that there is no warranty for the work (except to the + extent that warranties are provided), that licensees may convey the + work under this License, and how to view a copy of this License. If + the interface presents a list of user commands or options, such as a + menu, a prominent item in the list meets this criterion. + + \item Source Code. + + The ``source code'' for a work means the preferred form of the work + for making modifications to it. ``Object code'' means any non-source + form of a work. + + A ``Standard Interface'' means an interface that either is an official + standard defined by a recognized standards body, or, in the case of + interfaces specified for a particular programming language, one that + is widely used among developers working in that language. + + The ``System Libraries'' of an executable work include anything, other + than the work as a whole, that (a) is included in the normal form of + packaging a Major Component, but which is not part of that Major + Component, and (b) serves only to enable use of the work with that + Major Component, or to implement a Standard Interface for which an + implementation is available to the public in source code form. A + ``Major Component'', in this context, means a major essential component + (kernel, window system, and so on) of the specific operating system + (if any) on which the executable work runs, or a compiler used to + produce the work, or an object code interpreter used to run it. + + The ``Corresponding Source'' for a work in object code form means all + the source code needed to generate, install, and (for an executable + work) run the object code and to modify the work, including scripts to + control those activities. However, it does not include the work's + System Libraries, or general-purpose tools or generally available free + programs which are used unmodified in performing those activities but + which are not part of the work. For example, Corresponding Source + includes interface definition files associated with source files for + the work, and the source code for shared libraries and dynamically + linked subprograms that the work is specifically designed to require, + such as by intimate data communication or control flow between those + subprograms and other parts of the work. + + The Corresponding Source need not include anything that users + can regenerate automatically from other parts of the Corresponding + Source. + + The Corresponding Source for a work in source code form is that + same work. + + \item Basic Permissions. + + All rights granted under this License are granted for the term of + copyright on the Program, and are irrevocable provided the stated + conditions are met. This License explicitly affirms your unlimited + permission to run the unmodified Program. The output from running a + covered work is covered by this License only if the output, given its + content, constitutes a covered work. This License acknowledges your + rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not + convey, without conditions so long as your license otherwise remains + in force. You may convey covered works to others for the sole purpose + of having them make modifications exclusively for you, or provide you + with facilities for running those works, provided that you comply with + the terms of this License in conveying all material for which you do + not control copyright. Those thus making or running the covered works + for you must do so exclusively on your behalf, under your direction + and control, on terms that prohibit them from making any copies of + your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under + the conditions stated below. Sublicensing is not allowed; section 10 + makes it unnecessary. + + \item Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological + measure under any applicable law fulfilling obligations under article + 11 of the WIPO copyright treaty adopted on 20 December 1996, or + similar laws prohibiting or restricting circumvention of such + measures. + + When you convey a covered work, you waive any legal power to forbid + circumvention of technological measures to the extent such circumvention + is effected by exercising rights under this License with respect to + the covered work, and you disclaim any intention to limit operation or + modification of the work as a means of enforcing, against the work's + users, your or third parties' legal rights to forbid circumvention of + technological measures. + + \item Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you + receive it, in any medium, provided that you conspicuously and + appropriately publish on each copy an appropriate copyright notice; + keep intact all notices stating that this License and any + non-permissive terms added in accord with section 7 apply to the code; + keep intact all notices of the absence of any warranty; and give all + recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, + and you may offer support or warranty protection for a fee. + + \item Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to + produce it from the Program, in the form of source code under the + terms of section 4, provided that you also meet all of these conditions: + \begin{enumerate} + \item The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + \item The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + ``keep intact all notices''. + + \item You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + \item If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + \end{enumerate} + A compilation of a covered work with other separate and independent + works, which are not by their nature extensions of the covered work, + and which are not combined with it such as to form a larger program, + in or on a volume of a storage or distribution medium, is called an + ``aggregate'' if the compilation and its resulting copyright are not + used to limit the access or legal rights of the compilation's users + beyond what the individual works permit. Inclusion of a covered work + in an aggregate does not cause this License to apply to the other + parts of the aggregate. + + \item Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms + of sections 4 and 5, provided that you also convey the + machine-readable Corresponding Source under the terms of this License, + in one of these ways: + \begin{enumerate} + \item Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + \item Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + \item Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + \item Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + \item Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + \end{enumerate} + + A separable portion of the object code, whose source code is excluded + from the Corresponding Source as a System Library, need not be + included in conveying the object code work. + + A ``User Product'' is either (1) a ``consumer product'', which means any + tangible personal property which is normally used for personal, family, + or household purposes, or (2) anything designed or sold for incorporation + into a dwelling. In determining whether a product is a consumer product, + doubtful cases shall be resolved in favor of coverage. For a particular + product received by a particular user, ``normally used'' refers to a + typical or common use of that class of product, regardless of the status + of the particular user or of the way in which the particular user + actually uses, or expects or is expected to use, the product. A product + is a consumer product regardless of whether the product has substantial + commercial, industrial or non-consumer uses, unless such uses represent + the only significant mode of use of the product. + + ``Installation Information'' for a User Product means any methods, + procedures, authorization keys, or other information required to install + and execute modified versions of a covered work in that User Product from + a modified version of its Corresponding Source. The information must + suffice to ensure that the continued functioning of the modified object + code is in no case prevented or interfered with solely because + modification has been made. + + If you convey an object code work under this section in, or with, or + specifically for use in, a User Product, and the conveying occurs as + part of a transaction in which the right of possession and use of the + User Product is transferred to the recipient in perpetuity or for a + fixed term (regardless of how the transaction is characterized), the + Corresponding Source conveyed under this section must be accompanied + by the Installation Information. But this requirement does not apply + if neither you nor any third party retains the ability to install + modified object code on the User Product (for example, the work has + been installed in ROM). + + The requirement to provide Installation Information does not include a + requirement to continue to provide support service, warranty, or updates + for a work that has been modified or installed by the recipient, or for + the User Product in which it has been modified or installed. Access to a + network may be denied when the modification itself materially and + adversely affects the operation of the network or violates the rules and + protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, + in accord with this section must be in a format that is publicly + documented (and with an implementation available to the public in + source code form), and must require no special password or key for + unpacking, reading or copying. + + \item Additional Terms. + + ``Additional permissions'' are terms that supplement the terms of this + License by making exceptions from one or more of its conditions. + Additional permissions that are applicable to the entire Program shall + be treated as though they were included in this License, to the extent + that they are valid under applicable law. If additional permissions + apply only to part of the Program, that part may be used separately + under those permissions, but the entire Program remains governed by + this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option + remove any additional permissions from that copy, or from any part of + it. (Additional permissions may be written to require their own + removal in certain cases when you modify the work.) You may place + additional permissions on material, added by you to a covered work, + for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you + add to a covered work, you may (if authorized by the copyright holders of + that material) supplement the terms of this License with terms: + \begin{enumerate} + \item Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + \item Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + \item Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + \item Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + \item Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + \item Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + \end{enumerate} + + All other non-permissive additional terms are considered ``further + restrictions'' within the meaning of section 10. If the Program as you + received it, or any part of it, contains a notice stating that it is + governed by this License along with a term that is a further + restriction, you may remove that term. If a license document contains + a further restriction but permits relicensing or conveying under this + License, you may add to a covered work material governed by the terms + of that license document, provided that the further restriction does + not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you + must place, in the relevant source files, a statement of the + additional terms that apply to those files, or a notice indicating + where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the + form of a separately written license, or stated as exceptions; + the above requirements apply either way. + + \item Termination. + + You may not propagate or modify a covered work except as expressly + provided under this License. Any attempt otherwise to propagate or + modify it is void, and will automatically terminate your rights under + this License (including any patent licenses granted under the third + paragraph of section 11). + + However, if you cease all violation of this License, then your + license from a particular copyright holder is reinstated (a) + provisionally, unless and until the copyright holder explicitly and + finally terminates your license, and (b) permanently, if the copyright + holder fails to notify you of the violation by some reasonable means + prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is + reinstated permanently if the copyright holder notifies you of the + violation by some reasonable means, this is the first time you have + received notice of violation of this License (for any work) from that + copyright holder, and you cure the violation prior to 30 days after + your receipt of the notice. + + Termination of your rights under this section does not terminate the + licenses of parties who have received copies or rights from you under + this License. If your rights have been terminated and not permanently + reinstated, you do not qualify to receive new licenses for the same + material under section 10. + + \item Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or + run a copy of the Program. Ancillary propagation of a covered work + occurring solely as a consequence of using peer-to-peer transmission + to receive a copy likewise does not require acceptance. However, + nothing other than this License grants you permission to propagate or + modify any covered work. These actions infringe copyright if you do + not accept this License. Therefore, by modifying or propagating a + covered work, you indicate your acceptance of this License to do so. + + \item Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically + receives a license from the original licensors, to run, modify and + propagate that work, subject to this License. You are not responsible + for enforcing compliance by third parties with this License. + + An ``entity transaction'' is a transaction transferring control of an + organization, or substantially all assets of one, or subdividing an + organization, or merging organizations. If propagation of a covered + work results from an entity transaction, each party to that + transaction who receives a copy of the work also receives whatever + licenses to the work the party's predecessor in interest had or could + give under the previous paragraph, plus a right to possession of the + Corresponding Source of the work from the predecessor in interest, if + the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the + rights granted or affirmed under this License. For example, you may + not impose a license fee, royalty, or other charge for exercise of + rights granted under this License, and you may not initiate litigation + (including a cross-claim or counterclaim in a lawsuit) alleging that + any patent claim is infringed by making, using, selling, offering for + sale, or importing the Program or any portion of it. + + \item Patents. + + A ``contributor'' is a copyright holder who authorizes use under this + License of the Program or a work on which the Program is based. The + work thus licensed is called the contributor's ``contributor version''. + + A contributor's ``essential patent claims'' are all patent claims + owned or controlled by the contributor, whether already acquired or + hereafter acquired, that would be infringed by some manner, permitted + by this License, of making, using, or selling its contributor version, + but do not include claims that would be infringed only as a + consequence of further modification of the contributor version. For + purposes of this definition, ``control'' includes the right to grant + patent sublicenses in a manner consistent with the requirements of + this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free + patent license under the contributor's essential patent claims, to + make, use, sell, offer for sale, import and otherwise run, modify and + propagate the contents of its contributor version. + + In the following three paragraphs, a ``patent license'' is any express + agreement or commitment, however denominated, not to enforce a patent + (such as an express permission to practice a patent or covenant not to + sue for patent infringement). To ``grant'' such a patent license to a + party means to make such an agreement or commitment not to enforce a + patent against the party. + + If you convey a covered work, knowingly relying on a patent license, + and the Corresponding Source of the work is not available for anyone + to copy, free of charge and under the terms of this License, through a + publicly available network server or other readily accessible means, + then you must either (1) cause the Corresponding Source to be so + available, or (2) arrange to deprive yourself of the benefit of the + patent license for this particular work, or (3) arrange, in a manner + consistent with the requirements of this License, to extend the patent + license to downstream recipients. ``Knowingly relying'' means you have + actual knowledge that, but for the patent license, your conveying the + covered work in a country, or your recipient's use of the covered work + in a country, would infringe one or more identifiable patents in that + country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or + arrangement, you convey, or propagate by procuring conveyance of, a + covered work, and grant a patent license to some of the parties + receiving the covered work authorizing them to use, propagate, modify + or convey a specific copy of the covered work, then the patent license + you grant is automatically extended to all recipients of the covered + work and works based on it. + + A patent license is ``discriminatory'' if it does not include within + the scope of its coverage, prohibits the exercise of, or is + conditioned on the non-exercise of one or more of the rights that are + specifically granted under this License. You may not convey a covered + work if you are a party to an arrangement with a third party that is + in the business of distributing software, under which you make payment + to the third party based on the extent of your activity of conveying + the work, and under which the third party grants, to any of the + parties who would receive the covered work from you, a discriminatory + patent license (a) in connection with copies of the covered work + conveyed by you (or copies made from those copies), or (b) primarily + for and in connection with specific products or compilations that + contain the covered work, unless you entered into that arrangement, + or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting + any implied license or other defenses to infringement that may + otherwise be available to you under applicable patent law. + + \item No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or + otherwise) that contradict the conditions of this License, they do not + excuse you from the conditions of this License. If you cannot convey a + covered work so as to satisfy simultaneously your obligations under this + License and any other pertinent obligations, then as a consequence you may + not convey it at all. For example, if you agree to terms that obligate you + to collect a royalty for further conveying from those to whom you convey + the Program, the only way you could satisfy both those terms and this + License would be to refrain entirely from conveying the Program. + + \item Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the + Program, your modified version must prominently offer all users interacting + with it remotely through a computer network (if your version supports such + interaction) an opportunity to receive the Corresponding Source of your + version by providing access to the Corresponding Source from a network + server at no charge, through some standard or customary means of + facilitating copying of software. This Corresponding Source shall include + the Corresponding Source for any work covered by version 3 of the GNU + General Public License that is incorporated pursuant to the following + paragraph. + + Notwithstanding any other provision of this License, you have permission to + link or combine any covered work with a work licensed under version 3 of + the GNU General Public License into a single combined work, and to convey + the resulting work. The terms of this License will continue to apply to + the part which is the covered work, but the work with which it is combined + will remain governed by version 3 of the GNU General Public License. + + \item Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of + the GNU Affero General Public License from time to time. Such new versions will + be similar in spirit to the present version, but may differ in detail to + address new problems or concerns. + + Each version is given a distinguishing version number. If the + Program specifies that a certain numbered version of the GNU Affero General + Public License ``or any later version'' applies to it, you have the + option of following the terms and conditions either of that numbered + version or of any later version published by the Free Software + Foundation. If the Program does not specify a version number of the + GNU Affero General Public License, you may choose any version ever published + by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future + versions of the GNU Affero General Public License can be used, that proxy's + public statement of acceptance of a version permanently authorizes you + to choose that version for the Program. + + Later license versions may give you additional or different + permissions. However, no additional obligations are imposed on any + author or copyright holder as a result of your choosing to follow a + later version. + + \item Disclaimer of Warranty. + + \begin{sloppypar} + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY + APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE + COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM ``AS IS'' + WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE + RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. + SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL + NECESSARY SERVICING, REPAIR OR CORRECTION. + \end{sloppypar} + + \item Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN + WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES + AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR + DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL + DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM + (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED + INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE + OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH + HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + DAMAGES. + + \item Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided + above cannot be given local legal effect according to their terms, + reviewing courts shall apply local law that most closely approximates + an absolute waiver of all civil liability in connection with the + Program, unless a warranty or assumption of liability accompanies a + copy of the Program in return for a fee. + + \begin{center} + {\Large\sc End of Terms and Conditions} + + \bigskip + How to Apply These Terms to Your New Programs + \end{center} + + If you develop a new program, and you want it to be of the greatest + possible use to the public, the best way to achieve this is to make it + free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest + to attach them to the start of each source file to most effectively + state the exclusion of warranty; and each file should have at least + the ``copyright'' line and a pointer to where the full notice is found. + + {\footnotesize + \begin{verbatim} + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, 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 Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + \end{verbatim} + } + + Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer + network, you should also make sure that it provides a way for users to + get its source. For example, if your program is a web application, its + interface could display a ``Source'' link that leads users to an archive + of the code. There are many ways you could offer source, and different + solutions will be better for different programs; see section 13 for the + specific requirements. + + You should also get your employer (if you work as a programmer) or + school, if any, to sign a ``copyright disclaimer'' for the program, if + necessary. For more information on this, and how to apply and follow + the GNU AGPL, see \texttt{http://www.gnu.org/licenses/}. + + \end{enumerate} + + \gplend + + %%% Local Variables: + %%% mode: latex + %%% TeX-master: t + %%% End: + diff --combined .ext/cfd/licence/agpl-3.0.texi index 0000000,e6ee662..e6ee662 mode 000000,100644..100644 --- a/.ext/cfd/licence/agpl-3.0.texi +++ b/.ext/cfd/licence/agpl-3.0.texi @@@ -1,0 -1,698 +1,698 @@@ + @c The GNU Affero General Public License. + @center Version 3, 19 November 2007 + + @c This file is intended to be included within another document, + @c hence no sectioning command or @node. + + @display + Copyright @copyright{} 2007 Free Software Foundation, Inc. @url{http://fsf.org/} + + Everyone is permitted to copy and distribute verbatim copies of this + license document, but changing it is not allowed. + @end display + + @heading Preamble + + The GNU Affero General Public License is a free, copyleft license + for software and other kinds of works, specifically designed to ensure + cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are + designed to take away your freedom to share and change the works. By + contrast, our General Public Licenses are intended to guarantee your + freedom to share and change all versions of a program--to make sure it + remains free software for all its users. + + When we speak of free software, we are referring to freedom, not + price. Our General Public Licenses are designed to make sure that you + have the freedom to distribute copies of free software (and charge for + them if you wish), that you receive source code or can get it if you + want it, that you can change the software or use pieces of it in new + free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights + with two steps: (1) assert copyright on the software, and (2) offer + you this License which gives you legal permission to copy, distribute + and/or modify the software. + + A secondary benefit of defending all users' freedom is that + improvements made in alternate versions of the program, if they + receive widespread use, become available for other developers to + incorporate. Many developers of free software are heartened and + encouraged by the resulting cooperation. However, in the case of + software used on network servers, this result may fail to come about. + The GNU General Public License permits making a modified version and + letting the public access it on a server without ever releasing its + source code to the public. + + The GNU Affero General Public License is designed specifically to + ensure that, in such cases, the modified source code becomes available + to the community. It requires the operator of a network server to + provide the source code of the modified version running there to the + users of that server. Therefore, public use of a modified version, on + a publicly accessible server, gives the public access to the source + code of the modified version. + + An older license, called the Affero General Public License and + published by Affero, was designed to accomplish similar goals. This is + a different license, not a version of the Affero GPL, but Affero has + released a new version of the Affero GPL which permits relicensing under + this license. + + The precise terms and conditions for copying, distribution and + modification follow. + + @heading TERMS AND CONDITIONS + + @enumerate 0 + @item Definitions. + + ``This License'' refers to version 3 of the GNU Affero General Public License. + + ``Copyright'' also means copyright-like laws that apply to other kinds + of works, such as semiconductor masks. + + ``The Program'' refers to any copyrightable work licensed under this + License. Each licensee is addressed as ``you''. ``Licensees'' and + ``recipients'' may be individuals or organizations. + + To ``modify'' a work means to copy from or adapt all or part of the work + in a fashion requiring copyright permission, other than the making of + an exact copy. The resulting work is called a ``modified version'' of + the earlier work or a work ``based on'' the earlier work. + + A ``covered work'' means either the unmodified Program or a work based + on the Program. + + To ``propagate'' a work means to do anything with it that, without + permission, would make you directly or secondarily liable for + infringement under applicable copyright law, except executing it on a + computer or modifying a private copy. Propagation includes copying, + distribution (with or without modification), making available to the + public, and in some countries other activities as well. + + To ``convey'' a work means any kind of propagation that enables other + parties to make or receive copies. Mere interaction with a user + through a computer network, with no transfer of a copy, is not + conveying. + + An interactive user interface displays ``Appropriate Legal Notices'' to + the extent that it includes a convenient and prominently visible + feature that (1) displays an appropriate copyright notice, and (2) + tells the user that there is no warranty for the work (except to the + extent that warranties are provided), that licensees may convey the + work under this License, and how to view a copy of this License. If + the interface presents a list of user commands or options, such as a + menu, a prominent item in the list meets this criterion. + + @item Source Code. + + The ``source code'' for a work means the preferred form of the work for + making modifications to it. ``Object code'' means any non-source form + of a work. + + A ``Standard Interface'' means an interface that either is an official + standard defined by a recognized standards body, or, in the case of + interfaces specified for a particular programming language, one that + is widely used among developers working in that language. + + The ``System Libraries'' of an executable work include anything, other + than the work as a whole, that (a) is included in the normal form of + packaging a Major Component, but which is not part of that Major + Component, and (b) serves only to enable use of the work with that + Major Component, or to implement a Standard Interface for which an + implementation is available to the public in source code form. A + ``Major Component'', in this context, means a major essential component + (kernel, window system, and so on) of the specific operating system + (if any) on which the executable work runs, or a compiler used to + produce the work, or an object code interpreter used to run it. + + The ``Corresponding Source'' for a work in object code form means all + the source code needed to generate, install, and (for an executable + work) run the object code and to modify the work, including scripts to + control those activities. However, it does not include the work's + System Libraries, or general-purpose tools or generally available free + programs which are used unmodified in performing those activities but + which are not part of the work. For example, Corresponding Source + includes interface definition files associated with source files for + the work, and the source code for shared libraries and dynamically + linked subprograms that the work is specifically designed to require, + such as by intimate data communication or control flow between those + subprograms and other parts of the work. + + The Corresponding Source need not include anything that users can + regenerate automatically from other parts of the Corresponding Source. + + The Corresponding Source for a work in source code form is that same + work. + + @item Basic Permissions. + + All rights granted under this License are granted for the term of + copyright on the Program, and are irrevocable provided the stated + conditions are met. This License explicitly affirms your unlimited + permission to run the unmodified Program. The output from running a + covered work is covered by this License only if the output, given its + content, constitutes a covered work. This License acknowledges your + rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not convey, + without conditions so long as your license otherwise remains in force. + You may convey covered works to others for the sole purpose of having + them make modifications exclusively for you, or provide you with + facilities for running those works, provided that you comply with the + terms of this License in conveying all material for which you do not + control copyright. Those thus making or running the covered works for + you must do so exclusively on your behalf, under your direction and + control, on terms that prohibit them from making any copies of your + copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under the + conditions stated below. Sublicensing is not allowed; section 10 + makes it unnecessary. + + @item Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological + measure under any applicable law fulfilling obligations under article + 11 of the WIPO copyright treaty adopted on 20 December 1996, or + similar laws prohibiting or restricting circumvention of such + measures. + + When you convey a covered work, you waive any legal power to forbid + circumvention of technological measures to the extent such + circumvention is effected by exercising rights under this License with + respect to the covered work, and you disclaim any intention to limit + operation or modification of the work as a means of enforcing, against + the work's users, your or third parties' legal rights to forbid + circumvention of technological measures. + + @item Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you + receive it, in any medium, provided that you conspicuously and + appropriately publish on each copy an appropriate copyright notice; + keep intact all notices stating that this License and any + non-permissive terms added in accord with section 7 apply to the code; + keep intact all notices of the absence of any warranty; and give all + recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, + and you may offer support or warranty protection for a fee. + + @item Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to + produce it from the Program, in the form of source code under the + terms of section 4, provided that you also meet all of these + conditions: + + @enumerate a + @item + The work must carry prominent notices stating that you modified it, + and giving a relevant date. + + @item + The work must carry prominent notices stating that it is released + under this License and any conditions added under section 7. This + requirement modifies the requirement in section 4 to ``keep intact all + notices''. + + @item + You must license the entire work, as a whole, under this License to + anyone who comes into possession of a copy. This License will + therefore apply, along with any applicable section 7 additional terms, + to the whole of the work, and all its parts, regardless of how they + are packaged. This License gives no permission to license the work in + any other way, but it does not invalidate such permission if you have + separately received it. + + @item + If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your work + need not make them do so. + @end enumerate + + A compilation of a covered work with other separate and independent + works, which are not by their nature extensions of the covered work, + and which are not combined with it such as to form a larger program, + in or on a volume of a storage or distribution medium, is called an + ``aggregate'' if the compilation and its resulting copyright are not + used to limit the access or legal rights of the compilation's users + beyond what the individual works permit. Inclusion of a covered work + in an aggregate does not cause this License to apply to the other + parts of the aggregate. + + @item Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms of + sections 4 and 5, provided that you also convey the machine-readable + Corresponding Source under the terms of this License, in one of these + ways: + + @enumerate a + @item + Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium customarily + used for software interchange. + + @item + Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a written + offer, valid for at least three years and valid for as long as you + offer spare parts or customer support for that product model, to give + anyone who possesses the object code either (1) a copy of the + Corresponding Source for all the software in the product that is + covered by this License, on a durable physical medium customarily used + for software interchange, for a price no more than your reasonable + cost of physically performing this conveying of source, or (2) access + to copy the Corresponding Source from a network server at no charge. + + @item + Convey individual copies of the object code with a copy of the written + offer to provide the Corresponding Source. This alternative is + allowed only occasionally and noncommercially, and only if you + received the object code with such an offer, in accord with subsection + 6b. + + @item + Convey the object code by offering access from a designated place + (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to copy + the object code is a network server, the Corresponding Source may be + on a different server (operated by you or a third party) that supports + equivalent copying facilities, provided you maintain clear directions + next to the object code saying where to find the Corresponding Source. + Regardless of what server hosts the Corresponding Source, you remain + obligated to ensure that it is available for as long as needed to + satisfy these requirements. + + @item + Convey the object code using peer-to-peer transmission, provided you + inform other peers where the object code and Corresponding Source of + the work are being offered to the general public at no charge under + subsection 6d. + + @end enumerate + + A separable portion of the object code, whose source code is excluded + from the Corresponding Source as a System Library, need not be + included in conveying the object code work. + + A ``User Product'' is either (1) a ``consumer product'', which means any + tangible personal property which is normally used for personal, + family, or household purposes, or (2) anything designed or sold for + incorporation into a dwelling. In determining whether a product is a + consumer product, doubtful cases shall be resolved in favor of + coverage. For a particular product received by a particular user, + ``normally used'' refers to a typical or common use of that class of + product, regardless of the status of the particular user or of the way + in which the particular user actually uses, or expects or is expected + to use, the product. A product is a consumer product regardless of + whether the product has substantial commercial, industrial or + non-consumer uses, unless such uses represent the only significant + mode of use of the product. + + ``Installation Information'' for a User Product means any methods, + procedures, authorization keys, or other information required to + install and execute modified versions of a covered work in that User + Product from a modified version of its Corresponding Source. The + information must suffice to ensure that the continued functioning of + the modified object code is in no case prevented or interfered with + solely because modification has been made. + + If you convey an object code work under this section in, or with, or + specifically for use in, a User Product, and the conveying occurs as + part of a transaction in which the right of possession and use of the + User Product is transferred to the recipient in perpetuity or for a + fixed term (regardless of how the transaction is characterized), the + Corresponding Source conveyed under this section must be accompanied + by the Installation Information. But this requirement does not apply + if neither you nor any third party retains the ability to install + modified object code on the User Product (for example, the work has + been installed in ROM). + + The requirement to provide Installation Information does not include a + requirement to continue to provide support service, warranty, or + updates for a work that has been modified or installed by the + recipient, or for the User Product in which it has been modified or + installed. Access to a network may be denied when the modification + itself materially and adversely affects the operation of the network + or violates the rules and protocols for communication across the + network. + + Corresponding Source conveyed, and Installation Information provided, + in accord with this section must be in a format that is publicly + documented (and with an implementation available to the public in + source code form), and must require no special password or key for + unpacking, reading or copying. + + @item Additional Terms. + + ``Additional permissions'' are terms that supplement the terms of this + License by making exceptions from one or more of its conditions. + Additional permissions that are applicable to the entire Program shall + be treated as though they were included in this License, to the extent + that they are valid under applicable law. If additional permissions + apply only to part of the Program, that part may be used separately + under those permissions, but the entire Program remains governed by + this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option + remove any additional permissions from that copy, or from any part of + it. (Additional permissions may be written to require their own + removal in certain cases when you modify the work.) You may place + additional permissions on material, added by you to a covered work, + for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you + add to a covered work, you may (if authorized by the copyright holders + of that material) supplement the terms of this License with terms: + + @enumerate a + @item + Disclaiming warranty or limiting liability differently from the terms + of sections 15 and 16 of this License; or + + @item + Requiring preservation of specified reasonable legal notices or author + attributions in that material or in the Appropriate Legal Notices + displayed by works containing it; or + + @item + Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + @item + Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + @item + Declining to grant rights under trademark law for use of some trade + names, trademarks, or service marks; or + + @item + Requiring indemnification of licensors and authors of that material by + anyone who conveys the material (or modified versions of it) with + contractual assumptions of liability to the recipient, for any + liability that these contractual assumptions directly impose on those + licensors and authors. + @end enumerate + + All other non-permissive additional terms are considered ``further + restrictions'' within the meaning of section 10. If the Program as you + received it, or any part of it, contains a notice stating that it is + governed by this License along with a term that is a further + restriction, you may remove that term. If a license document contains + a further restriction but permits relicensing or conveying under this + License, you may add to a covered work material governed by the terms + of that license document, provided that the further restriction does + not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you + must place, in the relevant source files, a statement of the + additional terms that apply to those files, or a notice indicating + where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the + form of a separately written license, or stated as exceptions; the + above requirements apply either way. + + @item Termination. + + You may not propagate or modify a covered work except as expressly + provided under this License. Any attempt otherwise to propagate or + modify it is void, and will automatically terminate your rights under + this License (including any patent licenses granted under the third + paragraph of section 11). + + However, if you cease all violation of this License, then your license + from a particular copyright holder is reinstated (a) provisionally, + unless and until the copyright holder explicitly and finally + terminates your license, and (b) permanently, if the copyright holder + fails to notify you of the violation by some reasonable means prior to + 60 days after the cessation. + + Moreover, your license from a particular copyright holder is + reinstated permanently if the copyright holder notifies you of the + violation by some reasonable means, this is the first time you have + received notice of violation of this License (for any work) from that + copyright holder, and you cure the violation prior to 30 days after + your receipt of the notice. + + Termination of your rights under this section does not terminate the + licenses of parties who have received copies or rights from you under + this License. If your rights have been terminated and not permanently + reinstated, you do not qualify to receive new licenses for the same + material under section 10. + + @item Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or run + a copy of the Program. Ancillary propagation of a covered work + occurring solely as a consequence of using peer-to-peer transmission + to receive a copy likewise does not require acceptance. However, + nothing other than this License grants you permission to propagate or + modify any covered work. These actions infringe copyright if you do + not accept this License. Therefore, by modifying or propagating a + covered work, you indicate your acceptance of this License to do so. + + @item Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically + receives a license from the original licensors, to run, modify and + propagate that work, subject to this License. You are not responsible + for enforcing compliance by third parties with this License. + + An ``entity transaction'' is a transaction transferring control of an + organization, or substantially all assets of one, or subdividing an + organization, or merging organizations. If propagation of a covered + work results from an entity transaction, each party to that + transaction who receives a copy of the work also receives whatever + licenses to the work the party's predecessor in interest had or could + give under the previous paragraph, plus a right to possession of the + Corresponding Source of the work from the predecessor in interest, if + the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the + rights granted or affirmed under this License. For example, you may + not impose a license fee, royalty, or other charge for exercise of + rights granted under this License, and you may not initiate litigation + (including a cross-claim or counterclaim in a lawsuit) alleging that + any patent claim is infringed by making, using, selling, offering for + sale, or importing the Program or any portion of it. + + @item Patents. + + A ``contributor'' is a copyright holder who authorizes use under this + License of the Program or a work on which the Program is based. The + work thus licensed is called the contributor's ``contributor version''. + + A contributor's ``essential patent claims'' are all patent claims owned + or controlled by the contributor, whether already acquired or + hereafter acquired, that would be infringed by some manner, permitted + by this License, of making, using, or selling its contributor version, + but do not include claims that would be infringed only as a + consequence of further modification of the contributor version. For + purposes of this definition, ``control'' includes the right to grant + patent sublicenses in a manner consistent with the requirements of + this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free + patent license under the contributor's essential patent claims, to + make, use, sell, offer for sale, import and otherwise run, modify and + propagate the contents of its contributor version. + + In the following three paragraphs, a ``patent license'' is any express + agreement or commitment, however denominated, not to enforce a patent + (such as an express permission to practice a patent or covenant not to + sue for patent infringement). To ``grant'' such a patent license to a + party means to make such an agreement or commitment not to enforce a + patent against the party. + + If you convey a covered work, knowingly relying on a patent license, + and the Corresponding Source of the work is not available for anyone + to copy, free of charge and under the terms of this License, through a + publicly available network server or other readily accessible means, + then you must either (1) cause the Corresponding Source to be so + available, or (2) arrange to deprive yourself of the benefit of the + patent license for this particular work, or (3) arrange, in a manner + consistent with the requirements of this License, to extend the patent + license to downstream recipients. ``Knowingly relying'' means you have + actual knowledge that, but for the patent license, your conveying the + covered work in a country, or your recipient's use of the covered work + in a country, would infringe one or more identifiable patents in that + country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or + arrangement, you convey, or propagate by procuring conveyance of, a + covered work, and grant a patent license to some of the parties + receiving the covered work authorizing them to use, propagate, modify + or convey a specific copy of the covered work, then the patent license + you grant is automatically extended to all recipients of the covered + work and works based on it. + + A patent license is ``discriminatory'' if it does not include within the + scope of its coverage, prohibits the exercise of, or is conditioned on + the non-exercise of one or more of the rights that are specifically + granted under this License. You may not convey a covered work if you + are a party to an arrangement with a third party that is in the + business of distributing software, under which you make payment to the + third party based on the extent of your activity of conveying the + work, and under which the third party grants, to any of the parties + who would receive the covered work from you, a discriminatory patent + license (a) in connection with copies of the covered work conveyed by + you (or copies made from those copies), or (b) primarily for and in + connection with specific products or compilations that contain the + covered work, unless you entered into that arrangement, or that patent + license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting + any implied license or other defenses to infringement that may + otherwise be available to you under applicable patent law. + + @item No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or + otherwise) that contradict the conditions of this License, they do not + excuse you from the conditions of this License. If you cannot convey + a covered work so as to satisfy simultaneously your obligations under + this License and any other pertinent obligations, then as a + consequence you may not convey it at all. For example, if you agree + to terms that obligate you to collect a royalty for further conveying + from those to whom you convey the Program, the only way you could + satisfy both those terms and this License would be to refrain entirely + from conveying the Program. + + @item Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the + Program, your modified version must prominently offer all users interacting + with it remotely through a computer network (if your version supports such + interaction) an opportunity to receive the Corresponding Source of your + version by providing access to the Corresponding Source from a network + server at no charge, through some standard or customary means of + facilitating copying of software. This Corresponding Source shall include + the Corresponding Source for any work covered by version 3 of the GNU + General Public License that is incorporated pursuant to the following + paragraph. + + Notwithstanding any other provision of this License, you have permission to + link or combine any covered work with a work licensed under version 3 of + the GNU General Public License into a single combined work, and to convey + the resulting work. The terms of this License will continue to apply to + the part which is the covered work, but the work with which it is combined + will remain governed by version 3 of the GNU General Public License. + + @item Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions + of the GNU Affero General Public License from time to time. Such new + versions will be similar in spirit to the present version, but may + differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the Program + specifies that a certain numbered version of the GNU Affero General Public + License ``or any later version'' applies to it, you have the option of + following the terms and conditions either of that numbered version or + of any later version published by the Free Software Foundation. If + the Program does not specify a version number of the GNU Affero General + Public License, you may choose any version ever published by the Free + Software Foundation. + + If the Program specifies that a proxy can decide which future versions + of the GNU Affero General Public License can be used, that proxy's public + statement of acceptance of a version permanently authorizes you to + choose that version for the Program. + + Later license versions may give you additional or different + permissions. However, no additional obligations are imposed on any + author or copyright holder as a result of your choosing to follow a + later version. + + @item Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY + APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT + HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM ``AS IS'' WITHOUT + WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND + PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE + DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR + CORRECTION. + + @item Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING + WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR + CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, + INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES + ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT + NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR + LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM + TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER + PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + + @item Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided + above cannot be given local legal effect according to their terms, + reviewing courts shall apply local law that most closely approximates + an absolute waiver of all civil liability in connection with the + Program, unless a warranty or assumption of liability accompanies a + copy of the Program in return for a fee. + + @end enumerate + + @heading END OF TERMS AND CONDITIONS + + @heading How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest + possible use to the public, the best way to achieve this is to make it + free software which everyone can redistribute and change under these + terms. + + To do so, attach the following notices to the program. It is safest + to attach them to the start of each source file to most effectively + state the exclusion of warranty; and each file should have at least + the ``copyright'' line and a pointer to where the full notice is found. + + @smallexample + @var{one line to give the program's name and a brief idea of what it does.} + Copyright (C) @var{year} @var{name of author} + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, 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 + Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see @url{http://www.gnu.org/licenses/}. + @end smallexample + + Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer + network, you should also make sure that it provides a way for users to + get its source. For example, if your program is a web application, its + interface could display a ``Source'' link that leads users to an archive + of the code. There are many ways you could offer source, and different + solutions will be better for different programs; see section 13 for the + specific requirements. + + You should also get your employer (if you work as a programmer) or school, + if any, to sign a ``copyright disclaimer'' for the program, if necessary. + For more information on this, and how to apply and follow the GNU AGPL, see + @url{http://www.gnu.org/licenses/}. diff --combined .ext/cfd/licence/gpl-2.0.tex index 0000000,0c15a10..0c15a10 mode 000000,100644..100644 --- a/.ext/cfd/licence/gpl-2.0.tex +++ b/.ext/cfd/licence/gpl-2.0.tex @@@ -1,0 -1,475 +1,475 @@@ + % \iffalse + % + % The GNU General Public License as a LaTeX section + % + % (c) 1989, 1991 Free Software Foundation, Inc. + % Minor LaTeX formatting changes by Mark Wooding + % + + % --- Chapter heading --- + % + % We don't know whether this ought to be a section or a chapter. Easy. + % We'll see if chapters are possible. + % + % \fi + + \begingroup + \makeatletter + + \edef\next#1#2#3{\relax + \ifx\chapter\@@undefined + \ifx\documentclass\@notprerr#2\else#3\fi + \else#1\fi + } + + \expandafter\endgroup\next + { + \let\gpltoplevel\chapter + \let\gplsec\section + \let\gplend\endinput + }{ + \let\gpltoplevel\section + \let\gplsec\subsection + \let\gplend\endinput + }{ + \documentclass[11pt]{article} + \def\gpltoplevel#1{% + \vspace*{1in}% + \hbox to\hsize{\hfil\LARGE\bfseries#1\hfil}% + \vspace{1in}% + } + \let\gplsec\section + \def\gplend{\end{document}} + \advance\textwidth1in + \advance\oddsidemargin-.5in + \sloppy + \begin{document} + } + + %^^A------------------------------------------------------------------------- + \gpltoplevel{The GNU General Public License} + + + The following is the text of the GNU General Public License, under the terms + of which this software is distributed. + + \vspace{12pt} + + \begin{center} + \textbf{GNU GENERAL PUBLIC LICENSE} \\ + Version 2, June 1991 + \end{center} + + \begin{center} + {\parindent 0in + + Copyright \copyright\ 1989, 1991 Free Software Foundation, Inc. + + \bigskip + + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + + \bigskip + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + } + \end{center} + + \begin{center} + {\bf\large Preamble} + \end{center} + + + The licenses for most software are designed to take away your freedom to + share and change it. By contrast, the GNU General Public License is + intended to guarantee your freedom to share and change free software---to + make sure the software is free for all its users. This General Public + License applies to most of the Free Software Foundation's software and to + any other program whose authors commit to using it. (Some other Free + Software Foundation software is covered by the GNU Library General Public + License instead.) You can apply it to your programs, too. + + When we speak of free software, we are referring to freedom, not price. + Our General Public Licenses are designed to make sure that you have the + freedom to distribute copies of free software (and charge for this service + if you wish), that you receive source code or can get it if you want it, + that you can change the software or use pieces of it in new free programs; + and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid anyone to + deny you these rights or to ask you to surrender the rights. These + restrictions translate to certain responsibilities for you if you + distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether gratis or + for a fee, you must give the recipients all the rights that you have. You + must make sure that they, too, receive or can get the source code. And + you must show them these terms so they know their rights. + + We protect your rights with two steps: (1) copyright the software, and (2) + offer you this license which gives you legal permission to copy, + distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain that + everyone understands that there is no warranty for this free software. If + the software is modified by someone else and passed on, we want its + recipients to know that what they have is not the original, so that any + problems introduced by others will not reflect on the original authors' + reputations. + + Finally, any free program is threatened constantly by software patents. + We wish to avoid the danger that redistributors of a free program will + individually obtain patent licenses, in effect making the program + proprietary. To prevent this, we have made it clear that any patent must + be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and + modification follow. + + \begin{center} + {\Large \sc Terms and Conditions For Copying, Distribution and + Modification} + \end{center} + + + \begin{enumerate} + + \addtocounter{enumi}{-1} + + \item + + This License applies to any program or other work which contains a notice + placed by the copyright holder saying it may be distributed under the + terms of this General Public License. The ``Program'', below, refers to + any such program or work, and a ``work based on the Program'' means either + the Program or any derivative work under copyright law: that is to say, a + work containing the Program or a portion of it, either verbatim or with + modifications and/or translated into another language. (Hereinafter, + translation is included without limitation in the term ``modification''.) + Each licensee is addressed as ``you''. + + Activities other than copying, distribution and modification are not + covered by this License; they are outside its scope. The act of + running the Program is not restricted, and the output from the Program + is covered only if its contents constitute a work based on the + Program (independent of having been made by running the Program). + Whether that is true depends on what the Program does. + + \item You may copy and distribute verbatim copies of the Program's source + code as you receive it, in any medium, provided that you conspicuously + and appropriately publish on each copy an appropriate copyright notice + and disclaimer of warranty; keep intact all the notices that refer to + this License and to the absence of any warranty; and give any other + recipients of the Program a copy of this License along with the Program. + + You may charge a fee for the physical act of transferring a copy, and you + may at your option offer warranty protection in exchange for a fee. + + \item + + You may modify your copy or copies of the Program or any portion + of it, thus forming a work based on the Program, and copy and + distribute such modifications or work under the terms of Section 1 + above, provided that you also meet all of these conditions: + + \begin{enumerate} + + \item + + You must cause the modified files to carry prominent notices stating that + you changed the files and the date of any change. + + \item + + You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + \item + If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + + \end{enumerate} + + + These requirements apply to the modified work as a whole. If + identifiable sections of that work are not derived from the Program, + and can be reasonably considered independent and separate works in + themselves, then this License, and its terms, do not apply to those + sections when you distribute them as separate works. But when you + distribute the same sections as part of a whole which is a work based + on the Program, the distribution of the whole must be on the terms of + this License, whose permissions for other licensees extend to the + entire whole, and thus to each and every part regardless of who wrote it. + + Thus, it is not the intent of this section to claim rights or contest + your rights to work written entirely by you; rather, the intent is to + exercise the right to control the distribution of derivative or + collective works based on the Program. + + In addition, mere aggregation of another work not based on the Program + with the Program (or with a work based on the Program) on a volume of + a storage or distribution medium does not bring the other work under + the scope of this License. + + \item + You may copy and distribute the Program (or a work based on it, + under Section 2) in object code or executable form under the terms of + Sections 1 and 2 above provided that you also do one of the following: + + \begin{enumerate} + + \item + + Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + \item + + Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + \item + + Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + + \end{enumerate} + + + The source code for a work means the preferred form of the work for + making modifications to it. For an executable work, complete source + code means all the source code for all modules it contains, plus any + associated interface definition files, plus the scripts used to + control compilation and installation of the executable. However, as a + special exception, the source code distributed need not include + anything that is normally distributed (in either source or binary + form) with the major components (compiler, kernel, and so on) of the + operating system on which the executable runs, unless that component + itself accompanies the executable. + + If distribution of executable or object code is made by offering + access to copy from a designated place, then offering equivalent + access to copy the source code from the same place counts as + distribution of the source code, even though third parties are not + compelled to copy the source along with the object code. + + \item + You may not copy, modify, sublicense, or distribute the Program + except as expressly provided under this License. Any attempt + otherwise to copy, modify, sublicense or distribute the Program is + void, and will automatically terminate your rights under this License. + However, parties who have received copies, or rights, from you under + this License will not have their licenses terminated so long as such + parties remain in full compliance. + + \item + You are not required to accept this License, since you have not + signed it. However, nothing else grants you permission to modify or + distribute the Program or its derivative works. These actions are + prohibited by law if you do not accept this License. Therefore, by + modifying or distributing the Program (or any work based on the + Program), you indicate your acceptance of this License to do so, and + all its terms and conditions for copying, distributing or modifying + the Program or works based on it. + + \item + Each time you redistribute the Program (or any work based on the + Program), the recipient automatically receives a license from the + original licensor to copy, distribute or modify the Program subject to + these terms and conditions. You may not impose any further + restrictions on the recipients' exercise of the rights granted herein. + You are not responsible for enforcing compliance by third parties to + this License. + + \item + If, as a consequence of a court judgment or allegation of patent + infringement or for any other reason (not limited to patent issues), + conditions are imposed on you (whether by court order, agreement or + otherwise) that contradict the conditions of this License, they do not + excuse you from the conditions of this License. If you cannot + distribute so as to satisfy simultaneously your obligations under this + License and any other pertinent obligations, then as a consequence you + may not distribute the Program at all. For example, if a patent + license would not permit royalty-free redistribution of the Program by + all those who receive copies directly or indirectly through you, then + the only way you could satisfy both it and this License would be to + refrain entirely from distribution of the Program. + + If any portion of this section is held invalid or unenforceable under + any particular circumstance, the balance of the section is intended to + apply and the section as a whole is intended to apply in other + circumstances. + + It is not the purpose of this section to induce you to infringe any + patents or other property right claims or to contest validity of any + such claims; this section has the sole purpose of protecting the + integrity of the free software distribution system, which is + implemented by public license practices. Many people have made + generous contributions to the wide range of software distributed + through that system in reliance on consistent application of that + system; it is up to the author/donor to decide if he or she is willing + to distribute software through any other system and a licensee cannot + impose that choice. + + This section is intended to make thoroughly clear what is believed to + be a consequence of the rest of this License. + + \item + If the distribution and/or use of the Program is restricted in + certain countries either by patents or by copyrighted interfaces, the + original copyright holder who places the Program under this License + may add an explicit geographical distribution limitation excluding + those countries, so that distribution is permitted only in or among + countries not thus excluded. In such case, this License incorporates + the limitation as if written in the body of this License. + + \item + The Free Software Foundation may publish revised and/or new versions + of the General Public License from time to time. Such new versions will + be similar in spirit to the present version, but may differ in detail to + address new problems or concerns. + + Each version is given a distinguishing version number. If the Program + specifies a version number of this License which applies to it and ``any + later version'', you have the option of following the terms and conditions + either of that version or of any later version published by the Free + Software Foundation. If the Program does not specify a version number of + this License, you may choose any version ever published by the Free Software + Foundation. + + \item + If you wish to incorporate parts of the Program into other free + programs whose distribution conditions are different, write to the author + to ask for permission. For software which is copyrighted by the Free + Software Foundation, write to the Free Software Foundation; we sometimes + make exceptions for this. Our decision will be guided by the two goals + of preserving the free status of all derivatives of our free software and + of promoting the sharing and reuse of software generally. + + \begin{center} + {\Large\sc + No Warranty + } + \end{center} + + \item + {\sc Because the program is licensed free of charge, there is no warranty + for the program, to the extent permitted by applicable law. Except when + otherwise stated in writing the copyright holders and/or other parties + provide the program ``as is'' without warranty of any kind, either expressed + or implied, including, but not limited to, the implied warranties of + merchantability and fitness for a particular purpose. The entire risk as + to the quality and performance of the program is with you. Should the + program prove defective, you assume the cost of all necessary servicing, + repair or correction.} + + \item + {\sc In no event unless required by applicable law or agreed to in writing + will any copyright holder, or any other party who may modify and/or + redistribute the program as permitted above, be liable to you for damages, + including any general, special, incidental or consequential damages arising + out of the use or inability to use the program (including but not limited + to loss of data or data being rendered inaccurate or losses sustained by + you or third parties or a failure of the program to operate with any other + programs), even if such holder or other party has been advised of the + possibility of such damages.} + + \end{enumerate} + + + \begin{center} + {\Large\sc End of Terms and Conditions} + \end{center} + + + \pagebreak[2] + + \section*{Appendix: How to Apply These Terms to Your New Programs} + + If you develop a new program, and you want it to be of the greatest + possible use to the public, the best way to achieve this is to make it + free software which everyone can redistribute and change under these + terms. + + To do so, attach the following notices to the program. It is safest to + attach them to the start of each source file to most effectively convey + the exclusion of warranty; and each file should have at least the + ``copyright'' line and a pointer to where the full notice is found. + + \begin{quote} + one line to give the program's name and a brief idea of what it does. \\ + Copyright (C) yyyy name of author \\ + + 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 2 of the License, 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, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + \end{quote} + + Also add information on how to contact you by electronic and paper mail. + + If the program is interactive, make it output a short notice like this + when it starts in an interactive mode: + + \begin{quote} + Gnomovision version 69, Copyright (C) yyyy name of author \\ + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. \\ + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + \end{quote} + + + The hypothetical commands {\tt show w} and {\tt show c} should show the + appropriate parts of the General Public License. Of course, the commands + you use may be called something other than {\tt show w} and {\tt show c}; + they could even be mouse-clicks or menu items---whatever suits your + program. + + You should also get your employer (if you work as a programmer) or your + school, if any, to sign a ``copyright disclaimer'' for the program, if + necessary. Here is a sample; alter the names: + + \begin{quote} + Yoyodyne, Inc., hereby disclaims all copyright interest in the program \\ + `Gnomovision' (which makes passes at compilers) written by James Hacker. \\ + + signature of Ty Coon, 1 April 1989 \\ + Ty Coon, President of Vice + \end{quote} + + + This General Public License does not permit incorporating your program + into proprietary programs. If your program is a subroutine library, you + may consider it more useful to permit linking proprietary applications + with the library. If this is what you want to do, use the GNU Library + General Public License instead of this License. + + \gplend diff --combined .ext/cfd/licence/gpl-2.0.texi index 0000000,6c9d138..6c9d138 mode 000000,100644..100644 --- a/.ext/cfd/licence/gpl-2.0.texi +++ b/.ext/cfd/licence/gpl-2.0.texi @@@ -1,0 -1,383 +1,383 @@@ + @c The GNU General Public License. + @center Version 2, June 1991 + + @c This file is intended to be included within another document, + @c hence no sectioning command or @node. + + @display + Copyright @copyright{} 1989, 1991 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + @end display + + @heading Preamble + + The licenses for most software are designed to take away your + freedom to share and change it. By contrast, the GNU General Public + License is intended to guarantee your freedom to share and change free + software---to make sure the software is free for all its users. This + General Public License applies to most of the Free Software + Foundation's software and to any other program whose authors commit to + using it. (Some other Free Software Foundation software is covered by + the GNU Lesser General Public License instead.) You can apply it to + your programs, too. + + When we speak of free software, we are referring to freedom, not + price. Our General Public Licenses are designed to make sure that you + have the freedom to distribute copies of free software (and charge for + this service if you wish), that you receive source code or can get it + if you want it, that you can change the software or use pieces of it + in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid + anyone to deny you these rights or to ask you to surrender the rights. + These restrictions translate to certain responsibilities for you if you + distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether + gratis or for a fee, you must give the recipients all the rights that + you have. You must make sure that they, too, receive or can get the + source code. And you must show them these terms so they know their + rights. + + We protect your rights with two steps: (1) copyright the software, and + (2) offer you this license which gives you legal permission to copy, + distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain + that everyone understands that there is no warranty for this free + software. If the software is modified by someone else and passed on, we + want its recipients to know that what they have is not the original, so + that any problems introduced by others will not reflect on the original + authors' reputations. + + Finally, any free program is threatened constantly by software + patents. We wish to avoid the danger that redistributors of a free + program will individually obtain patent licenses, in effect making the + program proprietary. To prevent this, we have made it clear that any + patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and + modification follow. + + @heading TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + @enumerate 0 + @item + This License applies to any program or other work which contains + a notice placed by the copyright holder saying it may be distributed + under the terms of this General Public License. The ``Program'', below, + refers to any such program or work, and a ``work based on the Program'' + means either the Program or any derivative work under copyright law: + that is to say, a work containing the Program or a portion of it, + either verbatim or with modifications and/or translated into another + language. (Hereinafter, translation is included without limitation in + the term ``modification''.) Each licensee is addressed as ``you''. + + Activities other than copying, distribution and modification are not + covered by this License; they are outside its scope. The act of + running the Program is not restricted, and the output from the Program + is covered only if its contents constitute a work based on the + Program (independent of having been made by running the Program). + Whether that is true depends on what the Program does. + + @item + You may copy and distribute verbatim copies of the Program's + source code as you receive it, in any medium, provided that you + conspicuously and appropriately publish on each copy an appropriate + copyright notice and disclaimer of warranty; keep intact all the + notices that refer to this License and to the absence of any warranty; + and give any other recipients of the Program a copy of this License + along with the Program. + + You may charge a fee for the physical act of transferring a copy, and + you may at your option offer warranty protection in exchange for a fee. + + @item + You may modify your copy or copies of the Program or any portion + of it, thus forming a work based on the Program, and copy and + distribute such modifications or work under the terms of Section 1 + above, provided that you also meet all of these conditions: + + @enumerate a + @item + You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + @item + You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + @item + If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + @end enumerate + + These requirements apply to the modified work as a whole. If + identifiable sections of that work are not derived from the Program, + and can be reasonably considered independent and separate works in + themselves, then this License, and its terms, do not apply to those + sections when you distribute them as separate works. But when you + distribute the same sections as part of a whole which is a work based + on the Program, the distribution of the whole must be on the terms of + this License, whose permissions for other licensees extend to the + entire whole, and thus to each and every part regardless of who wrote it. + + Thus, it is not the intent of this section to claim rights or contest + your rights to work written entirely by you; rather, the intent is to + exercise the right to control the distribution of derivative or + collective works based on the Program. + + In addition, mere aggregation of another work not based on the Program + with the Program (or with a work based on the Program) on a volume of + a storage or distribution medium does not bring the other work under + the scope of this License. + + @item + You may copy and distribute the Program (or a work based on it, + under Section 2) in object code or executable form under the terms of + Sections 1 and 2 above provided that you also do one of the following: + + @enumerate a + @item + Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + @item + Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + @item + Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + @end enumerate + + The source code for a work means the preferred form of the work for + making modifications to it. For an executable work, complete source + code means all the source code for all modules it contains, plus any + associated interface definition files, plus the scripts used to + control compilation and installation of the executable. However, as a + special exception, the source code distributed need not include + anything that is normally distributed (in either source or binary + form) with the major components (compiler, kernel, and so on) of the + operating system on which the executable runs, unless that component + itself accompanies the executable. + + If distribution of executable or object code is made by offering + access to copy from a designated place, then offering equivalent + access to copy the source code from the same place counts as + distribution of the source code, even though third parties are not + compelled to copy the source along with the object code. + + @item + You may not copy, modify, sublicense, or distribute the Program + except as expressly provided under this License. Any attempt + otherwise to copy, modify, sublicense or distribute the Program is + void, and will automatically terminate your rights under this License. + However, parties who have received copies, or rights, from you under + this License will not have their licenses terminated so long as such + parties remain in full compliance. + + @item + You are not required to accept this License, since you have not + signed it. However, nothing else grants you permission to modify or + distribute the Program or its derivative works. These actions are + prohibited by law if you do not accept this License. Therefore, by + modifying or distributing the Program (or any work based on the + Program), you indicate your acceptance of this License to do so, and + all its terms and conditions for copying, distributing or modifying + the Program or works based on it. + + @item + Each time you redistribute the Program (or any work based on the + Program), the recipient automatically receives a license from the + original licensor to copy, distribute or modify the Program subject to + these terms and conditions. You may not impose any further + restrictions on the recipients' exercise of the rights granted herein. + You are not responsible for enforcing compliance by third parties to + this License. + + @item + If, as a consequence of a court judgment or allegation of patent + infringement or for any other reason (not limited to patent issues), + conditions are imposed on you (whether by court order, agreement or + otherwise) that contradict the conditions of this License, they do not + excuse you from the conditions of this License. If you cannot + distribute so as to satisfy simultaneously your obligations under this + License and any other pertinent obligations, then as a consequence you + may not distribute the Program at all. For example, if a patent + license would not permit royalty-free redistribution of the Program by + all those who receive copies directly or indirectly through you, then + the only way you could satisfy both it and this License would be to + refrain entirely from distribution of the Program. + + If any portion of this section is held invalid or unenforceable under + any particular circumstance, the balance of the section is intended to + apply and the section as a whole is intended to apply in other + circumstances. + + It is not the purpose of this section to induce you to infringe any + patents or other property right claims or to contest validity of any + such claims; this section has the sole purpose of protecting the + integrity of the free software distribution system, which is + implemented by public license practices. Many people have made + generous contributions to the wide range of software distributed + through that system in reliance on consistent application of that + system; it is up to the author/donor to decide if he or she is willing + to distribute software through any other system and a licensee cannot + impose that choice. + + This section is intended to make thoroughly clear what is believed to + be a consequence of the rest of this License. + + @item + If the distribution and/or use of the Program is restricted in + certain countries either by patents or by copyrighted interfaces, the + original copyright holder who places the Program under this License + may add an explicit geographical distribution limitation excluding + those countries, so that distribution is permitted only in or among + countries not thus excluded. In such case, this License incorporates + the limitation as if written in the body of this License. + + @item + The Free Software Foundation may publish revised and/or new versions + of the General Public License from time to time. Such new versions will + be similar in spirit to the present version, but may differ in detail to + address new problems or concerns. + + Each version is given a distinguishing version number. If the Program + specifies a version number of this License which applies to it and ``any + later version'', you have the option of following the terms and conditions + either of that version or of any later version published by the Free + Software Foundation. If the Program does not specify a version number of + this License, you may choose any version ever published by the Free Software + Foundation. + + @item + If you wish to incorporate parts of the Program into other free + programs whose distribution conditions are different, write to the author + to ask for permission. For software which is copyrighted by the Free + Software Foundation, write to the Free Software Foundation; we sometimes + make exceptions for this. Our decision will be guided by the two goals + of preserving the free status of all derivatives of our free software and + of promoting the sharing and reuse of software generally. + + @center @b{NO WARRANTY} + + @item + BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY + FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN + OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES + PROVIDE THE PROGRAM ``AS IS'' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED + OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS + TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE + PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, + REPAIR OR CORRECTION. + + @item + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING + WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR + REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, + INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING + OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED + TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY + YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER + PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE + POSSIBILITY OF SUCH DAMAGES. + @end enumerate + + @iftex + @heading END OF TERMS AND CONDITIONS + @end iftex + @ifinfo + @center END OF TERMS AND CONDITIONS + + @end ifinfo + + @page + @heading Appendix: How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest + possible use to the public, the best way to achieve this is to make it + free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest + to attach them to the start of each source file to most effectively + convey the exclusion of warranty; and each file should have at least + the ``copyright'' line and a pointer to where the full notice is found. + + @smallexample + @var{one line to give the program's name and a brief idea of what it does.} + Copyright (C) @var{yyyy} @var{name of author} + + 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 2 of the License, 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, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + @end smallexample + + Also add information on how to contact you by electronic and paper mail. + + If the program is interactive, make it output a short notice like this + when it starts in an interactive mode: + + @smallexample + Gnomovision version 69, Copyright (C) @var{year} @var{name of author} + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + @end smallexample + + The hypothetical commands @samp{show w} and @samp{show c} should show + the appropriate parts of the General Public License. Of course, the + commands you use may be called something other than @samp{show w} and + @samp{show c}; they could even be mouse-clicks or menu items---whatever + suits your program. + + You should also get your employer (if you work as a programmer) or your + school, if any, to sign a ``copyright disclaimer'' for the program, if + necessary. Here is a sample; alter the names: + + @smallexample + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + @var{signature of Ty Coon}, 1 April 1989 + Ty Coon, President of Vice + @end smallexample + + This General Public License does not permit incorporating your program into + proprietary programs. If your program is a subroutine library, you may + consider it more useful to permit linking proprietary applications with the + library. If this is what you want to do, use the GNU Lesser General + Public License instead of this License. diff --combined .ext/cfd/licence/gpl-3.0.tex index 0000000,e08765e..e08765e mode 000000,100644..100644 --- a/.ext/cfd/licence/gpl-3.0.tex +++ b/.ext/cfd/licence/gpl-3.0.tex @@@ -1,0 -1,772 +1,772 @@@ + % \iffalse + % + % The GNU General Public License as a LaTeX section + % + % (c) 1989, 1991 Free Software Foundation, Inc. + % Minor LaTeX formatting changes by Mark Wooding + % + + % --- Chapter heading --- + % + % We don't know whether this ought to be a section or a chapter. Easy. + % We'll see if chapters are possible. + % + % \fi + + \begingroup + \makeatletter + + \edef\next#1#2#3{\relax + \ifx\chapter\@@undefined + \ifx\documentclass\@notprerr#2\else#3\fi + \else#1\fi + } + + \expandafter\endgroup\next + { + \let\gpltoplevel\chapter + \let\gplsec\section + \let\gplend\endinput + }{ + \let\gpltoplevel\section + \let\gplsec\subsection + \let\gplend\endinput + }{ + \documentclass[11pt]{article} + \def\gpltoplevel#1{% + \vspace*{1in}% + \hbox to\hsize{\hfil\LARGE\bfseries#1\hfil}% + \vspace{1in}% + } + \let\gplsec\section + \def\gplend{\end{document}} + \advance\textwidth1in + \advance\oddsidemargin-.5in + \sloppy + \begin{document} + } + + %^^A------------------------------------------------------------------------- + \gpltoplevel{The GNU General Public License} + + + The following is the text of the GNU General Public License, under the terms + of which this software is distributed. + + \vspace{12pt} + + \begin{center} + \textbf{GNU GENERAL PUBLIC LICENSE} \\ + Version 3, 29 June 2007 + \end{center} + + \begin{center} + {\parindent 0in + + Copyright \copyright\ 2007 Free Software Foundation, Inc. \texttt{http://fsf.org/} + + \bigskip + Everyone is permitted to copy and distribute verbatim copies of this \\ + license document, but changing it is not allowed.} + + \end{center} + + \renewcommand{\abstractname}{Preamble} + \begin{abstract} + The GNU General Public License is a free, copyleft license for + software and other kinds of works. + + The licenses for most software and other practical works are designed + to take away your freedom to share and change the works. By contrast, + the GNU General Public License is intended to guarantee your freedom to + share and change all versions of a program--to make sure it remains free + software for all its users. We, the Free Software Foundation, use the + GNU General Public License for most of our software; it applies also to + any other work released this way by its authors. You can apply it to + your programs, too. + + When we speak of free software, we are referring to freedom, not + price. Our General Public Licenses are designed to make sure that you + have the freedom to distribute copies of free software (and charge for + them if you wish), that you receive source code or can get it if you + want it, that you can change the software or use pieces of it in new + free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you + these rights or asking you to surrender the rights. Therefore, you have + certain responsibilities if you distribute copies of the software, or if + you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether + gratis or for a fee, you must pass on to the recipients the same + freedoms that you received. You must make sure that they, too, receive + or can get the source code. And you must show them these terms so they + know their rights. + + Developers that use the GNU GPL protect your rights with two steps: + (1) assert copyright on the software, and (2) offer you this License + giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains + that there is no warranty for this free software. For both users' and + authors' sake, the GPL requires that modified versions be marked as + changed, so that their problems will not be attributed erroneously to + authors of previous versions. + + Some devices are designed to deny users access to install or run + modified versions of the software inside them, although the manufacturer + can do so. This is fundamentally incompatible with the aim of + protecting users' freedom to change the software. The systematic + pattern of such abuse occurs in the area of products for individuals to + use, which is precisely where it is most unacceptable. Therefore, we + have designed this version of the GPL to prohibit the practice for those + products. If such problems arise substantially in other domains, we + stand ready to extend this provision to those domains in future versions + of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. + States should not allow patents to restrict development and use of + software on general-purpose computers, but in those that do, we wish to + avoid the special danger that patents applied to a free program could + make it effectively proprietary. To prevent this, the GPL assures that + patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and + modification follow. + \end{abstract} + + \begin{center} + {\Large \sc Terms and Conditions} + \end{center} + + + \begin{enumerate} + + \addtocounter{enumi}{-1} + + \item Definitions. + + ``This License'' refers to version 3 of the GNU General Public License. + + ``Copyright'' also means copyright-like laws that apply to other kinds of + works, such as semiconductor masks. + + ``The Program'' refers to any copyrightable work licensed under this + License. Each licensee is addressed as ``you''. ``Licensees'' and + ``recipients'' may be individuals or organizations. + + To ``modify'' a work means to copy from or adapt all or part of the work + in a fashion requiring copyright permission, other than the making of an + exact copy. The resulting work is called a ``modified version'' of the + earlier work or a work ``based on'' the earlier work. + + A ``covered work'' means either the unmodified Program or a work based + on the Program. + + To ``propagate'' a work means to do anything with it that, without + permission, would make you directly or secondarily liable for + infringement under applicable copyright law, except executing it on a + computer or modifying a private copy. Propagation includes copying, + distribution (with or without modification), making available to the + public, and in some countries other activities as well. + + To ``convey'' a work means any kind of propagation that enables other + parties to make or receive copies. Mere interaction with a user through + a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays ``Appropriate Legal Notices'' + to the extent that it includes a convenient and prominently visible + feature that (1) displays an appropriate copyright notice, and (2) + tells the user that there is no warranty for the work (except to the + extent that warranties are provided), that licensees may convey the + work under this License, and how to view a copy of this License. If + the interface presents a list of user commands or options, such as a + menu, a prominent item in the list meets this criterion. + + \item Source Code. + + The ``source code'' for a work means the preferred form of the work + for making modifications to it. ``Object code'' means any non-source + form of a work. + + A ``Standard Interface'' means an interface that either is an official + standard defined by a recognized standards body, or, in the case of + interfaces specified for a particular programming language, one that + is widely used among developers working in that language. + + The ``System Libraries'' of an executable work include anything, other + than the work as a whole, that (a) is included in the normal form of + packaging a Major Component, but which is not part of that Major + Component, and (b) serves only to enable use of the work with that + Major Component, or to implement a Standard Interface for which an + implementation is available to the public in source code form. A + ``Major Component'', in this context, means a major essential component + (kernel, window system, and so on) of the specific operating system + (if any) on which the executable work runs, or a compiler used to + produce the work, or an object code interpreter used to run it. + + The ``Corresponding Source'' for a work in object code form means all + the source code needed to generate, install, and (for an executable + work) run the object code and to modify the work, including scripts to + control those activities. However, it does not include the work's + System Libraries, or general-purpose tools or generally available free + programs which are used unmodified in performing those activities but + which are not part of the work. For example, Corresponding Source + includes interface definition files associated with source files for + the work, and the source code for shared libraries and dynamically + linked subprograms that the work is specifically designed to require, + such as by intimate data communication or control flow between those + subprograms and other parts of the work. + + The Corresponding Source need not include anything that users + can regenerate automatically from other parts of the Corresponding + Source. + + The Corresponding Source for a work in source code form is that + same work. + + \item Basic Permissions. + + All rights granted under this License are granted for the term of + copyright on the Program, and are irrevocable provided the stated + conditions are met. This License explicitly affirms your unlimited + permission to run the unmodified Program. The output from running a + covered work is covered by this License only if the output, given its + content, constitutes a covered work. This License acknowledges your + rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not + convey, without conditions so long as your license otherwise remains + in force. You may convey covered works to others for the sole purpose + of having them make modifications exclusively for you, or provide you + with facilities for running those works, provided that you comply with + the terms of this License in conveying all material for which you do + not control copyright. Those thus making or running the covered works + for you must do so exclusively on your behalf, under your direction + and control, on terms that prohibit them from making any copies of + your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under + the conditions stated below. Sublicensing is not allowed; section 10 + makes it unnecessary. + + \item Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological + measure under any applicable law fulfilling obligations under article + 11 of the WIPO copyright treaty adopted on 20 December 1996, or + similar laws prohibiting or restricting circumvention of such + measures. + + When you convey a covered work, you waive any legal power to forbid + circumvention of technological measures to the extent such circumvention + is effected by exercising rights under this License with respect to + the covered work, and you disclaim any intention to limit operation or + modification of the work as a means of enforcing, against the work's + users, your or third parties' legal rights to forbid circumvention of + technological measures. + + \item Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you + receive it, in any medium, provided that you conspicuously and + appropriately publish on each copy an appropriate copyright notice; + keep intact all notices stating that this License and any + non-permissive terms added in accord with section 7 apply to the code; + keep intact all notices of the absence of any warranty; and give all + recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, + and you may offer support or warranty protection for a fee. + + \item Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to + produce it from the Program, in the form of source code under the + terms of section 4, provided that you also meet all of these conditions: + \begin{enumerate} + \item The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + \item The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + ``keep intact all notices''. + + \item You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + \item If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + \end{enumerate} + A compilation of a covered work with other separate and independent + works, which are not by their nature extensions of the covered work, + and which are not combined with it such as to form a larger program, + in or on a volume of a storage or distribution medium, is called an + ``aggregate'' if the compilation and its resulting copyright are not + used to limit the access or legal rights of the compilation's users + beyond what the individual works permit. Inclusion of a covered work + in an aggregate does not cause this License to apply to the other + parts of the aggregate. + + \item Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms + of sections 4 and 5, provided that you also convey the + machine-readable Corresponding Source under the terms of this License, + in one of these ways: + \begin{enumerate} + \item Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + \item Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + \item Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + \item Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + \item Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + \end{enumerate} + + A separable portion of the object code, whose source code is excluded + from the Corresponding Source as a System Library, need not be + included in conveying the object code work. + + A ``User Product'' is either (1) a ``consumer product'', which means any + tangible personal property which is normally used for personal, family, + or household purposes, or (2) anything designed or sold for incorporation + into a dwelling. In determining whether a product is a consumer product, + doubtful cases shall be resolved in favor of coverage. For a particular + product received by a particular user, ``normally used'' refers to a + typical or common use of that class of product, regardless of the status + of the particular user or of the way in which the particular user + actually uses, or expects or is expected to use, the product. A product + is a consumer product regardless of whether the product has substantial + commercial, industrial or non-consumer uses, unless such uses represent + the only significant mode of use of the product. + + ``Installation Information'' for a User Product means any methods, + procedures, authorization keys, or other information required to install + and execute modified versions of a covered work in that User Product from + a modified version of its Corresponding Source. The information must + suffice to ensure that the continued functioning of the modified object + code is in no case prevented or interfered with solely because + modification has been made. + + If you convey an object code work under this section in, or with, or + specifically for use in, a User Product, and the conveying occurs as + part of a transaction in which the right of possession and use of the + User Product is transferred to the recipient in perpetuity or for a + fixed term (regardless of how the transaction is characterized), the + Corresponding Source conveyed under this section must be accompanied + by the Installation Information. But this requirement does not apply + if neither you nor any third party retains the ability to install + modified object code on the User Product (for example, the work has + been installed in ROM). + + The requirement to provide Installation Information does not include a + requirement to continue to provide support service, warranty, or updates + for a work that has been modified or installed by the recipient, or for + the User Product in which it has been modified or installed. Access to a + network may be denied when the modification itself materially and + adversely affects the operation of the network or violates the rules and + protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, + in accord with this section must be in a format that is publicly + documented (and with an implementation available to the public in + source code form), and must require no special password or key for + unpacking, reading or copying. + + \item Additional Terms. + + ``Additional permissions'' are terms that supplement the terms of this + License by making exceptions from one or more of its conditions. + Additional permissions that are applicable to the entire Program shall + be treated as though they were included in this License, to the extent + that they are valid under applicable law. If additional permissions + apply only to part of the Program, that part may be used separately + under those permissions, but the entire Program remains governed by + this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option + remove any additional permissions from that copy, or from any part of + it. (Additional permissions may be written to require their own + removal in certain cases when you modify the work.) You may place + additional permissions on material, added by you to a covered work, + for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you + add to a covered work, you may (if authorized by the copyright holders of + that material) supplement the terms of this License with terms: + \begin{enumerate} + \item Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + \item Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + \item Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + \item Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + \item Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + \item Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + \end{enumerate} + + All other non-permissive additional terms are considered ``further + restrictions'' within the meaning of section 10. If the Program as you + received it, or any part of it, contains a notice stating that it is + governed by this License along with a term that is a further + restriction, you may remove that term. If a license document contains + a further restriction but permits relicensing or conveying under this + License, you may add to a covered work material governed by the terms + of that license document, provided that the further restriction does + not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you + must place, in the relevant source files, a statement of the + additional terms that apply to those files, or a notice indicating + where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the + form of a separately written license, or stated as exceptions; + the above requirements apply either way. + + \item Termination. + + You may not propagate or modify a covered work except as expressly + provided under this License. Any attempt otherwise to propagate or + modify it is void, and will automatically terminate your rights under + this License (including any patent licenses granted under the third + paragraph of section 11). + + However, if you cease all violation of this License, then your + license from a particular copyright holder is reinstated (a) + provisionally, unless and until the copyright holder explicitly and + finally terminates your license, and (b) permanently, if the copyright + holder fails to notify you of the violation by some reasonable means + prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is + reinstated permanently if the copyright holder notifies you of the + violation by some reasonable means, this is the first time you have + received notice of violation of this License (for any work) from that + copyright holder, and you cure the violation prior to 30 days after + your receipt of the notice. + + Termination of your rights under this section does not terminate the + licenses of parties who have received copies or rights from you under + this License. If your rights have been terminated and not permanently + reinstated, you do not qualify to receive new licenses for the same + material under section 10. + + \item Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or + run a copy of the Program. Ancillary propagation of a covered work + occurring solely as a consequence of using peer-to-peer transmission + to receive a copy likewise does not require acceptance. However, + nothing other than this License grants you permission to propagate or + modify any covered work. These actions infringe copyright if you do + not accept this License. Therefore, by modifying or propagating a + covered work, you indicate your acceptance of this License to do so. + + \item Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically + receives a license from the original licensors, to run, modify and + propagate that work, subject to this License. You are not responsible + for enforcing compliance by third parties with this License. + + An ``entity transaction'' is a transaction transferring control of an + organization, or substantially all assets of one, or subdividing an + organization, or merging organizations. If propagation of a covered + work results from an entity transaction, each party to that + transaction who receives a copy of the work also receives whatever + licenses to the work the party's predecessor in interest had or could + give under the previous paragraph, plus a right to possession of the + Corresponding Source of the work from the predecessor in interest, if + the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the + rights granted or affirmed under this License. For example, you may + not impose a license fee, royalty, or other charge for exercise of + rights granted under this License, and you may not initiate litigation + (including a cross-claim or counterclaim in a lawsuit) alleging that + any patent claim is infringed by making, using, selling, offering for + sale, or importing the Program or any portion of it. + + \item Patents. + + A ``contributor'' is a copyright holder who authorizes use under this + License of the Program or a work on which the Program is based. The + work thus licensed is called the contributor's ``contributor version''. + + A contributor's ``essential patent claims'' are all patent claims + owned or controlled by the contributor, whether already acquired or + hereafter acquired, that would be infringed by some manner, permitted + by this License, of making, using, or selling its contributor version, + but do not include claims that would be infringed only as a + consequence of further modification of the contributor version. For + purposes of this definition, ``control'' includes the right to grant + patent sublicenses in a manner consistent with the requirements of + this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free + patent license under the contributor's essential patent claims, to + make, use, sell, offer for sale, import and otherwise run, modify and + propagate the contents of its contributor version. + + In the following three paragraphs, a ``patent license'' is any express + agreement or commitment, however denominated, not to enforce a patent + (such as an express permission to practice a patent or covenant not to + sue for patent infringement). To ``grant'' such a patent license to a + party means to make such an agreement or commitment not to enforce a + patent against the party. + + If you convey a covered work, knowingly relying on a patent license, + and the Corresponding Source of the work is not available for anyone + to copy, free of charge and under the terms of this License, through a + publicly available network server or other readily accessible means, + then you must either (1) cause the Corresponding Source to be so + available, or (2) arrange to deprive yourself of the benefit of the + patent license for this particular work, or (3) arrange, in a manner + consistent with the requirements of this License, to extend the patent + license to downstream recipients. ``Knowingly relying'' means you have + actual knowledge that, but for the patent license, your conveying the + covered work in a country, or your recipient's use of the covered work + in a country, would infringe one or more identifiable patents in that + country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or + arrangement, you convey, or propagate by procuring conveyance of, a + covered work, and grant a patent license to some of the parties + receiving the covered work authorizing them to use, propagate, modify + or convey a specific copy of the covered work, then the patent license + you grant is automatically extended to all recipients of the covered + work and works based on it. + + A patent license is ``discriminatory'' if it does not include within + the scope of its coverage, prohibits the exercise of, or is + conditioned on the non-exercise of one or more of the rights that are + specifically granted under this License. You may not convey a covered + work if you are a party to an arrangement with a third party that is + in the business of distributing software, under which you make payment + to the third party based on the extent of your activity of conveying + the work, and under which the third party grants, to any of the + parties who would receive the covered work from you, a discriminatory + patent license (a) in connection with copies of the covered work + conveyed by you (or copies made from those copies), or (b) primarily + for and in connection with specific products or compilations that + contain the covered work, unless you entered into that arrangement, + or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting + any implied license or other defenses to infringement that may + otherwise be available to you under applicable patent law. + + \item No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or + otherwise) that contradict the conditions of this License, they do not + excuse you from the conditions of this License. If you cannot convey a + covered work so as to satisfy simultaneously your obligations under this + License and any other pertinent obligations, then as a consequence you may + not convey it at all. For example, if you agree to terms that obligate you + to collect a royalty for further conveying from those to whom you convey + the Program, the only way you could satisfy both those terms and this + License would be to refrain entirely from conveying the Program. + + \item Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have + permission to link or combine any covered work with a work licensed + under version 3 of the GNU Affero General Public License into a single + combined work, and to convey the resulting work. The terms of this + License will continue to apply to the part which is the covered work, + but the special requirements of the GNU Affero General Public License, + section 13, concerning interaction through a network will apply to the + combination as such. + + \item Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of + the GNU General Public License from time to time. Such new versions will + be similar in spirit to the present version, but may differ in detail to + address new problems or concerns. + + Each version is given a distinguishing version number. If the + Program specifies that a certain numbered version of the GNU General + Public License ``or any later version'' applies to it, you have the + option of following the terms and conditions either of that numbered + version or of any later version published by the Free Software + Foundation. If the Program does not specify a version number of the + GNU General Public License, you may choose any version ever published + by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future + versions of the GNU General Public License can be used, that proxy's + public statement of acceptance of a version permanently authorizes you + to choose that version for the Program. + + Later license versions may give you additional or different + permissions. However, no additional obligations are imposed on any + author or copyright holder as a result of your choosing to follow a + later version. + + \item Disclaimer of Warranty. + + \begin{sloppypar} + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY + APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE + COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM ``AS IS'' + WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE + RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. + SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL + NECESSARY SERVICING, REPAIR OR CORRECTION. + \end{sloppypar} + + \item Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN + WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES + AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR + DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL + DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM + (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED + INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE + OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH + HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + DAMAGES. + + \item Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided + above cannot be given local legal effect according to their terms, + reviewing courts shall apply local law that most closely approximates + an absolute waiver of all civil liability in connection with the + Program, unless a warranty or assumption of liability accompanies a + copy of the Program in return for a fee. + + \begin{center} + {\Large\sc End of Terms and Conditions} + + \bigskip + How to Apply These Terms to Your New Programs + \end{center} + + If you develop a new program, and you want it to be of the greatest + possible use to the public, the best way to achieve this is to make it + free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest + to attach them to the start of each source file to most effectively + state the exclusion of warranty; and each file should have at least + the ``copyright'' line and a pointer to where the full notice is found. + + {\footnotesize + \begin{verbatim} + + + Copyright (C) + + 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 of the License, 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 . + \end{verbatim} + } + + Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short + notice like this when it starts in an interactive mode: + + {\footnotesize + \begin{verbatim} + Copyright (C) + + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + \end{verbatim} + } + + The hypothetical commands {\tt show w} and {\tt show c} should show + the appropriate + parts of the General Public License. Of course, your program's commands + might be different; for a GUI interface, you would use an ``about box''. + + You should also get your employer (if you work as a programmer) or + school, if any, to sign a ``copyright disclaimer'' for the program, if + necessary. For more information on this, and how to apply and follow + the GNU GPL, see \texttt{http://www.gnu.org/licenses/}. + + The GNU General Public License does not permit incorporating your + program into proprietary programs. If your program is a subroutine + library, you may consider it more useful to permit linking proprietary + applications with the library. If this is what you want to do, use + the GNU Lesser General Public License instead of this License. But + first, please read \texttt{http://www.gnu.org/philosophy/why-not-lgpl.html}. + + \end{enumerate} + + \gplend diff --combined .ext/cfd/licence/gpl-3.0.texi index 0000000,0e2e212..0e2e212 mode 000000,100644..100644 --- a/.ext/cfd/licence/gpl-3.0.texi +++ b/.ext/cfd/licence/gpl-3.0.texi @@@ -1,0 -1,717 +1,717 @@@ + @c The GNU General Public License. + @center Version 3, 29 June 2007 + + @c This file is intended to be included within another document, + @c hence no sectioning command or @node. + + @display + Copyright @copyright{} 2007 Free Software Foundation, Inc. @url{http://fsf.org/} + + Everyone is permitted to copy and distribute verbatim copies of this + license document, but changing it is not allowed. + @end display + + @heading Preamble + + The GNU General Public License is a free, copyleft license for + software and other kinds of works. + + The licenses for most software and other practical works are designed + to take away your freedom to share and change the works. By contrast, + the GNU General Public License is intended to guarantee your freedom + to share and change all versions of a program---to make sure it remains + free software for all its users. We, the Free Software Foundation, + use the GNU General Public License for most of our software; it + applies also to any other work released this way by its authors. You + can apply it to your programs, too. + + When we speak of free software, we are referring to freedom, not + price. Our General Public Licenses are designed to make sure that you + have the freedom to distribute copies of free software (and charge for + them if you wish), that you receive source code or can get it if you + want it, that you can change the software or use pieces of it in new + free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you + these rights or asking you to surrender the rights. Therefore, you + have certain responsibilities if you distribute copies of the + software, or if you modify it: responsibilities to respect the freedom + of others. + + For example, if you distribute copies of such a program, whether + gratis or for a fee, you must pass on to the recipients the same + freedoms that you received. You must make sure that they, too, + receive or can get the source code. And you must show them these + terms so they know their rights. + + Developers that use the GNU GPL protect your rights with two steps: + (1) assert copyright on the software, and (2) offer you this License + giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains + that there is no warranty for this free software. For both users' and + authors' sake, the GPL requires that modified versions be marked as + changed, so that their problems will not be attributed erroneously to + authors of previous versions. + + Some devices are designed to deny users access to install or run + modified versions of the software inside them, although the + manufacturer can do so. This is fundamentally incompatible with the + aim of protecting users' freedom to change the software. The + systematic pattern of such abuse occurs in the area of products for + individuals to use, which is precisely where it is most unacceptable. + Therefore, we have designed this version of the GPL to prohibit the + practice for those products. If such problems arise substantially in + other domains, we stand ready to extend this provision to those + domains in future versions of the GPL, as needed to protect the + freedom of users. + + Finally, every program is threatened constantly by software patents. + States should not allow patents to restrict development and use of + software on general-purpose computers, but in those that do, we wish + to avoid the special danger that patents applied to a free program + could make it effectively proprietary. To prevent this, the GPL + assures that patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and + modification follow. + + @heading TERMS AND CONDITIONS + + @enumerate 0 + @item Definitions. + + ``This License'' refers to version 3 of the GNU General Public License. + + ``Copyright'' also means copyright-like laws that apply to other kinds + of works, such as semiconductor masks. + + ``The Program'' refers to any copyrightable work licensed under this + License. Each licensee is addressed as ``you''. ``Licensees'' and + ``recipients'' may be individuals or organizations. + + To ``modify'' a work means to copy from or adapt all or part of the work + in a fashion requiring copyright permission, other than the making of + an exact copy. The resulting work is called a ``modified version'' of + the earlier work or a work ``based on'' the earlier work. + + A ``covered work'' means either the unmodified Program or a work based + on the Program. + + To ``propagate'' a work means to do anything with it that, without + permission, would make you directly or secondarily liable for + infringement under applicable copyright law, except executing it on a + computer or modifying a private copy. Propagation includes copying, + distribution (with or without modification), making available to the + public, and in some countries other activities as well. + + To ``convey'' a work means any kind of propagation that enables other + parties to make or receive copies. Mere interaction with a user + through a computer network, with no transfer of a copy, is not + conveying. + + An interactive user interface displays ``Appropriate Legal Notices'' to + the extent that it includes a convenient and prominently visible + feature that (1) displays an appropriate copyright notice, and (2) + tells the user that there is no warranty for the work (except to the + extent that warranties are provided), that licensees may convey the + work under this License, and how to view a copy of this License. If + the interface presents a list of user commands or options, such as a + menu, a prominent item in the list meets this criterion. + + @item Source Code. + + The ``source code'' for a work means the preferred form of the work for + making modifications to it. ``Object code'' means any non-source form + of a work. + + A ``Standard Interface'' means an interface that either is an official + standard defined by a recognized standards body, or, in the case of + interfaces specified for a particular programming language, one that + is widely used among developers working in that language. + + The ``System Libraries'' of an executable work include anything, other + than the work as a whole, that (a) is included in the normal form of + packaging a Major Component, but which is not part of that Major + Component, and (b) serves only to enable use of the work with that + Major Component, or to implement a Standard Interface for which an + implementation is available to the public in source code form. A + ``Major Component'', in this context, means a major essential component + (kernel, window system, and so on) of the specific operating system + (if any) on which the executable work runs, or a compiler used to + produce the work, or an object code interpreter used to run it. + + The ``Corresponding Source'' for a work in object code form means all + the source code needed to generate, install, and (for an executable + work) run the object code and to modify the work, including scripts to + control those activities. However, it does not include the work's + System Libraries, or general-purpose tools or generally available free + programs which are used unmodified in performing those activities but + which are not part of the work. For example, Corresponding Source + includes interface definition files associated with source files for + the work, and the source code for shared libraries and dynamically + linked subprograms that the work is specifically designed to require, + such as by intimate data communication or control flow between those + subprograms and other parts of the work. + + The Corresponding Source need not include anything that users can + regenerate automatically from other parts of the Corresponding Source. + + The Corresponding Source for a work in source code form is that same + work. + + @item Basic Permissions. + + All rights granted under this License are granted for the term of + copyright on the Program, and are irrevocable provided the stated + conditions are met. This License explicitly affirms your unlimited + permission to run the unmodified Program. The output from running a + covered work is covered by this License only if the output, given its + content, constitutes a covered work. This License acknowledges your + rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not convey, + without conditions so long as your license otherwise remains in force. + You may convey covered works to others for the sole purpose of having + them make modifications exclusively for you, or provide you with + facilities for running those works, provided that you comply with the + terms of this License in conveying all material for which you do not + control copyright. Those thus making or running the covered works for + you must do so exclusively on your behalf, under your direction and + control, on terms that prohibit them from making any copies of your + copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under the + conditions stated below. Sublicensing is not allowed; section 10 + makes it unnecessary. + + @item Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological + measure under any applicable law fulfilling obligations under article + 11 of the WIPO copyright treaty adopted on 20 December 1996, or + similar laws prohibiting or restricting circumvention of such + measures. + + When you convey a covered work, you waive any legal power to forbid + circumvention of technological measures to the extent such + circumvention is effected by exercising rights under this License with + respect to the covered work, and you disclaim any intention to limit + operation or modification of the work as a means of enforcing, against + the work's users, your or third parties' legal rights to forbid + circumvention of technological measures. + + @item Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you + receive it, in any medium, provided that you conspicuously and + appropriately publish on each copy an appropriate copyright notice; + keep intact all notices stating that this License and any + non-permissive terms added in accord with section 7 apply to the code; + keep intact all notices of the absence of any warranty; and give all + recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, + and you may offer support or warranty protection for a fee. + + @item Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to + produce it from the Program, in the form of source code under the + terms of section 4, provided that you also meet all of these + conditions: + + @enumerate a + @item + The work must carry prominent notices stating that you modified it, + and giving a relevant date. + + @item + The work must carry prominent notices stating that it is released + under this License and any conditions added under section 7. This + requirement modifies the requirement in section 4 to ``keep intact all + notices''. + + @item + You must license the entire work, as a whole, under this License to + anyone who comes into possession of a copy. This License will + therefore apply, along with any applicable section 7 additional terms, + to the whole of the work, and all its parts, regardless of how they + are packaged. This License gives no permission to license the work in + any other way, but it does not invalidate such permission if you have + separately received it. + + @item + If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your work + need not make them do so. + @end enumerate + + A compilation of a covered work with other separate and independent + works, which are not by their nature extensions of the covered work, + and which are not combined with it such as to form a larger program, + in or on a volume of a storage or distribution medium, is called an + ``aggregate'' if the compilation and its resulting copyright are not + used to limit the access or legal rights of the compilation's users + beyond what the individual works permit. Inclusion of a covered work + in an aggregate does not cause this License to apply to the other + parts of the aggregate. + + @item Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms of + sections 4 and 5, provided that you also convey the machine-readable + Corresponding Source under the terms of this License, in one of these + ways: + + @enumerate a + @item + Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium customarily + used for software interchange. + + @item + Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a written + offer, valid for at least three years and valid for as long as you + offer spare parts or customer support for that product model, to give + anyone who possesses the object code either (1) a copy of the + Corresponding Source for all the software in the product that is + covered by this License, on a durable physical medium customarily used + for software interchange, for a price no more than your reasonable + cost of physically performing this conveying of source, or (2) access + to copy the Corresponding Source from a network server at no charge. + + @item + Convey individual copies of the object code with a copy of the written + offer to provide the Corresponding Source. This alternative is + allowed only occasionally and noncommercially, and only if you + received the object code with such an offer, in accord with subsection + 6b. + + @item + Convey the object code by offering access from a designated place + (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to copy + the object code is a network server, the Corresponding Source may be + on a different server (operated by you or a third party) that supports + equivalent copying facilities, provided you maintain clear directions + next to the object code saying where to find the Corresponding Source. + Regardless of what server hosts the Corresponding Source, you remain + obligated to ensure that it is available for as long as needed to + satisfy these requirements. + + @item + Convey the object code using peer-to-peer transmission, provided you + inform other peers where the object code and Corresponding Source of + the work are being offered to the general public at no charge under + subsection 6d. + + @end enumerate + + A separable portion of the object code, whose source code is excluded + from the Corresponding Source as a System Library, need not be + included in conveying the object code work. + + A ``User Product'' is either (1) a ``consumer product'', which means any + tangible personal property which is normally used for personal, + family, or household purposes, or (2) anything designed or sold for + incorporation into a dwelling. In determining whether a product is a + consumer product, doubtful cases shall be resolved in favor of + coverage. For a particular product received by a particular user, + ``normally used'' refers to a typical or common use of that class of + product, regardless of the status of the particular user or of the way + in which the particular user actually uses, or expects or is expected + to use, the product. A product is a consumer product regardless of + whether the product has substantial commercial, industrial or + non-consumer uses, unless such uses represent the only significant + mode of use of the product. + + ``Installation Information'' for a User Product means any methods, + procedures, authorization keys, or other information required to + install and execute modified versions of a covered work in that User + Product from a modified version of its Corresponding Source. The + information must suffice to ensure that the continued functioning of + the modified object code is in no case prevented or interfered with + solely because modification has been made. + + If you convey an object code work under this section in, or with, or + specifically for use in, a User Product, and the conveying occurs as + part of a transaction in which the right of possession and use of the + User Product is transferred to the recipient in perpetuity or for a + fixed term (regardless of how the transaction is characterized), the + Corresponding Source conveyed under this section must be accompanied + by the Installation Information. But this requirement does not apply + if neither you nor any third party retains the ability to install + modified object code on the User Product (for example, the work has + been installed in ROM). + + The requirement to provide Installation Information does not include a + requirement to continue to provide support service, warranty, or + updates for a work that has been modified or installed by the + recipient, or for the User Product in which it has been modified or + installed. Access to a network may be denied when the modification + itself materially and adversely affects the operation of the network + or violates the rules and protocols for communication across the + network. + + Corresponding Source conveyed, and Installation Information provided, + in accord with this section must be in a format that is publicly + documented (and with an implementation available to the public in + source code form), and must require no special password or key for + unpacking, reading or copying. + + @item Additional Terms. + + ``Additional permissions'' are terms that supplement the terms of this + License by making exceptions from one or more of its conditions. + Additional permissions that are applicable to the entire Program shall + be treated as though they were included in this License, to the extent + that they are valid under applicable law. If additional permissions + apply only to part of the Program, that part may be used separately + under those permissions, but the entire Program remains governed by + this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option + remove any additional permissions from that copy, or from any part of + it. (Additional permissions may be written to require their own + removal in certain cases when you modify the work.) You may place + additional permissions on material, added by you to a covered work, + for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you + add to a covered work, you may (if authorized by the copyright holders + of that material) supplement the terms of this License with terms: + + @enumerate a + @item + Disclaiming warranty or limiting liability differently from the terms + of sections 15 and 16 of this License; or + + @item + Requiring preservation of specified reasonable legal notices or author + attributions in that material or in the Appropriate Legal Notices + displayed by works containing it; or + + @item + Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + @item + Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + @item + Declining to grant rights under trademark law for use of some trade + names, trademarks, or service marks; or + + @item + Requiring indemnification of licensors and authors of that material by + anyone who conveys the material (or modified versions of it) with + contractual assumptions of liability to the recipient, for any + liability that these contractual assumptions directly impose on those + licensors and authors. + @end enumerate + + All other non-permissive additional terms are considered ``further + restrictions'' within the meaning of section 10. If the Program as you + received it, or any part of it, contains a notice stating that it is + governed by this License along with a term that is a further + restriction, you may remove that term. If a license document contains + a further restriction but permits relicensing or conveying under this + License, you may add to a covered work material governed by the terms + of that license document, provided that the further restriction does + not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you + must place, in the relevant source files, a statement of the + additional terms that apply to those files, or a notice indicating + where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the + form of a separately written license, or stated as exceptions; the + above requirements apply either way. + + @item Termination. + + You may not propagate or modify a covered work except as expressly + provided under this License. Any attempt otherwise to propagate or + modify it is void, and will automatically terminate your rights under + this License (including any patent licenses granted under the third + paragraph of section 11). + + However, if you cease all violation of this License, then your license + from a particular copyright holder is reinstated (a) provisionally, + unless and until the copyright holder explicitly and finally + terminates your license, and (b) permanently, if the copyright holder + fails to notify you of the violation by some reasonable means prior to + 60 days after the cessation. + + Moreover, your license from a particular copyright holder is + reinstated permanently if the copyright holder notifies you of the + violation by some reasonable means, this is the first time you have + received notice of violation of this License (for any work) from that + copyright holder, and you cure the violation prior to 30 days after + your receipt of the notice. + + Termination of your rights under this section does not terminate the + licenses of parties who have received copies or rights from you under + this License. If your rights have been terminated and not permanently + reinstated, you do not qualify to receive new licenses for the same + material under section 10. + + @item Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or run + a copy of the Program. Ancillary propagation of a covered work + occurring solely as a consequence of using peer-to-peer transmission + to receive a copy likewise does not require acceptance. However, + nothing other than this License grants you permission to propagate or + modify any covered work. These actions infringe copyright if you do + not accept this License. Therefore, by modifying or propagating a + covered work, you indicate your acceptance of this License to do so. + + @item Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically + receives a license from the original licensors, to run, modify and + propagate that work, subject to this License. You are not responsible + for enforcing compliance by third parties with this License. + + An ``entity transaction'' is a transaction transferring control of an + organization, or substantially all assets of one, or subdividing an + organization, or merging organizations. If propagation of a covered + work results from an entity transaction, each party to that + transaction who receives a copy of the work also receives whatever + licenses to the work the party's predecessor in interest had or could + give under the previous paragraph, plus a right to possession of the + Corresponding Source of the work from the predecessor in interest, if + the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the + rights granted or affirmed under this License. For example, you may + not impose a license fee, royalty, or other charge for exercise of + rights granted under this License, and you may not initiate litigation + (including a cross-claim or counterclaim in a lawsuit) alleging that + any patent claim is infringed by making, using, selling, offering for + sale, or importing the Program or any portion of it. + + @item Patents. + + A ``contributor'' is a copyright holder who authorizes use under this + License of the Program or a work on which the Program is based. The + work thus licensed is called the contributor's ``contributor version''. + + A contributor's ``essential patent claims'' are all patent claims owned + or controlled by the contributor, whether already acquired or + hereafter acquired, that would be infringed by some manner, permitted + by this License, of making, using, or selling its contributor version, + but do not include claims that would be infringed only as a + consequence of further modification of the contributor version. For + purposes of this definition, ``control'' includes the right to grant + patent sublicenses in a manner consistent with the requirements of + this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free + patent license under the contributor's essential patent claims, to + make, use, sell, offer for sale, import and otherwise run, modify and + propagate the contents of its contributor version. + + In the following three paragraphs, a ``patent license'' is any express + agreement or commitment, however denominated, not to enforce a patent + (such as an express permission to practice a patent or covenant not to + sue for patent infringement). To ``grant'' such a patent license to a + party means to make such an agreement or commitment not to enforce a + patent against the party. + + If you convey a covered work, knowingly relying on a patent license, + and the Corresponding Source of the work is not available for anyone + to copy, free of charge and under the terms of this License, through a + publicly available network server or other readily accessible means, + then you must either (1) cause the Corresponding Source to be so + available, or (2) arrange to deprive yourself of the benefit of the + patent license for this particular work, or (3) arrange, in a manner + consistent with the requirements of this License, to extend the patent + license to downstream recipients. ``Knowingly relying'' means you have + actual knowledge that, but for the patent license, your conveying the + covered work in a country, or your recipient's use of the covered work + in a country, would infringe one or more identifiable patents in that + country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or + arrangement, you convey, or propagate by procuring conveyance of, a + covered work, and grant a patent license to some of the parties + receiving the covered work authorizing them to use, propagate, modify + or convey a specific copy of the covered work, then the patent license + you grant is automatically extended to all recipients of the covered + work and works based on it. + + A patent license is ``discriminatory'' if it does not include within the + scope of its coverage, prohibits the exercise of, or is conditioned on + the non-exercise of one or more of the rights that are specifically + granted under this License. You may not convey a covered work if you + are a party to an arrangement with a third party that is in the + business of distributing software, under which you make payment to the + third party based on the extent of your activity of conveying the + work, and under which the third party grants, to any of the parties + who would receive the covered work from you, a discriminatory patent + license (a) in connection with copies of the covered work conveyed by + you (or copies made from those copies), or (b) primarily for and in + connection with specific products or compilations that contain the + covered work, unless you entered into that arrangement, or that patent + license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting + any implied license or other defenses to infringement that may + otherwise be available to you under applicable patent law. + + @item No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or + otherwise) that contradict the conditions of this License, they do not + excuse you from the conditions of this License. If you cannot convey + a covered work so as to satisfy simultaneously your obligations under + this License and any other pertinent obligations, then as a + consequence you may not convey it at all. For example, if you agree + to terms that obligate you to collect a royalty for further conveying + from those to whom you convey the Program, the only way you could + satisfy both those terms and this License would be to refrain entirely + from conveying the Program. + + @item Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have + permission to link or combine any covered work with a work licensed + under version 3 of the GNU Affero General Public License into a single + combined work, and to convey the resulting work. The terms of this + License will continue to apply to the part which is the covered work, + but the special requirements of the GNU Affero General Public License, + section 13, concerning interaction through a network will apply to the + combination as such. + + @item Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions + of the GNU General Public License from time to time. Such new + versions will be similar in spirit to the present version, but may + differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the Program + specifies that a certain numbered version of the GNU General Public + License ``or any later version'' applies to it, you have the option of + following the terms and conditions either of that numbered version or + of any later version published by the Free Software Foundation. If + the Program does not specify a version number of the GNU General + Public License, you may choose any version ever published by the Free + Software Foundation. + + If the Program specifies that a proxy can decide which future versions + of the GNU General Public License can be used, that proxy's public + statement of acceptance of a version permanently authorizes you to + choose that version for the Program. + + Later license versions may give you additional or different + permissions. However, no additional obligations are imposed on any + author or copyright holder as a result of your choosing to follow a + later version. + + @item Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY + APPLICABLE LAW@. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT + HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM ``AS IS'' WITHOUT + WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE@. THE ENTIRE RISK AS TO THE QUALITY AND + PERFORMANCE OF THE PROGRAM IS WITH YOU@. SHOULD THE PROGRAM PROVE + DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR + CORRECTION. + + @item Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING + WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR + CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, + INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES + ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT + NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR + LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM + TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER + PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + + @item Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided + above cannot be given local legal effect according to their terms, + reviewing courts shall apply local law that most closely approximates + an absolute waiver of all civil liability in connection with the + Program, unless a warranty or assumption of liability accompanies a + copy of the Program in return for a fee. + + @end enumerate + + @heading END OF TERMS AND CONDITIONS + + @heading How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest + possible use to the public, the best way to achieve this is to make it + free software which everyone can redistribute and change under these + terms. + + To do so, attach the following notices to the program. It is safest + to attach them to the start of each source file to most effectively + state the exclusion of warranty; and each file should have at least + the ``copyright'' line and a pointer to where the full notice is found. + + @smallexample + @var{one line to give the program's name and a brief idea of what it does.} + Copyright (C) @var{year} @var{name of author} + + 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 of the License, 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 @url{http://www.gnu.org/licenses/}. + @end smallexample + + Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short + notice like this when it starts in an interactive mode: + + @smallexample + @var{program} Copyright (C) @var{year} @var{name of author} + This program comes with ABSOLUTELY NO WARRANTY; for details type @samp{show w}. + This is free software, and you are welcome to redistribute it + under certain conditions; type @samp{show c} for details. + @end smallexample + + The hypothetical commands @samp{show w} and @samp{show c} should show + the appropriate parts of the General Public License. Of course, your + program's commands might be different; for a GUI interface, you would + use an ``about box''. + + You should also get your employer (if you work as a programmer) or school, + if any, to sign a ``copyright disclaimer'' for the program, if necessary. + For more information on this, and how to apply and follow the GNU GPL, see + @url{http://www.gnu.org/licenses/}. + + The GNU General Public License does not permit incorporating your + program into proprietary programs. If your program is a subroutine + library, you may consider it more useful to permit linking proprietary + applications with the library. If this is what you want to do, use + the GNU Lesser General Public License instead of this License. But + first, please read @url{http://www.gnu.org/philosophy/why-not-lgpl.html}. diff --combined .ext/cfd/licence/gpl.texi index 0000000,5d0c579..5d0c579 mode 000000,100644..100644 --- a/.ext/cfd/licence/gpl.texi +++ b/.ext/cfd/licence/gpl.texi @@@ -1,0 -1,391 +1,391 @@@ + @c This GPL is meant to be included from other files. + @c To format a standalone GPL, use license.texi. + + @center Version 2, June 1991 + + @display + Copyright @copyright{} 1989, 1991 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 + + @unnumberedsec Preamble + + The licenses for most software are designed to take away your + freedom to share and change it. By contrast, the GNU General Public + License is intended to guarantee your freedom to share and change free + software---to make sure the software is free for all its users. This + General Public License applies to most of the Free Software + Foundation's software and to any other program whose authors commit to + using it. (Some other Free Software Foundation software is covered by + the GNU Library General Public License instead.) You can apply it to + your programs, too. + + When we speak of free software, we are referring to freedom, not + price. Our General Public Licenses are designed to make sure that you + have the freedom to distribute copies of free software (and charge for + this service if you wish), that you receive source code or can get it + if you want it, that you can change the software or use pieces of it + in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid + anyone to deny you these rights or to ask you to surrender the rights. + These restrictions translate to certain responsibilities for you if you + distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether + gratis or for a fee, you must give the recipients all the rights that + you have. You must make sure that they, too, receive or can get the + source code. And you must show them these terms so they know their + rights. + + We protect your rights with two steps: (1) copyright the software, and + (2) offer you this license which gives you legal permission to copy, + distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain + that everyone understands that there is no warranty for this free + software. If the software is modified by someone else and passed on, we + want its recipients to know that what they have is not the original, so + that any problems introduced by others will not reflect on the original + authors' reputations. + + Finally, any free program is threatened constantly by software + patents. We wish to avoid the danger that redistributors of a free + program will individually obtain patent licenses, in effect making the + program proprietary. To prevent this, we have made it clear that any + patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and + modification follow. + + @iftex + @unnumberedsec TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + @end iftex + @ifinfo + @center TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + @end ifinfo + + @enumerate 0 + @item + This License applies to any program or other work which contains + a notice placed by the copyright holder saying it may be distributed + under the terms of this General Public License. The ``Program'', below, + refers to any such program or work, and a ``work based on the Program'' + means either the Program or any derivative work under copyright law: + that is to say, a work containing the Program or a portion of it, + either verbatim or with modifications and/or translated into another + language. (Hereinafter, translation is included without limitation in + the term ``modification''.) Each licensee is addressed as ``you''. + + Activities other than copying, distribution and modification are not + covered by this License; they are outside its scope. The act of + running the Program is not restricted, and the output from the Program + is covered only if its contents constitute a work based on the + Program (independent of having been made by running the Program). + Whether that is true depends on what the Program does. + + @item + You may copy and distribute verbatim copies of the Program's + source code as you receive it, in any medium, provided that you + conspicuously and appropriately publish on each copy an appropriate + copyright notice and disclaimer of warranty; keep intact all the + notices that refer to this License and to the absence of any warranty; + and give any other recipients of the Program a copy of this License + along with the Program. + + You may charge a fee for the physical act of transferring a copy, and + you may at your option offer warranty protection in exchange for a fee. + + @item + You may modify your copy or copies of the Program or any portion + of it, thus forming a work based on the Program, and copy and + distribute such modifications or work under the terms of Section 1 + above, provided that you also meet all of these conditions: + + @enumerate a + @item + You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + @item + You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + @item + If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + @end enumerate + + These requirements apply to the modified work as a whole. If + identifiable sections of that work are not derived from the Program, + and can be reasonably considered independent and separate works in + themselves, then this License, and its terms, do not apply to those + sections when you distribute them as separate works. But when you + distribute the same sections as part of a whole which is a work based + on the Program, the distribution of the whole must be on the terms of + this License, whose permissions for other licensees extend to the + entire whole, and thus to each and every part regardless of who wrote it. + + Thus, it is not the intent of this section to claim rights or contest + your rights to work written entirely by you; rather, the intent is to + exercise the right to control the distribution of derivative or + collective works based on the Program. + + In addition, mere aggregation of another work not based on the Program + with the Program (or with a work based on the Program) on a volume of + a storage or distribution medium does not bring the other work under + the scope of this License. + + @item + You may copy and distribute the Program (or a work based on it, + under Section 2) in object code or executable form under the terms of + Sections 1 and 2 above provided that you also do one of the following: + + @enumerate a + @item + Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + @item + Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + @item + Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + @end enumerate + + The source code for a work means the preferred form of the work for + making modifications to it. For an executable work, complete source + code means all the source code for all modules it contains, plus any + associated interface definition files, plus the scripts used to + control compilation and installation of the executable. However, as a + special exception, the source code distributed need not include + anything that is normally distributed (in either source or binary + form) with the major components (compiler, kernel, and so on) of the + operating system on which the executable runs, unless that component + itself accompanies the executable. + + If distribution of executable or object code is made by offering + access to copy from a designated place, then offering equivalent + access to copy the source code from the same place counts as + distribution of the source code, even though third parties are not + compelled to copy the source along with the object code. + + @item + You may not copy, modify, sublicense, or distribute the Program + except as expressly provided under this License. Any attempt + otherwise to copy, modify, sublicense or distribute the Program is + void, and will automatically terminate your rights under this License. + However, parties who have received copies, or rights, from you under + this License will not have their licenses terminated so long as such + parties remain in full compliance. + + @item + You are not required to accept this License, since you have not + signed it. However, nothing else grants you permission to modify or + distribute the Program or its derivative works. These actions are + prohibited by law if you do not accept this License. Therefore, by + modifying or distributing the Program (or any work based on the + Program), you indicate your acceptance of this License to do so, and + all its terms and conditions for copying, distributing or modifying + the Program or works based on it. + + @item + Each time you redistribute the Program (or any work based on the + Program), the recipient automatically receives a license from the + original licensor to copy, distribute or modify the Program subject to + these terms and conditions. You may not impose any further + restrictions on the recipients' exercise of the rights granted herein. + You are not responsible for enforcing compliance by third parties to + this License. + + @item + If, as a consequence of a court judgment or allegation of patent + infringement or for any other reason (not limited to patent issues), + conditions are imposed on you (whether by court order, agreement or + otherwise) that contradict the conditions of this License, they do not + excuse you from the conditions of this License. If you cannot + distribute so as to satisfy simultaneously your obligations under this + License and any other pertinent obligations, then as a consequence you + may not distribute the Program at all. For example, if a patent + license would not permit royalty-free redistribution of the Program by + all those who receive copies directly or indirectly through you, then + the only way you could satisfy both it and this License would be to + refrain entirely from distribution of the Program. + + If any portion of this section is held invalid or unenforceable under + any particular circumstance, the balance of the section is intended to + apply and the section as a whole is intended to apply in other + circumstances. + + It is not the purpose of this section to induce you to infringe any + patents or other property right claims or to contest validity of any + such claims; this section has the sole purpose of protecting the + integrity of the free software distribution system, which is + implemented by public license practices. Many people have made + generous contributions to the wide range of software distributed + through that system in reliance on consistent application of that + system; it is up to the author/donor to decide if he or she is willing + to distribute software through any other system and a licensee cannot + impose that choice. + + This section is intended to make thoroughly clear what is believed to + be a consequence of the rest of this License. + + @item + If the distribution and/or use of the Program is restricted in + certain countries either by patents or by copyrighted interfaces, the + original copyright holder who places the Program under this License + may add an explicit geographical distribution limitation excluding + those countries, so that distribution is permitted only in or among + countries not thus excluded. In such case, this License incorporates + the limitation as if written in the body of this License. + + @item + The Free Software Foundation may publish revised and/or new versions + of the General Public License from time to time. Such new versions will + be similar in spirit to the present version, but may differ in detail to + address new problems or concerns. + + Each version is given a distinguishing version number. If the Program + specifies a version number of this License which applies to it and ``any + later version'', you have the option of following the terms and conditions + either of that version or of any later version published by the Free + Software Foundation. If the Program does not specify a version number of + this License, you may choose any version ever published by the Free Software + Foundation. + + @item + If you wish to incorporate parts of the Program into other free + programs whose distribution conditions are different, write to the author + to ask for permission. For software which is copyrighted by the Free + Software Foundation, write to the Free Software Foundation; we sometimes + make exceptions for this. Our decision will be guided by the two goals + of preserving the free status of all derivatives of our free software and + of promoting the sharing and reuse of software generally. + + @center @b{NO WARRANTY} + + @item + BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY + FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN + OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES + PROVIDE THE PROGRAM ``AS IS'' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED + OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS + TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE + PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, + REPAIR OR CORRECTION. + + @item + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING + WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR + REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, + INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING + OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED + TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY + YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER + PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE + POSSIBILITY OF SUCH DAMAGES. + @end enumerate + + @iftex + @heading END OF TERMS AND CONDITIONS + @end iftex + @ifinfo + @center END OF TERMS AND CONDITIONS + @end ifinfo + + @page + @unnumberedsec How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest + possible use to the public, the best way to achieve this is to make it + free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest + to attach them to the start of each source file to most effectively + convey the exclusion of warranty; and each file should have at least + the ``copyright'' line and a pointer to where the full notice is found. + + @smallexample + @var{one line to give the program's name and an idea of what it does.} + Copyright (C) 19@var{yy} @var{name of author} + + 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 2 + of the License, 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, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + @end smallexample + + Also add information on how to contact you by electronic and paper mail. + + If the program is interactive, make it output a short notice like this + when it starts in an interactive mode: + + @smallexample + Gnomovision version 69, Copyright (C) 19@var{yy} @var{name of author} + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details + type `show w'. This is free software, and you are welcome + to redistribute it under certain conditions; type `show c' + for details. + @end smallexample + + The hypothetical commands @samp{show w} and @samp{show c} should show + the appropriate parts of the General Public License. Of course, the + commands you use may be called something other than @samp{show w} and + @samp{show c}; they could even be mouse-clicks or menu items---whatever + suits your program. + + You should also get your employer (if you work as a programmer) or your + school, if any, to sign a ``copyright disclaimer'' for the program, if + necessary. Here is a sample; alter the names: + + @example + @group + Yoyodyne, Inc., hereby disclaims all copyright + interest in the program `Gnomovision' + (which makes passes at compilers) written + by James Hacker. + + @var{signature of Ty Coon}, 1 April 1989 + Ty Coon, President of Vice + @end group + @end example + + This General Public License does not permit incorporating your program into + proprietary programs. If your program is a subroutine library, you may + consider it more useful to permit linking proprietary applications with the + library. If this is what you want to do, use the GNU Library General + Public License instead of this License. diff --combined .ext/cfd/licence/latex-licence-test.tex index 0000000,e7b4c96..e7b4c96 mode 000000,100644..100644 --- a/.ext/cfd/licence/latex-licence-test.tex +++ b/.ext/cfd/licence/latex-licence-test.tex @@@ -1,0 -1,11 +1,11 @@@ + \documentclass[a4paper, article]{strayman} + \usepackage[palatino, helvetica, courier, maths=cmr]{mdwfonts} + + \begin{document} + \include{gpl-2.0} + \include{gpl-3.0} + \include{agpl-3.0} + \include{lgpl-2.0} + \include{lgpl-2.1} + \include{lgpl-3.0} + \end{document} diff --combined .ext/cfd/licence/lgpl-2.0.tex index 0000000,e7f5c74..e7f5c74 mode 000000,100644..100644 --- a/.ext/cfd/licence/lgpl-2.0.tex +++ b/.ext/cfd/licence/lgpl-2.0.tex @@@ -1,0 -1,619 +1,619 @@@ + % \iffalse + % + % The GNU Library General Public License as a LaTeX section + % + % (c) 1989, 1991 Free Software Foundation, Inc. + % LaTeX markup and minor formatting changes by Mark Wooding + % + + % --- Chapter heading --- + % + % We don't know whether this ought to be a section or a chapter. Easy. + % We'll see if chapters are possible. + % + % \fi + + \begingroup + \makeatletter + + \edef\next#1#2#3{\relax + \ifx\chapter\@@undefined + \ifx\documentclass\@notprerr#2\else#3\fi + \else#1\fi + } + + \expandafter\endgroup\next + { + \let\gpltoplevel\chapter + \let\gplsec\section + \let\gplend\endinput + }{ + \let\gpltoplevel\section + \let\gplsec\subsection + \let\gplend\endinput + }{ + \documentclass[11pt]{article} + \def\gpltoplevel#1{% + \vspace*{1in}% + \hbox to\hsize{\hfil\LARGE\bfseries#1\hfil}% + \vspace{1in}% + } + \let\gplsec\section + \def\gplend{\end{document}} + \advance\textwidth1in + \advance\oddsidemargin-.5in + \sloppy + \begin{document} + } + + %^^A------------------------------------------------------------------------- + \gpltoplevel{The GNU Library General Public License} + + The following is the text of the GNU Library General Public License, under + the terms of which this software is distributed. + + \vspace{12pt} + + \begin{center} + \textbf{GNU LIBRARY GENERAL PUBLIC LICENSE} \\ + Version 2, June 1991 + \end{center} + + \begin{center} + {\parindent 0in + + Copyright \copyright\ 1991 Free Software Foundation, Inc. + + \bigskip + + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + + \bigskip + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + } + \end{center} + + \begin{center} + {\bf\large Preamble} + \end{center} + + + The licenses for most software are designed to take away your freedom to + share and change it. By contrast, the GNU General Public Licenses are + intended to guarantee your freedom to share and change free software--to + make sure the software is free for all its users. + + This license, the Library General Public License, applies to some specially + designated Free Software Foundation software, and to any other libraries + whose authors decide to use it. You can use it for your libraries, too. + + When we speak of free software, we are referring to freedom, not price. Our + General Public Licenses are designed to make sure that you have the freedom + to distribute copies of free software (and charge for this service if you + wish), that you receive source code or can get it if you want it, that you + can change the software or use pieces of it in new free programs; and that + you know you can do these things. + + To protect your rights, we need to make restrictions that forbid anyone to + deny you these rights or to ask you to surrender the rights. These + restrictions translate to certain responsibilities for you if you distribute + copies of the library, or if you modify it. + + For example, if you distribute copies of the library, whether gratis or for a + fee, you must give the recipients all the rights that we gave you. You must + make sure that they, too, receive or can get the source code. If you link a + program with the library, you must provide complete object files to the + recipients so that they can relink them with the library, after making + changes to the library and recompiling it. And you must show them these + terms so they know their rights. + + Our method of protecting your rights has two steps: (1) copyright the + library, and (2) offer you this license which gives you legal permission to + copy, distribute and/or modify the library. + + Also, for each distributor's protection, we want to make certain that + everyone understands that there is no warranty for this free library. If the + library is modified by someone else and passed on, we want its recipients to + know that what they have is not the original version, so that any problems + introduced by others will not reflect on the original authors' reputations. + + Finally, any free program is threatened constantly by software patents. We + wish to avoid the danger that companies distributing free software will + individually obtain patent licenses, thus in effect transforming the program + into proprietary software. To prevent this, we have made it clear that any + patent must be licensed for everyone's free use or not licensed at all. + + Most GNU software, including some libraries, is covered by the ordinary GNU + General Public License, which was designed for utility programs. This + license, the GNU Library General Public License, applies to certain + designated libraries. This license is quite different from the ordinary one; + be sure to read it in full, and don't assume that anything in it is the same + as in the ordinary license. + + The reason we have a separate public license for some libraries is that they + blur the distinction we usually make between modifying or adding to a program + and simply using it. Linking a program with a library, without changing the + library, is in some sense simply using the library, and is analogous to + running a utility program or application program. However, in a textual and + legal sense, the linked executable is a combined work, a derivative of the + original library, and the ordinary General Public License treats it as such. + + Because of this blurred distinction, using the ordinary General Public + License for libraries did not effectively promote software sharing, because + most developers did not use the libraries. We concluded that weaker + conditions might promote sharing better. + + However, unrestricted linking of non-free programs would deprive the users of + those programs of all benefit from the free status of the libraries + themselves. This Library General Public License is intended to permit + developers of non-free programs to use free libraries, while preserving your + freedom as a user of such programs to change the free libraries that are + incorporated in them. (We have not seen how to achieve this as regards + changes in header files, but we have achieved it as regards changes in the + actual functions of the Library.) The hope is that this will lead to faster + development of free libraries. + + The precise terms and conditions for copying, distribution and modification + follow. Pay close attention to the difference between a ``work based on the + library'' and a ``work that uses the library''. The former contains code + derived from the library, while the latter only works together with the + library. + + Note that it is possible for a library to be covered by the ordinary General + Public License rather than by this special one. + + \begin{center} + {\Large \sc Terms and Conditions For Copying, Distribution and + Modification} + \end{center} + + + \begin{enumerate} + + \addtocounter{enumi}{-1} + + \item + + This License Agreement applies to any software library which contains a + notice placed by the copyright holder or other authorized party saying it + may be distributed under the terms of this Library General Public License + (also called ``this License''). Each licensee is addressed as ``you''. + + A ``library'' means a collection of software functions and/or data + prepared so as to be conveniently linked with application programs + (which use some of those functions and data) to form executables. + + The ``Library'', below, refers to any such software library or work + which has been distributed under these terms. A ``work based on the + Library'' means either the Library or any derivative work under + copyright law: that is to say, a work containing the Library or a + portion of it, either verbatim or with modifications and/or translated + straightforwardly into another language. (Hereinafter, translation is + included without limitation in the term ``modification''.) + + ``Source code'' for a work means the preferred form of the work for + making modifications to it. For a library, complete source code means + all the source code for all modules it contains, plus any associated + interface definition files, plus the scripts used to control + compilation and installation of the library. + + Activities other than copying, distribution and modification are not + covered by this License; they are outside its scope. The act of + running a program using the Library is not restricted, and output from + such a program is covered only if its contents constitute a work based + on the Library (independent of the use of the Library in a tool for + writing it). Whether that is true depends on what the Library does and + what the program that uses the Library does. + + \item You may copy and distribute verbatim copies of the Library's complete + source code as you receive it, in any medium, provided that you + conspicuously and appropriately publish on each copy an appropriate + copyright notice and disclaimer of warranty; keep intact all the notices + that refer to this License and to the absence of any warranty; and + distribute a copy of this License along with the Library. + + You may charge a fee for the physical act of transferring a copy, and you + may at your option offer warranty protection in exchange for a fee. + + \item + + You may modify your copy or copies of the Library or any portion of it, + thus forming a work based on the Library, and copy and distribute such + modifications or work under the terms of Section 1 above, provided that you + also meet all of these conditions: + + \begin{enumerate} + + \item + + The modified work must itself be a software library. + + \item + + You must cause the files modified to carry prominent notices stating that + you changed the files and the date of any change. + + \item + + You must cause the whole of the work to be licensed at no charge to all + third parties under the terms of this License. + + \item + + If a facility in the modified Library refers to a function or a table of + data to be supplied by an application program that uses the facility, other + than as an argument passed when the facility is invoked, then you must make + a good faith effort to ensure that, in the event an application does not + supply such function or table, the facility still operates, and performs + whatever part of its purpose remains meaningful. + + (For example, a function in a library to compute square roots has a purpose + that is entirely well-defined independent of the application. Therefore, + Subsection 2d requires that any application-supplied function or table used + by this function must be optional: if the application does not supply it, the + square root function must still compute square roots.) + + \end{enumerate} + + + These requirements apply to the modified work as a whole. If + identifiable sections of that work are not derived from the Library, + and can be reasonably considered independent and separate works in + themselves, then this License, and its terms, do not apply to those + sections when you distribute them as separate works. But when you + distribute the same sections as part of a whole which is a work based + on the Library, the distribution of the whole must be on the terms of + this License, whose permissions for other licensees extend to the + entire whole, and thus to each and every part regardless of who wrote it. + + Thus, it is not the intent of this section to claim rights or contest + your rights to work written entirely by you; rather, the intent is to + exercise the right to control the distribution of derivative or + collective works based on the Library. + + In addition, mere aggregation of another work not based on the Library + with the Library (or with a work based on the Library) on a volume of a + storage or distribution medium does not bring the other work under the + scope of this License. + + \item + You may opt to apply the terms of the ordinary GNU General Public + License instead of this License to a given copy of the Library. To do + this, you must alter all the notices that refer to this License, so + that they refer to the ordinary GNU General Public License, version 2, + instead of to this License. (If a newer version than version 2 of the + ordinary GNU General Public License has appeared, then you can specify + that version instead if you wish.) Do not make any other change in + these notices. + + Once this change is made in a given copy, it is irreversible for that + copy, so the ordinary GNU General Public License applies to all + subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of the + Library into a program that is not a library. + + \item + You may copy and distribute the Library (or a portion or derivative of it, + under Section 2) in object code or executable form under the terms of + Sections 1 and 2 above provided that you accompany it with the complete + corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange. + + If distribution of object code is made by offering + access to copy from a designated place, then offering equivalent + access to copy the source code from the same place satisfies the requirement to + distribute the source code, even though third parties are not + compelled to copy the source along with the object code. + + \item + A program that contains no derivative of any portion of the + Library, but is designed to work with the Library by being compiled or + linked with it, is called a ``work that uses the Library''. Such a + work, in isolation, is not a derivative work of the Library, and + therefore falls outside the scope of this License. + + However, linking a ``work that uses the Library'' with the Library + creates an executable that is a derivative of the Library (because it + contains portions of the Library), rather than a ``work that uses the + library''. The executable is therefore covered by this License. + Section 6 states terms for distribution of such executables. + + When a ``work that uses the Library'' uses material from a header file + that is part of the Library, the object code for the work may be a + derivative work of the Library even though the source code is not. + Whether this is true is especially significant if the work can be + linked without the Library, or if the work is itself a library. The + threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data structure + layouts and accessors, and small macros and small inline functions (ten + lines or less in length), then the use of the object file is + unrestricted, regardless of whether it is legally a derivative work. + (Executables containing this object code plus portions of the Library + will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may + distribute the object code for the work under the terms of Section 6. + Any executables containing that work also fall under Section 6, whether + or not they are linked directly with the Library itself. + + \item + + As an exception to the Sections above, you may also compile or + link a ``work that uses the Library'' with the Library to produce a + work containing portions of the Library, and distribute that work under + terms of your choice, provided that the terms permit modification of + the work for the customer's own use and reverse engineering for + debugging such modifications. + + You must give prominent notice with each copy of the work that the + Library is used in it and that the Library and its use are covered by + this License. You must supply a copy of this License. If the work + during execution displays copyright notices, you must include the + copyright notice for the Library among them, as well as a reference + directing the user to the copy of this License. Also, you must do one + of these things: + + \begin{enumerate} + + \item + + Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable ``work that + uses the Library'', as object code and/or source code, so that + the user can modify the Library and then relink to produce a + modified executable containing the modified Library. (It is + understood that the user who changes the contents of definitions + files in the Library will not necessarily be able to recompile + the application to use the modified definitions.) + + \item + + Accompany the work with a written offer, valid for at least three + years, to give the same user the materials specified in + Subsection 6a, above, for a charge no more than the cost of + performing this distribution. + + \item + + If distribution of the work is made by offering access to + copy from a designated place, offer equivalent access to copy the + above specified materials from the same place. + + \item + + Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + \end{enumerate} + + For an executable, the required form of the ``work that uses the + Library'' must include any data and utility programs needed for + reproducing the executable from it. However, as a special exception, + the source code distributed need not include anything that is normally + distributed (in either source or binary form) with the major + components (compiler, kernel, and so on) of the operating system on + which the executable runs, unless that component itself accompanies + the executable. + + It may happen that this requirement contradicts the license + restrictions of other proprietary libraries that do not normally + accompany the operating system. Such a contradiction means you cannot + use both them and the Library together in an executable that you + distribute. + + \item + + You may place library facilities that are a work based on the + Library side-by-side in a single library together with other library + facilities not covered by this License, and distribute such a combined + library, provided that the separate distribution of the work based on + the Library and of the other library facilities is otherwise + permitted, and provided that you do these two things: + + \begin{enumerate} + + \item + Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + \item + Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + \end{enumerate} + + \item + + You may not copy, modify, sublicense, link with, or distribute the Library + except as expressly provided under this License. Any attempt otherwise + to copy, modify, sublicense, link with, or distribute the Library is + void, and will automatically terminate your rights under this License. + However, parties who have received copies, or rights, from you under + this License will not have their licenses terminated so long as such + parties remain in full compliance. + + \item + You are not required to accept this License, since you have not + signed it. However, nothing else grants you permission to modify or + distribute the Library or its derivative works. These actions are + prohibited by law if you do not accept this License. Therefore, by + modifying or distributing the Library (or any work based on the + Library), you indicate your acceptance of this License to do so, and + all its terms and conditions for copying, distributing or modifying the + Library or works based on it. + + \item + + Each time you redistribute the Library (or any work based on the + Library), the recipient automatically receives a license from the + original licensor to copy, distribute, link with or modify the Library + subject to these terms and conditions. You may not impose any further + restrictions on the recipients' exercise of the rights granted herein. + You are not responsible for enforcing compliance by third parties to + this License. + + \item + If, as a consequence of a court judgment or allegation of patent + infringement or for any other reason (not limited to patent issues), + conditions are imposed on you (whether by court order, agreement or + otherwise) that contradict the conditions of this License, they do not + excuse you from the conditions of this License. If you cannot + distribute so as to satisfy simultaneously your obligations under this + License and any other pertinent obligations, then as a consequence you + may not distribute the Library at all. For example, if a patent + license would not permit royalty-free redistribution of the Library by + all those who receive copies directly or indirectly through you, then + the only way you could satisfy both it and this License would be to + refrain entirely from distribution of the Library. + + If any portion of this section is held invalid or unenforceable under + any particular circumstance, the balance of the section is intended to + apply, and the section as a whole is intended to apply in other + circumstances. + + It is not the purpose of this section to induce you to infringe any + patents or other property right claims or to contest validity of any + such claims; this section has the sole purpose of protecting the + integrity of the free software distribution system which is + implemented by public license practices. Many people have made + generous contributions to the wide range of software distributed + through that system in reliance on consistent application of that + system; it is up to the author/donor to decide if he or she is willing + to distribute software through any other system and a licensee cannot impose + that choice. + + This section is intended to make thoroughly clear what is believed to + be a consequence of the rest of this License. + + \item + If the distribution and/or use of the Library is restricted in + certain countries either by patents or by copyrighted interfaces, the + original copyright holder who places the Library under this License + may add an explicit geographical distribution limitation excluding + those countries, so that distribution is permitted only in or among + countries not thus excluded. In such case, this License incorporates + the limitation as if written in the body of this License. + + \item + The Free Software Foundation may publish revised and/or new versions + of the Library General Public License from time to time. Such new versions + will be similar in spirit to the present version, but may differ in detail to + address new problems or concerns. + + Each version is given a distinguishing version number. If the Library + specifies a version number of this License which applies to it and ``any + later version'', you have the option of following the terms and conditions + either of that version or of any later version published by the Free + Software Foundation. If the Library does not specify a license version + number, you may choose any version ever published by the Free Software + Foundation. + + \item + If you wish to incorporate parts of the Library into other free + programs whose distribution conditions are incompatible with these, + write to the author to ask for permission. For software which is + copyrighted by the Free Software Foundation, write to the Free Software + Foundation; we sometimes make exceptions for this. Our decision will + be guided by the two goals of preserving the free status of all + derivatives of our free software and of promoting the sharing and reuse + of software generally. + + \begin{center} + {\Large\sc + No Warranty + } + \end{center} + + \item + {\sc Because the Library is licensed free of charge, there is no warranty + for the Library, to the extent permitted by applicable law. Except when + otherwise stated in writing the copyright holders and/or other parties + provide the Library ``as is'' without warranty of any kind, either expressed + or implied, including, but not limited to, the implied warranties of + merchantability and fitness for a particular purpose. The entire risk as + to the quality and performance of the Library is with you. Should the + Library prove defective, you assume the cost of all necessary servicing, + repair or correction.} + + \item + {\sc In no event unless required by applicable law or agreed to in writing + will any copyright holder, or any other party who may modify and/or + redistribute the Library as permitted above, be liable to you for damages, + including any general, special, incidental or consequential damages arising + out of the use or inability to use the Library (including but not limited + to loss of data or data being rendered inaccurate or losses sustained by + you or third parties or a failure of the Library to operate with any other + software), even if such holder or other party has been advised of the + possibility of such damages.} + + \end{enumerate} + + + \begin{center} + {\Large\sc End of Terms and Conditions} + \end{center} + + + \pagebreak[2] + + \section*{Appendix: How to Apply These Terms to Your New Libraries} + + If you develop a new library, and you want it to be of the greatest possible + use to the public, we recommend making it free software that everyone can + redistribute and change. You can do so by permitting redistribution under + these terms (or, alternatively, under the terms of the ordinary General + Public License). + + To apply these terms, attach the following notices to the library. It is + safest to attach them to the start of each source file to most effectively + convey the exclusion of warranty; and each file should have at least the + ``copyright'' line and a pointer to where the full notice is found. + + \begin{verbatim} + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + \end{verbatim} + + Also add information on how to contact you by electronic and paper mail. + + You should also get your employer (if you work as a programmer) or your + school, if any, to sign a ``copyright disclaimer'' for the library, if + necessary. Here is a sample; alter the names: + + \begin{verbatim} + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James + Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + \end{verbatim} + + That's all there is to it! + + \gplend diff --combined .ext/cfd/licence/lgpl-2.0.texi index 0000000,f0c462a..f0c462a mode 000000,100644..100644 --- a/.ext/cfd/licence/lgpl-2.0.texi +++ b/.ext/cfd/licence/lgpl-2.0.texi @@@ -1,0 -1,527 +1,527 @@@ + @c The GNU Lesser General Public License. + @center Version 2, June 1991 + + @c This file is intended to be included within another document, + @c hence no sectioning command or @node. + + @display + Copyright @copyright{} 1991 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + [This is the first released version of the library GPL. It is + numbered 2 because it goes with version 2 of the ordinary GPL.] + @end display + + @subheading Preamble + + The licenses for most software are designed to take away your + freedom to share and change it. By contrast, the GNU General Public + Licenses are intended to guarantee your freedom to share and change + free software---to make sure the software is free for all its users. + + This license, the Library General Public License, applies to some + specially designated Free Software Foundation software, and to any + other libraries whose authors decide to use it. You can use it for + your libraries, too. + + When we speak of free software, we are referring to freedom, not + price. Our General Public Licenses are designed to make sure that you + have the freedom to distribute copies of free software (and charge for + this service if you wish), that you receive source code or can get it + if you want it, that you can change the software or use pieces of it + in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid + anyone to deny you these rights or to ask you to surrender the rights. + These restrictions translate to certain responsibilities for you if + you distribute copies of the library, or if you modify it. + + For example, if you distribute copies of the library, whether gratis + or for a fee, you must give the recipients all the rights that we gave + you. You must make sure that they, too, receive or can get the source + code. If you link a program with the library, you must provide + complete object files to the recipients so that they can relink them + with the library, after making changes to the library and recompiling + it. And you must show them these terms so they know their rights. + + Our method of protecting your rights has two steps: (1) copyright + the library, and (2) offer you this license which gives you legal + permission to copy, distribute and/or modify the library. + + Also, for each distributor's protection, we want to make certain + that everyone understands that there is no warranty for this free + library. If the library is modified by someone else and passed on, we + want its recipients to know that what they have is not the original + version, so that any problems introduced by others will not reflect on + the original authors' reputations. + + Finally, any free program is threatened constantly by software + patents. We wish to avoid the danger that companies distributing free + software will individually obtain patent licenses, thus in effect + transforming the program into proprietary software. To prevent this, + we have made it clear that any patent must be licensed for everyone's + free use or not licensed at all. + + Most GNU software, including some libraries, is covered by the ordinary + GNU General Public License, which was designed for utility programs. This + license, the GNU Library General Public License, applies to certain + designated libraries. This license is quite different from the ordinary + one; be sure to read it in full, and don't assume that anything in it is + the same as in the ordinary license. + + The reason we have a separate public license for some libraries is that + they blur the distinction we usually make between modifying or adding to a + program and simply using it. Linking a program with a library, without + changing the library, is in some sense simply using the library, and is + analogous to running a utility program or application program. However, in + a textual and legal sense, the linked executable is a combined work, a + derivative of the original library, and the ordinary General Public License + treats it as such. + + Because of this blurred distinction, using the ordinary General + Public License for libraries did not effectively promote software + sharing, because most developers did not use the libraries. We + concluded that weaker conditions might promote sharing better. + + However, unrestricted linking of non-free programs would deprive the + users of those programs of all benefit from the free status of the + libraries themselves. This Library General Public License is intended to + permit developers of non-free programs to use free libraries, while + preserving your freedom as a user of such programs to change the free + libraries that are incorporated in them. (We have not seen how to achieve + this as regards changes in header files, but we have achieved it as regards + changes in the actual functions of the Library.) The hope is that this + will lead to faster development of free libraries. + + The precise terms and conditions for copying, distribution and + modification follow. Pay close attention to the difference between a + ``work based on the library'' and a ``work that uses the library''. The + former contains code derived from the library, while the latter only + works together with the library. + + Note that it is possible for a library to be covered by the ordinary + General Public License rather than by this special one. + + @subheading TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + @enumerate 0 + @item + This License Agreement applies to any software library which + contains a notice placed by the copyright holder or other authorized + party saying it may be distributed under the terms of this Library + General Public License (also called ``this License''). Each licensee is + addressed as ``you''. + + A ``library'' means a collection of software functions and/or data + prepared so as to be conveniently linked with application programs + (which use some of those functions and data) to form executables. + + The ``Library'', below, refers to any such software library or work + which has been distributed under these terms. A ``work based on the + Library'' means either the Library or any derivative work under + copyright law: that is to say, a work containing the Library or a + portion of it, either verbatim or with modifications and/or translated + straightforwardly into another language. (Hereinafter, translation is + included without limitation in the term ``modification''.) + + ``Source code'' for a work means the preferred form of the work for + making modifications to it. For a library, complete source code means + all the source code for all modules it contains, plus any associated + interface definition files, plus the scripts used to control compilation + and installation of the library. + + Activities other than copying, distribution and modification are not + covered by this License; they are outside its scope. The act of + running a program using the Library is not restricted, and output from + such a program is covered only if its contents constitute a work based + on the Library (independent of the use of the Library in a tool for + writing it). Whether that is true depends on what the Library does + and what the program that uses the Library does. + + @item + You may copy and distribute verbatim copies of the Library's + complete source code as you receive it, in any medium, provided that + you conspicuously and appropriately publish on each copy an + appropriate copyright notice and disclaimer of warranty; keep intact + all the notices that refer to this License and to the absence of any + warranty; and distribute a copy of this License along with the + Library. + + You may charge a fee for the physical act of transferring a copy, + and you may at your option offer warranty protection in exchange for a + fee. + + @item + You may modify your copy or copies of the Library or any portion + of it, thus forming a work based on the Library, and copy and + distribute such modifications or work under the terms of Section 1 + above, provided that you also meet all of these conditions: + + @enumerate a + @item + The modified work must itself be a software library. + + @item + You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + @item + You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + @item + If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + @end enumerate + + These requirements apply to the modified work as a whole. If + identifiable sections of that work are not derived from the Library, + and can be reasonably considered independent and separate works in + themselves, then this License, and its terms, do not apply to those + sections when you distribute them as separate works. But when you + distribute the same sections as part of a whole which is a work based + on the Library, the distribution of the whole must be on the terms of + this License, whose permissions for other licensees extend to the + entire whole, and thus to each and every part regardless of who wrote + it. + + Thus, it is not the intent of this section to claim rights or contest + your rights to work written entirely by you; rather, the intent is to + exercise the right to control the distribution of derivative or + collective works based on the Library. + + In addition, mere aggregation of another work not based on the Library + with the Library (or with a work based on the Library) on a volume of + a storage or distribution medium does not bring the other work under + the scope of this License. + + @item + You may opt to apply the terms of the ordinary GNU General Public + License instead of this License to a given copy of the Library. To do + this, you must alter all the notices that refer to this License, so + that they refer to the ordinary GNU General Public License, version 2, + instead of to this License. (If a newer version than version 2 of the + ordinary GNU General Public License has appeared, then you can specify + that version instead if you wish.) Do not make any other change in + these notices. + + Once this change is made in a given copy, it is irreversible for + that copy, so the ordinary GNU General Public License applies to all + subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of + the Library into a program that is not a library. + + @item + You may copy and distribute the Library (or a portion or + derivative of it, under Section 2) in object code or executable form + under the terms of Sections 1 and 2 above provided that you accompany + it with the complete corresponding machine-readable source code, which + must be distributed under the terms of Sections 1 and 2 above on a + medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy + from a designated place, then offering equivalent access to copy the + source code from the same place satisfies the requirement to + distribute the source code, even though third parties are not + compelled to copy the source along with the object code. + + @item + A program that contains no derivative of any portion of the + Library, but is designed to work with the Library by being compiled or + linked with it, is called a ``work that uses the Library''. Such a + work, in isolation, is not a derivative work of the Library, and + therefore falls outside the scope of this License. + + However, linking a ``work that uses the Library'' with the Library + creates an executable that is a derivative of the Library (because it + contains portions of the Library), rather than a ``work that uses the + library''. The executable is therefore covered by this License. + Section 6 states terms for distribution of such executables. + + When a ``work that uses the Library'' uses material from a header file + that is part of the Library, the object code for the work may be a + derivative work of the Library even though the source code is not. + Whether this is true is especially significant if the work can be + linked without the Library, or if the work is itself a library. The + threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data + structure layouts and accessors, and small macros and small inline + functions (ten lines or less in length), then the use of the object + file is unrestricted, regardless of whether it is legally a derivative + work. (Executables containing this object code plus portions of the + Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may + distribute the object code for the work under the terms of Section 6. + Any executables containing that work also fall under Section 6, + whether or not they are linked directly with the Library itself. + + @item + As an exception to the Sections above, you may also compile or + link a ``work that uses the Library'' with the Library to produce a + work containing portions of the Library, and distribute that work + under terms of your choice, provided that the terms permit + modification of the work for the customer's own use and reverse + engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the + Library is used in it and that the Library and its use are covered by + this License. You must supply a copy of this License. If the work + during execution displays copyright notices, you must include the + copyright notice for the Library among them, as well as a reference + directing the user to the copy of this License. Also, you must do one + of these things: + + @enumerate a + @item + Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable ``work that + uses the Library'', as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + @item + Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + @item + If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + @item + Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + @end enumerate + + For an executable, the required form of the ``work that uses the + Library'' must include any data and utility programs needed for + reproducing the executable from it. However, as a special exception, + the source code distributed need not include anything that is normally + distributed (in either source or binary form) with the major + components (compiler, kernel, and so on) of the operating system on + which the executable runs, unless that component itself accompanies + the executable. + + It may happen that this requirement contradicts the license + restrictions of other proprietary libraries that do not normally + accompany the operating system. Such a contradiction means you cannot + use both them and the Library together in an executable that you + distribute. + + @item + You may place library facilities that are a work based on the + Library side-by-side in a single library together with other library + facilities not covered by this License, and distribute such a combined + library, provided that the separate distribution of the work based on + the Library and of the other library facilities is otherwise + permitted, and provided that you do these two things: + + @enumerate a + @item + Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + @item + Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + @end enumerate + + @item + You may not copy, modify, sublicense, link with, or distribute + the Library except as expressly provided under this License. Any + attempt otherwise to copy, modify, sublicense, link with, or + distribute the Library is void, and will automatically terminate your + rights under this License. However, parties who have received copies, + or rights, from you under this License will not have their licenses + terminated so long as such parties remain in full compliance. + + @item + You are not required to accept this License, since you have not + signed it. However, nothing else grants you permission to modify or + distribute the Library or its derivative works. These actions are + prohibited by law if you do not accept this License. Therefore, by + modifying or distributing the Library (or any work based on the + Library), you indicate your acceptance of this License to do so, and + all its terms and conditions for copying, distributing or modifying + the Library or works based on it. + + @item + Each time you redistribute the Library (or any work based on the + Library), the recipient automatically receives a license from the + original licensor to copy, distribute, link with or modify the Library + subject to these terms and conditions. You may not impose any further + restrictions on the recipients' exercise of the rights granted herein. + You are not responsible for enforcing compliance by third parties to + this License. + + @item + If, as a consequence of a court judgment or allegation of patent + infringement or for any other reason (not limited to patent issues), + conditions are imposed on you (whether by court order, agreement or + otherwise) that contradict the conditions of this License, they do not + excuse you from the conditions of this License. If you cannot + distribute so as to satisfy simultaneously your obligations under this + License and any other pertinent obligations, then as a consequence you + may not distribute the Library at all. For example, if a patent + license would not permit royalty-free redistribution of the Library by + all those who receive copies directly or indirectly through you, then + the only way you could satisfy both it and this License would be to + refrain entirely from distribution of the Library. + + If any portion of this section is held invalid or unenforceable under any + particular circumstance, the balance of the section is intended to apply, + and the section as a whole is intended to apply in other circumstances. + + It is not the purpose of this section to induce you to infringe any + patents or other property right claims or to contest validity of any + such claims; this section has the sole purpose of protecting the + integrity of the free software distribution system which is + implemented by public license practices. Many people have made + generous contributions to the wide range of software distributed + through that system in reliance on consistent application of that + system; it is up to the author/donor to decide if he or she is willing + to distribute software through any other system and a licensee cannot + impose that choice. + + This section is intended to make thoroughly clear what is believed to + be a consequence of the rest of this License. + + @item + If the distribution and/or use of the Library is restricted in + certain countries either by patents or by copyrighted interfaces, the + original copyright holder who places the Library under this License may add + an explicit geographical distribution limitation excluding those countries, + so that distribution is permitted only in or among countries not thus + excluded. In such case, this License incorporates the limitation as if + written in the body of this License. + + @item + The Free Software Foundation may publish revised and/or new + versions of the Library General Public License from time to time. + Such new versions will be similar in spirit to the present version, + but may differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the Library + specifies a version number of this License which applies to it and + ``any later version'', you have the option of following the terms and + conditions either of that version or of any later version published by + the Free Software Foundation. If the Library does not specify a + license version number, you may choose any version ever published by + the Free Software Foundation. + + @item + If you wish to incorporate parts of the Library into other free + programs whose distribution conditions are incompatible with these, + write to the author to ask for permission. For software which is + copyrighted by the Free Software Foundation, write to the Free + Software Foundation; we sometimes make exceptions for this. Our + decision will be guided by the two goals of preserving the free status + of all derivatives of our free software and of promoting the sharing + and reuse of software generally. + + @center @b{NO WARRANTY} + + @item + BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO + WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. + EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR + OTHER PARTIES PROVIDE THE LIBRARY ``AS IS'' WITHOUT WARRANTY OF ANY + KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE + LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME + THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + @item + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN + WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY + AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU + FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR + CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE + LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING + RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A + FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF + SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + DAMAGES. + @end enumerate + + @subheading END OF TERMS AND CONDITIONS + + @page + @subheading How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest + possible use to the public, we recommend making it free software that + everyone can redistribute and change. You can do so by permitting + redistribution under these terms (or, alternatively, under the terms of the + ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is + safest to attach them to the start of each source file to most effectively + convey the exclusion of warranty; and each file should have at least the + ``copyright'' line and a pointer to where the full notice is found. + + @smallexample + @var{one line to give the library's name and an idea of what it does.} + Copyright (C) @var{year} @var{name of author} + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the + Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. + @end smallexample + + Also add information on how to contact you by electronic and paper mail. + + You should also get your employer (if you work as a programmer) or your + school, if any, to sign a ``copyright disclaimer'' for the library, if + necessary. Here is a sample; alter the names: + + @smallexample + Yoyodyne, Inc., hereby disclaims all copyright interest in the library + `Frob' (a library for tweaking knobs) written by James Random Hacker. + + @var{signature of Ty Coon}, 1 April 1990 + Ty Coon, President of Vice + @end smallexample + + That's all there is to it! diff --combined .ext/cfd/licence/lgpl-2.1.tex index 0000000,710fcb9..710fcb9 mode 000000,100644..100644 --- a/.ext/cfd/licence/lgpl-2.1.tex +++ b/.ext/cfd/licence/lgpl-2.1.tex @@@ -1,0 -1,639 +1,639 @@@ + % \iffalse + % + % The GNU Lesser General Public License as a LaTeX section + % + % (c) 1991, 1999 Free Software Foundation, Inc. + % Minor LaTeX formatting changes by Mark Wooding + % + + % --- Chapter heading --- + % + % We don't know whether this ought to be a section or a chapter. Easy. + % We'll see if chapters are possible. + % + % \fi + + \begingroup + \makeatletter + + \edef\next#1#2#3{\relax + \ifx\chapter\@@undefined + \ifx\documentclass\@notprerr#2\else#3\fi + \else#1\fi + } + + \expandafter\endgroup\next + { + \let\gpltoplevel\chapter + \let\gplsec\section + \let\gplend\endinput + }{ + \let\gpltoplevel\section + \let\gplsec\subsection + \let\gplend\endinput + }{ + \documentclass[11pt]{article} + \def\gpltoplevel#1{% + \vspace*{1in}% + \hbox to\hsize{\hfil\LARGE\bfseries#1\hfil}% + \vspace{1in}% + } + \let\gplsec\section + \def\gplend{\end{document}} + \advance\textwidth1in + \advance\oddsidemargin-.5in + \sloppy + \begin{document} + } + + %^^A------------------------------------------------------------------------- + \gpltoplevel{The GNU Lesser General Public License} + + The following is the text of the GNU Library General Public License, under + the terms of which this software is distributed. + + \vspace{12pt} + + \begin{center} + \textbf{GNU LESSER GENERAL PUBLIC LICENSE} \\ + Version 2.1, February 1999 + \end{center} + + \begin{center} + {\parindent 0in + + Copyright \copyright\ 1991, 1999 Free Software Foundation, Inc. + + \bigskip + + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + + \bigskip + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + } + \end{center} + + \begin{center} + {\bf\large Preamble} + \end{center} + + + The licenses for most software are designed to take away your freedom to + share and change it. By contrast, the GNU General Public Licenses are + intended to guarantee your freedom to share and change free software--to + make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some specially + designated software packages---typically libraries---of the Free Software + Foundation and other authors who decide to use it. You can use it too, but + we suggest you first think carefully about whether this license or the + ordinary General Public License is the better strategy to use in any + particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, not + price. Our General Public Licenses are designed to make sure that you have + the freedom to distribute copies of free software (and charge for this + service if you wish); that you receive source code or can get it if you want + it; that you can change the software and use pieces of it in new free + programs; and that you are informed that you can do these things. + + To protect your rights, we need to make restrictions that forbid distributors + to deny you these rights or to ask you to surrender these rights. These + restrictions translate to certain responsibilities for you if you distribute + copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis or for a + fee, you must give the recipients all the rights that we gave you. You must + make sure that they, too, receive or can get the source code. If you link + other code with the library, you must provide complete object files to the + recipients, so that they can relink them with the library after making + changes to the library and recompiling it. And you must show them these + terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the library, + and (2) we offer you this license, which gives you legal permission to copy, + distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that there is no + warranty for the free library. Also, if the library is modified by someone + else and passed on, the recipients should know that what they have is not + the original version, so that the original author's reputation will not be + affected by problems that might be introduced by others. + + Finally, software patents pose a constant threat to the existence of any free + program. We wish to make sure that a company cannot effectively restrict the + users of a free program by obtaining a restrictive license from a patent + holder. Therefore, we insist that any patent license obtained for a version + of the library must be consistent with the full freedom of use specified in + this license. + + Most GNU software, including some libraries, is covered by the ordinary GNU + General Public License. This license, the GNU Lesser General Public License, + applies to certain designated libraries, and is quite different from the + ordinary General Public License. We use this license for certain libraries + in order to permit linking those libraries into non-free programs. + + When a program is linked with a library, whether statically or using a shared + library, the combination of the two is legally speaking a combined work, a + derivative of the original library. The ordinary General Public License + therefore permits such linking only if the entire combination fits its + criteria of freedom. The Lesser General Public License permits more lax + criteria for linking other code with the library. + + We call this license the ``Lesser'' General Public License because it does + Less to protect the user's freedom than the ordinary General Public License. + It also provides other free software developers Less of an advantage over + competing non-free programs. These disadvantages are the reason we use the + ordinary General Public License for many libraries. However, the Lesser + license provides advantages in certain special circumstances. + + For example, on rare occasions, there may be a special need to encourage the + widest possible use of a certain library, so that it becomes a de-facto + standard. To achieve this, non-free programs must be allowed to use the + library. A more frequent case is that a free library does the same job as + widely used non-free libraries. In this case, there is little to gain by + limiting the free library to free software only, so we use the Lesser General + Public License. + + In other cases, permission to use a particular library in non-free programs + enables a greater number of people to use a large body of free software. For + example, permission to use the GNU C Library in non-free programs enables + many more people to use the whole GNU operating system, as well as its + variant, the GNU/Linux operating system. + + Although the Lesser General Public License is Less protective of the users' + freedom, it does ensure that the user of a program that is linked with the + Library has the freedom and the wherewithal to run that program using a + modified version of the Library. + + The precise terms and conditions for copying, distribution and modification + follow. Pay close attention to the difference between a ``work based on the + library'' and a ``work that uses the library''. The former contains code + derived from the library, whereas the latter must be combined with the + library in order to run. + + \begin{center} + {\Large \sc Terms and Conditions For Copying, Distribution and + Modification} + \end{center} + + + \begin{enumerate} + + \addtocounter{enumi}{-1} + + \item + + This License Agreement applies to any software library or other program which + contains a notice placed by the copyright holder or other authorized party + saying it may be distributed under the terms of this Lesser General Public + License (also called ``this License''). Each licensee is addressed as + ``you''. + + A ``library'' means a collection of software functions and/or data + prepared so as to be conveniently linked with application programs + (which use some of those functions and data) to form executables. + + The ``Library'', below, refers to any such software library or work + which has been distributed under these terms. A ``work based on the + Library'' means either the Library or any derivative work under + copyright law: that is to say, a work containing the Library or a + portion of it, either verbatim or with modifications and/or translated + straightforwardly into another language. (Hereinafter, translation is + included without limitation in the term ``modification''.) + + ``Source code'' for a work means the preferred form of the work for + making modifications to it. For a library, complete source code means + all the source code for all modules it contains, plus any associated + interface definition files, plus the scripts used to control + compilation and installation of the library. + + Activities other than copying, distribution and modification are not + covered by this License; they are outside its scope. The act of + running a program using the Library is not restricted, and output from + such a program is covered only if its contents constitute a work based + on the Library (independent of the use of the Library in a tool for + writing it). Whether that is true depends on what the Library does and + what the program that uses the Library does. + + \item You may copy and distribute verbatim copies of the Library's complete + source code as you receive it, in any medium, provided that you + conspicuously and appropriately publish on each copy an appropriate + copyright notice and disclaimer of warranty; keep intact all the notices + that refer to this License and to the absence of any warranty; and + distribute a copy of this License along with the Library. + + You may charge a fee for the physical act of transferring a copy, and you + may at your option offer warranty protection in exchange for a fee. + + \item + + You may modify your copy or copies of the Library or any portion of it, + thus forming a work based on the Library, and copy and distribute such + modifications or work under the terms of Section 1 above, provided that you + also meet all of these conditions: + + \begin{enumerate} + + \item + + The modified work must itself be a software library. + + \item + + You must cause the files modified to carry prominent notices stating that + you changed the files and the date of any change. + + \item + + You must cause the whole of the work to be licensed at no charge to all + third parties under the terms of this License. + + \item + + If a facility in the modified Library refers to a function or a table of + data to be supplied by an application program that uses the facility, other + than as an argument passed when the facility is invoked, then you must make + a good faith effort to ensure that, in the event an application does not + supply such function or table, the facility still operates, and performs + whatever part of its purpose remains meaningful. + + (For example, a function in a library to compute square roots has a purpose + that is entirely well-defined independent of the application. Therefore, + Subsection 2d requires that any application-supplied function or table used + by this function must be optional: if the application does not supply it, the + square root function must still compute square roots.) + + \end{enumerate} + + + These requirements apply to the modified work as a whole. If + identifiable sections of that work are not derived from the Library, + and can be reasonably considered independent and separate works in + themselves, then this License, and its terms, do not apply to those + sections when you distribute them as separate works. But when you + distribute the same sections as part of a whole which is a work based + on the Library, the distribution of the whole must be on the terms of + this License, whose permissions for other licensees extend to the + entire whole, and thus to each and every part regardless of who wrote it. + + Thus, it is not the intent of this section to claim rights or contest + your rights to work written entirely by you; rather, the intent is to + exercise the right to control the distribution of derivative or + collective works based on the Library. + + In addition, mere aggregation of another work not based on the Library + with the Library (or with a work based on the Library) on a volume of a + storage or distribution medium does not bring the other work under the + scope of this License. + + \item + You may opt to apply the terms of the ordinary GNU General Public + License instead of this License to a given copy of the Library. To do + this, you must alter all the notices that refer to this License, so + that they refer to the ordinary GNU General Public License, version 2, + instead of to this License. (If a newer version than version 2 of the + ordinary GNU General Public License has appeared, then you can specify + that version instead if you wish.) Do not make any other change in + these notices. + + Once this change is made in a given copy, it is irreversible for that + copy, so the ordinary GNU General Public License applies to all + subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of the + Library into a program that is not a library. + + \item + You may copy and distribute the Library (or a portion or derivative of it, + under Section 2) in object code or executable form under the terms of + Sections 1 and 2 above provided that you accompany it with the complete + corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange. + + If distribution of object code is made by offering + access to copy from a designated place, then offering equivalent + access to copy the source code from the same place satisfies the requirement to + distribute the source code, even though third parties are not + compelled to copy the source along with the object code. + + \item + A program that contains no derivative of any portion of the + Library, but is designed to work with the Library by being compiled or + linked with it, is called a ``work that uses the Library''. Such a + work, in isolation, is not a derivative work of the Library, and + therefore falls outside the scope of this License. + + However, linking a ``work that uses the Library'' with the Library + creates an executable that is a derivative of the Library (because it + contains portions of the Library), rather than a ``work that uses the + library''. The executable is therefore covered by this License. + Section 6 states terms for distribution of such executables. + + When a ``work that uses the Library'' uses material from a header file + that is part of the Library, the object code for the work may be a + derivative work of the Library even though the source code is not. + Whether this is true is especially significant if the work can be + linked without the Library, or if the work is itself a library. The + threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data structure + layouts and accessors, and small macros and small inline functions (ten + lines or less in length), then the use of the object file is + unrestricted, regardless of whether it is legally a derivative work. + (Executables containing this object code plus portions of the Library + will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may + distribute the object code for the work under the terms of Section 6. + Any executables containing that work also fall under Section 6, whether + or not they are linked directly with the Library itself. + + \item + + As an exception to the Sections above, you may also combine or + link a ``work that uses the Library'' with the Library to produce a + work containing portions of the Library, and distribute that work under + terms of your choice, provided that the terms permit modification of + the work for the customer's own use and reverse engineering for + debugging such modifications. + + You must give prominent notice with each copy of the work that the + Library is used in it and that the Library and its use are covered by + this License. You must supply a copy of this License. If the work + during execution displays copyright notices, you must include the + copyright notice for the Library among them, as well as a reference + directing the user to the copy of this License. Also, you must do one + of these things: + + \begin{enumerate} + + \item + + Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable ``work that + uses the Library'', as object code and/or source code, so that + the user can modify the Library and then relink to produce a + modified executable containing the modified Library. (It is + understood that the user who changes the contents of definitions + files in the Library will not necessarily be able to recompile + the application to use the modified definitions.) + + \item + + Use a suitable shared library mechanism for linking with the Library. A + suitable mechanism is one that (1) uses at run time a copy of the library + already present on the user's computer system, rather than copying library + functions into the executable, and (2) will operate properly with a modified + version of the library, if the user installs one, as long as the modified + version is interface-compatible with the version that the work was made with. + + \item + + Accompany the work with a written offer, valid for at least three + years, to give the same user the materials specified in + Subsection 6a, above, for a charge no more than the cost of + performing this distribution. + + \item + + If distribution of the work is made by offering access to + copy from a designated place, offer equivalent access to copy the + above specified materials from the same place. + + \item + + Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + \end{enumerate} + + For an executable, the required form of the ``work that uses the + Library'' must include any data and utility programs needed for + reproducing the executable from it. However, as a special exception, + the materials to be distributed need not include anything that is normally + distributed (in either source or binary form) with the major + components (compiler, kernel, and so on) of the operating system on + which the executable runs, unless that component itself accompanies + the executable. + + It may happen that this requirement contradicts the license + restrictions of other proprietary libraries that do not normally + accompany the operating system. Such a contradiction means you cannot + use both them and the Library together in an executable that you + distribute. + + \item + + You may place library facilities that are a work based on the + Library side-by-side in a single library together with other library + facilities not covered by this License, and distribute such a combined + library, provided that the separate distribution of the work based on + the Library and of the other library facilities is otherwise + permitted, and provided that you do these two things: + + \begin{enumerate} + + \item + Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + \item + Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + \end{enumerate} + + \item + + You may not copy, modify, sublicense, link with, or distribute the Library + except as expressly provided under this License. Any attempt otherwise + to copy, modify, sublicense, link with, or distribute the Library is + void, and will automatically terminate your rights under this License. + However, parties who have received copies, or rights, from you under + this License will not have their licenses terminated so long as such + parties remain in full compliance. + + \item + You are not required to accept this License, since you have not + signed it. However, nothing else grants you permission to modify or + distribute the Library or its derivative works. These actions are + prohibited by law if you do not accept this License. Therefore, by + modifying or distributing the Library (or any work based on the + Library), you indicate your acceptance of this License to do so, and + all its terms and conditions for copying, distributing or modifying the + Library or works based on it. + + \item + + Each time you redistribute the Library (or any work based on the + Library), the recipient automatically receives a license from the + original licensor to copy, distribute, link with or modify the Library + subject to these terms and conditions. You may not impose any further + restrictions on the recipients' exercise of the rights granted herein. + You are not responsible for enforcing compliance by third parties with + this License. + + \item + If, as a consequence of a court judgment or allegation of patent + infringement or for any other reason (not limited to patent issues), + conditions are imposed on you (whether by court order, agreement or + otherwise) that contradict the conditions of this License, they do not + excuse you from the conditions of this License. If you cannot + distribute so as to satisfy simultaneously your obligations under this + License and any other pertinent obligations, then as a consequence you + may not distribute the Library at all. For example, if a patent + license would not permit royalty-free redistribution of the Library by + all those who receive copies directly or indirectly through you, then + the only way you could satisfy both it and this License would be to + refrain entirely from distribution of the Library. + + If any portion of this section is held invalid or unenforceable under + any particular circumstance, the balance of the section is intended to + apply, and the section as a whole is intended to apply in other + circumstances. + + It is not the purpose of this section to induce you to infringe any + patents or other property right claims or to contest validity of any + such claims; this section has the sole purpose of protecting the + integrity of the free software distribution system which is + implemented by public license practices. Many people have made + generous contributions to the wide range of software distributed + through that system in reliance on consistent application of that + system; it is up to the author/donor to decide if he or she is willing + to distribute software through any other system and a licensee cannot impose + that choice. + + This section is intended to make thoroughly clear what is believed to + be a consequence of the rest of this License. + + \item + If the distribution and/or use of the Library is restricted in + certain countries either by patents or by copyrighted interfaces, the + original copyright holder who places the Library under this License + may add an explicit geographical distribution limitation excluding + those countries, so that distribution is permitted only in or among + countries not thus excluded. In such case, this License incorporates + the limitation as if written in the body of this License. + + \item + The Free Software Foundation may publish revised and/or new versions + of the Lesser General Public License from time to time. Such new versions + will be similar in spirit to the present version, but may differ in detail to + address new problems or concerns. + + Each version is given a distinguishing version number. If the Library + specifies a version number of this License which applies to it and ``any + later version'', you have the option of following the terms and conditions + either of that version or of any later version published by the Free + Software Foundation. If the Library does not specify a license version + number, you may choose any version ever published by the Free Software + Foundation. + + \item + If you wish to incorporate parts of the Library into other free + programs whose distribution conditions are incompatible with these, + write to the author to ask for permission. For software which is + copyrighted by the Free Software Foundation, write to the Free Software + Foundation; we sometimes make exceptions for this. Our decision will + be guided by the two goals of preserving the free status of all + derivatives of our free software and of promoting the sharing and reuse + of software generally. + + \begin{center} + {\Large\sc + No Warranty + } + \end{center} + + \item + {\sc Because the Library is licensed free of charge, there is no warranty + for the Library, to the extent permitted by applicable law. Except when + otherwise stated in writing the copyright holders and/or other parties + provide the Library ``as is'' without warranty of any kind, either expressed + or implied, including, but not limited to, the implied warranties of + merchantability and fitness for a particular purpose. The entire risk as + to the quality and performance of the Library is with you. Should the + Library prove defective, you assume the cost of all necessary servicing, + repair or correction.} + + \item + {\sc In no event unless required by applicable law or agreed to in writing + will any copyright holder, or any other party who may modify and/or + redistribute the Library as permitted above, be liable to you for damages, + including any general, special, incidental or consequential damages arising + out of the use or inability to use the Library (including but not limited + to loss of data or data being rendered inaccurate or losses sustained by + you or third parties or a failure of the Library to operate with any other + software), even if such holder or other party has been advised of the + possibility of such damages.} + + \end{enumerate} + + + \begin{center} + {\Large\sc End of Terms and Conditions} + \end{center} + + + \pagebreak[2] + + \section*{Appendix: How to Apply These Terms to Your New Libraries} + + If you develop a new library, and you want it to be of the greatest possible + use to the public, we recommend making it free software that everyone can + redistribute and change. You can do so by permitting redistribution under + these terms (or, alternatively, under the terms of the ordinary General + Public License). + + To apply these terms, attach the following notices to the library. It is + safest to attach them to the start of each source file to most effectively + convey the exclusion of warranty; and each file should have at least the + ``copyright'' line and a pointer to where the full notice is found. + + \begin{verbatim} + + Copyright (C) + + This library 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 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this library; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301, USA. + \end{verbatim} + + Also add information on how to contact you by electronic and paper mail. + + You should also get your employer (if you work as a programmer) or your + school, if any, to sign a ``copyright disclaimer'' for the library, if + necessary. Here is a sample; alter the names: + + \begin{verbatim} + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James + Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + \end{verbatim} + + That's all there is to it! + + \gplend diff --combined .ext/cfd/licence/lgpl-2.1.texi index 0000000,ab03d6c..ab03d6c mode 000000,100644..100644 --- a/.ext/cfd/licence/lgpl-2.1.texi +++ b/.ext/cfd/licence/lgpl-2.1.texi @@@ -1,0 -1,549 +1,549 @@@ + @c The GNU Lesser General Public License. + @center Version 2.1, February 1999 + + @c This file is intended to be included within another document, + @c hence no sectioning command or @node. + + @display + Copyright @copyright{} 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + [This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence the + version number 2.1.] + @end display + + @subheading Preamble + + The licenses for most software are designed to take away your + freedom to share and change it. By contrast, the GNU General Public + Licenses are intended to guarantee your freedom to share and change + free software---to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some + specially designated software---typically libraries---of the Free + Software Foundation and other authors who decide to use it. You can use + it too, but we suggest you first think carefully about whether this + license or the ordinary General Public License is the better strategy to + use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, + not price. Our General Public Licenses are designed to make sure that + you have the freedom to distribute copies of free software (and charge + for this service if you wish); that you receive source code or can get + it if you want it; that you can change the software and use pieces of it + in new free programs; and that you are informed that you can do these + things. + + To protect your rights, we need to make restrictions that forbid + distributors to deny you these rights or to ask you to surrender these + rights. These restrictions translate to certain responsibilities for + you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis + or for a fee, you must give the recipients all the rights that we gave + you. You must make sure that they, too, receive or can get the source + code. If you link other code with the library, you must provide + complete object files to the recipients, so that they can relink them + with the library after making changes to the library and recompiling + it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the + library, and (2) we offer you this license, which gives you legal + permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that + there is no warranty for the free library. Also, if the library is + modified by someone else and passed on, the recipients should know + that what they have is not the original version, so that the original + author's reputation will not be affected by problems that might be + introduced by others. + + Finally, software patents pose a constant threat to the existence of + any free program. We wish to make sure that a company cannot + effectively restrict the users of a free program by obtaining a + restrictive license from a patent holder. Therefore, we insist that + any patent license obtained for a version of the library must be + consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the + ordinary GNU General Public License. This license, the GNU Lesser + General Public License, applies to certain designated libraries, and + is quite different from the ordinary General Public License. We use + this license for certain libraries in order to permit linking those + libraries into non-free programs. + + When a program is linked with a library, whether statically or using + a shared library, the combination of the two is legally speaking a + combined work, a derivative of the original library. The ordinary + General Public License therefore permits such linking only if the + entire combination fits its criteria of freedom. The Lesser General + Public License permits more lax criteria for linking other code with + the library. + + We call this license the @dfn{Lesser} General Public License because it + does @emph{Less} to protect the user's freedom than the ordinary General + Public License. It also provides other free software developers Less + of an advantage over competing non-free programs. These disadvantages + are the reason we use the ordinary General Public License for many + libraries. However, the Lesser license provides advantages in certain + special circumstances. + + For example, on rare occasions, there may be a special need to + encourage the widest possible use of a certain library, so that it becomes + a de-facto standard. To achieve this, non-free programs must be + allowed to use the library. A more frequent case is that a free + library does the same job as widely used non-free libraries. In this + case, there is little to gain by limiting the free library to free + software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free + programs enables a greater number of people to use a large body of + free software. For example, permission to use the GNU C Library in + non-free programs enables many more people to use the whole GNU + operating system, as well as its variant, the GNU/Linux operating + system. + + Although the Lesser General Public License is Less protective of the + users' freedom, it does ensure that the user of a program that is + linked with the Library has the freedom and the wherewithal to run + that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and + modification follow. Pay close attention to the difference between a + ``work based on the library'' and a ``work that uses the library''. The + former contains code derived from the library, whereas the latter must + be combined with the library in order to run. + + @subheading TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + @enumerate 0 + @item + This License Agreement applies to any software library or other program + which contains a notice placed by the copyright holder or other + authorized party saying it may be distributed under the terms of this + Lesser General Public License (also called ``this License''). Each + licensee is addressed as ``you''. + + A ``library'' means a collection of software functions and/or data + prepared so as to be conveniently linked with application programs + (which use some of those functions and data) to form executables. + + The ``Library'', below, refers to any such software library or work + which has been distributed under these terms. A ``work based on the + Library'' means either the Library or any derivative work under + copyright law: that is to say, a work containing the Library or a + portion of it, either verbatim or with modifications and/or translated + straightforwardly into another language. (Hereinafter, translation is + included without limitation in the term ``modification''.) + + ``Source code'' for a work means the preferred form of the work for + making modifications to it. For a library, complete source code means + all the source code for all modules it contains, plus any associated + interface definition files, plus the scripts used to control compilation + and installation of the library. + + Activities other than copying, distribution and modification are not + covered by this License; they are outside its scope. The act of + running a program using the Library is not restricted, and output from + such a program is covered only if its contents constitute a work based + on the Library (independent of the use of the Library in a tool for + writing it). Whether that is true depends on what the Library does + and what the program that uses the Library does. + + @item + You may copy and distribute verbatim copies of the Library's + complete source code as you receive it, in any medium, provided that + you conspicuously and appropriately publish on each copy an + appropriate copyright notice and disclaimer of warranty; keep intact + all the notices that refer to this License and to the absence of any + warranty; and distribute a copy of this License along with the + Library. + + You may charge a fee for the physical act of transferring a copy, + and you may at your option offer warranty protection in exchange for a + fee. + + @item + You may modify your copy or copies of the Library or any portion + of it, thus forming a work based on the Library, and copy and + distribute such modifications or work under the terms of Section 1 + above, provided that you also meet all of these conditions: + + @enumerate a + @item + The modified work must itself be a software library. + + @item + You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + @item + You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + @item + If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + @end enumerate + + These requirements apply to the modified work as a whole. If + identifiable sections of that work are not derived from the Library, + and can be reasonably considered independent and separate works in + themselves, then this License, and its terms, do not apply to those + sections when you distribute them as separate works. But when you + distribute the same sections as part of a whole which is a work based + on the Library, the distribution of the whole must be on the terms of + this License, whose permissions for other licensees extend to the + entire whole, and thus to each and every part regardless of who wrote + it. + + Thus, it is not the intent of this section to claim rights or contest + your rights to work written entirely by you; rather, the intent is to + exercise the right to control the distribution of derivative or + collective works based on the Library. + + In addition, mere aggregation of another work not based on the Library + with the Library (or with a work based on the Library) on a volume of + a storage or distribution medium does not bring the other work under + the scope of this License. + + @item + You may opt to apply the terms of the ordinary GNU General Public + License instead of this License to a given copy of the Library. To do + this, you must alter all the notices that refer to this License, so + that they refer to the ordinary GNU General Public License, version 2, + instead of to this License. (If a newer version than version 2 of the + ordinary GNU General Public License has appeared, then you can specify + that version instead if you wish.) Do not make any other change in + these notices. + + Once this change is made in a given copy, it is irreversible for + that copy, so the ordinary GNU General Public License applies to all + subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of + the Library into a program that is not a library. + + @item + You may copy and distribute the Library (or a portion or + derivative of it, under Section 2) in object code or executable form + under the terms of Sections 1 and 2 above provided that you accompany + it with the complete corresponding machine-readable source code, which + must be distributed under the terms of Sections 1 and 2 above on a + medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy + from a designated place, then offering equivalent access to copy the + source code from the same place satisfies the requirement to + distribute the source code, even though third parties are not + compelled to copy the source along with the object code. + + @item + A program that contains no derivative of any portion of the + Library, but is designed to work with the Library by being compiled or + linked with it, is called a ``work that uses the Library''. Such a + work, in isolation, is not a derivative work of the Library, and + therefore falls outside the scope of this License. + + However, linking a ``work that uses the Library'' with the Library + creates an executable that is a derivative of the Library (because it + contains portions of the Library), rather than a ``work that uses the + library''. The executable is therefore covered by this License. + Section 6 states terms for distribution of such executables. + + When a ``work that uses the Library'' uses material from a header file + that is part of the Library, the object code for the work may be a + derivative work of the Library even though the source code is not. + Whether this is true is especially significant if the work can be + linked without the Library, or if the work is itself a library. The + threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data + structure layouts and accessors, and small macros and small inline + functions (ten lines or less in length), then the use of the object + file is unrestricted, regardless of whether it is legally a derivative + work. (Executables containing this object code plus portions of the + Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may + distribute the object code for the work under the terms of Section 6. + Any executables containing that work also fall under Section 6, + whether or not they are linked directly with the Library itself. + + @item + As an exception to the Sections above, you may also combine or + link a ``work that uses the Library'' with the Library to produce a + work containing portions of the Library, and distribute that work + under terms of your choice, provided that the terms permit + modification of the work for the customer's own use and reverse + engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the + Library is used in it and that the Library and its use are covered by + this License. You must supply a copy of this License. If the work + during execution displays copyright notices, you must include the + copyright notice for the Library among them, as well as a reference + directing the user to the copy of this License. Also, you must do one + of these things: + + @enumerate a + @item + Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable ``work that + uses the Library'', as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + @item + Use a suitable shared library mechanism for linking with the Library. A + suitable mechanism is one that (1) uses at run time a copy of the + library already present on the user's computer system, rather than + copying library functions into the executable, and (2) will operate + properly with a modified version of the library, if the user installs + one, as long as the modified version is interface-compatible with the + version that the work was made with. + + @item + Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + @item + If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + @item + Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + @end enumerate + + For an executable, the required form of the ``work that uses the + Library'' must include any data and utility programs needed for + reproducing the executable from it. However, as a special exception, + the materials to be distributed need not include anything that is + normally distributed (in either source or binary form) with the major + components (compiler, kernel, and so on) of the operating system on + which the executable runs, unless that component itself accompanies the + executable. + + It may happen that this requirement contradicts the license + restrictions of other proprietary libraries that do not normally + accompany the operating system. Such a contradiction means you cannot + use both them and the Library together in an executable that you + distribute. + + @item + You may place library facilities that are a work based on the + Library side-by-side in a single library together with other library + facilities not covered by this License, and distribute such a combined + library, provided that the separate distribution of the work based on + the Library and of the other library facilities is otherwise + permitted, and provided that you do these two things: + + @enumerate a + @item + Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + @item + Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + @end enumerate + + @item + You may not copy, modify, sublicense, link with, or distribute + the Library except as expressly provided under this License. Any + attempt otherwise to copy, modify, sublicense, link with, or + distribute the Library is void, and will automatically terminate your + rights under this License. However, parties who have received copies, + or rights, from you under this License will not have their licenses + terminated so long as such parties remain in full compliance. + + @item + You are not required to accept this License, since you have not + signed it. However, nothing else grants you permission to modify or + distribute the Library or its derivative works. These actions are + prohibited by law if you do not accept this License. Therefore, by + modifying or distributing the Library (or any work based on the + Library), you indicate your acceptance of this License to do so, and + all its terms and conditions for copying, distributing or modifying + the Library or works based on it. + + @item + Each time you redistribute the Library (or any work based on the + Library), the recipient automatically receives a license from the + original licensor to copy, distribute, link with or modify the Library + subject to these terms and conditions. You may not impose any further + restrictions on the recipients' exercise of the rights granted herein. + You are not responsible for enforcing compliance by third parties with + this License. + + @item + If, as a consequence of a court judgment or allegation of patent + infringement or for any other reason (not limited to patent issues), + conditions are imposed on you (whether by court order, agreement or + otherwise) that contradict the conditions of this License, they do not + excuse you from the conditions of this License. If you cannot + distribute so as to satisfy simultaneously your obligations under this + License and any other pertinent obligations, then as a consequence you + may not distribute the Library at all. For example, if a patent + license would not permit royalty-free redistribution of the Library by + all those who receive copies directly or indirectly through you, then + the only way you could satisfy both it and this License would be to + refrain entirely from distribution of the Library. + + If any portion of this section is held invalid or unenforceable under any + particular circumstance, the balance of the section is intended to apply, + and the section as a whole is intended to apply in other circumstances. + + It is not the purpose of this section to induce you to infringe any + patents or other property right claims or to contest validity of any + such claims; this section has the sole purpose of protecting the + integrity of the free software distribution system which is + implemented by public license practices. Many people have made + generous contributions to the wide range of software distributed + through that system in reliance on consistent application of that + system; it is up to the author/donor to decide if he or she is willing + to distribute software through any other system and a licensee cannot + impose that choice. + + This section is intended to make thoroughly clear what is believed to + be a consequence of the rest of this License. + + @item + If the distribution and/or use of the Library is restricted in + certain countries either by patents or by copyrighted interfaces, the + original copyright holder who places the Library under this License may add + an explicit geographical distribution limitation excluding those countries, + so that distribution is permitted only in or among countries not thus + excluded. In such case, this License incorporates the limitation as if + written in the body of this License. + + @item + The Free Software Foundation may publish revised and/or new + versions of the Lesser General Public License from time to time. + Such new versions will be similar in spirit to the present version, + but may differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the Library + specifies a version number of this License which applies to it and + ``any later version'', you have the option of following the terms and + conditions either of that version or of any later version published by + the Free Software Foundation. If the Library does not specify a + license version number, you may choose any version ever published by + the Free Software Foundation. + + @item + If you wish to incorporate parts of the Library into other free + programs whose distribution conditions are incompatible with these, + write to the author to ask for permission. For software which is + copyrighted by the Free Software Foundation, write to the Free + Software Foundation; we sometimes make exceptions for this. Our + decision will be guided by the two goals of preserving the free status + of all derivatives of our free software and of promoting the sharing + and reuse of software generally. + + @center @b{NO WARRANTY} + + @item + BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO + WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. + EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR + OTHER PARTIES PROVIDE THE LIBRARY ``AS IS'' WITHOUT WARRANTY OF ANY + KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE + LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME + THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + @item + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN + WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY + AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU + FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR + CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE + LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING + RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A + FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF + SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + DAMAGES. + @end enumerate + + @subheading END OF TERMS AND CONDITIONS + + @page + @subheading How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest + possible use to the public, we recommend making it free software that + everyone can redistribute and change. You can do so by permitting + redistribution under these terms (or, alternatively, under the terms of the + ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is + safest to attach them to the start of each source file to most effectively + convey the exclusion of warranty; and each file should have at least the + ``copyright'' line and a pointer to where the full notice is found. + + @smallexample + @var{one line to give the library's name and an idea of what it does.} + Copyright (C) @var{year} @var{name of author} + + This library 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 2.1 of the License, or (at + your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + USA. + @end smallexample + + Also add information on how to contact you by electronic and paper mail. + + You should also get your employer (if you work as a programmer) or your + school, if any, to sign a ``copyright disclaimer'' for the library, if + necessary. Here is a sample; alter the names: + + @smallexample + Yoyodyne, Inc., hereby disclaims all copyright interest in the library + `Frob' (a library for tweaking knobs) written by James Random Hacker. + + @var{signature of Ty Coon}, 1 April 1990 + Ty Coon, President of Vice + @end smallexample + + That's all there is to it! diff --combined .ext/cfd/licence/lgpl-3.0.tex index 0000000,52971cf..52971cf mode 000000,100644..100644 --- a/.ext/cfd/licence/lgpl-3.0.tex +++ b/.ext/cfd/licence/lgpl-3.0.tex @@@ -1,0 -1,259 +1,259 @@@ + % \iffalse + % + % The GNU General Public License as a LaTeX section + % + % (c) 1989, 1991 Free Software Foundation, Inc. + % Minor LaTeX formatting changes by Mark Wooding + % + + % --- Chapter heading --- + % + % We don't know whether this ought to be a section or a chapter. Easy. + % We'll see if chapters are possible. + % + % \fi + + \begingroup + \makeatletter + + \edef\next#1#2#3{\relax + \ifx\chapter\@@undefined + \ifx\documentclass\@notprerr#2\else#3\fi + \else#1\fi + } + + \expandafter\endgroup\next + { + \let\gpltoplevel\chapter + \let\gplsec\section + \let\gplend\endinput + }{ + \let\gpltoplevel\section + \let\gplsec\subsection + \let\gplend\endinput + }{ + \documentclass[11pt]{article} + \def\gpltoplevel#1{% + \vspace*{1in}% + \hbox to\hsize{\hfil\LARGE\bfseries#1\hfil}% + \vspace{1in}% + } + \let\gplsec\section + \def\gplend{\end{document}} + \advance\textwidth1in + \advance\oddsidemargin-.5in + \sloppy + \begin{document} + } + + %^^A------------------------------------------------------------------------- + \gpltoplevel{The GNU Lesser General Public License} + + + The following is the text of the GNU General Public License, under the terms + of which this software is distributed. + + \vspace{12pt} + + \begin{center} + \textbf{GNU LESSER GENERAL PUBLIC LICENSE} \\ + Version 3, 29 June 2007 + \end{center} + + % match lgpl-3.0.txt + \renewcommand{\labelenumii}{\alph{enumii})} + \renewcommand{\labelenumiii}{\arabic{enumiii})} + + \begin{center} + {\parindent 0in + + Copyright \copyright\ 2007 Free Software Foundation, Inc. \texttt{http://fsf.org/} + + \bigskip + Everyone is permitted to copy and distribute verbatim copies of this \\ + license document, but changing it is not allowed.} + + \end{center} + + + This version of the GNU Lesser General Public License incorporates + the terms and conditions of version 3 of the GNU General Public + License, supplemented by the additional permissions listed below. + + \begin{enumerate} + \addtocounter{enumi}{-1} % start at 0 + + \item Additional Definitions. + + As used herein, ``this License'' refers to version 3 of the GNU Lesser + General Public License, and the ``GNU GPL'' refers to version 3 of the GNU + General Public License. + + ``The Library'' refers to a covered work governed by this License, + other than an Application or a Combined Work as defined below. + + An ``Application'' is any work that makes use of an interface provided + by the Library, but which is not otherwise based on the Library. + Defining a subclass of a class defined by the Library is deemed a mode + of using an interface provided by the Library. + + A ``Combined Work'' is a work produced by combining or linking an + Application with the Library. The particular version of the Library + with which the Combined Work was made is also called the ``Linked + Version''. + + The ``Minimal Corresponding Source'' for a Combined Work means the + Corresponding Source for the Combined Work, excluding any source code + for portions of the Combined Work that, considered in isolation, are + based on the Application, and not on the Linked Version. + + The ``Corresponding Application Code'' for a Combined Work means the + object code and/or source code for the Application, including any data + and utility programs needed for reproducing the Combined Work from the + Application, but excluding the System Libraries of the Combined Work. + + \item Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License + without being bound by section 3 of the GNU GPL. + + \item Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a + facility refers to a function or data to be supplied by an Application + that uses the facility (other than as an argument passed when the + facility is invoked), then you may convey a copy of the modified + version: + + \begin{enumerate} + \item under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + \item under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + \end{enumerate} + + \item Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from + a header file that is part of the Library. You may convey such object + code under terms of your choice, provided that, if the incorporated + material is not limited to numerical parameters, data structure + layouts and accessors, or small macros, inline functions and templates + (ten or fewer lines in length), you do both of the following: + + \begin{enumerate} + \item Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + \item Accompany the object code with a copy of the GNU GPL and this license + document. + \end{enumerate} + + \item Combined Works. + + You may convey a Combined Work under terms of your choice that, + taken together, effectively do not restrict modification of the + portions of the Library contained in the Combined Work and reverse + engineering for debugging such modifications, if you also do each of + the following: + + \begin{enumerate} + \item Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + \item Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + \item For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + \item Do one of the following: + + \begin{enumerate} + \addtocounter{enumiii}{-1} % start at 0 + \item Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + \item Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + \end{enumerate} + + \item Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + \end{enumerate} + + \item Combined Libraries. + + You may place library facilities that are a work based on the + Library side by side in a single library together with other library + facilities that are not Applications and are not covered by this + License, and convey such a combined library under terms of your + choice, if you do both of the following: + + \begin{enumerate} + \item Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + \item Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + \end{enumerate} + + \item Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions + of the GNU Lesser General Public License from time to time. Such new + versions will be similar in spirit to the present version, but may + differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the + Library as you received it specifies that a certain numbered version + of the GNU Lesser General Public License ``or any later version'' + applies to it, you have the option of following the terms and + conditions either of that published version or of any later version + published by the Free Software Foundation. If the Library as you + received it does not specify a version number of the GNU Lesser + General Public License, you may choose any version of the GNU Lesser + General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide + whether future versions of the GNU Lesser General Public License shall + apply, that proxy's public statement of acceptance of any version is + permanent authorization for you to choose that version for the + Library. + + \end{enumerate} + + \gplend + + %%% Local Variables: + %%% mode: latex + %%% TeX-master: t + %%% End: + diff --combined .ext/cfd/licence/lgpl-3.0.texi index 0000000,38708fa..38708fa mode 000000,100644..100644 --- a/.ext/cfd/licence/lgpl-3.0.texi +++ b/.ext/cfd/licence/lgpl-3.0.texi @@@ -1,0 -1,190 +1,190 @@@ + @c The GNU Lesser General Public License. + @center Version 3, 29 June 2007 + + @c This file is intended to be included within another document, + @c hence no sectioning command or @node. + + @display + Copyright @copyright{} 2007 Free Software Foundation, Inc. @url{http://fsf.org/} + + Everyone is permitted to copy and distribute verbatim copies of this + license document, but changing it is not allowed. + @end display + + This version of the GNU Lesser General Public License incorporates + the terms and conditions of version 3 of the GNU General Public + License, supplemented by the additional permissions listed below. + + @enumerate 0 + @item Additional Definitions. + + As used herein, ``this License'' refers to version 3 of the GNU Lesser + General Public License, and the ``GNU GPL'' refers to version 3 of the GNU + General Public License. + + ``The Library'' refers to a covered work governed by this License, + other than an Application or a Combined Work as defined below. + + An ``Application'' is any work that makes use of an interface provided + by the Library, but which is not otherwise based on the Library. + Defining a subclass of a class defined by the Library is deemed a mode + of using an interface provided by the Library. + + A ``Combined Work'' is a work produced by combining or linking an + Application with the Library. The particular version of the Library + with which the Combined Work was made is also called the ``Linked + Version''. + + The ``Minimal Corresponding Source'' for a Combined Work means the + Corresponding Source for the Combined Work, excluding any source code + for portions of the Combined Work that, considered in isolation, are + based on the Application, and not on the Linked Version. + + The ``Corresponding Application Code'' for a Combined Work means the + object code and/or source code for the Application, including any data + and utility programs needed for reproducing the Combined Work from the + Application, but excluding the System Libraries of the Combined Work. + + @item Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License + without being bound by section 3 of the GNU GPL. + + @item Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a + facility refers to a function or data to be supplied by an Application + that uses the facility (other than as an argument passed when the + facility is invoked), then you may convey a copy of the modified + version: + + @enumerate a + @item + under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + @item + under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + @end enumerate + + @item Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from + a header file that is part of the Library. You may convey such object + code under terms of your choice, provided that, if the incorporated + material is not limited to numerical parameters, data structure + layouts and accessors, or small macros, inline functions and templates + (ten or fewer lines in length), you do both of the following: + + @enumerate a + @item + Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + @item + Accompany the object code with a copy of the GNU GPL and this license + document. + @end enumerate + + @item Combined Works. + + You may convey a Combined Work under terms of your choice that, + taken together, effectively do not restrict modification of the + portions of the Library contained in the Combined Work and reverse + engineering for debugging such modifications, if you also do each of + the following: + + @enumerate a + @item + Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + @item + Accompany the Combined Work with a copy of the GNU GPL and this license + document. + @item + For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + @item + Do one of the following: + + @enumerate 0 + @item + Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + @item + Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + @end enumerate + + @item + Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + @end enumerate + + @item Combined Libraries. + + You may place library facilities that are a work based on the + Library side by side in a single library together with other library + facilities that are not Applications and are not covered by this + License, and convey such a combined library under terms of your + choice, if you do both of the following: + + @enumerate a + @item + Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + @item + Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + @end enumerate + + @item Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions + of the GNU Lesser General Public License from time to time. Such new + versions will be similar in spirit to the present version, but may + differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the + Library as you received it specifies that a certain numbered version + of the GNU Lesser General Public License ``or any later version'' + applies to it, you have the option of following the terms and + conditions either of that published version or of any later version + published by the Free Software Foundation. If the Library as you + received it does not specify a version number of the GNU Lesser + General Public License, you may choose any version of the GNU Lesser + General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide + whether future versions of the GNU Lesser General Public License shall + apply, that proxy's public statement of acceptance of any version is + permanent authorization for you to choose that version for the + Library. + + @end enumerate diff --combined .ext/cfd/licence/texinfo-licence-test.texi index 0000000,e90f25d..e90f25d mode 000000,100644..100644 --- a/.ext/cfd/licence/texinfo-licence-test.texi +++ b/.ext/cfd/licence/texinfo-licence-test.texi @@@ -1,0 -1,153 +1,153 @@@ + \input texinfo @c -*-texinfo-*- + @c + @c test licences + @c + @c (c) 2016 Mark Wooding + @c + + @c ----- Standard boilerplate ----------------------------------------------- + + @c %**start of header + @setfilename texinfo-licence-test.info + @settitle Licence test + @setchapternewpage odd + @footnotestyle end + @paragraphindent 0 + @iftex + @input texinice + @afourpaper + @end iftex + @c %**end of header + + @c ----- Useful macros ------------------------------------------------------ + + @set version 1.0 + + @c ----- Copyright matters -------------------------------------------------- + + @c --- The `Info' version --- + + @ifinfo + + This file documents nothing much version + @value{version}. + + Copyright (c) 2016 Mark Wooding + + Permission is granted to make and distribute verbatim copies of this + manual provided the copyright notice and this permission notice are + preserved on all copies. + + @ignore + Permission is granted to process this file through TeX and print the + results, provided the printed document carries a copying permission + notice identical to this one except for the removal of this paragraph + (this paragraph not being relevant to the printed manual). + + @end ignore + Permission is granted to copy and distribute modified versions of this + manual under the conditions for verbatim copying, provided also that the + sections entitled `Copying' and `GNU General Public License' are + included exactly as in the original, and provided that the entire + resulting derived work is distributed under the terms of a permission + notice identical to this one. + + Permission is granted to copy and distribute translations of this manual + into another language, under the above conditions for modified versions, + except that this permission notice may be stated in a translation + approved by the copyright holder. + + @end ifinfo + + @c --- Printed title page --- + + @titlepage + + @title Licence test + @subtitle Test inclusion of the various licence files + @author Mark Wooding + @page + + @vskip 0pt plus 1filll + + Copyright @copyright{} 2016 Mark Wooding + + Permission is granted to make and distribute verbatim copies of this + manual provided the copyright notice and this permission notice are + preserved on all copies. + + Permission is granted to copy and distribute modified versions of this + manual under the conditions for verbatim copying, provided also that the + sections entitled `Copying' and `GNU General Public License' are + included exactly as in the original, and provided that the entire + resulting derived work is distributed under the terms of a permission + notice identical to this one. + + Permission is granted to copy and distribute translations of this manual + into another language, under the above conditions for modified versions, + except that this permission notice may be stated in a translation + approved by the copyright holder. + + @end titlepage + + + @c -------------------------------------------------------------------------- + @ifinfo + @node Top, GPL-2, (dir), (dir) + @top Licence test + + @menu + * GPL-2:: + * GPL-3:: + * AGPL-3:: + * LGPL-2:: + * LGPL-2.1:: + * LGPL-3:: + * Introduction:: + @end menu + + @end ifinfo + + @c -------------------------------------------------------------------------- + @node GPL-2, GPL-3, Top, Top + @unnumbered The GNU General Public License, version 2.0 + + @include gpl-2.0.texi + + @c -------------------------------------------------------------------------- + @node GPL-3, AGPL-3, GPL-2, Top + @unnumbered The GNU General Public License, version 3.0 + + @include gpl-3.0.texi + + @c -------------------------------------------------------------------------- + @node AGPL-3, LGPL-2, GPL-3, Top + @unnumbered The GNU Affero General Public License, version 3.0 + + @include agpl-3.0.texi + + @c -------------------------------------------------------------------------- + @node LGPL-2, LGPL-2.1, AGPL-3, Top + @unnumbered The GNU Library General Public License, version 2.0 + + @include lgpl-2.0.texi + + @c -------------------------------------------------------------------------- + @node LGPL-2.1, LGPL-3, LGPL-2, Top + @unnumbered The GNU Lesser General Public License, version 2.1 + + @include lgpl-2.1.texi + + @c -------------------------------------------------------------------------- + @node LGPL-3, Introduction, LGPL-2.1, Top + @unnumbered The GNU Lesser General Public License, version 3.0 + + @include lgpl-3.0.texi + + @c -------------------------------------------------------------------------- + @node Introduction, , LGPL-3, Top + @unnumbered Introduction + + @c -------------------------------------------------------------------------- + @contents + @bye diff --combined .ext/cfd/m4/mdw-auto-version.m4 index 0000000,0000000..046495e new file mode 100644 --- /dev/null +++ b/.ext/cfd/m4/mdw-auto-version.m4 @@@ -1,0 -1,0 +1,63 @@@ ++dnl -*-autoconf-*- ++ ++### SYNOPSIS ++### ++### mdw_AUTO_VERSION ++### ++### DESCRIPTION ++### ++### Defines an m4 macro `AUTO_VERSION' which contains the current package's ++### version number, worked out in some clever way. ++### ++### The heavy lifting is performed by the `auto-version' script (q.v.). In ++### brief: ++### ++### * if this is a Git working tree (i.e., there is a `.git' file or ++### directory at toplevel) then call `git describe' and use its output; ++### ++### * if there is a `RELEASE' file, then use its contents literally; ++### ++### * if there is a `debian/changelog' file, then use the most recent ++### entry's version number; ++### ++### * otherwise use `UNKNOWN'. ++### ++### LICENSE ++### ++### Copyright (c) 2008 Mark Wooding ++### ++### 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 2 of the License, 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 . ++### ++### As a special exception, the respective Autoconf Macro's copyright owner ++### gives unlimited permission to copy, distribute and modify the configure ++### scripts that are the output of Autoconf when processing the Macro. You ++### need not follow the terms of the GNU General Public License when using ++### or distributing such scripts, even though portions of the text of the ++### Macro appear in them. The GNU General Public License (GPL) does govern ++### all other use of the material that constitutes the Autoconf Macro. ++### ++### This special exception to the GPL applies to versions of the Autoconf ++### Macro released by the Autoconf Archive. When you make and distribute a ++### modified version of the Autoconf Macro, you may extend this special ++### exception to the GPL to apply to your modified version as well. ++ ++# serial 1 ++AC_DEFUN([mdw_AUTO_VERSION], [m4_define([AUTO_VERSION], m4_esyscmd([ ++ ver=UNKNOWN ++ for pre in ./ config/; do ++ try=${pre}auto-version ++ if test -x $try; then ver=$("$try"); break; fi ++ done ++ echo -n "$ver" ++]))]) diff --combined .ext/cfd/m4/mdw-decl-environ.m4 index 0000000,0000000..52138e1 new file mode 100644 --- /dev/null +++ b/.ext/cfd/m4/mdw-decl-environ.m4 @@@ -1,0 -1,0 +1,57 @@@ ++dnl -*-autoconf-*- ++ ++### SYNOPSIS ++### ++### mdw_DECL_ENVIRON ++### ++### DESCRIPTION ++### ++### Define a preprocessor symbol `DECL_ENVIRON' if the `environ' vector is ++### declared in one of the `usual' places. ++### ++### LICENSE ++### ++### Copyright (c) 1999 Mark Wooding ++### ++### 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 2 of the License, 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 . ++### ++### As a special exception, the respective Autoconf Macro's copyright owner ++### gives unlimited permission to copy, distribute and modify the configure ++### scripts that are the output of Autoconf when processing the Macro. You ++### need not follow the terms of the GNU General Public License when using ++### or distributing such scripts, even though portions of the text of the ++### Macro appear in them. The GNU General Public License (GPL) does govern ++### all other use of the material that constitutes the Autoconf Macro. ++### ++### This special exception to the GPL applies to versions of the Autoconf ++### Macro released by the Autoconf Archive. When you make and distribute a ++### modified version of the Autoconf Macro, you may extend this special ++### exception to the GPL to apply to your modified version as well. ++ ++# serial 1 ++AC_DEFUN([mdw_DECL_ENVIRON], ++[AC_CACHE_CHECK([for declaration of \`environ'], mdw_cv_environ, ++[AC_EGREP_CPP([\], ++[#include ++#if HAVE_UNISTD_H ++#include ++#endif ++#if STDC_HEADERS ++#include ++#include ++#endif], [mdw_cv_environ=yes], [mdw_cv_environ=no])]) ++if test $mdw_cv_environ = yes; then ++ AC_DEFINE([DECL_ENVIRON], [1], ++ [Define if you have the `environ' vector of environment variables.]) ++fi]) diff --combined .ext/cfd/m4/mdw-define-paths.m4 index 0000000,0000000..ff5dc08 new file mode 100644 --- /dev/null +++ b/.ext/cfd/m4/mdw-define-paths.m4 @@@ -1,0 -1,0 +1,78 @@@ ++dnl -*-autoconf-*- ++ ++### SYNOPSIS ++### ++### mdw_DEFINE_PATHS(BODY) ++### ++### mdw_PROG(PROG) ++### mdw_PATH(PATH) ++### mdw_DEFINE_PROG(SYMBOL, PROG) ++### mdw_DEFINE_PATH(SYMBOL, PATH) ++### ++### DESCRIPTION ++### ++### This collection of macros is useful for hardcoding pathname strings ++### into binary programs. ++### ++### Within the BODY of `mdw_DEFINE_PATHS', a number of variables are `fixed ++### up' so that they can be properly expanded. The other macros are only ++### really useful within this body. ++### ++### `mdw_PROG' expands, in the shell, to the transformed name of the ++### program PROG. ++### ++### `mdw_PATH' expands, in the shell, to the recursive expansion of PATH, ++### which should be a string containing parameter expansions. ++### ++### `mdw_DEFINE_PROG' is a convenience macro which defines the preprocessor ++### SYMBOL to the result of `mdw_PROG(PROG)'; similarly `mdw_DEFINE_PATH' ++### defines SYMBOL to the result of `mdw_PATH(PATH)'. ++### ++### LICENSE ++### ++### Copyright (c) 2002 Mark Wooding ++### ++### 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 2 of the License, 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 . ++### ++### As a special exception, the respective Autoconf Macro's copyright owner ++### gives unlimited permission to copy, distribute and modify the configure ++### scripts that are the output of Autoconf when processing the Macro. You ++### need not follow the terms of the GNU General Public License when using ++### or distributing such scripts, even though portions of the text of the ++### Macro appear in them. The GNU General Public License (GPL) does govern ++### all other use of the material that constitutes the Autoconf Macro. ++### ++### This special exception to the GPL applies to versions of the Autoconf ++### Macro released by the Autoconf Archive. When you make and distribute a ++### modified version of the Autoconf Macro, you may extend this special ++### exception to the GPL to apply to your modified version as well. ++ ++# serial 1 ++AC_DEFUN([mdw_DEFINE_PATHS], ++[mdw_prefix=$prefix mdw_exec_prefix=$exec_prefix ++mdw_transform=$(echo "$program_transform_name"|sed 's,\\\\\\\\,\\\\,g; s,\\$\\$,$,g') ++test "$prefix" = "NONE" && prefix=$ac_default_prefix ++test "$exec_prefix" = "NONE" && exec_prefix=$prefix ++$1 ++prefix=$mdw_prefix exec_prefix=$mdw_exec_prefix]) ++ ++AC_DEFUN([mdw_PROG], [$(echo "$1" | sed "$mdw_transform")]) ++AC_DEFUN([mdw_PATH], ++[$(t="$1"; dnl ++while :; do case "$t" in *\$[]*) eval t=\"$t\" ;; *) break ;; esac; done; dnl ++echo "$t")]) ++AC_DEFUN([mdw_DEFINE_PROG], ++ [AC_DEFINE_UNQUOTED([$1], ["mdw_PROG([$2])"], [Program name for $2.])]) ++AC_DEFUN([mdw_DEFINE_PATH], ++ [AC_DEFINE_UNQUOTED([$1], ["mdw_PATH([$2])"], [Pathname for $2.])]) diff --combined .ext/cfd/m4/mdw-dir-texmf.m4 index 0000000,1d9f60a..1d9f60a mode 000000,100644..100644 --- a/.ext/cfd/m4/mdw-dir-texmf.m4 +++ b/.ext/cfd/m4/mdw-dir-texmf.m4 @@@ -1,0 -1,72 +1,72 @@@ + dnl -*-autoconf-*- + + ### SYNOPSIS + ### + ### mdw_DIR_TEXMF + ### + ### DESCRIPTION + ### + ### Define the substitution `@texmfdir@' to name a sensible TeX + ### installation root directory. + ### + ### A `--with-texmfdir' command-line option is defined, which allows the + ### end user to select a specific installation root. The default is chosen + ### according to a heuristic, which is currently to use the first of + ### + ### * `DATADIR/texmf', + ### * `PREFIX/lib/texmf', + ### * `PREFIX/texmf', + ### * `LIBDIR/lib/texmf'. + ### + ### LICENSE + ### + ### Copyright (c) 2002 Mark Wooding + ### + ### 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 2 of the License, 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 . + ### + ### As a special exception, the respective Autoconf Macro's copyright owner + ### gives unlimited permission to copy, distribute and modify the configure + ### scripts that are the output of Autoconf when processing the Macro. You + ### need not follow the terms of the GNU General Public License when using + ### or distributing such scripts, even though portions of the text of the + ### Macro appear in them. The GNU General Public License (GPL) does govern + ### all other use of the material that constitutes the Autoconf Macro. + ### + ### This special exception to the GPL applies to versions of the Autoconf + ### Macro released by the Autoconf Archive. When you make and distribute a + ### modified version of the Autoconf Macro, you may extend this special + ### exception to the GPL to apply to your modified version as well. + + # serial 1 + AC_DEFUN([mdw_DIR_TEXMF], + [AC_ARG_WITH([texmfdir], + [AS_HELP_STRING([--with-texmfdir=DIR], + [set the TeX install directory to DIR])], + [texmfdir=$withval], + [texmfdir=guess]) + case $texmfdir in + guess) + AC_MSG_CHECKING([where to put installed TeX files]) + mdw_DEFINE_PATHS([ + texmfdir='${datadir}/texmf' + for d in \ + '${datadir}/texmf' '${prefix}/lib/texmf' \ + '${prefix}/texmf' '${libdir}/lib/texmf' + do + if test -d "mdw_PATH([$d])"; then texmfdir=$d; break; fi + done]) + AC_MSG_RESULT([$texmfdir]) + ;; + esac + AC_SUBST(texmfdir)]) diff --combined .ext/cfd/m4/mdw-libtool-version-info.m4 index 0000000,a4932b2..a4932b2 mode 000000,100644..100644 --- a/.ext/cfd/m4/mdw-libtool-version-info.m4 +++ b/.ext/cfd/m4/mdw-libtool-version-info.m4 @@@ -1,0 -1,48 +1,48 @@@ + dnl -*-autoconf-*- + + ### SYNOPSIS + ### + ### mdw_LIBTOOL_VERSION_INFO + ### + ### DESCRIPTION + ### + ### Decodes the `PACKAGE_VERSION' variable as a `libtool' version-info + ### string, available as the `@LIBTOOL_VERSION_INFO@' substitution. + ### Strictly speaking, this is very naughty. + ### + ### LICENSE + ### + ### Copyright (c) 2008 Mark Wooding + ### + ### 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 2 of the License, 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 . + ### + ### As a special exception, the respective Autoconf Macro's copyright owner + ### gives unlimited permission to copy, distribute and modify the configure + ### scripts that are the output of Autoconf when processing the Macro. You + ### need not follow the terms of the GNU General Public License when using + ### or distributing such scripts, even though portions of the text of the + ### Macro appear in them. The GNU General Public License (GPL) does govern + ### all other use of the material that constitutes the Autoconf Macro. + ### + ### This special exception to the GPL applies to versions of the Autoconf + ### Macro released by the Autoconf Archive. When you make and distribute a + ### modified version of the Autoconf Macro, you may extend this special + ### exception to the GPL to apply to your modified version as well. + + # serial 1 + AC_DEFUN([mdw_LIBTOOL_VERSION_INFO], + [set -- $(echo $PACKAGE_VERSION | + sed 's:[^\([0-9][0-9]*\)\.\([0-9][0-9]*\)\.\([0-9][0-9]*\).*$]:\1 \2 \3:') + LIBTOOL_VERSION_INFO="$(expr $[]1 + $[]2):$[]3:$[]2" + AC_SUBST([LIBTOOL_VERSION_INFO])]) diff --combined .ext/cfd/m4/mdw-manext.m4 index 0000000,868d6b5..868d6b5 mode 000000,100644..100644 --- a/.ext/cfd/m4/mdw-manext.m4 +++ b/.ext/cfd/m4/mdw-manext.m4 @@@ -1,0 -1,51 +1,51 @@@ + dnl -*-autoconf-*- + + ### SYNOPSIS + ### + ### mdw_MANEXT(DFLT) + ### + ### DESCRIPTION + ### + ### Define the `@manext@' substitution as an extension to append to manpage + ### section names. + ### + ### A `--with-man-ext' command-line option is defined, which allows the end + ### user to override the setting; otherwise it is set to DFLT. + ### + ### LICENSE + ### + ### Copyright (c) 2003 Mark Wooding + ### + ### 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 2 of the License, 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 . + ### + ### As a special exception, the respective Autoconf Macro's copyright owner + ### gives unlimited permission to copy, distribute and modify the configure + ### scripts that are the output of Autoconf when processing the Macro. You + ### need not follow the terms of the GNU General Public License when using + ### or distributing such scripts, even though portions of the text of the + ### Macro appear in them. The GNU General Public License (GPL) does govern + ### all other use of the material that constitutes the Autoconf Macro. + ### + ### This special exception to the GPL applies to versions of the Autoconf + ### Macro released by the Autoconf Archive. When you make and distribute a + ### modified version of the Autoconf Macro, you may extend this special + ### exception to the GPL to apply to your modified version as well. + + # serial 1 + AC_DEFUN([mdw_MANEXT], + [AC_ARG_WITH([man-ext], + [AS_HELP_STRING([--with-man-ext=EXT], + [give manpages the EXT extension (e.g., foo.3EXT)])], + [manext=$withval], [manext="$1"]) + AC_SUBST(manext)]) diff --combined .ext/cfd/m4/mdw-silent-rules.m4 index 0000000,0000000..23442b5 new file mode 100644 --- /dev/null +++ b/.ext/cfd/m4/mdw-silent-rules.m4 @@@ -1,0 -1,0 +1,45 @@@ ++dnl -*-autoconf-*- ++ ++### SYNOPSIS ++### ++### mdw_SILENT_RULES ++### ++### DESCRIPTION ++### ++### Set Automake's `silent-rules' feature on by default, if available. ++### ++### LICENSE ++### ++### Copyright (c) 2010 Mark Wooding ++### ++### 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 2 of the License, 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 . ++### ++### As a special exception, the respective Autoconf Macro's copyright owner ++### gives unlimited permission to copy, distribute and modify the configure ++### scripts that are the output of Autoconf when processing the Macro. You ++### need not follow the terms of the GNU General Public License when using ++### or distributing such scripts, even though portions of the text of the ++### Macro appear in them. The GNU General Public License (GPL) does govern ++### all other use of the material that constitutes the Autoconf Macro. ++### ++### This special exception to the GPL applies to versions of the Autoconf ++### Macro released by the Autoconf Archive. When you make and distribute a ++### modified version of the Autoconf Macro, you may extend this special ++### exception to the GPL to apply to your modified version as well. ++ ++# serial 1 ++AC_DEFUN([mdw_SILENT_RULES], ++ [m4_ifdef([AM_SILENT_RULES], ++ [AM_SILENT_RULES([yes])], ++ [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])])]) diff --combined .ext/cfd/src/getdate.h index 0000000,98ba3ea..98ba3ea mode 000000,100644..100644 --- a/.ext/cfd/src/getdate.h +++ b/.ext/cfd/src/getdate.h @@@ -1,0 -1,20 +1,20 @@@ + /* -*-c-*- + * + * getdate.h + * + * Written by Mark Wooding. Where I can surrender my copyright on the + * content of this file, I do so and place it in the public domain; + * elsewhere, it is copyright (c) 1999 Mark Wooding, and I hereby expliticly + * grant all persons and organizations permission to copy, modify, + * redistribute and/or relicense the content of this file in any way and for + * any purpose, to the fullest extent that I can. + */ + + #ifndef GETDATE_H + #define GETDATE_H + + #include + + extern time_t get_date(const char */*p*/, const time_t */*now*/); + + #endif diff --combined .ext/cfd/src/getdate.y index 0000000,1a7c788..1a7c788 mode 000000,100644..100644 --- a/.ext/cfd/src/getdate.y +++ b/.ext/cfd/src/getdate.y @@@ -1,0 -1,1007 +1,1007 @@@ + %{ + /* + ** Originally written by Steven M. Bellovin while + ** at the University of North Carolina at Chapel Hill. Later tweaked by + ** a couple of people on Usenet. Completely overhauled by Rich $alz + ** and Jim Berets in August, 1990; + ** + ** This grammar has 13 shift/reduce conflicts. + ** + ** This code is in the public domain and has no copyright. + ** + ** Since butchered by Mark Wooding, 1999-03-07. + */ + + #include + #include + #include + + #define ISSPACE(c) (isspace ((unsigned char)c)) + #define ISALPHA(c) (isalpha ((unsigned char)c)) + #define ISUPPER(c) (isupper ((unsigned char)c)) + #define ISDIGIT_LOCALE(c) ((unsigned char)isdigit (c)) + + /* ISDIGIT differs from ISDIGIT_LOCALE, as follows: + - Its arg may be any int or unsigned int; it need not be an unsigned char. + - It's guaranteed to evaluate its argument exactly once. + - It's typically faster. + Posix 1003.2-1992 section 2.5.2.1 page 50 lines 1556-1558 says that + only '0' through '9' are digits. Prefer ISDIGIT to ISDIGIT_LOCALE unless + it's important to use the locale's definition of `digit' even when the + host does not conform to Posix. */ + #define ISDIGIT(c) ((unsigned) (c) - '0' <= 9) + + #include "getdate.h" + + #include + + /* Some old versions of bison generate parsers that use bcopy. + That loses on systems that don't provide the function, so we have + to redefine it here. (Assume everyone has memcpy -- [mdw]) */ + + #define bcopy(from, to, len) memcpy ((to), (from), (len)) + + /* Remap normal yacc parser interface names (yyparse, yylex, yyerror, etc), + as well as gratuitiously global symbol names, so we can have multiple + yacc generated parsers in the same program. Note that these are only + the variables produced by yacc. If other parser generators (bison, + byacc, etc) produce additional global names that conflict at link time, + then those parser generators need to be fixed instead of adding those + names to this list. */ + + #define yymaxdepth gd_maxdepth + #define yyparse gd_parse + #define yylex gd_lex + #define yyerror gd_error + #define yylval gd_lval + #define yychar gd_char + #define yydebug gd_debug + #define yypact gd_pact + #define yyr1 gd_r1 + #define yyr2 gd_r2 + #define yydef gd_def + #define yychk gd_chk + #define yypgo gd_pgo + #define yyact gd_act + #define yyexca gd_exca + #define yyerrflag gd_errflag + #define yynerrs gd_nerrs + #define yyps gd_ps + #define yypv gd_pv + #define yys gd_s + #define yy_yys gd_yys + #define yystate gd_state + #define yytmp gd_tmp + #define yyv gd_v + #define yy_yyv gd_yyv + #define yyval gd_val + #define yylloc gd_lloc + #define yyreds gd_reds /* With YYDEBUG defined */ + #define yytoks gd_toks /* With YYDEBUG defined */ + #define yylhs gd_yylhs + #define yylen gd_yylen + #define yydefred gd_yydefred + #define yydgoto gd_yydgoto + #define yysindex gd_yysindex + #define yyrindex gd_yyrindex + #define yygindex gd_yygindex + #define yytable gd_yytable + #define yycheck gd_yycheck + + static int yylex (); + static int yyerror (); + + #define EPOCH 1970 + #define HOUR(x) ((time_t)(x) * 60) + #define SECSPERDAY (24L * 60L * 60L) + + #define MAX_BUFF_LEN 128 /* size of buffer to read the date into */ + + /* + ** An entry in the lexical lookup table. + */ + typedef struct _TABLE { + const char *name; + int type; + int value; + } TABLE; + + + /* + ** Meridian: am, pm, or 24-hour style. + */ + typedef enum _MERIDIAN { + MERam, MERpm, MER24 + } MERIDIAN; + + + /* + ** Global variables. We could get rid of most of these by using a good + ** union as the yacc stack. (This routine was originally written before + ** yacc had the %union construct.) Maybe someday; right now we only use + ** the %union very rarely. + */ + static const char *yyInput; + static int yyDayOrdinal; + static int yyDayNumber; + static int yyHaveDate; + static int yyHaveDay; + static int yyHaveRel; + static int yyHaveTime; + static int yyHaveZone; + static int yyTimezone; + static int yyDay; + static int yyHour; + static int yyMinutes; + static int yyMonth; + static int yySeconds; + static int yyYear; + static MERIDIAN yyMeridian; + static int yyRelDay; + static int yyRelHour; + static int yyRelMinutes; + static int yyRelMonth; + static int yyRelSeconds; + static int yyRelYear; + + %} + + %union { + int Number; + enum _MERIDIAN Meridian; + } + + %token tAGO tDAY tDAY_UNIT tDAYZONE tDST tHOUR_UNIT tID + %token tMERIDIAN tMINUTE_UNIT tMONTH tMONTH_UNIT + %token tSEC_UNIT tSNUMBER tUNUMBER tYEAR_UNIT tZONE + + %type tDAY tDAY_UNIT tDAYZONE tHOUR_UNIT tMINUTE_UNIT + %type tMONTH tMONTH_UNIT + %type tSEC_UNIT tSNUMBER tUNUMBER tYEAR_UNIT tZONE + %type tMERIDIAN o_merid + + %% + + spec : /* NULL */ + | spec item + ; + + item : time { + yyHaveTime++; + } + | zone { + yyHaveZone++; + } + | date { + yyHaveDate++; + } + | day { + yyHaveDay++; + } + | rel { + yyHaveRel++; + } + | number + ; + + time : tUNUMBER tMERIDIAN { + yyHour = $1; + yyMinutes = 0; + yySeconds = 0; + yyMeridian = $2; + } + | tUNUMBER ':' tUNUMBER o_merid { + yyHour = $1; + yyMinutes = $3; + yySeconds = 0; + yyMeridian = $4; + } + | tUNUMBER ':' tUNUMBER tSNUMBER { + yyHour = $1; + yyMinutes = $3; + yyMeridian = MER24; + yyHaveZone++; + yyTimezone = ($4 < 0 + ? -$4 % 100 + (-$4 / 100) * 60 + : - ($4 % 100 + ($4 / 100) * 60)); + } + | tUNUMBER ':' tUNUMBER ':' tUNUMBER o_merid { + yyHour = $1; + yyMinutes = $3; + yySeconds = $5; + yyMeridian = $6; + } + | tUNUMBER ':' tUNUMBER ':' tUNUMBER tSNUMBER { + yyHour = $1; + yyMinutes = $3; + yySeconds = $5; + yyMeridian = MER24; + yyHaveZone++; + yyTimezone = ($6 < 0 + ? -$6 % 100 + (-$6 / 100) * 60 + : - ($6 % 100 + ($6 / 100) * 60)); + } + ; + + zone : tZONE { + yyTimezone = $1; + } + | tDAYZONE { + yyTimezone = $1 - 60; + } + | + tZONE tDST { + yyTimezone = $1 - 60; + } + ; + + day : tDAY { + yyDayOrdinal = 1; + yyDayNumber = $1; + } + | tDAY ',' { + yyDayOrdinal = 1; + yyDayNumber = $1; + } + | tUNUMBER tDAY { + yyDayOrdinal = $1; + yyDayNumber = $2; + } + ; + + date : tUNUMBER '/' tUNUMBER { + yyMonth = $1; + yyDay = $3; + } + | tUNUMBER '/' tUNUMBER '/' tUNUMBER { + /* Interpret as YYYY/MM/DD if $1 >= 1000, otherwise as MM/DD/YY. + The goal in recognizing YYYY/MM/DD is solely to support legacy + machine-generated dates like those in an RCS log listing. If + you want portability, use the ISO 8601 format. */ + if ($1 >= 1000) + { + yyYear = $1; + yyMonth = $3; + yyDay = $5; + } + else + { + yyMonth = $1; + yyDay = $3; + yyYear = $5; + } + } + | tUNUMBER tSNUMBER tSNUMBER { + /* ISO 8601 format. yyyy-mm-dd. */ + yyYear = $1; + yyMonth = -$2; + yyDay = -$3; + } + | tUNUMBER tMONTH tSNUMBER { + /* e.g. 17-JUN-1992. */ + yyDay = $1; + yyMonth = $2; + yyYear = -$3; + } + | tMONTH tUNUMBER { + yyMonth = $1; + yyDay = $2; + } + | tMONTH tUNUMBER ',' tUNUMBER { + yyMonth = $1; + yyDay = $2; + yyYear = $4; + } + | tUNUMBER tMONTH { + yyMonth = $2; + yyDay = $1; + } + | tUNUMBER tMONTH tUNUMBER { + yyMonth = $2; + yyDay = $1; + yyYear = $3; + } + ; + + rel : relunit tAGO { + yyRelSeconds = -yyRelSeconds; + yyRelMinutes = -yyRelMinutes; + yyRelHour = -yyRelHour; + yyRelDay = -yyRelDay; + yyRelMonth = -yyRelMonth; + yyRelYear = -yyRelYear; + } + | relunit + ; + + relunit : tUNUMBER tYEAR_UNIT { + yyRelYear += $1 * $2; + } + | tSNUMBER tYEAR_UNIT { + yyRelYear += $1 * $2; + } + | tYEAR_UNIT { + yyRelYear += $1; + } + | tUNUMBER tMONTH_UNIT { + yyRelMonth += $1 * $2; + } + | tSNUMBER tMONTH_UNIT { + yyRelMonth += $1 * $2; + } + | tMONTH_UNIT { + yyRelMonth += $1; + } + | tUNUMBER tDAY_UNIT { + yyRelDay += $1 * $2; + } + | tSNUMBER tDAY_UNIT { + yyRelDay += $1 * $2; + } + | tDAY_UNIT { + yyRelDay += $1; + } + | tUNUMBER tHOUR_UNIT { + yyRelHour += $1 * $2; + } + | tSNUMBER tHOUR_UNIT { + yyRelHour += $1 * $2; + } + | tHOUR_UNIT { + yyRelHour += $1; + } + | tUNUMBER tMINUTE_UNIT { + yyRelMinutes += $1 * $2; + } + | tSNUMBER tMINUTE_UNIT { + yyRelMinutes += $1 * $2; + } + | tMINUTE_UNIT { + yyRelMinutes += $1; + } + | tUNUMBER tSEC_UNIT { + yyRelSeconds += $1 * $2; + } + | tSNUMBER tSEC_UNIT { + yyRelSeconds += $1 * $2; + } + | tSEC_UNIT { + yyRelSeconds += $1; + } + ; + + number : tUNUMBER + { + if (yyHaveTime && yyHaveDate && !yyHaveRel) + yyYear = $1; + else + { + if ($1>10000) + { + yyHaveDate++; + yyDay= ($1)%100; + yyMonth= ($1/100)%100; + yyYear = $1/10000; + } + else + { + yyHaveTime++; + if ($1 < 100) + { + yyHour = $1; + yyMinutes = 0; + } + else + { + yyHour = $1 / 100; + yyMinutes = $1 % 100; + } + yySeconds = 0; + yyMeridian = MER24; + } + } + } + ; + + o_merid : /* NULL */ + { + $$ = MER24; + } + | tMERIDIAN + { + $$ = $1; + } + ; + + %% + + /* Month and day table. */ + static TABLE const MonthDayTable[] = { + { "january", tMONTH, 1 }, + { "february", tMONTH, 2 }, + { "march", tMONTH, 3 }, + { "april", tMONTH, 4 }, + { "may", tMONTH, 5 }, + { "june", tMONTH, 6 }, + { "july", tMONTH, 7 }, + { "august", tMONTH, 8 }, + { "september", tMONTH, 9 }, + { "sept", tMONTH, 9 }, + { "october", tMONTH, 10 }, + { "november", tMONTH, 11 }, + { "december", tMONTH, 12 }, + { "sunday", tDAY, 0 }, + { "monday", tDAY, 1 }, + { "tuesday", tDAY, 2 }, + { "tues", tDAY, 2 }, + { "wednesday", tDAY, 3 }, + { "wednes", tDAY, 3 }, + { "thursday", tDAY, 4 }, + { "thur", tDAY, 4 }, + { "thurs", tDAY, 4 }, + { "friday", tDAY, 5 }, + { "saturday", tDAY, 6 }, + { NULL } + }; + + /* Time units table. */ + static TABLE const UnitsTable[] = { + { "year", tYEAR_UNIT, 1 }, + { "month", tMONTH_UNIT, 1 }, + { "fortnight", tDAY_UNIT, 14 }, + { "week", tDAY_UNIT, 7 }, + { "day", tDAY_UNIT, 1 }, + { "hour", tHOUR_UNIT, 1 }, + { "minute", tMINUTE_UNIT, 1 }, + { "min", tMINUTE_UNIT, 1 }, + { "second", tSEC_UNIT, 1 }, + { "sec", tSEC_UNIT, 1 }, + { NULL } + }; + + /* Assorted relative-time words. */ + static TABLE const OtherTable[] = { + { "tomorrow", tMINUTE_UNIT, 1 * 24 * 60 }, + { "yesterday", tMINUTE_UNIT, -1 * 24 * 60 }, + { "today", tMINUTE_UNIT, 0 }, + { "now", tMINUTE_UNIT, 0 }, + { "last", tUNUMBER, -1 }, + { "this", tMINUTE_UNIT, 0 }, + { "next", tUNUMBER, 1 /* Was bogusly 2 [mdw] */ }, + { "first", tUNUMBER, 1 }, + /* { "second", tUNUMBER, 2 }, */ + { "third", tUNUMBER, 3 }, + { "fourth", tUNUMBER, 4 }, + { "fifth", tUNUMBER, 5 }, + { "sixth", tUNUMBER, 6 }, + { "seventh", tUNUMBER, 7 }, + { "eighth", tUNUMBER, 8 }, + { "ninth", tUNUMBER, 9 }, + { "tenth", tUNUMBER, 10 }, + { "eleventh", tUNUMBER, 11 }, + { "twelfth", tUNUMBER, 12 }, + { "ago", tAGO, 1 }, + { NULL } + }; + + /* The timezone table. */ + static TABLE const TimezoneTable[] = { + { "gmt", tZONE, HOUR ( 0) }, /* Greenwich Mean */ + { "ut", tZONE, HOUR ( 0) }, /* Universal (Coordinated) */ + { "utc", tZONE, HOUR ( 0) }, + { "wet", tZONE, HOUR ( 0) }, /* Western European */ + { "bst", tDAYZONE, HOUR ( 0) }, /* British Summer */ + { "wat", tZONE, HOUR ( 1) }, /* West Africa */ + { "at", tZONE, HOUR ( 2) }, /* Azores */ + #if 0 + /* For completeness. BST is also British Summer, and GST is + * also Guam Standard. */ + { "bst", tZONE, HOUR ( 3) }, /* Brazil Standard */ + { "gst", tZONE, HOUR ( 3) }, /* Greenland Standard */ + #endif + #if 0 + { "nft", tZONE, HOUR (3.5) }, /* Newfoundland */ + { "nst", tZONE, HOUR (3.5) }, /* Newfoundland Standard */ + { "ndt", tDAYZONE, HOUR (3.5) }, /* Newfoundland Daylight */ + #endif + { "ast", tZONE, HOUR ( 4) }, /* Atlantic Standard */ + { "adt", tDAYZONE, HOUR ( 4) }, /* Atlantic Daylight */ + { "est", tZONE, HOUR ( 5) }, /* Eastern Standard */ + { "edt", tDAYZONE, HOUR ( 5) }, /* Eastern Daylight */ + { "cst", tZONE, HOUR ( 6) }, /* Central Standard */ + { "cdt", tDAYZONE, HOUR ( 6) }, /* Central Daylight */ + { "mst", tZONE, HOUR ( 7) }, /* Mountain Standard */ + { "mdt", tDAYZONE, HOUR ( 7) }, /* Mountain Daylight */ + { "pst", tZONE, HOUR ( 8) }, /* Pacific Standard */ + { "pdt", tDAYZONE, HOUR ( 8) }, /* Pacific Daylight */ + { "yst", tZONE, HOUR ( 9) }, /* Yukon Standard */ + { "ydt", tDAYZONE, HOUR ( 9) }, /* Yukon Daylight */ + { "hst", tZONE, HOUR (10) }, /* Hawaii Standard */ + { "hdt", tDAYZONE, HOUR (10) }, /* Hawaii Daylight */ + { "cat", tZONE, HOUR (10) }, /* Central Alaska */ + { "ahst", tZONE, HOUR (10) }, /* Alaska-Hawaii Standard */ + { "nt", tZONE, HOUR (11) }, /* Nome */ + { "idlw", tZONE, HOUR (12) }, /* International Date Line West */ + { "cet", tZONE, -HOUR (1) }, /* Central European */ + { "met", tZONE, -HOUR (1) }, /* Middle European */ + { "mewt", tZONE, -HOUR (1) }, /* Middle European Winter */ + { "mest", tDAYZONE, -HOUR (1) }, /* Middle European Summer */ + { "mesz", tDAYZONE, -HOUR (1) }, /* Middle European Summer */ + { "swt", tZONE, -HOUR (1) }, /* Swedish Winter */ + { "sst", tDAYZONE, -HOUR (1) }, /* Swedish Summer */ + { "fwt", tZONE, -HOUR (1) }, /* French Winter */ + { "fst", tDAYZONE, -HOUR (1) }, /* French Summer */ + { "eet", tZONE, -HOUR (2) }, /* Eastern Europe, USSR Zone 1 */ + { "bt", tZONE, -HOUR (3) }, /* Baghdad, USSR Zone 2 */ + #if 0 + { "it", tZONE, -HOUR (3.5) },/* Iran */ + #endif + { "zp4", tZONE, -HOUR (4) }, /* USSR Zone 3 */ + { "zp5", tZONE, -HOUR (5) }, /* USSR Zone 4 */ + #if 0 + { "ist", tZONE, -HOUR (5.5) },/* Indian Standard */ + #endif + { "zp6", tZONE, -HOUR (6) }, /* USSR Zone 5 */ + #if 0 + /* For completeness. NST is also Newfoundland Standard, and SST is + * also Swedish Summer. */ + { "nst", tZONE, -HOUR (6.5) },/* North Sumatra */ + { "sst", tZONE, -HOUR (7) }, /* South Sumatra, USSR Zone 6 */ + #endif /* 0 */ + { "wast", tZONE, -HOUR (7) }, /* West Australian Standard */ + { "wadt", tDAYZONE, -HOUR (7) }, /* West Australian Daylight */ + #if 0 + { "jt", tZONE, -HOUR (7.5) },/* Java (3pm in Cronusland!) */ + #endif + { "cct", tZONE, -HOUR (8) }, /* China Coast, USSR Zone 7 */ + { "jst", tZONE, -HOUR (9) }, /* Japan Standard, USSR Zone 8 */ + #if 0 + { "cast", tZONE, -HOUR (9.5) },/* Central Australian Standard */ + { "cadt", tDAYZONE, -HOUR (9.5) },/* Central Australian Daylight */ + #endif + { "east", tZONE, -HOUR (10) }, /* Eastern Australian Standard */ + { "eadt", tDAYZONE, -HOUR (10) }, /* Eastern Australian Daylight */ + { "gst", tZONE, -HOUR (10) }, /* Guam Standard, USSR Zone 9 */ + { "nzt", tZONE, -HOUR (12) }, /* New Zealand */ + { "nzst", tZONE, -HOUR (12) }, /* New Zealand Standard */ + { "nzdt", tDAYZONE, -HOUR (12) }, /* New Zealand Daylight */ + { "idle", tZONE, -HOUR (12) }, /* International Date Line East */ + { NULL } + }; + + /* Military timezone table. */ + static TABLE const MilitaryTable[] = { + { "a", tZONE, HOUR ( 1) }, + { "b", tZONE, HOUR ( 2) }, + { "c", tZONE, HOUR ( 3) }, + { "d", tZONE, HOUR ( 4) }, + { "e", tZONE, HOUR ( 5) }, + { "f", tZONE, HOUR ( 6) }, + { "g", tZONE, HOUR ( 7) }, + { "h", tZONE, HOUR ( 8) }, + { "i", tZONE, HOUR ( 9) }, + { "k", tZONE, HOUR ( 10) }, + { "l", tZONE, HOUR ( 11) }, + { "m", tZONE, HOUR ( 12) }, + { "n", tZONE, HOUR (- 1) }, + { "o", tZONE, HOUR (- 2) }, + { "p", tZONE, HOUR (- 3) }, + { "q", tZONE, HOUR (- 4) }, + { "r", tZONE, HOUR (- 5) }, + { "s", tZONE, HOUR (- 6) }, + { "t", tZONE, HOUR (- 7) }, + { "u", tZONE, HOUR (- 8) }, + { "v", tZONE, HOUR (- 9) }, + { "w", tZONE, HOUR (-10) }, + { "x", tZONE, HOUR (-11) }, + { "y", tZONE, HOUR (-12) }, + { "z", tZONE, HOUR ( 0) }, + { NULL } + }; + + + + + /* ARGSUSED */ + static int + yyerror (s) + char *s; + { + return 0; + } + + static int + ToHour (Hours, Meridian) + int Hours; + MERIDIAN Meridian; + { + switch (Meridian) + { + case MER24: + if (Hours < 0 || Hours > 23) + return -1; + return Hours; + case MERam: + if (Hours < 1 || Hours > 12) + return -1; + if (Hours == 12) + Hours = 0; + return Hours; + case MERpm: + if (Hours < 1 || Hours > 12) + return -1; + if (Hours == 12) + Hours = 0; + return Hours + 12; + default: + abort (); + } + /* NOTREACHED */ + } + + static int + ToYear (Year) + int Year; + { + if (Year < 0) + Year = -Year; + + /* XPG4 suggests that years 00-68 map to 2000-2068, and + years 69-99 map to 1969-1999. */ + if (Year < 69) + Year += 2000; + else if (Year < 100) + Year += 1900; + + return Year; + } + + static int + LookupWord (buff) + char *buff; + { + register char *p; + register char *q; + register const TABLE *tp; + int i; + int abbrev; + + /* Make it lowercase. */ + for (p = buff; *p; p++) + if (ISUPPER (*p)) + *p = tolower (*p); + + if (strcmp (buff, "am") == 0 || strcmp (buff, "a.m.") == 0) + { + yylval.Meridian = MERam; + return tMERIDIAN; + } + if (strcmp (buff, "pm") == 0 || strcmp (buff, "p.m.") == 0) + { + yylval.Meridian = MERpm; + return tMERIDIAN; + } + + /* See if we have an abbreviation for a month. */ + if (strlen (buff) == 3) + abbrev = 1; + else if (strlen (buff) == 4 && buff[3] == '.') + { + abbrev = 1; + buff[3] = '\0'; + } + else + abbrev = 0; + + for (tp = MonthDayTable; tp->name; tp++) + { + if (abbrev) + { + if (strncmp (buff, tp->name, 3) == 0) + { + yylval.Number = tp->value; + return tp->type; + } + } + else if (strcmp (buff, tp->name) == 0) + { + yylval.Number = tp->value; + return tp->type; + } + } + + for (tp = TimezoneTable; tp->name; tp++) + if (strcmp (buff, tp->name) == 0) + { + yylval.Number = tp->value; + return tp->type; + } + + if (strcmp (buff, "dst") == 0) + return tDST; + + for (tp = UnitsTable; tp->name; tp++) + if (strcmp (buff, tp->name) == 0) + { + yylval.Number = tp->value; + return tp->type; + } + + /* Strip off any plural and try the units table again. */ + i = strlen (buff) - 1; + if (buff[i] == 's') + { + buff[i] = '\0'; + for (tp = UnitsTable; tp->name; tp++) + if (strcmp (buff, tp->name) == 0) + { + yylval.Number = tp->value; + return tp->type; + } + buff[i] = 's'; /* Put back for "this" in OtherTable. */ + } + + for (tp = OtherTable; tp->name; tp++) + if (strcmp (buff, tp->name) == 0) + { + yylval.Number = tp->value; + return tp->type; + } + + /* Military timezones. */ + if (buff[1] == '\0' && ISALPHA (*buff)) + { + for (tp = MilitaryTable; tp->name; tp++) + if (strcmp (buff, tp->name) == 0) + { + yylval.Number = tp->value; + return tp->type; + } + } + + /* Drop out any periods and try the timezone table again. */ + for (i = 0, p = q = buff; *q; q++) + if (*q != '.') + *p++ = *q; + else + i++; + *p = '\0'; + if (i) + for (tp = TimezoneTable; tp->name; tp++) + if (strcmp (buff, tp->name) == 0) + { + yylval.Number = tp->value; + return tp->type; + } + + return tID; + } + + static int + yylex () + { + register char c; + register char *p; + char buff[20]; + int Count; + int sign; + + for (;;) + { + while (ISSPACE (*yyInput)) + yyInput++; + + if (ISDIGIT (c = *yyInput) || c == '-' || c == '+') + { + if (c == '-' || c == '+') + { + sign = c == '-' ? -1 : 1; + if (!ISDIGIT (*++yyInput)) + /* skip the '-' sign */ + continue; + } + else + sign = 0; + for (yylval.Number = 0; ISDIGIT (c = *yyInput++);) + yylval.Number = 10 * yylval.Number + c - '0'; + yyInput--; + if (sign < 0) + yylval.Number = -yylval.Number; + return sign ? tSNUMBER : tUNUMBER; + } + if (ISALPHA (c)) + { + for (p = buff; (c = *yyInput++, ISALPHA (c)) || c == '.';) + if (p < &buff[sizeof buff - 1]) + *p++ = c; + *p = '\0'; + yyInput--; + return LookupWord (buff); + } + if (c != '(') + return *yyInput++; + Count = 0; + do + { + c = *yyInput++; + if (c == '\0') + return c; + if (c == '(') + Count++; + else if (c == ')') + Count--; + } + while (Count > 0); + } + } + + #define TM_YEAR_ORIGIN 1900 + + #ifndef GETDATE_IGNORE_TIMEZONE + + /* Yield A - B, measured in seconds. */ + static long + difftm (a, b) + struct tm *a, *b; + { + int ay = a->tm_year + (TM_YEAR_ORIGIN - 1); + int by = b->tm_year + (TM_YEAR_ORIGIN - 1); + long days = ( + /* difference in day of year */ + a->tm_yday - b->tm_yday + /* + intervening leap days */ + + ((ay >> 2) - (by >> 2)) + - (ay / 100 - by / 100) + + ((ay / 100 >> 2) - (by / 100 >> 2)) + /* + difference in years * 365 */ + + (long) (ay - by) * 365 + ); + return (60 * (60 * (24 * days + (a->tm_hour - b->tm_hour)) + + (a->tm_min - b->tm_min)) + + (a->tm_sec - b->tm_sec)); + } + + #endif + + time_t + get_date (p, now) + const char *p; + const time_t *now; + { + struct tm tm, tm0, *tmp; + time_t Start; + + yyInput = p; + Start = now ? *now : time ((time_t *) NULL); + tmp = localtime (&Start); + yyYear = tmp->tm_year + TM_YEAR_ORIGIN; + yyMonth = tmp->tm_mon + 1; + yyDay = tmp->tm_mday; + yyHour = tmp->tm_hour; + yyMinutes = tmp->tm_min; + yySeconds = tmp->tm_sec; + yyMeridian = MER24; + yyRelSeconds = 0; + yyRelMinutes = 0; + yyRelHour = 0; + yyRelDay = 0; + yyRelMonth = 0; + yyRelYear = 0; + yyHaveDate = 0; + yyHaveDay = 0; + yyHaveRel = 0; + yyHaveTime = 0; + yyHaveZone = 0; + + if (yyparse () + || yyHaveTime > 1 || yyHaveZone > 1 || yyHaveDate > 1 || yyHaveDay > 1) + return -1; + + tm.tm_year = ToYear (yyYear) - TM_YEAR_ORIGIN + yyRelYear; + tm.tm_mon = yyMonth - 1 + yyRelMonth; + tm.tm_mday = yyDay + yyRelDay; + if (yyHaveTime || (yyHaveRel && !yyHaveDate && !yyHaveDay)) + { + tm.tm_hour = ToHour (yyHour, yyMeridian); + if (tm.tm_hour < 0) + return -1; + tm.tm_min = yyMinutes; + tm.tm_sec = yySeconds; + } + else + { + tm.tm_hour = tm.tm_min = tm.tm_sec = 0; + } + tm.tm_hour += yyRelHour; + tm.tm_min += yyRelMinutes; + tm.tm_sec += yyRelSeconds; + tm.tm_isdst = -1; + tm0 = tm; + + Start = mktime (&tm); + + if (Start == (time_t) -1) + { + + /* Guard against falsely reporting errors near the time_t boundaries + when parsing times in other time zones. For example, if the min + time_t value is 1970-01-01 00:00:00 UTC and we are 8 hours ahead + of UTC, then the min localtime value is 1970-01-01 08:00:00; if + we apply mktime to 1970-01-01 00:00:00 we will get an error, so + we apply mktime to 1970-01-02 08:00:00 instead and adjust the time + zone by 24 hours to compensate. This algorithm assumes that + there is no DST transition within a day of the time_t boundaries. */ + + #ifndef GETDATE_IGNORE_TIMEZONE + if (yyHaveZone) + { + tm = tm0; + if (tm.tm_year <= EPOCH - TM_YEAR_ORIGIN) + { + tm.tm_mday++; + yyTimezone -= 24 * 60; + } + else + { + tm.tm_mday--; + yyTimezone += 24 * 60; + } + Start = mktime (&tm); + } + #endif + + if (Start == (time_t) -1) + return Start; + } + + if (yyHaveDay && !yyHaveDate) + { + tm.tm_mday += ((yyDayNumber - tm.tm_wday + 7) % 7 + + 7 * (yyDayOrdinal - (0 < yyDayOrdinal))); + Start = mktime (&tm); + if (Start == (time_t) -1) + return Start; + } + + #ifndef GETDATE_IGNORE_TIMEZONE + if (yyHaveZone) + { + long delta = yyTimezone * 60L + difftm (&tm, gmtime (&Start)); + if ((Start + delta < Start) != (delta < 0)) + return -1; /* time_t overflow */ + Start += delta; + } + #endif + + return Start; + } + + #if defined (TEST) + + /* ARGSUSED */ + int + main (ac, av) + int ac; + char *av[]; + { + char buff[MAX_BUFF_LEN + 1]; + time_t d; + + (void) printf ("Enter date, or blank line to exit.\n\t> "); + (void) fflush (stdout); + + buff[MAX_BUFF_LEN] = 0; + while (fgets (buff, MAX_BUFF_LEN, stdin) && buff[0]) + { + d = get_date (buff, (time_t *) NULL); + if (d == -1) + (void) printf ("Bad format - couldn't convert.\n"); + else + (void) printf ("%s", ctime (&d)); + (void) printf ("\t> "); + (void) fflush (stdout); + } + exit (0); + /* NOTREACHED */ + } + #endif /* defined (TEST) */ diff --combined .ext/cfd/src/mdwopt.c index 0000000,fc76635..fc76635 mode 000000,100644..100644 --- a/.ext/cfd/src/mdwopt.c +++ b/.ext/cfd/src/mdwopt.c @@@ -1,0 -1,825 +1,825 @@@ + /* -*-c-*- + * + * Options parsing, similar to GNU @getopt_long@ + * + * (c) 1996 Straylight/Edgeware + */ + + /*----- Licensing notice --------------------------------------------------* + * + * This file is part of many programs. + * + * `mdwopt' is free software; you can redistribute it and/or modify + * it under the terms of the GNU Library General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * `mdwopt' 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 Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with `mdwopt'; if not, write to the Free + * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, + * MA 02111-1307, USA. + */ + + /*----- External dependencies ---------------------------------------------*/ + + #include + #include + #include + #include + + #include "mdwopt.h" + + /*----- Configuration things ----------------------------------------------*/ + + #if defined(__riscos) + # define PATHSEP '.' + #elif defined(__OS2__) || defined(__MSDOS__) || defined(__WINNT__) + # define PATHSEP '\\' + #else /* Assume a sane filing system */ + # define PATHSEP '/' + #endif + + /*----- Global variables --------------------------------------------------*/ + + mdwopt_data mdwopt_global = {0, 0, 0, 1, 0, 0, 0, 0, 0}; + + enum { + ORD_PERMUTE = 0, /* Permute the options (default) */ + ORD_RETURN = 1, /* Return non-option things */ + ORD_POSIX = 2, /* Do POSIX-type hacking */ + ORD_NEGATE = 4 /* Magic negate-next-thing flag */ + }; + + /*----- Word splitting ----------------------------------------------------*/ + + #ifdef BUILDING_MLIB + # include "str.h" + # define qword str_qword + #else + + /* --- @qword@ --- * + * + * Arguments: @char **pp@ = address of pointer into string + * @unsigned f@ = various flags + * + * Returns: Pointer to the next space-separated possibly-quoted word from + * the string, or null. + * + * Use: Fetches the next word from a string. If the flag + * @STRF_QUOTE@ is set, the `\' character acts as an escape, and + * single and double quotes protect whitespace. + */ + + #define STRF_QUOTE 1u + + static char *qword(char **pp, unsigned f) + { + char *p = *pp, *q, *qq; + int st = 0, pst = 0; + + /* --- Preliminaries --- */ + + if (!p) + return (0); + while (isspace((unsigned char)*p)) + p++; + if (!*p) { + *pp = 0; + return (0); + } + + /* --- Main work --- */ + + for (q = qq = p; *q; q++) { + switch (st) { + case '\\': + *qq++ = *q; + st = pst; + break; + case '\'': + case '\"': + if (*q == st) + st = pst = 0; + else if (*q == '\\') + st = '\\'; + else + *qq++ = *q; + break; + default: + if (isspace((unsigned char)*q)) { + do q++; while (*q && isspace((unsigned char)*q)); + goto done; + } else if (!(f & STRF_QUOTE)) + goto stdchar; + switch (*q) { + case '\\': + st = '\\'; + break; + case '\'': + case '\"': + st = pst = *q; + break; + default: + stdchar: + *qq++ = *q; + break; + } + } + } + + /* --- Finished --- */ + + done: + *pp = *q ? q : 0; + *qq++ = 0; + return (p); + } + + #endif + + /*----- Main code ---------------------------------------------------------*/ + + /* --- @nextword@ --- * + * + * Arguments: @int argc@ = number of command line options + * @char *argv[]@ = pointer to command line options + * @mdwopt_data *data@ = pointer to persistent state + * + * Returns: Pointer to the next word to handle, or 0 + * + * Use: Extracts the next word from the command line or environment + * variable. + */ + + static char *nextword(int argc, char *const *argv, mdwopt_data *data) + { + if (data->ind == -1) { + char *p; + if ((p = qword(&data->env, STRF_QUOTE)) != 0) + return (p); + data->ind = 1; + } + + if (data->next == argc) + return (0); + return (argv[data->next++]); + } + + /* --- @permute@ --- * + * + * Arguments: @char *argv[]@ = pointer to command line arguments + * @mdwopt_data *data@ = pointer to persistent data + * + * Returns: -- + * + * Use: Moves a command line option into the right place. + */ + + static void permute(char *const *argv, mdwopt_data *data) + { + char **v = (char **)argv; + if (data->ind != -1) { + int i = data->next - 1; + char *p = v[i]; + while (i > data->ind) { + v[i] = v[i - 1]; + i--; + } + v[i] = p; + data->ind++; + } + } + + /* --- @findOpt@ --- * + * + * Arguments: @int o@ = which option to search for + * @const char *shortopt@ = short options string to search + * @mdwopt_data *data@ = pointer to persistant state + * + * Returns: Pointer to rest of short options string (including magic + * characters) + * + * Use: Looks up a short option in the given string. + */ + + static const char *findOpt(int o, const char *shortopt, + mdwopt_data *data) + { + const char *p = shortopt; + for (;;) { + if (!*p) + return (0); + + if (o != *p || (p[1] != '+' && data->order & ORD_NEGATE)) { + p++; + while (*p == '+') + p++; + while (*p == ':') + p++; + } + else + return (p + 1); + } + } + + /* --- @mdwopt@ --- * + * + * Arguments: @int argc@ = number of command line arguments + * @char * const *argv@ = pointer to command line arguments + * @const char *shortopt@ = pointer to short options information + * @const struct option *longopts@ = pointer to long opts info + * @int *longind@ = where to store matched longopt + * @mdwopt_data *data@ = persistent state for the parser + * @int flags@ = various useful flags + * + * Returns: Value of option found next, or an error character, or + * @EOF@ for the last thing. + * + * Use: Reads options. The routine should be more-or-less compatible + * with standard getopts, although it provides many more + * features even than the standard GNU implementation. + * + * The precise manner of options parsing is determined by + * various flag settings, which are described below. By setting + * flag values appropriately, you can achieve behaviour very + * similar to most other getopt routines. + * + * + * How options parsing appears to users + * + * A command line consists of a number of `words' (which may + * contain spaces, according to various shell quoting + * conventions). A word may be an option, an argument to an + * option, or a non-option. An option begins with a special + * character, usually `%|-|%', although `%|+|%' is also used + * sometimes. As special exceptions, the word containing only a + * `%|-|%' is considered to be a non-option, since it usually + * represents standard input or output as a filename, and the + * word containing a double-dash `%|--|%' is used to mark all + * following words as being non-options regardless of their + * initial character. + * + * Traditionally, all words after the first non-option have been + * considered to be non-options automatically, so that options + * must be specified before filenames. However, this + * implementation can extract all the options from the command + * line regardless of their position. This can usually be + * disabled by setting one of the environment variables + * `%|POSIXLY_CORRECT|%' or `%|_POSIX_OPTION_ORDER|%'. + * + * There are two different styles of options: `short' and + * `long'. + * + * Short options are the sort which Unix has known for ages: an + * option is a single letter, preceded by a `%|-|%'. Short + * options can be joined together to save space (and possibly to + * make silly words): e.g., instead of giving options + * `%|-x -y|%', a user could write `%|-xy|%'. Some short + * options can have arguments, which appear after the option + * letter, either immediately following, or in the next `word' + * (so an option with an argument could be written as + * `%|-o foo|%' or as `%|-ofoo|%'). Note that options with + * optional arguments must be written in the second style. + * + * When a short option controls a flag setting, it is sometimes + * possible to explicitly turn the flag off, as well as turning + * it on, (usually to override default options). This is + * usually done by using a `%|+|%' instead of a `%|-|%' to + * introduce the option. + * + * Long options, as popularized by the GNU utilities, are given + * long-ish memorable names, preceded by a double-dash `%|--|%'. + * Since their names are more than a single character, long + * options can't be combined in the same way as short options. + * Arguments to long options may be given either in the same + * `word', separated from the option name by an equals sign, or + * in the following `word'. + * + * Long option names can be abbreviated if necessary, as long + * as the abbreviation is unique. This means that options can + * have sensible and memorable names but still not require much + * typing from an experienced user. + * + * Like short options, long options can control flag settings. + * The options to manipulate these settings come in pairs: an + * option of the form `%|--set-flag|%' might set the flag, while + * an option of the form `%|--no-set-flag|%' might clear it. + * + * It is usual for applications to provide both short and long + * options with identical behaviour. Some applications with + * lots of options may only provide long options (although they + * will often be only two or three characters long). In this + * case, long options can be preceded with a single `%|-|%' + * character, and negated by a `%|+|%' character. + * + * Finally, some (older) programs accept arguments of the form + * `%%@.{"-"}%%', to set some numerical parameter, + * typically a line count of some kind. + * + * + * How programs parse options + * + * An application parses its options by calling mdwopt + * repeatedly. Each time it is called, mdwopt returns a value + * describing the option just read, and stores information about + * the option in a data block. The value %$-1$% is returned + * when there are no more options to be read. The `%|?|%' + * character is returned when an error is encountered. + * + * Before starting to parse options, the value @data->ind@ must + * be set to 0 or 1. The value of @data->err@ can also be set, + * to choose whether errors are reported by mdwopt. + * + * The program's `@argc@' and `@argv@' arguments are passed to + * the options parser, so that it can read the command line. A + * flags word is also passed, allowing the program fine control + * over parsing. The flags are described above. + * + * Short options are described by a string, which once upon a + * time just contained the permitted option characters. Now the + * options string begins with a collection of flag characters, + * and various flag characters can be put after options + * characters to change their properties. + * + * If the first character of the short options string is + * `%|+|%', `%|-|%' or `%|!|%', the order in which options are + * read is modified, as follows: + * + * `%|+|%' forces the POSIX order to be used. As soon as a non- + * option is found, mdwopt returns %$-1$%. + * + * `%|-|%' makes mdwopt treat non-options as being `special' + * sorts of option. When a non-option word is found, the + * value 0 is returned, and the actual text of the word + * is stored as being the option's argument. + * + * `%|!|%' forces the default order to be used. The entire + * command line is scanned for options, which are + * returned in order. However, during this process, + * the options are moved in the @argv@ array, so that + * they appear before the non- options. + * + * A `%|:|%' character may be placed after the ordering flag (or + * at the very beginning if no ordering flag is given) which + * indicates that the character `%|:|%', rather than `%|?|%', + * should be returned if a missing argument error is detected. + * + * Each option in the string can be followed by a `%|+|%' sign, + * indicating that it can be negated, a `%|:|%' sign indicating + * that it requires an argument, or a `%|::|%' string, + * indicating an optional argument. Both `%|+|%' and `%|:|%' or + * `%|::|%' may be given, although the `%|+|%' must come first. + * + * If an option is found, the option character is returned to + * the caller. A pointer to an argument is stored in + * @data->arg@, or @NULL@ is stored if there was no argument. + * If a negated option was found, the option character is + * returned ORred with @OPTF_NEGATED@ (bit 8 set). + * + * Long options are described in a table. Each entry in the + * table is of type @struct option@, and the table is terminated + * by an entry whose @name@ field is null. Each option has + * a flags word which, due to historical reasons, is called + * @has_arg@. This describes various properties of the option, + * such as what sort of argument it takes, and whether it can + * be negated. + * + * When mdwopt finds a long option, it looks the name up in the + * table. The index of the matching entry is stored in the + * @longind@ variable, passed to mdwopt (unless @longind@ is 0): + * a value of %$-1$% indicates that no long option was + * found. The behaviour is then dependent on the values in the + * table entry. If @flag@ is nonzero, it points to an integer + * to be modified by mdwopt. Usually the value in the @val@ + * field is simply stored in the @flag@ variable. If the flag + * @OPTF_SWITCH@ is set, however, the value is combined with + * the existing value of the flags using a bitwise OR. If + * @OPTF_NEGATE@ is set, then the flag bit will be cleared if a + * matching negated long option is found. The value 0 is + * returned. + * + * If @flag@ is zero, the value in @val@ is returned by mdwopt, + * possibly with bit 8 set if the option was negated. + * + * Arguments for long options are stored in @data->arg@, as + * before. + * + * Numeric options, if enabled, cause the value `%|#|%' to be + * returned, and the numeric value to be stored in @data->opt@. + * + * If the flag @OPTF_ENVVAR@ is set on entry, options will be + * extracted from an environment variable whose name is built by + * capitalizing all the letters of the program's name. (This + * allows a user to have different default settings for a + * program, by calling it through different symbolic links.) + */ + + int mdwopt(int argc, char *const *argv, + const char *shortopt, + const struct option *longopts, int *longind, + mdwopt_data *data, int flags) + { + /* --- Local variables --- */ + + char *p, *q, *r; + char *prefix; + int i; + char noarg = '?'; + + /* --- Sort out our data --- */ + + if (!data) + data = &mdwopt_global; + + /* --- See if this is the first time --- */ + + if (data->ind == 0 || (data->ind == 1 && ~flags & OPTF_NOPROGNAME)) { + + /* --- Sort out default returning order --- */ + + if (getenv("_POSIX_OPTION_ORDER") || + getenv("POSIXLY_CORRECT")) + data->order = ORD_POSIX; + else + data->order = ORD_PERMUTE; + + /* --- Now see what the caller actually wants --- */ + + switch (shortopt[0]) { + case '-': + data->order = ORD_RETURN; + break; + case '+': + data->order = ORD_POSIX; + break; + case '!': + data->order = ORD_PERMUTE; + break; + } + + /* --- Now decide on the program's name --- */ + + if (~flags & OPTF_NOPROGNAME) { + p = q = (char *)argv[0]; + while (*p) { + if (*p++ == PATHSEP) + q = p; + } + data->prog = q; + + data->ind = data->next = 1; + data->list = 0; + + /* --- See about environment variables --- * + * + * Be careful. The program may be setuid, and an attacker might have + * given us a long name in @argv[0]@. If the name is very long, don't + * support this option. + */ + + if (flags & OPTF_ENVVAR && strlen(data->prog) < 48) { + + char buf[64]; + + /* --- For RISC OS, support a different format --- * + * + * Acorn's RISC OS tends to put settings in variables named + * `App$Options' rather than `APP'. Under RISC OS, I'll support + * both methods, just to avoid confuddlement. + */ + + #ifdef __riscos + sprintf(buf, "%s$Options", data->prog); + p = getenv(buf); + if (!p) { + #endif + + p = buf; + q = data->prog; + while (*q) + *p++ = toupper(*q++); + *p++ = 0; + p = getenv(buf); + + #ifdef __riscos + } + #endif + + /* --- Copy the options string into a buffer --- */ + + if (p) { + q = malloc(strlen(p) + 1); + if (!q) { + fprintf(stderr, + "%s: Not enough memory to read settings in " + "environment variable\n", + data->prog); + } else { + strcpy(q, p); + data->ind = -1; + data->env = data->estart = q; + } + } + + } + } + else + data->ind = data->next = 0; + } + + /* --- Do some initial bodgery --- * + * + * The @shortopt@ string can have some interesting characters at the + * beginning. We'll skip past them. + */ + + switch (shortopt[0]) { + case '+': + case '-': + case '!': + shortopt++; + break; + } + + if (shortopt[0] == ':') { + noarg = shortopt[0]; + shortopt++; + } + + if (longind) + *longind = -1; + data->opt = -1; + data->arg = 0; + + /* --- Now go off and search for an option --- */ + + if (!data->list || !*data->list) { + data->order &= 3; /* Clear negation flag */ + + /* --- Now we need to find the next option --- * + * + * Exactly how we do this depends on the settings of the order variable. + * We identify options as being things starting with `%|-|%', and which + * aren't equal to `%|-|%' or `%|--|%'. We'll look for options until: + * + * * We find something which isn't an option AND @order == ORD_POSIX@ + * * We find a `%|--|%' + * * We reach the end of the list + * + * There are some added little wrinkles, which we'll meet as we go. + */ + + for (;;) { + p = nextword(argc, argv, data); + if (!p) + return (EOF); + + /* --- See if we've found an option --- */ + + if ((p[0] == '-' || (p[0] == '+' && flags & OPTF_NEGATION)) && + p[1] != 0) { + if (strcmp(p, "--") == 0) { + permute(argv, data); + return (EOF); + } + break; + } + + /* --- Figure out how to proceed --- */ + + switch (data->order & 3) { + case ORD_POSIX: + return (EOF); + break; + case ORD_PERMUTE: + break; + case ORD_RETURN: + permute(argv, data); + data->arg = p; + return (0); + } + } + + /* --- We found an option --- */ + + permute(argv, data); + + /* --- Check for a numeric option --- * + * + * We only check the first character (or the second if the first is a + * sign). This ought to be enough. + */ + + if (flags & OPTF_NUMBERS && (p[0] == '-' || flags & OPTF_NEGNUMBER)) { + if (((p[1] == '+' || p[1] == '-') && isdigit((unsigned char)p[2])) || + isdigit((unsigned char)p[1])) { + data->opt = strtol(p + 1, &data->arg, 10); + while (isspace((unsigned char)data->arg[0])) + data->arg++; + if (!data->arg[0]) + data->arg = 0; + return (p[0] == '-' ? '#' : '#' | OPTF_NEGATED); + } + } + + /* --- Check for a long option --- */ + + if (p[0] == '+') + data->order |= ORD_NEGATE; + + if (((p[0] == '-' && p[1] == '-') || + (flags & OPTF_NOSHORTS && !findOpt(p[1], shortopt, data))) && + (~flags & OPTF_NOLONGS)) + { + int match = -1; + + if (p[0] == '+') { + data->order |= ORD_NEGATE; + p++; + prefix = "+"; + } else if (p[1] == '-') { + if ((flags & OPTF_NEGATION) && strncmp(p + 2, "no-", 3) == 0) { + p += 5; + prefix = "--no-"; + data->order |= ORD_NEGATE; + } else { + p += 2; + prefix = "--"; + } + } else { + if ((flags & OPTF_NEGATION) && strncmp(p + 1, "no-", 3) == 0) { + p += 4; + prefix = "-no-"; + data->order |= ORD_NEGATE; + } else { + p++; + prefix = "-"; + } + } + + for (i = 0; longopts[i].name; i++) { + if ((data->order & ORD_NEGATE) && + (~longopts[i].has_arg & OPTF_NEGATE)) + continue; + + r = (char *) longopts[i].name; + q = p; + for (;;) { + if (*q == 0 || *q == '=') { + if (*r == 0) { + match = i; + goto botched; + } + if (match == -1) { + match = i; + break; + } else { + match = -1; + goto botched; + } + } + else if (*q != *r) + break; + q++, r++; + } + } + + botched: + if (match == -1) { + if (data->err) { + fprintf(stderr, "%s: unrecognized option `%s%s'\n", + data->prog, + prefix, p); + } + return ('?'); + } + + if (longind) + *longind = match; + + /* --- Handle argument behaviour --- */ + + while (*p != 0 && *p != '=') + p++; + p = (*p ? p + 1 : 0); + q = (char *) longopts[match].name; + + switch (longopts[match].has_arg & OPTF_ARG) { + case OPTF_NOARG: + if (p) { + if (data->err) { + fprintf(stderr, + "%s: option `%s%s' does not accept arguments\n", + data->prog, + prefix, q); + } + return ('?'); + } + break; + + case OPTF_ARGREQ: + if (!p) { + p = nextword(argc, argv, data); + + if (!p) { + if (data->err) { + fprintf(stderr, "%s: option `%s%s' requires an argument\n", + data->prog, + prefix, q); + } + return (noarg); + } + + permute(argv, data); + } + break; + + case OPTF_ARGOPT: + /* Who cares? */ + break; + } + data->arg = p; + + /* --- Do correct things now we have a match --- */ + + if (longopts[match].flag) { + if (longopts[match].has_arg & OPTF_SWITCH) { + if (data->order & ORD_NEGATE) + *longopts[match].flag &= ~longopts[match].val; + else + *longopts[match].flag |= longopts[match].val; + } else { + if (data->order & ORD_NEGATE) + *longopts[match].flag = 0; + else + *longopts[match].flag = longopts[match].val; + } + return (0); + } else { + if (data->order & ORD_NEGATE) + return (longopts[match].val | OPTF_NEGATED); + else + return (longopts[match].val); + } + } + + /* --- Do short options things --- */ + + else { + if (p[0] == '+') + data->order |= ORD_NEGATE; + data->list = p + 1; + } + } + + /* --- Now process the short options --- */ + + i = *data->list++; + data->opt = i; + + p = (char *) findOpt(i, shortopt, data); + if (!p) { + if (data->err) { + fprintf(stderr, "%s: unknown option `%c%c'\n", + data->prog, + data->order & ORD_NEGATE ? '+' : '-', + i); + } + return ('?'); + } + + data->opt = i; + + /* --- Sort out an argument, if we expect one --- */ + + if (p[0] == ':') { + q = (data->list[0] ? data->list : 0); + data->list = 0; + if (p[1] != ':' && !q) { + + /* --- Same code as before --- */ + + q = nextword(argc, argv, data); + if (!q) { + if (data->err) { + fprintf(stderr, "%s: option `%c%c' requires an argument\n", + data->prog, + data->order & ORD_NEGATE ? '+' : '-', + i); + } + return (noarg); + } + permute(argv, data); + } + + data->arg = q; + } + return ((data->order & ORD_NEGATE) ? i | OPTF_NEGATED : i); + } + + /*----- That's all, folks -------------------------------------------------*/ diff --combined .ext/cfd/src/mdwopt.h index 0000000,ba3a024..ba3a024 mode 000000,100644..100644 --- a/.ext/cfd/src/mdwopt.h +++ b/.ext/cfd/src/mdwopt.h @@@ -1,0 -1,411 +1,411 @@@ + /* -*-c-*- + * + * Options parsing, similar to GNU @getopt_long@ + * + * (c) 1996 Straylight/Edgeware + */ + + /*----- Licensing notice --------------------------------------------------* + * + * This file is part of many programs. + * + * `mdwopt' is free software; you can redistribute it and/or modify + * it under the terms of the GNU Library General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * `mdwopt' 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 Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with `mdwopt'; if not, write to the Free + * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, + * MA 02111-1307, USA. + */ + + #ifndef MDWOPT_H + #define MDWOPT_H + + /*----- Options handling structures ---------------------------------------*/ + + #ifdef __cplusplus + extern "C" { + #endif + + /* --- @mdwopt_data@ --- * + * + * Contains all the information needed by the @mdwopt@ routine to do its + * work. Try not to use @prog@ any more. If you're using mLib, the @quis@/ + * @ego@ interface works better. + */ + + typedef struct { + + /* --- Public variables --- */ + + char *arg; /* Arg of current option, or 0 */ + int opt; /* Value of current option */ + int ind; /* 0 for init, index when done */ + int err; /* Set nonzero for error messages */ + char *prog; /* Program name (from @argv[0]@) */ + + /* --- Private variables --- * + * + * Don't play with these, please. + */ + + char *list; /* Current short options pointer */ + int next; /* Next argument, unpermuted */ + int order; /* Ordering of options, flags */ + char *env; /* Where we are in the env var */ + char *estart; /* Pointer to env var buffer */ + } + mdwopt_data; + + /*----- Global variables --------------------------------------------------*/ + + extern mdwopt_data mdwopt_global; /* The default global data */ + + /* --- For compatibility with older programs (and prettiness) --- * + * + * The macros here access the global structure defined above. I consider it + * to be perfectly acceptable to use these macros in new code, because it + * looks nicer than playing with @mdwopt_global@. + */ + + #define optarg (mdwopt_global.arg) /* Argument of current option */ + #define optopt (mdwopt_global.opt) /* Code of current option */ + #define opterr (mdwopt_global.err) /* Zero to report error messages */ + #define optind (mdwopt_global.ind) /* Index of first non-option */ + #define optprog (mdwopt_global.prog) /* Pointer to program name */ + + /*----- Type definitions --------------------------------------------------*/ + + /* --- Long options definition table --- */ + + struct option { + const char *name; /* Name of the long option */ + int has_arg; /* Does it have an argument? */ + int *flag; /* Address of flag variable */ + int val; /* Value to store/return */ + }; + + /* --- Old-style names for argument flags in long options table --- */ + + enum { + no_argument, /* No argument required */ + required_argument, /* User must specify argument */ + optional_argument /* Argument is optional */ + }; + + /* --- New style flag names --- */ + + #define OPTF_NOARG 0u /* No argument */ + #define OPTF_ARGREQ 1u /* Required argument */ + #define OPTF_ARGOPT 2u /* Optional argument */ + #define OPTF_ARG 3u /* Argument type bitmask */ + #define OPTF_SWITCH 4u /* OR val into flag, don't store */ + #define OPTF_NEGATE 8u /* Allow long option to be negated */ + + #define OPTF_NOLONGS 1u /* Don't read long options */ + #define OPTF_NOSHORTS 2u /* Don't read short options */ + #define OPTF_NUMBERS 4u /* Read numeric options */ + #define OPTF_NEGATION 8u /* Allow `%|+|%' for negations */ + #define OPTF_ENVVAR 16u /* Parse options from env var */ + #define OPTF_NOPROGNAME 32u /* Don't set @optprog@ */ + #define OPTF_NEGNUMBER 64u /* Allow negated number options */ + + #define OPTF_NEGATED 256u /* Option flag was negated by user */ + + /* --- Older new-style names --- */ + + enum { + gFlag_argReq = 1, gFlag_argOpt = 2, gFlag_switch = 4, gFlag_negate = 8 + }; + + enum { + gFlag_noLongs = 1, gFlag_noShorts = 2, gFlag_numbers = 4, + gFlag_negation = 8, gFlag_envVar = 16, gFlag_noProgName = 32, + gFlag_negNumber = 64 + }; + + enum { + gFlag_negated = 256 + }; + + /*----- Main code ---------------------------------------------------------*/ + + /* --- @mdwopt@ --- * + * + * Arguments: @int argc@ = number of command line arguments + * @char * const *argv@ = pointer to command line arguments + * @const char *shortopt@ = pointer to short options information + * @const struct option *longopts@ = pointer to long opts info + * @int *longind@ = where to store matched longopt + * @mdwopt_data *data@ = persistent state for the parser + * @int flags@ = various useful flags + * + * Returns: Value of option found next, or an error character, or + * @EOF@ for the last thing. + * + * Use: Reads options. The routine should be more-or-less compatible + * with standard getopts, although it provides many more + * features even than the standard GNU implementation. + * + * The precise manner of options parsing is determined by + * various flag settings, which are described below. By setting + * flag values appropriately, you can achieve behaviour very + * similar to most other getopt routines. + * + * + * How options parsing appears to users + * + * A command line consists of a number of `words' (which may + * contain spaces, according to various shell quoting + * conventions). A word may be an option, an argument to an + * option, or a non-option. An option begins with a special + * character, usually `%|-|%', although `%|+|%' is also used + * sometimes. As special exceptions, the word containing only a + * `%|-|%' is considered to be a non-option, since it usually + * represents standard input or output as a filename, and the + * word containing a double-dash `%|--|%' is used to mark all + * following words as being non-options regardless of their + * initial character. + * + * Traditionally, all words after the first non-option have been + * considered to be non-options automatically, so that options + * must be specified before filenames. However, this + * implementation can extract all the options from the command + * line regardless of their position. This can usually be + * disabled by setting one of the environment variables + * `%|POSIXLY_CORRECT|%' or `%|_POSIX_OPTION_ORDER|%'. + * + * There are two different styles of options: `short' and + * `long'. + * + * Short options are the sort which Unix has known for ages: an + * option is a single letter, preceded by a `%|-|%'. Short + * options can be joined together to save space (and possibly to + * make silly words): e.g., instead of giving options + * `%|-x.-y|%', a user could write `%|-xy|%'. Some short + * options can have arguments, which appear after the option + * letter, either immediately following, or in the next `word' + * (so an option with an argument could be written as + * `%|-o foo|%' or as `%|-ofoo|%'). Note that options with + * optional arguments must be written in the second style. + * + * When a short option controls a flag setting, it is sometimes + * possible to explicitly turn the flag off, as well as turning + * it on, (usually to override default options). This is + * usually done by using a `%|+|%' instead of a `%|-|%' to + * introduce the option. + * + * Long options, as popularized by the GNU utilities, are given + * long-ish memorable names, preceded by a double-dash `%|--|%'. + * Since their names are more than a single character, long + * options can't be combined in the same way as short options. + * Arguments to long options may be given either in the same + * `word', separated from the option name by an equals sign, or + * in the following `word'. + * + * Long option names can be abbreviated if necessary, as long + * as the abbreviation is unique. This means that options can + * have sensible and memorable names but still not require much + * typing from an experienced user. + * + * Like short options, long options can control flag settings. + * The options to manipulate these settings come in pairs: an + * option of the form `%|--set-flag|%' might set the flag, while + * an option of the form `%|--no-set-flag|%' might clear it. + * + * It is usual for applications to provide both short and long + * options with identical behaviour. Some applications with + * lots of options may only provide long options (although they + * will often be only two or three characters long). In this + * case, long options can be preceded with a single `%|-|%' + * character, and negated by a `%|+|%' character. + * + * Finally, some (older) programs accept arguments of the form + * `%%@.{"-"}%%', to set some numerical parameter, + * typically a line count of some kind. + * + * + * How programs parse options + * + * An application parses its options by calling mdwopt + * repeatedly. Each time it is called, mdwopt returns a value + * describing the option just read, and stores information about + * the option in a data block. The value %$-1$% is returned + * when there are no more options to be read. The `%|?|%' + * character is returned when an error is encountered. + * + * Before starting to parse options, the value @data->ind@ must + * be set to 0 or 1. The value of @data->err@ can also be set, + * to choose whether errors are reported by mdwopt. + * + * The program's `@argc@' and `@argv@' arguments are passed to + * the options parser, so that it can read the command line. A + * flags word is also passed, allowing the program fine control + * over parsing. The flags are described above. + * + * Short options are described by a string, which once upon a + * time just contained the permitted option characters. Now the + * options string begins with a collection of flag characters, + * and various flag characters can be put after options + * characters to change their properties. + * + * If the first character of the short options string is + * `%|+|%', `%|-|%' or `%|!|%', the order in which options are + * read is modified, as follows: + * + * `%|+|%' forces the POSIX order to be used. As soon as a non- + * option is found, mdwopt returns %$-1$%. + * + * `%|-|%' makes mdwopt treat non-options as being `special' + * sorts of option. When a non-option word is found, the + * value 0 is returned, and the actual text of the word + * is stored as being the option's argument. + * + * `%|!|%' forces the default order to be used. The entire + * command line is scanned for options, which are + * returned in order. However, during this process, + * the options are moved in the @argv@ array, so that + * they appear before the non- options. + * + * A `%|:|%' character may be placed after the ordering flag (or + * at the very beginning if no ordering flag is given) which + * indicates that the character `%|:|%', rather than `%|?|%', + * should be returned if a missing argument error is detected. + * + * Each option in the string can be followed by a `%|+|%' sign, + * indicating that it can be negated, a `%|:|%' sign indicating + * that it requires an argument, or a `%|::|%' string, + * indicating an optional argument. Both `%|+|%' and `%|:|%' or + * `%|::|%' may be given, although the `%|+|%' must come first. + * + * If an option is found, the option character is returned to + * the caller. A pointer to an argument is stored in + * @data->arg@, or @NULL@ is stored if there was no argument. + * If a negated option was found, the option character is + * returned ORred with @OPTF_NEGATED@ (bit 8 set). + * + * Long options are described in a table. Each entry in the + * table is of type @struct option@, and the table is terminated + * by an entry whose @name@ field is null. Each option has + * a flags word which, due to historical reasons, is called + * @has_arg@. This describes various properties of the option, + * such as what sort of argument it takes, and whether it can + * be negated. + * + * When mdwopt finds a long option, it looks the name up in the + * table. The index of the matching entry is stored in the + * @longind@ variable, passed to mdwopt (unless @longind@ is 0): + * a value of %$-1$% indicates that no long option was + * found. The behaviour is then dependent on the values in the + * table entry. If @flag@ is nonzero, it points to an integer + * to be modified by mdwopt. Usually the value in the @val@ + * field is simply stored in the @flag@ variable. If the flag + * @OPTF_SWITCH@ is set, however, the value is combined with + * the existing value of the flags using a bitwise OR. If + * @OPTF_NEGATE@ is set, then the flag bit will be cleared if a + * matching negated long option is found. The value 0 is + * returned. + * + * If @flag@ is zero, the value in @val@ is returned by mdwopt, + * possibly with bit 8 set if the option was negated. + * + * Arguments for long options are stored in @data->arg@, as + * before. + * + * Numeric options, if enabled, cause the value `%|#|%' to be + * returned, and the numeric value to be stored in @data->opt@. + * + * If the flag @OPTF_ENVVAR@ is set on entry, options will be + * extracted from an environment variable whose name is built by + * capitalizing all the letters of the program's name. (This + * allows a user to have different default settings for a + * program, by calling it through different symbolic links.) + */ + + extern int mdwopt(int /*argc*/, char *const */*argv*/, + const char */*shortopt*/, + const struct option */*longopts*/, int */*longind*/, + mdwopt_data */*data*/, int /*flags*/); + + /* --- Macros for more commonly used routines --- */ + + #define getopt(c, v, o) mdwopt(c, v, o, 0, 0, 0, OPTF_NOLONGS) + #define getopt_long(c, v, o, l, li) mdwopt(c, v, o, l, li, 0, 0) + #define getopt_long_only(c, v, o, l, li) \ + mdwopt(c, v, o, l, li, 0, OPTF_NOSHORTS) + + #ifdef __cplusplus + } + #endif + + /*----- C++ wrapper class -------------------------------------------------*/ + + #ifdef __cplusplus + + /* --- Class: @MdwOpt@ --- * + * + * Parent: --- + * + * Methods: @MdwOpt@ -- construct a new mdwopt object with the given + * arguments. These are remembered for later use. + * @arg@ -- return the argument of the current option + * arguments. These are remembered for later use. + * @arg@ -- return the argument of the current option + * @opt@ -- return the value of the current option + * @ind@ -- return the index of the next unread argument + * @longind@ -- return index of current long option in table + * @errors@ -- return or set whether we report errors to the + * user + * @prog@ -- return program name from @argv[0]@ + * @next@ -- return next option read from the table + * + * Use: A simple C++ class for encapsulating the options parser. + * The methods are all nice and simple, and extremely similar + * to the normal C interface described above. + */ + + class MdwOpt { + protected: + int argc; + char * const *argv; + const char *shortopts; + const struct option *longopts; + int long_ind; + int flags; + + mdwopt_data data; + + public: + MdwOpt(int c, char * const *v, const char *so, + const struct option *lo, int f=0) : + argc(c), argv(v), shortopts(so), longopts(lo), flags(f) { + data.ind = 0; + data.err = 1; + } + + const char *arg(void) const { return (data.arg); } + int opt(void) const { return (data.opt); } + int errors(void) const { return (data.err); } + int errors(int e) { int oe = data.err; data.err = e; return (oe); } + int ind(void) const { return (data.ind); } + int longind(void) const { return (long_ind); } + const char *prog(void) const { return (data.prog); } + + int next(void) { + return (mdwopt(argc, argv, shortopts, + longopts, &long_ind, &data, flags)); + } + }; + + #endif + + /*----- That's all, folks -------------------------------------------------*/ + + #endif