From 05c57847b2eb173e5f3934b74f0d1a5e3ed3d783 Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Mon, 30 Nov 2015 15:00:04 +0100 Subject: move info/ to doc/info MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- info/cmdipc.texinfo | 724 ---------------------------------------------------- info/fdl.texinfo | 505 ------------------------------------ 2 files changed, 1229 deletions(-) delete mode 100644 info/cmdipc.texinfo delete mode 100644 info/fdl.texinfo (limited to 'info') diff --git a/info/cmdipc.texinfo b/info/cmdipc.texinfo deleted file mode 100644 index 1ab3c22..0000000 --- a/info/cmdipc.texinfo +++ /dev/null @@ -1,724 +0,0 @@ -\input texinfo @c -*-texinfo-*- - -@c %**start of header -@setfilename cmdipc.info -@settitle cmdipc -@afourpaper -@documentencoding UTF-8 -@documentlanguage en -@finalout -@c %**end of header - - -@dircategory Interprocess communication -@direntry -* cmdipc: (cmdipc). System V and POSIX IPC from the command line -@end direntry - - -@copying -Copyright @copyright{} 2014 Mattias Andrée - -@quotation -Permission is granted to copy, distribute and/or modify this document -under the terms of the GNU Free Documentation License, Version 1.3 or -any later version published by the Free Software Foundation; with no -Invariant Sections, with no Front-Cover Texts, and with no Back-Cover -Texts. A copy of the license is included in the section entitled -``GNU Free Documentation License''. -@end quotation -@end copying - -@ifnottex -@node Top -@top cmdipc -- System V and POSIX IPC from the command line -@insertcopying -@end ifnottex - -@titlepage -@title cmdipc -@subtitle System V and POSIX IPC from the command line -@author by Mattias Andrée (maandree) - -@page -@c @center `' -@vskip 0pt plus 1filll -@insertcopying -@end titlepage - -@contents - - - -@menu -* Overview:: Brief overview of @command{cmdipc}. -* Invoking:: Invocation of @command{cmdipc}. -* Message Queues:: Using message queue -* Semaphores:: Using semaphores -* Shared Memory:: Using shared memory -* Mutexes:: Using mutual exclusives -* Conditions:: Using conditions -* Barriers:: Using barriers -* Shared Locks:: Using shared locks -* Rendezvous:: Using rendezvous -* GNU Free Documentation License:: Copying and sharing this manual. -@end menu - - - -@node Overview -@chapter Overview - -System V and POSIX interprocess communication -from the command line. In addition to the primities -shared memory, message queue and semaphores, this -tool can from these primitives construct mutexes, -conditions, barriers, shared locks and rendezvous. - - - -@node Invoking -@chapter Invoking - -@command{cmdipc} have support for eight types -of interprocess communication units: message -queues, semaphores, shared memory, mutexes -@footnote{Because of the nature of this program, -mutexes are a bit degraded.}, conditions, -barrers, shared locks and rendezvous. These -are constructed from either the three System V -interprocess communication primitives: message -queues, semaphores and shared memory, or their -POSIX variants. The type of interprocess -communication unit to use is selected by the -follow options, to use the POSIX variant rather -than the System V variant add the option -@option{-P} (@option{--posix}). - -@table @option -@item -Q -@itemx --mqueue -Message queue. - -@item -S -@itemx --semaphore -Semaphore. - -@item -M -@itemx --shm -Shared memory. - -@item -X -@itemx --mutex -Mutually exclusive. (Mutex) - -@item -C -@itemx --condition -Condition. - -@item -B -@itemx --barrier -Barrier. - -@item -L -@itemx --shared-lock -Shared lock. - -@item -R -@itemx --rendezvous -Rendezvous. -@end table - -To specify which instance of a unit to use, -specify its key (not ID) with the @option{-k} -(@option{--key}) option. If you do not have -a key, your only option is to create one, but -you can still create a unit with a specified -key. To create a unit use the option @option{-c} -(@option{--create}), this will be successful -even if the key is already in use, in which -case the unit will simply be opened. To fail -if the key is already in use, use the option -@option{-x} (@option{--exclusive}). @option{-x} -can be used with or without @option{-c}, it -is interpretation will does not depend on -@option{-c}, @option{-c} is implied by -@option{-x}. To remove a key, use the option -@option{-r} (@option{--remove}). - -There are two additional options that are -recognised. These cannot be used with any -other optios. - -@table @option -@item -h -@itemx --help -Print a list of all options. - -@item -f -@itemx --ftok PATHNAME ID -Print a key derived from an existing -file and a project ID. The project ID -is a integer between the values 0 and -255, inclusively. The derived key is -probable to be non-unique. This is a -System V IPC function, and is not -available, and are not necessary, for -POSIX IPC. -@end table - -The following options are recognised -for interprocess communication units. - -@table @option -@item -n -@itemx --nonblocking -Fail with exit value 2 if the unit -is currently occupied and cannot be -used without waiting. -Not available for shared memory. - -@item -b -@itemx --timeout SECONDS -Not available for shared memory. -Fail with exit value 2 if the unit -is currently occupied and cannot be -used without waiting for at most -@code{SECONDS} seconds. - -For a non primitive unit, the -time to live is reset when it enters -its next state. This could mean -that it could timeout anywhere -between the specifed time and -n times the specifed time when -n is the number of steps in the -action that can block, which with -the current units is at most 3. - -@item -m -@itemx --mode OCTAL -Permission bits for the created -unit. -@end table - - - - -@node Message Queues -@chapter Message Queues - -Message queues are primitives and play well -with other programs. Use of message queues -are indicated by the @option{-Q} option. -Message queues is a way to send short messages -between program. - -The key for a System V message queue is an -integer, and the key for a POSIX message queue -is an ASCII string with NUL or slash between -1 character and 254 characters long prefixed -with a slash. - -Recognised options for System V message queues: - -@table @option -@item -s -@itemx --size SIZE -The size of the queue. This is the total -length of all message that can be fit into -the queue before it starts blocking. - -@item -t -@itemx --type TYPE -When sending, a positive integer of the -type associated with the message. - -When receiving, this allows you to -control which types of messages are -received. Zero means that any type is -accepted, a positive value means that -only the indicated type is allowed. -If the value is negative, the first -message of the lowest type that is -at most the absolute value of the -specifed value is received. -@end table - -Recognised options for POSIX message queues: - -@table @option -@item -s -@itemx --size SIZE -The maximum size of messages in the queue. - -@item -z -@itemx --spool SIZE -The size of the queue. This is the number -of messages that can be fit into the queue -before it starts blocking. - -@item -p -@itemx --priority NASTYNESS -The priority allows you to order messages -in the queue. The highest priority message -is received first. By default, messages -are sent at the lowest priority, that is -zero. -@end table - -To receive a message, add the verb -@option{receive}. To send a message, -add the verb @option{send} followed -by the message to send. - - - -@node Semaphores -@chapter Semaphores - -Semaphores are primitives and play well -with other programs. Use of semaphores -are indicated by the @option{-S} option. -Semaphores are primitive concurrency units -that be used for many different things. -Basically, a semaphore is an atomic counter -that is never allowed to go below zero. - -The key for a System V semaphores is an -integer, and the key for a POSIX semaphores -is an ASCII string with NUL or slash between -1 character and 254 characters long prefixed -with a slash. - -The following options are recognised -for semaphores: - -@table @option -@item -i -@itemx --initial VALUE -You can select the value a semaphore should -have when it is created. By default the value -is zero. - -@item -d -@itemx --delta DIFFERENCE -When increasing or decreasing the value of -the semaphore @option{--delta} can be used -to select how much the value should change -with. By default this is 1. Semaphores are -atomic, you are guaranteed to either change -the value exactly as much as specified or -not all at. -@end table - -The verbs @option{v} and @option{p} are -used to increase or decrease the value of -the semaphore, respectively. You can also -set the exact value of the semaphore with -the @option{set} verb which should be -followed directly by the desired value. -To read the current value use the verb -@option{read}. @option{p} will block if -the value of the semaphore would otherwise -go below zero. You can also wait for the -value of the semaphore to reach zero -by using the @option{z} verb. POSIX -semaphores does not have built in support -for @option{z}, therefore when POSIX -semaphores are used, the semaphore will -be used as a spinlock. Keep in mind that -spinlock are often suboptimal and it can -miss that the semaphore's value reaches -zero if it for a very short amount of -time. - - - -@node Shared Memory -@chapter Shared Memory - -Shared memory are primitives and play well -with other programs. Use of shared memory -are indicated by the @option{-M} option. -Shared memory is a form of abstract file -that can be used to store raw data between -programs. It is highly recommended to create -shared memory before any program starts -using it. - -The key for a System V shared memory is an -integer, and the key for a POSIX shared memory -is an ASCII string with NUL or slash between -1 character and 254 characters long prefixed -with a slash. - -The following options are recognised -for shared memory: - -@table @option -@item -s -@itemx --size -When you create a shared memory you -most specify how large, in bytes, the -memory allocation should be. KB, MB, -etc. are not recognised, only bytes. - -@item -l -@itemx --length -When you read shared memory you can -specift how many bytes should be read. -If this is left unspecified the entire -shared memory, starting at the the -selected offset, will be read. - -@item -o -@itemx --offset -When reading and writing shared memory, -you specify how many bytes into the -memory that the reading or writing should -take place. By default the offset is zero. -@end table - -To read the shared memory, use the verb -@option{read}. To write, use the verb -@option{write} followed by the data to -write to the memory. - - - -@node Mutexes -@chapter Mutexes - -Mutexes are implemented using semaphores. -Actually, because of inherit limitations, -mutexes are binary semaphores. These are -fairly primitive and should hopefully -interoperate nicely with other programs. -A mutex, with the limitations we have, -is a construct that lets you enter are -guarded state that not be entered again, -even recursively, before it has been left. -Use of mutexes are indicated by the -@option{-X} option. - -The key for a ``System V'' mutex is an -integer, and the key for a ``POSIX'' mutex -is an ASCII string with NUL or slash between -1 character and 254 characters long prefixed -with a slash. - -To enter a guarded state with a mutex, -use the verb @option{enter}. Then leave -it with @option{leave}. - -@* -@cartouche -@example -create: - s := S(1) - -enter: - P(s) - -leave: - V(s) -@end example -@end cartouche - - - -@node Conditions -@chapter Conditions - -A condition is a mutex with support for -signalling. They are implemented using -three semaphores. Just like with mutexes, -you enter and leave guarded states with -conditions. But conditions also allow -to temporarily leave this state and -wait for a signal continue and the -re-enter the guarded state when it is -not occupied. A signal, called -notification, can only be sent from -within a guarded state. -Use of conditions are indicated by the -@option{-C} option. - -The key for a ``System V'' condition is a -integer-trio delimited by full stops. The -key for a ``POSIX'' condition is a -juxtaposition of three ASCII strings: -no NUL or slash, between 1 character and -254 characters long, and prefixed with a -slash. - -To enter a guarded state with a condition, -use the verb @option{enter}. Then leave -it with @option{leave}. The verbs -@option{wait}, @option{notify} and -@option{broadcast} can only be used -after @option{enter} has been used but -before @option{leave}. @option{wait} -temporarily leaves the guarded state -and wait for a notification. A notification -can be sent with @option{notify}. -@option{notify} will send a notify to -exactly one waiting peer. If there is -not peer waiting, the notification will -be stored for the next time @option{wait} -is used. @option{notify} cannot block. -If you want to send a signal to currently -waiting peers you can instead use the -verb @option{broadcast}. Alternatively -you can use @option{notify all} (two -command line arguments) perform a -@option{broadcast} if there are any -waiting peers, and otherwise @option{wait}. - -@* -@cartouche -@example -create: - (s, c, q) := (S(1), S(0), S(0)) - -enter: - P(s) - -leave: - V(s) - -wait: - V(s), V(c), P(q), P(c), P(s) - -notify: - V(q) - -broadcast: - c.value times: - V(q) - -notify all: - max(c.value, 1) times: - V(q) -@end example -@end cartouche - - - -@node Barriers -@chapter Barriers - -A barrier is a synchronisation primitive -that can be used to make sure the a number -of process continue their work at the same -time and do not fall out of sync with -eachother. A barrier blocks until a select -number of processes have reached it and the -lets all of those processes continue. It -does only have one verb: @option{enter}. -The threshold, that is the number of -process that are synchronised, is specified -by the first non-option argument. If -@option{enter} is used, the threshold is -specified before @option{enter}. The -threshold most be specified both at -construction and at usage. -Use of barriers are indicated by the -@option{-B} option. - -A ``System V'' barrier is constructed from -two semaphores. A ``POSIX'' barrier is -constructed from three semaphores. This -difference is due to the lack of the -@code{Z} for POSIX semaphores. - -The key for a ``System V'' barrier is -a integer-duo delimited by a full stop. -The key for a ``POSIX'' barrier is a -juxtaposition of three ASCII strings: -no NUL or slash, between 1 character and -254 characters long, and prefixed with a -slash. - -@* -@cartouche -@example -[sysv] create: - (s, mm c) := (S(threshold), S(1), S(0)) - -[sysv] enter: - P(s), Z(s) - P(m), V(c) - if c.value = threshold: - s.value := threshold - c.value := 0 - V(m) - -[posix] create: - (x, c, q) := (S(1), S(0), S(0)) - -[posix] enter: - P(x), V(c) - if c.value = threshold: - V(q, delta = threshold - 1) - c.value := 0 - V(x) - else: - V(x), P(q) -@end example -@end cartouche - - - -@node Shared Locks -@chapter Shared Locks - -A shared lock is a mutex support for -two types of locks: shared and exclusive. -They are implemented using three semaphores. -Mutexes are can be reduced from shared lock -by only using exclusive locking. Exclusive -locking allows only on program to enter -a guarded state. Shared locks introduce -shared locking works the same why but any -number of programs can be in this state -concurrently. The purpose of the shared -locking is to block exclusive locking. -If you for example are reading and writing -to a file or shared memory, you would -apply an exclusive lock if you want to -be able to modify the content of the -memory and a shared lock if you only -which to be able to read it. This -guarantees both that two processes will -edit the memory at the same time and -cause corruption, and that not process -will modify the memory while another -process is reading it, while allowing -multiple processes to read the memory -at the same time. -Use of shared locks are indicated by the -@option{-L} option. - -The key for a ``System V'' shared lock is -a integer-trio delimited by full stops. -The key for a ``POSIX'' shared lock is a -juxtaposition of three ASCII strings: -no NUL or slash, between 1 character and -254 characters long, and prefixed with a -slash. - -There are four verbs for shared locks: - -@table @option -@item shared lock -Apply shared locking. - -@item exclusive lock -Apply exclusive locking. - -@item shared unlock -Release shared locking. - -@item exclusive unlock -Release exclusive locking. -@* -@end table - -@cartouche -@example -create: - (x, s, m) := (S(1), S(0), S(1)) - -shared lock: - P(m) - if s.value = 0: - P(x) - V(s), V(m) - -exclusive lock: - P(x) - -shared unlock: - P(m), P(s) - if s.value = 0: - V(x) - V(m) - -exclusive unlock: - V(x) -@end example -@end cartouche - - - -@node Rendezvous -@chapter Rendezvous - -A rendezvous is like barrier, except it -is fixed to synchronising two processes. -When two processes meet at a rendezvous -they exchange a message with eachother. -Use of rendezvous are indicated by the -@option{-R} option. @option{-R} inherits -the @option{-s} and @option{-z} options -from @option{-Q}. - -A ``System V'' rendezvous is constructed -from two semaphores and one message queue. -A ``POSIX'' rendezvous is constructed from -three semaphores and one message queue. -This difference is due to POSIX message -queues having priorities instead of types -for messages. - -The key for a ``System V'' rendezvous is -a integer-trio delimited by full stops. -The key for a ``POSIX'' shared lock is a -juxtaposition of four ASCII strings: -no NUL or slash, between 1 character and -254 characters long, and prefixed with a -slash. - -@* -@cartouche -@example -[sysv] create: - (m, i, q) := (S(1), S(0), M()) - -[sysv] enter: - P(m) - if i.value = 0: - V(i), V(m) - send(q, type = 1) - receive(q, type = 2) - else: - P(i), V(m) - receive(q, type = 1) - send(q, type = 2) - -[posix] create: - (m, i, p, q) := (S(1), S(0), S(0), M()) - -[posix] enter: - P(m) - if i.value = 0: - V(i), V(m) - send(q), P(p) - receive(q) - else: - P(i), V(m) - receive(q), V(p) - send(q) -@end example -@end cartouche - - - -@node GNU Free Documentation License -@appendix GNU Free Documentation License -@include fdl.texinfo - -@bye - diff --git a/info/fdl.texinfo b/info/fdl.texinfo deleted file mode 100644 index cb71f05..0000000 --- a/info/fdl.texinfo +++ /dev/null @@ -1,505 +0,0 @@ -@c The GNU Free Documentation License. -@center Version 1.3, 3 November 2008 - -@c This file is intended to be included within another document, -@c hence no sectioning command or @node. - -@display -Copyright @copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. -@uref{http://fsf.org/} - -Everyone is permitted to copy and distribute verbatim copies -of this license document, but changing it is not allowed. -@end display - -@enumerate 0 -@item -PREAMBLE - -The purpose of this License is to make a manual, textbook, or other -functional and useful document @dfn{free} in the sense of freedom: to -assure everyone the effective freedom to copy and redistribute it, -with or without modifying it, either commercially or noncommercially. -Secondarily, this License preserves for the author and publisher a way -to get credit for their work, while not being considered responsible -for modifications made by others. - -This License is a kind of ``copyleft'', which means that derivative -works of the document must themselves be free in the same sense. It -complements the GNU General Public License, which is a copyleft -license designed for free software. - -We have designed this License in order to use it for manuals for free -software, because free software needs free documentation: a free -program should come with manuals providing the same freedoms that the -software does. But this License is not limited to software manuals; -it can be used for any textual work, regardless of subject matter or -whether it is published as a printed book. We recommend this License -principally for works whose purpose is instruction or reference. - -@item -APPLICABILITY AND DEFINITIONS - -This License applies to any manual or other work, in any medium, that -contains a notice placed by the copyright holder saying it can be -distributed under the terms of this License. Such a notice grants a -world-wide, royalty-free license, unlimited in duration, to use that -work under the conditions stated herein. The ``Document'', below, -refers to any such manual or work. Any member of the public is a -licensee, and is addressed as ``you''. You accept the license if you -copy, modify or distribute the work in a way requiring permission -under copyright law. - -A ``Modified Version'' of the Document means any work containing the -Document or a portion of it, either copied verbatim, or with -modifications and/or translated into another language. - -A ``Secondary Section'' is a named appendix or a front-matter section -of the Document that deals exclusively with the relationship of the -publishers or authors of the Document to the Document's overall -subject (or to related matters) and contains nothing that could fall -directly within that overall subject. (Thus, if the Document is in -part a textbook of mathematics, a Secondary Section may not explain -any mathematics.) The relationship could be a matter of historical -connection with the subject or with related matters, or of legal, -commercial, philosophical, ethical or political position regarding -them. - -The ``Invariant Sections'' are certain Secondary Sections whose titles -are designated, as being those of Invariant Sections, in the notice -that says that the Document is released under this License. If a -section does not fit the above definition of Secondary then it is not -allowed to be designated as Invariant. The Document may contain zero -Invariant Sections. If the Document does not identify any Invariant -Sections then there are none. - -The ``Cover Texts'' are certain short passages of text that are listed, -as Front-Cover Texts or Back-Cover Texts, in the notice that says that -the Document is released under this License. A Front-Cover Text may -be at most 5 words, and a Back-Cover Text may be at most 25 words. - -A ``Transparent'' copy of the Document means a machine-readable copy, -represented in a format whose specification is available to the -general public, that is suitable for revising the document -straightforwardly with generic text editors or (for images composed of -pixels) generic paint programs or (for drawings) some widely available -drawing editor, and that is suitable for input to text formatters or -for automatic translation to a variety of formats suitable for input -to text formatters. A copy made in an otherwise Transparent file -format whose markup, or absence of markup, has been arranged to thwart -or discourage subsequent modification by readers is not Transparent. -An image format is not Transparent if used for any substantial amount -of text. A copy that is not ``Transparent'' is called ``Opaque''. - -Examples of suitable formats for Transparent copies include plain -ASCII without markup, Texinfo input format, La@TeX{} input -format, SGML or XML using a publicly available -DTD, and standard-conforming simple HTML, -PostScript or PDF designed for human modification. Examples -of transparent image formats include PNG, XCF and -JPG. Opaque formats include proprietary formats that can be -read and edited only by proprietary word processors, SGML or -XML for which the DTD and/or processing tools are -not generally available, and the machine-generated HTML, -PostScript or PDF produced by some word processors for -output purposes only. - -The ``Title Page'' means, for a printed book, the title page itself, -plus such following pages as are needed to hold, legibly, the material -this License requires to appear in the title page. For works in -formats which do not have any title page as such, ``Title Page'' means -the text near the most prominent appearance of the work's title, -preceding the beginning of the body of the text. - -The ``publisher'' means any person or entity that distributes copies -of the Document to the public. - -A section ``Entitled XYZ'' means a named subunit of the Document whose -title either is precisely XYZ or contains XYZ in parentheses following -text that translates XYZ in another language. (Here XYZ stands for a -specific section name mentioned below, such as ``Acknowledgements'', -``Dedications'', ``Endorsements'', or ``History''.) To ``Preserve the Title'' -of such a section when you modify the Document means that it remains a -section ``Entitled XYZ'' according to this definition. - -The Document may include Warranty Disclaimers next to the notice which -states that this License applies to the Document. These Warranty -Disclaimers are considered to be included by reference in this -License, but only as regards disclaiming warranties: any other -implication that these Warranty Disclaimers may have is void and has -no effect on the meaning of this License. - -@item -VERBATIM COPYING - -You may copy and distribute the Document in any medium, either -commercially or noncommercially, provided that this License, the -copyright notices, and the license notice saying this License applies -to the Document are reproduced in all copies, and that you add no other -conditions whatsoever to those of this License. You may not use -technical measures to obstruct or control the reading or further -copying of the copies you make or distribute. However, you may accept -compensation in exchange for copies. If you distribute a large enough -number of copies you must also follow the conditions in section 3. - -You may also lend copies, under the same conditions stated above, and -you may publicly display copies. - -@item -COPYING IN QUANTITY - -If you publish printed copies (or copies in media that commonly have -printed covers) of the Document, numbering more than 100, and the -Document's license notice requires Cover Texts, you must enclose the -copies in covers that carry, clearly and legibly, all these Cover -Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on -the back cover. Both covers must also clearly and legibly identify -you as the publisher of these copies. The front cover must present -the full title with all words of the title equally prominent and -visible. You may add other material on the covers in addition. -Copying with changes limited to the covers, as long as they preserve -the title of the Document and satisfy these conditions, can be treated -as verbatim copying in other respects. - -If the required texts for either cover are too voluminous to fit -legibly, you should put the first ones listed (as many as fit -reasonably) on the actual cover, and continue the rest onto adjacent -pages. - -If you publish or distribute Opaque copies of the Document numbering -more than 100, you must either include a machine-readable Transparent -copy along with each Opaque copy, or state in or with each Opaque copy -a computer-network location from which the general network-using -public has access to download using public-standard network protocols -a complete Transparent copy of the Document, free of added material. -If you use the latter option, you must take reasonably prudent steps, -when you begin distribution of Opaque copies in quantity, to ensure -that this Transparent copy will remain thus accessible at the stated -location until at least one year after the last time you distribute an -Opaque copy (directly or through your agents or retailers) of that -edition to the public. - -It is requested, but not required, that you contact the authors of the -Document well before redistributing any large number of copies, to give -them a chance to provide you with an updated version of the Document. - -@item -MODIFICATIONS - -You may copy and distribute a Modified Version of the Document under -the conditions of sections 2 and 3 above, provided that you release -the Modified Version under precisely this License, with the Modified -Version filling the role of the Document, thus licensing distribution -and modification of the Modified Version to whoever possesses a copy -of it. In addition, you must do these things in the Modified Version: - -@enumerate A -@item -Use in the Title Page (and on the covers, if any) a title distinct -from that of the Document, and from those of previous versions -(which should, if there were any, be listed in the History section -of the Document). You may use the same title as a previous version -if the original publisher of that version gives permission. - -@item -List on the Title Page, as authors, one or more persons or entities -responsible for authorship of the modifications in the Modified -Version, together with at least five of the principal authors of the -Document (all of its principal authors, if it has fewer than five), -unless they release you from this requirement. - -@item -State on the Title page the name of the publisher of the -Modified Version, as the publisher. - -@item -Preserve all the copyright notices of the Document. - -@item -Add an appropriate copyright notice for your modifications -adjacent to the other copyright notices. - -@item -Include, immediately after the copyright notices, a license notice -giving the public permission to use the Modified Version under the -terms of this License, in the form shown in the Addendum below. - -@item -Preserve in that license notice the full lists of Invariant Sections -and required Cover Texts given in the Document's license notice. - -@item -Include an unaltered copy of this License. - -@item -Preserve the section Entitled ``History'', Preserve its Title, and add -to it an item stating at least the title, year, new authors, and -publisher of the Modified Version as given on the Title Page. If -there is no section Entitled ``History'' in the Document, create one -stating the title, year, authors, and publisher of the Document as -given on its Title Page, then add an item describing the Modified -Version as stated in the previous sentence. - -@item -Preserve the network location, if any, given in the Document for -public access to a Transparent copy of the Document, and likewise -the network locations given in the Document for previous versions -it was based on. These may be placed in the ``History'' section. -You may omit a network location for a work that was published at -least four years before the Document itself, or if the original -publisher of the version it refers to gives permission. - -@item -For any section Entitled ``Acknowledgements'' or ``Dedications'', Preserve -the Title of the section, and preserve in the section all the -substance and tone of each of the contributor acknowledgements and/or -dedications given therein. - -@item -Preserve all the Invariant Sections of the Document, -unaltered in their text and in their titles. Section numbers -or the equivalent are not considered part of the section titles. - -@item -Delete any section Entitled ``Endorsements''. Such a section -may not be included in the Modified Version. - -@item -Do not retitle any existing section to be Entitled ``Endorsements'' or -to conflict in title with any Invariant Section. - -@item -Preserve any Warranty Disclaimers. -@end enumerate - -If the Modified Version includes new front-matter sections or -appendices that qualify as Secondary Sections and contain no material -copied from the Document, you may at your option designate some or all -of these sections as invariant. To do this, add their titles to the -list of Invariant Sections in the Modified Version's license notice. -These titles must be distinct from any other section titles. - -You may add a section Entitled ``Endorsements'', provided it contains -nothing but endorsements of your Modified Version by various -parties---for example, statements of peer review or that the text has -been approved by an organization as the authoritative definition of a -standard. - -You may add a passage of up to five words as a Front-Cover Text, and a -passage of up to 25 words as a Back-Cover Text, to the end of the list -of Cover Texts in the Modified Version. Only one passage of -Front-Cover Text and one of Back-Cover Text may be added by (or -through arrangements made by) any one entity. If the Document already -includes a cover text for the same cover, previously added by you or -by arrangement made by the same entity you are acting on behalf of, -you may not add another; but you may replace the old one, on explicit -permission from the previous publisher that added the old one. - -The author(s) and publisher(s) of the Document do not by this License -give permission to use their names for publicity for or to assert or -imply endorsement of any Modified Version. - -@item -COMBINING DOCUMENTS - -You may combine the Document with other documents released under this -License, under the terms defined in section 4 above for modified -versions, provided that you include in the combination all of the -Invariant Sections of all of the original documents, unmodified, and -list them all as Invariant Sections of your combined work in its -license notice, and that you preserve all their Warranty Disclaimers. - -The combined work need only contain one copy of this License, and -multiple identical Invariant Sections may be replaced with a single -copy. If there are multiple Invariant Sections with the same name but -different contents, make the title of each such section unique by -adding at the end of it, in parentheses, the name of the original -author or publisher of that section if known, or else a unique number. -Make the same adjustment to the section titles in the list of -Invariant Sections in the license notice of the combined work. - -In the combination, you must combine any sections Entitled ``History'' -in the various original documents, forming one section Entitled -``History''; likewise combine any sections Entitled ``Acknowledgements'', -and any sections Entitled ``Dedications''. You must delete all -sections Entitled ``Endorsements.'' - -@item -COLLECTIONS OF DOCUMENTS - -You may make a collection consisting of the Document and other documents -released under this License, and replace the individual copies of this -License in the various documents with a single copy that is included in -the collection, provided that you follow the rules of this License for -verbatim copying of each of the documents in all other respects. - -You may extract a single document from such a collection, and distribute -it individually under this License, provided you insert a copy of this -License into the extracted document, and follow this License in all -other respects regarding verbatim copying of that document. - -@item -AGGREGATION WITH INDEPENDENT WORKS - -A compilation of the Document or its derivatives with other separate -and independent documents or works, in or on a volume of a storage or -distribution medium, is called an ``aggregate'' if the copyright -resulting from the compilation is not used to limit the legal rights -of the compilation's users beyond what the individual works permit. -When the Document is included in an aggregate, this License does not -apply to the other works in the aggregate which are not themselves -derivative works of the Document. - -If the Cover Text requirement of section 3 is applicable to these -copies of the Document, then if the Document is less than one half of -the entire aggregate, the Document's Cover Texts may be placed on -covers that bracket the Document within the aggregate, or the -electronic equivalent of covers if the Document is in electronic form. -Otherwise they must appear on printed covers that bracket the whole -aggregate. - -@item -TRANSLATION - -Translation is considered a kind of modification, so you may -distribute translations of the Document under the terms of section 4. -Replacing Invariant Sections with translations requires special -permission from their copyright holders, but you may include -translations of some or all Invariant Sections in addition to the -original versions of these Invariant Sections. You may include a -translation of this License, and all the license notices in the -Document, and any Warranty Disclaimers, provided that you also include -the original English version of this License and the original versions -of those notices and disclaimers. In case of a disagreement between -the translation and the original version of this License or a notice -or disclaimer, the original version will prevail. - -If a section in the Document is Entitled ``Acknowledgements'', -``Dedications'', or ``History'', the requirement (section 4) to Preserve -its Title (section 1) will typically require changing the actual -title. - -@item -TERMINATION - -You may not copy, modify, sublicense, or distribute the Document -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense, or distribute it is void, and -will automatically terminate your rights under this License. - -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, receipt of a copy of some or all of the same material does -not give you any rights to use it. - -@item -FUTURE REVISIONS OF THIS LICENSE - -The Free Software Foundation may publish new, revised versions -of the GNU Free Documentation 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. See -@uref{http://www.gnu.org/copyleft/}. - -Each version of the License is given a distinguishing version number. -If the Document specifies that a particular numbered version of this -License ``or any later version'' applies to it, you have the option of -following the terms and conditions either of that specified version or -of any later version that has been published (not as a draft) by the -Free Software Foundation. If the Document does not specify a version -number of this License, you may choose any version ever published (not -as a draft) by the Free Software Foundation. If the Document -specifies that a proxy can decide which future versions of this -License can be used, that proxy's public statement of acceptance of a -version permanently authorizes you to choose that version for the -Document. - -@item -RELICENSING - -``Massive Multiauthor Collaboration Site'' (or ``MMC Site'') means any -World Wide Web server that publishes copyrightable works and also -provides prominent facilities for anybody to edit those works. A -public wiki that anybody can edit is an example of such a server. A -``Massive Multiauthor Collaboration'' (or ``MMC'') contained in the -site means any set of copyrightable works thus published on the MMC -site. - -``CC-BY-SA'' means the Creative Commons Attribution-Share Alike 3.0 -license published by Creative Commons Corporation, a not-for-profit -corporation with a principal place of business in San Francisco, -California, as well as future copyleft versions of that license -published by that same organization. - -``Incorporate'' means to publish or republish a Document, in whole or -in part, as part of another Document. - -An MMC is ``eligible for relicensing'' if it is licensed under this -License, and if all works that were first published under this License -somewhere other than this MMC, and subsequently incorporated in whole -or in part into the MMC, (1) had no cover texts or invariant sections, -and (2) were thus incorporated prior to November 1, 2008. - -The operator of an MMC Site may republish an MMC contained in the site -under CC-BY-SA on the same site at any time before August 1, 2009, -provided the MMC is eligible for relicensing. - -@end enumerate - -@page -@heading ADDENDUM: How to use this License for your documents - -To use this License in a document you have written, include a copy of -the License in the document and put the following copyright and -license notices just after the title page: - -@smallexample -@group - Copyright (C) @var{year} @var{your name}. - Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.3 - or any later version published by the Free Software Foundation; - with no Invariant Sections, no Front-Cover Texts, and no Back-Cover - Texts. A copy of the license is included in the section entitled ``GNU - Free Documentation License''. -@end group -@end smallexample - -If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, -replace the ``with@dots{}Texts.''@: line with this: - -@smallexample -@group - with the Invariant Sections being @var{list their titles}, with - the Front-Cover Texts being @var{list}, and with the Back-Cover Texts - being @var{list}. -@end group -@end smallexample - -If you have Invariant Sections without Cover Texts, or some other -combination of the three, merge those two alternatives to suit the -situation. - -If your document contains nontrivial examples of program code, we -recommend releasing these examples in parallel under your choice of -free software license, such as the GNU General Public License, -to permit their use in free software. - -@c Local Variables: -@c ispell-local-pdict: "ispell-dict" -@c End: -- cgit v1.2.3-70-g09d2