From 9414aa7ad654fb78caa56c92f6286b15aa20c4eb Mon Sep 17 00:00:00 2001 From: John Zaitseff Date: Fri, 12 Apr 2019 05:04:24 +1000 Subject: [PATCH] Convert all text files to reStructuredText (ReST) format The reStructuredText (ReST) format is still quite readable as raw text, and is much more capable than the myriad all-slightly-incompatible variants of Markdown. --- COPYING | 1070 ++++++++++++++++++++++++---------------------- INSTALL | 458 ++++++++++---------- NEWS | 316 +++++++------- README | 86 ++-- build-aux/README | 27 +- data/README | 15 +- doc/README | 16 +- lib/README | 31 +- m4/README | 46 +- po/README | 17 +- src/README | 35 +- 11 files changed, 1105 insertions(+), 1012 deletions(-) diff --git a/COPYING b/COPYING index 02ac6acc..ced3565c 100644 --- a/COPYING +++ b/COPYING @@ -1,683 +1,741 @@ -************************************************************************** -* * -* Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2019, John Zaitseff * -* * -************************************************************************** +.. -*- mode: rst; coding: utf-8 -*- -The Star Traders game is free software that is distributed under the terms -of the GNU General Public License. The actual copyright on this program -("the Program", in the language of the License) belongs to John Zaitseff, -although the text of the License itself belongs to the Free Software -Foundation. +============================================ +Star Traders: A Game of Interstellar Trading +============================================ -Even though the GNU General Public License does NOT require you to send -your modifications back to the author, it is considered "good form" to do -so, as this allows your modifications to be incorporated into future +**Copyright © 1990–2019, John Zaitseff.** + +The Star Traders game is free software that is distributed under the +terms of the GNU General Public License. The actual copyright on this +program (“the Program”, in the language of the License) belongs to John +Zaitseff, although the text of the License itself belongs to the Free +Software Foundation. + +Even though the GNU General Public License does *not* require you to send +your modifications back to the author, it is considered “good form” to do +so, as this allows your modifications to be incorporated into future versions of the program, allowing others to benefit from them. --------------------------------------------------------------------------- - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 +========================== +GNU GENERAL PUBLIC LICENSE +========================== +-------------------------- + Version 3, 29 June 2007 +-------------------------- - Copyright (C) 2007 Free Software Foundation, Inc. +| Copyright © 2007 Free Software Foundation, Inc. +| https://fsf.org/ - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. + *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 +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. +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. +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. +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 +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. +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. +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 +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. +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 +The precise terms and conditions for copying, distribution and modification follow. - TERMS AND CONDITIONS - 0. Definitions. +TERMS AND CONDITIONS +==================== -"This License" refers to version 3 of the GNU General Public License. +0. Definitions. +--------------- -"Copyright" also means copyright-like laws that apply to other kinds of +“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. +“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. +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 +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 “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. +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 +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 +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 +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 “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” 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 +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. +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 +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. +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. +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 +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 +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. +4. Conveying Verbatim Copies. +----------------------------- -You may charge any price or no price for each copy that you convey, and +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: +5. Conveying Modified Source Versions. +-------------------------------------- -a) The work must carry prominent notices stating that you modified it, and - giving a relevant date. +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: -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". +a) The work must carry prominent notices stating that you modified it, + and giving a relevant date. -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 +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 +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. +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 +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 +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. +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. +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 +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 +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 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. +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 +“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). +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 +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 +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 +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 +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: +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 +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 +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 +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 +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 +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 +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 +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 +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 +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). +8. Termination. +--------------- -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. +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). -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 +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 +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. +9. Acceptance Not Required for Having Copies. +--------------------------------------------- - 10. Automatic Licensing of Downstream Recipients. +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. -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 + +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 +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. +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". +11. Patents. +------------ -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. +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”. -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 +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. +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 +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. +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. +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 +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. +12. No Surrender of Others’ Freedom. +------------------------------------ - 13. Use with the GNU Affero General Public License. +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. -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 + +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 +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 +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 +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 +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. +15. Disclaimer of Warranty. +--------------------------- - 16. Limitation of Liability. +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. -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. +16. Limitation of Liability. +---------------------------- -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 +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 +**END OF TERMS AND CONDITIONS** -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 + +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. +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) , +.. parsed-literal:: - 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. + *one line to give the program's name and a brief idea of what it does.* + Copyright (C) *year* *name of author* - 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. + 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. - You should have received a copy of the GNU General Public License - along with this program. If not, see . + 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 +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. +.. parsed-literal:: -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". + *program* Copyright (C) *year* *name of author* + 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. -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 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”. -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 -. +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 https://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 +https://www.gnu.org/licenses/why-not-lgpl.html. diff --git a/INSTALL b/INSTALL index 2ae96eb6..bdf18038 100644 --- a/INSTALL +++ b/INSTALL @@ -1,160 +1,161 @@ -************************************************************************** -* * -* Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2019, John Zaitseff * -* * -************************************************************************** +.. -*- mode: rst; coding: utf-8 -*- -Star Traders is written in the C99 programming language and uses Autoconf -and Automake to handle compilation and installation. Assuming you have -the needed tools, all you should need to do is run the following commands -from the source directory: +============================================ +Star Traders: A Game of Interstellar Trading +============================================ + +Star Traders is written in the C99 programming language and uses Autoconf +and Automake to handle compilation and installation. Assuming you have +the needed tools, all you should need to do is run the following commands +from the source directory:: ./configure make make install -The first two commands may be run as an ordinary user; the last may need +The first two commands may be run as an ordinary user; the last may need to be done as the system administrator (root). +.. contents:: + + Prerequisites ============= -Star Traders requires the following components for successful compilation +Star Traders requires the following components for successful compilation and installation: -1. A working C compiler conforming to ISO/IEC 9899:1999 (also known as - C99). Any recent version of the GNU Compiler Collection (GCC) or the +1. A working C compiler conforming to ISO/IEC 9899:1999 (also known as + C99). Any recent version of the GNU Compiler Collection (GCC) or the Clang LLVM Compiler is more than adequate. -2. An operating system ideally conforming to ISO/IEC 9945-1:2008 (POSIX) - or to the Open Group Single UNIX Specification version 4 or later. In - short, any modern Unix or Unix-like system like Linux almost certainly - qualifies. +2. An operating system ideally conforming to ISO/IEC 9945-1:2008 (POSIX) + or to the Open Group Single UNIX Specification version 4 or later. + In short, any modern Unix or Unix-like system like Linux almost + certainly qualifies. - In actual fact, Star Traders uses the GNU Portability Library, so many - older systems may also work without modification. + In actual fact, Star Traders uses the GNU Portability Library, so + many older systems may also work without modification. -3. A working X/Open Curses-compatible library, such as Ncurses. Ncurses - is preferred over system-native libraries, if present. Locales with - multibyte character sequences (such as UTF-8) require a wide-character - version of Curses, such as NcursesW, to work correctly. +3. A working X/Open Curses-compatible library, such as Ncurses. Ncurses + is preferred over system-native libraries, if present. Locales with + multibyte character sequences (such as UTF-8) require a + wide-character version of Curses, such as NcursesW, to work + correctly. -4. The GNU Gettext library, version 0.19.8 or later, to allow the game to - use languages other than English; this is also called Native Language - Support. If you do not have this library (and do not wish to install - it), you may pass "--disable-nls" to the configure script. +4. The GNU Gettext library, version 0.19.8 or later, to allow the game + to use languages other than English; this is also called Native + Language Support. If you do not have this library (and do not wish + to install it), you may pass ``--disable-nls`` to the configure + script. -5. The GNU libiconv library for supporting multiple character encodings, - if required by the GNU Gettext library. This is not needed on systems - with the GNU C Library (glibc) version 2.2 or later, or on Mac OS X - (now called macOS) 10.3 or newer. +5. The GNU ``libiconv`` library for supporting multiple character + encodings, if required by the GNU Gettext library. This is not + needed on systems with the GNU C Library (``glibc``) version 2.2 or + later, or on Mac OS X (now called macOS) 10.3 or newer. -6. Development libraries and header files for all of the above. On many - systems, these files are part of XXX-dev or XXX-devel packages. +6. Development libraries and header files for all of the above. On many + systems, these files are part of ``XXX-dev`` or ``XXX-devel`` + packages. -7. The GNU Perfect Hash Function Generator, gperf. This utility program - may be required for parts of the GNU Portability Library. +7. The GNU Perfect Hash Function Generator, ``gperf``. This utility + program may be required for parts of the GNU Portability Library. Installation ============ -The installation of Star Traders can be broken down into three main steps: -configuration, compilation and the installation proper. +The installation of Star Traders can be broken down into three main +steps: configuration, compilation and the installation proper. -The first step is configuring the package for your compiler and operating -system environment. As Star Traders uses Autoconf and Automake, all you -need to do in most cases is run "./configure" from the top-level directory -of the Star Traders source tree. The configure script understands all of -the usual Autoconf options; these are explained in detail in the Autoconf -manual: +The first step is configuring the package for your compiler and operating +system environment. As Star Traders uses Autoconf and Automake, all you +need to do in most cases is run ``./configure`` from the top-level +directory of the Star Traders source tree. The configure script +understands all of the usual Autoconf options; these are explained in +detail in the `Autoconf manual`__. - https://www.gnu.org/software/autoconf/manual/autoconf.html#Running-configure-Scripts +__ https://www.gnu.org/software/autoconf/manual/autoconf.html#Running-configure-Scripts -This version of the configure script understands the following additional +This version of the configure script understands the following additional command line options: --disable-nls - Don't use Native Language Support. Star Traders will only - show untranslated US English text and only accept US ASCII - keyboard input. - + Don’t use Native Language Support. Star Traders will only + show untranslated US English text and only accept US ASCII + keyboard input. --with-libintl-prefix=DIR - Find the GNU Gettext library installed in the DIR/lib and - DIR/include directories. This option is needed if your - library is not installed in /usr/lib and /usr/include (or, - more precisely, if the C compiler cannot find the library - ".so" or ".a" archive file using the standard "-l" command - line parameter or the relevant header files using standard - "#include" directives). - + Find the GNU Gettext library installed in the *DIR*\ `/lib` + and *DIR*\ `/include` directories. This option is needed if + your library is not installed in `/usr/lib` and + `/usr/include` (or, more precisely, if the C compiler cannot + find the library “``.so``” or “``.a``” archive file using the + standard “``-l``” command line parameter or the relevant + header files using standard :code:`#include` directives). --with-libiconv-prefix=DIR - Find the GNU libiconv library installed in the DIR/lib and - DIR/include directories. This option is needed if the GNU - Gettext library requires libiconv on your system, and that - library is not installed in /usr/lib and /usr/include. - + Find the GNU ``libiconv`` library installed in the *DIR*\ + `/lib` and *DIR*\ `/include` directories. This option is + needed if the GNU Gettext library requires ``libiconv`` on + your system, and that library is not installed in `/usr/lib` + and `/usr/include`. --with-ncurses - Force the use of Ncurses over the system's Curses library. - In other words, do not search for a native Curses library - at all. - + Force the use of Ncurses over the system’s Curses library. + In other words, do not search for a native Curses library at + all. --with-ncursesw - Force the use of the NcursesW library with wide-character - support. If NcursesW cannot be found, abort the configure - script. - + Force the use of the NcursesW library with wide-character + support. If NcursesW cannot be found, abort the + ``configure`` script. --without-ncursesw - Don't use the NcursesW library. This will prevent non-8- - bit character encodings like UTF-8 from working correctly - and is thus not recommended. - + Don’t use the NcursesW library. This will prevent non-8-bit + character encodings like UTF-8 from working correctly and is + thus not recommended. --without-ncurses - Don't use the Ncurses library: use either NcursesW (unless - "--without-ncursesw" is also specified) or the system's - normal Curses library. This option is not recommended. - + Don’t use the Ncurses library: use either NcursesW (unless + ``--without-ncursesw`` is also specified) or the system’s + normal Curses library. This option is not recommended. --disable-assert - Turn off all debugging assert() statements. + Turn off all debugging :code:`assert()` statements. -By default, configure uses "/usr/local" as the top-level (prefix) install -directory. You can change this by specifying "--prefix=DIR" to use DIR -instead. For example, you can use a directory in your own home directory -by specifying something like: +By default, ``configure`` uses `/usr/local` as the top-level (prefix) +install directory. You can change this by specifying ``--prefix=``\ +*DIR* to use *DIR* instead. For example, you can use a directory in your +own home directory by specifying something like:: ./configure --prefix=$HOME/opt/trader -You may also specify certain configuration and/or compilation variables on -the command line to override choices made by configure. For example, you -can specify the compiler flags to use by passing the CFLAGS variable: +You may also specify certain configuration and/or compilation variables +on the command line to override choices made by ``configure``. For +example, you can specify the compiler flags to use by passing the +``CFLAGS`` variable:: ./configure CFLAGS="-g -O2 -Wall" -The configure script has many other options. You may obtain a list of -these by running: +The ``configure`` script has many other options. You may obtain a list +of these by running:: ./configure --help -You can also run configure in a separate build-only directory tree. This -feature requires GNU Make and allows you to keep the source code tree from -being modified by the compilation process. To use this option, create a -separate build directory, then run configure. For example, if you placed -the Star Traders source code tree in $HOME/src/trader-7.13, you could run -something like: +You can also run ``configure`` in a separate build-only directory tree. +This feature requires GNU Make and allows you to keep the source code +tree from being modified by the compilation process. To use this option, +create a separate `build` directory, then run ``configure``. For +example, if you placed the Star Traders source code tree in +`$HOME/src/trader-7.13`, you could run something like:: mkdir $HOME/build/trader-build-7.13 cd $HOME/build/trader-build-7.13 $HOME/src/trader-7.13/configure -Once again, the Autoconf manual describes these options (and many others): +Once again, the `Autoconf manual`__ describes these options (and many +others). - https://www.gnu.org/software/autoconf/manual/autoconf.html#Running-configure-Scripts +__ https://www.gnu.org/software/autoconf/manual/autoconf.html#Running-configure-Scripts -Once the package has been configured, you can type "make" to compile it, -then "make install" to install it. You can specify the following command -lines, amongst others: +Once the package has been configured, you can type ``make`` to compile +it, then ``make install`` to install it. You can specify the following +command lines, amongst others:: make all make install @@ -162,84 +163,88 @@ lines, amongst others: make distclean make uninstall -The command "make all" does the same thing as running "make" by itself: -compile the package source code into an executable. +The command ``make all`` does the same thing as running ``make`` by +itself: compile the package source code into an executable. -Running "make install" copies the executable program and all associated -data and documentation files to those directories specified during -configuration. If any of these directories require system administrator -access privileges for writing, you will need to run "make install" as +Running ``make install`` copies the executable program and all associated +data and documentation files to those directories specified during +configuration. If any of these directories require system administrator +access privileges for writing, you will need to run ``make install`` as system administrator (root). -If you like, you can specify the DESTDIR variable to copy all installation -files to a temporary location before installing them later. For example, -if the prefix directory is "/usr/local", typing: +.. compound:: - make install DESTDIR=/tmp/trader-install + If you like, you can specify the ``DESTDIR`` variable to copy all + installation files to a temporary location before installing them + later. For example, if the prefix directory is `/usr/local`, typing:: -will copy the final program "trader" to /tmp/trader-install/usr/local/bin, -the manual page to /tmp/trader-install/usr/local/share/man/man6 and so on. + make install DESTDIR=/tmp/trader-install -The "make clean" command will remove most build-generated files, such as -object files generated by the compiler, from the source code or build -directory. Running "make distclean" will do the same, but will remove the -Makefiles generated by configure as well. In other words, if you run -"make distclean", you will need to rerun "configure" if you would like to -recompile Star Traders at a later date. + will copy the final program ``trader`` to + `/tmp/trader-install/usr/local/bin`, the manual page to + `/tmp/trader-install/usr/local/share/man/man6` and so on. -Finally, "make uninstall" will remove the executable program "trader" and -associated data and documentation files from their final installation -location. This assumes, of course, that you have NOT run "make distclean" -to remove the Makefiles that know the path to which those files were -installed! +The ``make clean`` command will remove most build-generated files, such +as object files generated by the compiler, from the source code or build +directory. Running ``make distclean`` will do the same, but will remove +the Makefiles generated by ``configure`` as well. In other words, if you +run ``make distclean``, you will need to rerun ``configure`` if you would +like to recompile Star Traders at a later date. + +Finally, ``make uninstall`` will remove the executable program ``trader`` +and associated data and documentation files from their final installation +location. This assumes, of course, that you have *not* run ``make +distclean`` to remove the Makefiles that know the path to which those +files were installed! Tested Systems ============== -The following operating systems and compilers have been successfully test- -ed with this version of Star Traders: +The following operating systems and compilers have been successfully +tested with this version of Star Traders: -+-------------------------+--------+-------+-------------------------+---+ -| Linux distribution | Arch | Glibc | Compiler | N | -+-------------------------+--------+-------+-------------------------+---+ -| Debian GNU/Linux Sid | x86_64 | 2.27 | GNU C Compiler 8.2.0 | | -| Debian GNU/Linux Sid | i686 | 2.27 | GNU C Compiler 8.2.0 | | -| Debian GNU/Linux 9.5 | x86_64 | 2.24 | GNU C Compiler 6.3.0 | | -| Ubuntu 18.04 | x86_64 | 2.27 | GNU C Compiler 7.3.0 | | -| Ubuntu 18.04 | x86_64 | 2.27 | Clang (LLVM) 6.0.0 | | -| Ubuntu 18.04 | x86_64 | 2.27 | Portland PGI C/C++ 18.5 | | -| Fedora 28 | x86_64 | 2.27 | GNU C Compiler 8.1.1 | | -| CentOS 7.5 | x86_64 | 2.17 | GNU C Compiler 4.8.5 | | -| CentOS 6.10 | x86_64 | 2.12 | GNU C Compiler 4.4.7 | | -| CentOS 6.10 | x86_64 | 2.12 | Portland PGI C/C++ 18.3 | | -| CentOS 6.9 | x86_64 | 2.12 | Intel C/C++ 18.0.3 | | -| OpenSUSE Leap 15.0 | x86_64 | 2.26 | GNU C Compiler 7.3.1 | | -+-------------------------+--------+-------+-------------------------+---+ +==================== ====== ===== ======================= ===== +Linux distribution Arch Glibc Compiler Notes +==================== ====== ===== ======================= ===== +Debian GNU/Linux Sid x86_64 2.27 GNU C Compiler 8.2.0 +Debian GNU/Linux Sid i686 2.27 GNU C Compiler 8.2.0 +Debian GNU/Linux 9.5 x86_64 2.24 GNU C Compiler 6.3.0 +Ubuntu 18.04 x86_64 2.27 GNU C Compiler 7.3.0 +Ubuntu 18.04 x86_64 2.27 Clang (LLVM) 6.0.0 +Ubuntu 18.04 x86_64 2.27 Portland PGI C/C++ 18.5 +Fedora 28 x86_64 2.27 GNU C Compiler 8.1.1 +CentOS 7.5 x86_64 2.17 GNU C Compiler 4.8.5 +CentOS 6.10 x86_64 2.12 GNU C Compiler 4.4.7 +CentOS 6.10 x86_64 2.12 Portland PGI C/C++ 18.3 +CentOS 6.9 x86_64 2.12 Intel C/C++ 18.0.3 +OpenSUSE Leap 15.0 x86_64 2.26 GNU C Compiler 7.3.1 +==================== ====== ===== ======================= ===== -+-------------------------+--------+---------------------------------+---+ -| Operating system | Arch | Compiler | N | -+-------------------------+--------+---------------------------------+---+ -| FreeBSD 11.2 | x86_64 | Clang (LLVM) 6.0.0 | 1 | -| NetBSD 8.0 | x86_64 | GNU C Compiler 5.5.0 | 2 | -| macOS 10.13 | x86_64 | Apple Clang (LLVM) 9.1.0 | 3 | -| Solaris 11.3 (x86_64) | i386 | GNU C Compiler 4.8.2 | | -| Solaris 11.3 (x86_64) | x86_64 | GNU C Compiler 4.8.2 | 4 | -| Solaris 11.3 (x86_64) | i386 | Oracle Developer Studio 12.6 | 5 | -| Solaris 11.3 (x86_64) | x86_64 | Oracle Developer Studio 12.6 | 6 | -| Cygwin 2.10.0 (Win7SP1) | i686 | GNU C Compiler 7.3.0 | | -+-------------------------+--------+---------------------------------+---+ +======================= ====== ============================ ============ +Operating system Arch Compiler Notes +======================= ====== ============================ ============ +FreeBSD 11.2 x86_64 Clang (LLVM) 6.0.0 [#freebsd1]_ +NetBSD 8.0 x86_64 GNU C Compiler 5.5.0 [#netbsd1]_ +macOS 10.13 x86_64 Apple Clang (LLVM) 9.1.0 [#macos1]_ +Solaris 11.3 (x86_64) i386 GNU C Compiler 4.8.2 +Solaris 11.3 (x86_64) x86_64 GNU C Compiler 4.8.2 [#solaris1]_ +Solaris 11.3 (x86_64) i386 Oracle Developer Studio 12.6 [#solaris2]_ +Solaris 11.3 (x86_64) x86_64 Oracle Developer Studio 12.6 [#solaris3]_ +Cygwin 2.10.0 (Win7SP1) i686 GNU C Compiler 7.3.0 +======================= ====== ============================ ============ Notes: -1. FreeBSD with the gettext, gettext-runtime, gettext-tools and libiconv - binary packages installed with "pkg", using: +.. [#freebsd1] FreeBSD with the ``gettext``, ``gettext-runtime``, + ``gettext-tools`` and ``libiconv`` binary packages installed with + ``pkg``\(1), using:: ./configure --with-libiconv-prefix=/usr/local \ --with-libintl-prefix=/usr/local -2. NetBSD with the gettext, libiconv and ncursesw packages installed with - "pkg_add", using: +.. [#netbsd1] NetBSD with the ``gettext``, ``libiconv`` and ``ncursesw`` + packages installed with ``pkg_add``\(1), using:: ./configure --with-libiconv-prefix=/usr/pkg \ --with-libintl-prefix=/usr/pkg \ @@ -247,121 +252,130 @@ Notes: CURSES_CFLAGS=-I/usr/pkg/include \ LDFLAGS=-L/usr/pkg/lib -3. macOS with the gettext package installed with Homebrew, using: +.. [#macos1] macOS with the ``gettext`` package installed with Homebrew, + using:: ./configure --with-libintl-prefix=/usr/local/opt/gettext -4. Using "./configure CC='gcc -m64'" for 64-bit user-space. -5. Using "./configure CC='/opt/developerstudio12.6/bin/cc'". -6. Using "./configure CC='/opt/developerstudio12.6/bin/cc -m64'". +.. [#solaris1] Using ``./configure CC='gcc -m64'`` for 64-bit user-space. -The following systems are known not to work at the current time; this list -is almost certainly not exhaustive: +.. [#solaris2] Using ``./configure CC='/opt/developerstudio12.6/bin/cc'``. -+-------------------------+--------+---------------------------------+---+ -| Operating system | Arch | Compiler | N | -+-------------------------+--------+---------------------------------+---+ -| OpenBSD 6.3 | x86_64 | GNU C Compiler 4.2.1 | 1 | -| OpenBSD 6.3 | x86_64 | Clang (LLVM) 5.0.1 | 1 | -+-------------------------+--------+---------------------------------+---+ +.. [#solaris3] Using ``./configure CC='/opt/developerstudio12.6/bin/cc + -m64'``. + +The following systems are known *not* to work at the current time; this +list is almost certainly not exhaustive: + +================ ====== ==================== ============ +Operating system Arch Compiler Notes +================ ====== ==================== ============ +OpenBSD 6.3 x86_64 GNU C Compiler 4.2.1 [#openbsd1]_ +OpenBSD 6.3 x86_64 Clang (LLVM) 5.0.1 [#openbsd1]_ +================ ====== ==================== ============ Notes: -1. The OpenBSD C library does not include nor its associated - functions, particularly strfmon(). +.. [#openbsd1] The OpenBSD C library does not include + :code:`` nor its associated functions, particularly + :code:`strfmon()`. Git Repository ============== -You can always download the latest version of Star Traders directly from -the Git repository on the ZAP Group server: +You can always download the latest version of Star Traders directly from +the Git repository on the ZAP Group server:: git clone git://git.zap.org.au/data/git/trader.git -Released versions of Star Traders include all scripts and files needed for -installation. If you are cloning the source code from the Git repository, -however, you will need to update these files yourself. You will need the -following additional tools installed on your system to do so: +Released versions of Star Traders include all scripts and files needed +for installation. If you are cloning the source code from the Git +repository, however, you will need to update these files yourself. You +will need the following additional tools installed on your system to do +so: -1. Autoconf v2.69 or later (https://www.gnu.org/software/autoconf/) -2. Automake v1.15 or later (https://www.gnu.org/software/automake/) -3. pkg-config v0.9.0 or later (https://pkg-config.freedesktop.org/) -4. GNU Portability Library (https://www.gnu.org/software/gnulib/) +1. `Autoconf`__ v2.69 or later +2. `Automake`__ v1.15 or later +3. `pkg-config`__ v0.9.0 or later +4. `GNU Portability Library`__ -The GNU Portability Library may be installed by retrieving the latest -Gnulib source code from the Git repository: +__ https://www.gnu.org/software/autoconf/ +__ https://www.gnu.org/software/automake/ +__ https://pkg-config.freedesktop.org/ +__ https://www.gnu.org/software/gnulib/ + +The GNU Portability Library may be installed by retrieving the latest +Gnulib source code from the Git repository:: git clone git://git.savannah.gnu.org/gnulib.git -Once you have these tools, change to the Star Traders source code tree and -type: +Once you have these tools, change to the Star Traders source code tree +and type:: PATH=${PATH}:/path/to/gnulib-tool ./build-aux/bootstrap -where "/path/to/gnulib-tool" is, of course, the directory containing the -Gnulib "gnulib-tool" script. You should be ready to run "./configure && -make && make install" now. +where ``/path/to/gnulib-tool`` is, of course, the directory containing +the Gnulib ``gnulib-tool`` script. You should be ready to run +``./configure && make && make install`` now. For Translators =============== -Thank you for even considering to translate Star Traders into your native -language! You may use either a released version of Star Traders, or an -unreleased one, as discussed in the Git Repository section above. In +Thank you for even considering to translate Star Traders into your native +language! You may use either a released version of Star Traders, or an +unreleased one, as discussed in the Git Repository section above. In either case, you may find the following workflow useful. -First, run "./build-aux/bootstrap" if needed (only for unreleased versions -of Star Traders). +First, run ``./build-aux/bootstrap`` if needed (only for unreleased +versions of Star Traders). -Next, configure and install Star Traders into your home directory: +Next, configure and install Star Traders into your home directory:: ./configure --prefix=$HOME/opt/trader make make install -If you are adding a new translation, add its GNU Gettext language code to -the file po/LINGUAS, then create the template file for that language ("zz" -is used here): +If you are adding a new translation, add its GNU Gettext language code to +the file `po/LINGUAS`, then create the template file for that language +(“``zz``” is used here):: (cd po; msginit --locale=zz --width=132) -Now, modify the PO file for your language using your favourite editor or -translation tool. Please note that the generated PO file has extensive -documentation in its translator comments. If anything is unclear, please -feel free to ask the author and maintainer; contact details are available -in the README file. +Now, modify the PO file for your language using your favourite editor or +translation tool. Please note that the generated PO file has extensive +documentation in its translator comments. If anything is unclear, please +feel free to ask the author and maintainer; contact details are available +in the `README` file. -To test your PO file, compile and run Star Traders (replace "zz" with your -language code, of course): +To test your PO file, compile and run Star Traders (replace “``zz``” with +your language code, of course):: make && make -C po zz.gmo && make install LANGUAGE=zz $HOME/opt/trader/bin/trader -The "make -C po zz.gmo" forces the rebuilding of the GMO output file; the -"LANGUAGE=zz" parameter sets the language of the messages to use. +The ``make -C po zz.gmo`` forces the rebuilding of the GMO output file; +the ``LANGUAGE=zz`` parameter sets the language of the messages to use. -This process of editing and testing the PO file can be done iteratively, -of course: make a change, recompile, run the program to see the changes, +This process of editing and testing the PO file can be done iteratively, +of course: make a change, recompile, run the program to see the changes, repeat as needed. -Once you have finished your translation, please submit the PO file to the -Translation Project. The relevant web page for Star Traders is: +Once you have finished your translation, please submit the PO file to the +Translation Project (TP). See the `TP Star Traders`__ web page or read +their `Translators and the TP`__ page for additional information. - https://translationproject.org/domain/trader.html +__ https://translationproject.org/domain/trader.html +__ https://translationproject.org/html/translators.html -More information for translators is available at: - - https://translationproject.org/html/translators.html - -To clean up your install directory, simply run: +To clean up your install directory, simply run:: rm -fr $HOME/opt/trader -By the way, as mentioned in the translator comments, formatting the help -text is probably the most complicated and tedious part of translating Star -Traders. The author and maintainer of this game is more than happy to -help you with this task: if you are able to provide a translation, even if -it is not formatted correctly, the maintainer will perform the necessary -adjustments for word-wrapping and justification. +By the way, as mentioned in the translator comments, formatting the help +text is probably the most complicated and tedious part of translating +Star Traders. The author and maintainer of this game is more than happy +to help you with this task: if you are able to provide a translation, +even if it is not formatted correctly, the maintainer will perform the +necessary adjustments for word-wrapping and justification. diff --git a/NEWS b/NEWS index 720276f7..cb3aa130 100644 --- a/NEWS +++ b/NEWS @@ -1,40 +1,50 @@ -************************************************************************** -* * -* Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2019, John Zaitseff * -* * -************************************************************************** +.. -*- mode: rst; coding: utf-8 -*- -Star Traders is a simple game of interstellar trading, where the objective -is to create companies, buy and sell shares, borrow and repay money, in -order to become the wealthiest player (the winner). +============================================ +Star Traders: A Game of Interstellar Trading +============================================ -The following history is presented in reverse chronological order. If you -would like to see a list of detailed changes to this project, you should -browse the Git repository on The ZAP Group web server at the following -location: https://www.zap.org.au/cgit/trader.git +Star Traders is a simple game of interstellar trading, where the +objective is to create companies, buy and sell shares, borrow and repay +money, in order to become the wealthiest player (the winner). + +The following history is presented in reverse chronological order. If +you would like to see a list of detailed changes to this project, you +should browse the `Star Traders Git repository`__ on `The ZAP Group web +server`__. + +__ https://www.zap.org.au/cgit/trader.git +__ https://www.zap.org.au/ + + +.. contents:: Version 7.13 (not yet released) ------------------------------- -Modified the code to work more reliably on non-GNU C Library (glibc) plat- -forms, particularly FreeBSD, Solaris and Cygwin, when using the standard -POSIX locale. Extensively tested the build procedure on multiple operat- -ing systems and compilers, and submitted code upstream to the Autoconf -Archive project to make this work more robustly. Listed tested operating -system and compiler combinations in the INSTALL file. +Converted all text files to reStructuredText (ReST) format. This format +is still quite readable as raw text, and is much more capable than the +myriad all-slightly-incompatible variants of Markdown. -Added the Spanish translation, with thanks to Francisco Javier Serrador. +Modified the source code to work more reliably on non-GNU C Library +(``glibc``) platforms, particularly FreeBSD, Solaris and Cygwin, when +using the standard POSIX locale. Extensively tested the build procedure +on multiple operating systems and compilers, and submitted code upstream +to the Autoconf Archive project to make this work more robustly. Listed +tested operating system and compiler combinations in the `INSTALL` file. + +Added the Spanish translation, with thanks to Francisco Javier Serrador. Updated the Esperanto translation, with thanks to Felipe Castro. -Updated one string in the game for consistency with other labels; updated -all PO translations to suit. Also added strings from obsolete versions of -the GNU C Library so that Star Traders can provide translations for them. +Updated one string in the game for consistency with other labels; updated +all PO translations to suit. Also added strings from obsolete versions +of the GNU C Library so that Star Traders can provide translations for +them. -Updated to the latest snapshot of the Gnulib GNU Portability Library. In -addition, updated the list of prerequisites in the INSTALL file and listed -some more command line options for the configure script. +Updated to the latest snapshot of the Gnulib GNU Portability Library. In +addition, updated the list of prerequisites in the `INSTALL` file and +listed some more command line options for the ``configure`` script. Version 7.12 (24th August, 2017) @@ -46,40 +56,44 @@ Updated the Serbian translation, with thanks to Мирослав Николић. Version 7.11 (18th June, 2017) ------------------------------ -Bug fix: some architectures (such as ARM, PowerPC and S390) treat "char" -as "unsigned char", and this caused b64decode() to fail while loading a -saved game. Changed the relevant type from "char" to "int" to fix this. +Bug fix: some architectures (such as ARM, PowerPC and S390) treat +:code:`char` as :code:`unsigned char`, and this caused +:code:`b64decode()` to fail while loading a saved game. Changed the +relevant type from :code:`char` to :code:`int` to fix this. Version 7.10 (2nd June, 2017) ----------------------------- -Added a data directory that contains a desktop file and appropriate icons. -Adjusted the game constants for more dynamic play: allow the share prices -and returns to change a bit more frequently and more rapidly. Tweaked the -colours in the example monochrome retro-computing command lines, including -adding an amber monitor version. +Added a `data` directory that contains a desktop file and appropriate +icons. Adjusted the game constants for more dynamic play: allow the +share prices and returns to change a bit more frequently and more +rapidly. Tweaked the colours in the example monochrome retro-computing +command lines, including adding an amber monitor version. -Added a Serbian translation, with thanks to Мирослав Николић. Updated the -Danish, French, Swedish, Hungarian, Norwegian Bokmål and German transla- -tions, in that order, with thanks to Joe Hansen, Frédéric Marchal, Anders -Jonsson, Balázs Úr, Johnny A. Solbu and Philipp Thomas respectively. +Added a Serbian translation, with thanks to Мирослав Николић. Updated +the Danish, French, Swedish, Hungarian, Norwegian Bokmål and German +translations, in that order, with thanks to Joe Hansen, Frédéric Marchal, +Anders Jonsson, Balázs Úr, Johnny A. Solbu and Philipp Thomas +respectively. -Updated translatable strings to overcome a limitation of msgfmt(1): if a -string starts or ends with a new-line character, its translation must do -so as well. This has an impact on labels in particular. Also changed the -help text string "Page N of M" to allow translations of the form "Of M -pages, this is page N", and all quoted strings using the obsolete GNU form -`like this' to 'this'. In addition, newer versions of lib/getopt.c have -different strings. All translations have been updated as a result. +Updated translatable strings to overcome a limitation of ``msgfmt``\(1): +if a string starts or ends with a new-line character, its translation +must do so as well. This has an impact on labels in particular. Also +changed the help text string “Page *N* of *M*” to allow translations of +the form “Of *M* pages, this is page *N*”, and all quoted strings using +the obsolete GNU form ```like this'`` to ``'this'``. In addition, newer +versions of `lib/getopt.c` have different strings. All translations have +been updated as a result. -Removed the obsolete Gnulib gettext module and updated to the latest Git -snapshot of Gnulib. Updated the dependency version numbers for Autoconf, -Automake and Gettext. Also updated all macros from the Autoconf Archive. +Removed the obsolete Gnulib ``gettext`` module and updated to the latest +Git snapshot of Gnulib. Updated the dependency version numbers for +Autoconf, Automake and Gettext. Also updated all macros from the +Autoconf Archive. -Migrated the source code repository from Subversion to Git. Updated the -documentation to suit, and also listed specific required version numbers -for the Autoconf and Automake tools in the INSTALL file. +Migrated the source code repository from Subversion to Git. Updated the +documentation to suit, and also listed specific required version numbers +for the Autoconf and Automake tools in the `INSTALL` file. Version 7.9 (5th January, 2016) @@ -91,169 +105,171 @@ Updated the Danish translation, with thanks to Joe Hansen. Version 7.8 (10th September, 2015) ---------------------------------- -Changed the name of the seventh company from "Gemeni Inc" to "Gemini Inc": -a spelling mistake that has been present since 1990! Special thanks to -Anders Jonsson for pointing this out. +Changed the name of the seventh company from “Gemeni Inc” to “Gemini +Inc”: a spelling mistake that has been present since 1990! Special +thanks to Anders Jonsson for pointing this out. -Added the Swedish translation, with thanks to Anders Jonsson. Minor code -changes were made to accommodate this language. Incorporated changes made -by the translators for German, French and Norwegian Bokmål, in that order, -with thanks to Philipp Thomas, Frédéric Marchal and Johnny A. Solbu. Also -updated all references to GNU Gettext to version 0.19.5. +Added the Swedish translation, with thanks to Anders Jonsson. Minor code +changes were made to accommodate this language. Incorporated changes +made by the translators for German, French and Norwegian Bokmål, in that +order, with thanks to Philipp Thomas, Frédéric Marchal and +Johnny A. Solbu. Also updated all references to GNU Gettext to version +0.19.5. Version 7.7 (18th August, 2015) ------------------------------- -Added the Hungarian translation, with thanks to Balázs Úr. Minor code -changes were made to accommodate this language. Also added documentation -in the file INSTALL to translate Star Traders into another language. +Added the Hungarian translation, with thanks to Balázs Úr. Minor code +changes were made to accommodate this language. Also added documentation +in the file `INSTALL` to translate Star Traders into another language. Version 7.6 (13th August, 2014) ------------------------------- -A minor release to fix compilation bugs under Cygwin: the libiconv library -must be listed AFTER the GNU Portability Library on that platform. +A minor release to fix compilation bugs under Cygwin: the ``libiconv`` +library must be listed *after* the GNU Portability Library on that +platform. -In addition, the minimum and maximum share return values were changed from --10% to -15% and 20% to 25% respectively. This gives more incentive to -borrow money from the Interstellar Trading Bank, whose interest rate can -reach a maximum of 20%. +In addition, the minimum and maximum share return values were changed +from -10% to -15% and 20% to 25% respectively. This gives more incentive +to borrow money from the Interstellar Trading Bank, whose interest rate +can reach a maximum of 20%. Version 7.5 (24th May, 2014) ---------------------------- -Rewrote the file input and output routines so that saved games are now -stored in a much more reliable (scrambled) ASCII format. However, saved -games from older versions will no longer load: the workaround is to start -the older version of Star Traders with the "--dont-encrypt" command line -option, load the relevant game and save it again straight away, change the -second line in the game file from "File API 7.2" to "File API 7.5", then -run the new version of Star Traders. +Rewrote the file input and output routines so that saved games are now +stored in a much more reliable (scrambled) ASCII format. However, saved +games from older versions will no longer load: the workaround is to start +the older version of Star Traders with the ``--dont-encrypt`` command +line option, load the relevant game and save it again straight away, +change the second line in the game file from “``File API 7.2``” to +“``File API 7.5``”, then run the new version of Star Traders. -Added translations for Norwegian Bokmål, Danish and Esperanto (in that -order), with thanks to Johnny A. Solbu, Joe Hansen and Felipe Castro. -Updated auxiliary files to the latest versions available from the Gnulib +Added translations for Norwegian Bokmål, Danish and Esperanto (in that +order), with thanks to Johnny A. Solbu, Joe Hansen and Felipe Castro. +Updated auxiliary files to the latest versions available from the Gnulib GNU Portability Library and the GNU Autoconf project. Version 7.4 (9th May, 2012) --------------------------- -For the first time since the CP/M-80 version of Star Traders, the game -algorithms have been carefully reviewed and revised. In particular, -companies may now have negative returns, making players lose money on such -shares. This may encourage players to use the "Sell shares" option at -appropriate times... In addition, changes in share prices, returns and -bank interest rates have been made much "smoother", less prone to wild -variations. These new algorithms were first modelled using Gnuplot and +For the first time since the CP/M-80 version of Star Traders, the game +algorithms have been carefully reviewed and revised. In particular, +companies may now have negative returns, making players lose money on +such shares. This may encourage players to use the “Sell shares” option +at appropriate times… In addition, changes in share prices, returns and +bank interest rates have been made much “smoother”, less prone to wild +variations. These new algorithms were first modelled using Gnuplot and Perl before being implemented in C. -The "configure" script now prints a prominent warning if a wide-character -version of Curses, such as NcursesW, is not available when compiling the -game. It is a warning and not an error as single-byte locales (such as -US-ASCII and ISO8859-1) do not require NcursesW, even if the compilation -environment itself is a multibyte one (such as UTF-8). +The ``configure`` script now prints a prominent warning if a +wide-character version of Curses, such as NcursesW, is not available when +compiling the game. It is a warning and not an error as single-byte +locales (such as US-ASCII and ISO8859-1) do not require NcursesW, even if +the compilation environment itself is a multibyte one (such as UTF-8). -The Russian translation has been updated, with thanks to Vladimir Tsarkov -and Pavel Maryanov. Translations for French, German, Finnish and Croatian -have been added (in that order), with thanks to Frédéric Marchal, Philipp -Thomas, Jorma Karvonen and Tomislav Krznar. Special thanks also to the -Translation Project, which brings free (open-source) software developers -and translators together. +The Russian translation has been updated, with thanks to Vladimir Tsarkov +and Pavel Maryanov. Translations for French, German, Finnish and +Croatian have been added (in that order), with thanks to Frédéric +Marchal, Philipp Thomas, Jorma Karvonen and Tomislav Krznar. Special +thanks also to the Translation Project, which brings free (open-source) +software developers and translators together. Version 7.3 (16th March, 2012) ------------------------------ -Star Traders has been translated into Russian. In addition, a number of -bugs with internationalisation have been fixed. The "default value" key -(originally "=" or ";" as the first key-press in any input field) has been -incorporated into the language translation files. +Star Traders has been translated into Russian. In addition, a number of +bugs with internationalisation have been fixed. The “default value” key +(originally “``=``” or “``;``” as the first key-press in any input field) +has been incorporated into the language translation files. Version 7.2 (29th August, 2011) ------------------------------- -Star Traders has been internationalised! As part of this update, all -input and output routines have been rewritten to handle multibyte strings. -English (Australian, British, Canadian and US) translations have been -included. Translations for other languages (and corrections to existing -languages) are more than welcome! +Star Traders has been internationalised! As part of this update, all +input and output routines have been rewritten to handle multibyte +strings. English (Australian, British, Canadian and US) translations +have been included. Translations for other languages (and corrections to +existing languages) are more than welcome! -Game files are now stored in UTF-8 format (once decrypted!) and can be -loaded under any locale with automatic character set translation. This -does mean, however, that game files from versions 7.0 and 7.1 of Star +Game files are now stored in UTF-8 format (once decrypted!) and can be +loaded under any locale with automatic character set translation. This +does mean, however, that game files from versions 7.0 and 7.1 of Star Traders will not load under this release. -The program now better handles terminal resizing events (for versions of -Curses supporting such events). It also tries to restore the terminal +The program now better handles terminal resizing events (for versions of +Curses supporting such events). It also tries to restore the terminal environment correctly when receiving a terminating signal. Version 7.1 (29th July, 2011) ----------------------------- -A minor updated release to fix configuration problems on some platforms. -In particular, some systems could not find the Curses libraries or header -files, so the Autoconf macro that performed the search was rewritten and +A minor updated release to fix configuration problems on some platforms. +In particular, some systems could not find the Curses libraries or header +files, so the Autoconf macro that performed the search was rewritten and extended. Version 7.0 (25th July, 2011) ----------------------------- -Released the first version of Star Traders for Unix-like operating systems -such as Linux. It requires a text console or window of at least 80x24 in -size. The code is written in the C99 programming language as a learning -exercise for a number of software tools and libraries; the algorithms in -the original Pascal and Visual Basic versions are reused for the game -logic. +Released the first version of Star Traders for Unix-like operating +systems such as Linux. It requires a text console or window of at least +80×24 in size. The code is written in the C99 programming language as a +learning exercise for a number of software tools and libraries; the +algorithms in the original Pascal and Visual Basic versions are reused +for the game logic. -Note that versions 7.0 and 7.1 of Star Traders did NOT handle locales with -multibyte character sequences (such as UTF-8) correctly. Each byte in a -such a sequence was treated as a separate character. Eight-bit locales -(such as US-ASCII, ISO8859-1, etc.) worked correctly. +Note that versions 7.0 and 7.1 of Star Traders did *not* handle locales +with multibyte character sequences (such as UTF-8) correctly. Each byte +in a such a sequence was treated as a separate character. Eight-bit +locales (such as US-ASCII, ISO8859-1, etc.) worked correctly. Early history ------------- -The original (and very primitive) Star Traders game was written by S. J. -Singer in 1984 using Altair Basic. This was modified for Microsoft Basic -(MBASIC) running under the CP/M-80 operating system by John Zaitseff and +The original (and very primitive) Star Traders game was written by S. J. +Singer in 1984 using Altair Basic. This was modified for Microsoft Basic +(MBASIC) running under the CP/M-80 operating system by John Zaitseff and released on 7th March, 1988. -Star Traders was then completely rewritten in 1990 for the Australian- -designed 8-bit MicroBee computer running CP/M-80 on a Zilog Z80 processor, -using Turbo Pascal 3.01a. Essentially, only the name of the game and some -of the ideas were retained in this version. Version 4.1 of Star Traders -was released on 1st August, 1991. +Star Traders was then completely rewritten in 1990 for the +Australian-designed 8-bit MicroBee computer running CP/M-80 on a Zilog +Z80 processor, using Turbo Pascal 3.01a. Essentially, only the name of +the game and some of the ideas were retained in this version. Version +4.1 of Star Traders was released on 1st August, 1991. -In 1992, it was recompiled for the NEC Advanced Personal Computer (with -8-inch floppy drives!) running CP/M-86 on an 8086 processor, using Turbo -Pascal 2.0. This version had colour added to it in the form of ANSI +In 1992, it was recompiled for the NEC Advanced Personal Computer (with +8-inch floppy drives!) running CP/M-86 on an 8086 processor, using Turbo +Pascal 2.0. This version had colour added to it in the form of ANSI escape sequences; version 4.4 was released on 2nd August, 1993. -The next version came in 1993, when the program was recompiled to run on -IBM-compatible machines running MS-DOS and ANSI.SYS. Turbo Pascal 6.0 was -used for this. The ANSI escape sequences were slightly different under -MS-DOS than under the NEC, in that the NEC supported a number of extra -character attributes. In other words, the MS-DOS version looked worse -than the one running under CP/M-86! +The next version came in 1993, when the program was recompiled to run on +IBM-compatible machines running MS-DOS and ANSI.SYS. Turbo Pascal 6.0 +was used for this. The ANSI escape sequences were slightly different +under MS-DOS than under the NEC, in that the NEC supported a number of +extra character attributes. In other words, the MS-DOS version looked +worse than the one running under CP/M-86! -Star Traders was recompiled again in 1994 for IBM-compatible machines with -VGA/EGA/CGA video graphics adapters. The output routines were recoded to -use a "windowed" look. Borland Pascal 7.0 was used for this purpose, -along with a number of text window manipulation modules. Version 5.4 was -released on 1st June, 1994. +Star Traders was recompiled again in 1994 for IBM-compatible machines +with VGA/EGA/CGA video graphics adapters. The output routines were +recoded to use a “windowed” look. Borland Pascal 7.0 was used for this +purpose, along with a number of text window manipulation modules. +Version 5.4 was released on 1st June, 1994. -In 1995, Star Traders was completely rewritten for the 16-bit Microsoft -Windows 3.1 graphical environment. Microsoft Visual Basic 3.0 was used -for this purpose. Although completely rewritten, the original algorithms -were reused from previous versions. Version 6.0 of the game was released +In 1995, Star Traders was completely rewritten for the 16-bit Microsoft +Windows 3.1 graphical environment. Microsoft Visual Basic 3.0 was used +for this purpose. Although completely rewritten, the original algorithms +were reused from previous versions. Version 6.0 of the game was released on 15th September, 1995. -Star Traders was then to languish until almost 16 years later... +Star Traders was then to languish until almost 16 years later… diff --git a/README b/README index 3ff45163..e84be5f8 100644 --- a/README +++ b/README @@ -1,81 +1,79 @@ -************************************************************************** -* * -* Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2019, John Zaitseff * -* * -************************************************************************** +.. -*- mode: rst; coding: utf-8 -*- -Welcome to Star Traders! This is a simple game of interstellar trading, -where the objective is to create companies, buy and sell shares, borrow +============================================ +Star Traders: A Game of Interstellar Trading +============================================ + +Welcome to Star Traders! This is a simple game of interstellar trading, +where the objective is to create companies, buy and sell shares, borrow and repay money, in order to become the wealthiest player (the winner). Installation ============ -Full instructions for installing Star Traders are contained in the file -INSTALL. Please note that that file does NOT contain generic GNU Autoconf -instructions! For the impatient, the short version is: +Full instructions for installing Star Traders are contained in the file +`INSTALL`. Please note that that file does *not* contain generic GNU +Autoconf instructions! For the impatient, the short version is:: ./configure make make install -The final command needs to be run as the system administrator (root), of +The final command needs to be run as the system administrator (root), of course. How to Play =========== -Star Traders comes with quite extensive in-built instructions on how to -play the game. Start by running "trader" from the command line. You will -be prompted for the number of players; from one to eight people can play -(although, in this version, they will all have to share the one keyboard -and screen!). After entering the names of the players, you will have the -opportunity to read instructions on how to play the game. Do so---and -good luck in the game! +Star Traders comes with quite extensive in-built instructions on how to +play the game. Start by running ``trader`` from the command line. You +will be prompted for the number of players; from one to eight people can +play (although, in this version, they will all have to share the one +keyboard and screen!). After entering the names of the players, you will +have the opportunity to read instructions on how to play the game. Do +so—and good luck in the game! -The manual page for Star Traders contains more information on command line -options, as well as some suggestions for running a retro-computing green- -screen nostalgia-tour version of the game... Try running the following, -for example (all on one line): +The manual page for Star Traders contains more information on command +line options, as well as some suggestions for running a retro-computing +green-screen nostalgia-tour version of the game… Try running the +following, for example (all on one line):: xterm -g 80x24 -fa Mono -fs 18 -bg '#181818' -fg '#2CAB00' -bc +sb \ +bdc +fbx -xrm 'XTerm*colorBD: #41FF00' -e trader --no-colour & -To read the manual page, type "man trader" from the command line. +To read the manual page, type ``man trader`` from the command line. Feedback ======== -Your comments, suggestions, corrections and enhancements are always warmly -welcomed! Please send these to: +Your comments, suggestions, corrections and enhancements are always +warmly welcomed! Please send these to: - Postal: John Zaitseff, - The ZAP Group, - Unit 6, 116 Woodburn Road, - Berala, NSW, 2141, - Australia - - E-mail: J.Zaitseff@zap.org.au - Web: https://www.zap.org.au/software/trader/ - FTP: https://ftp.zap.org.au/pub/trader/ - ftp://ftp.zap.org.au/pub/trader/ + :Postal: | John Zaitseff, + | The ZAP Group, + | Unit 6, 116 Woodburn Road, + | Berala, NSW, 2141, + | Australia + :Email: | J.Zaitseff@zap.org.au + :Web: | https://www.zap.org.au/software/trader/ + :FTP: | https://ftp.zap.org.au/pub/trader/ + | ftp://ftp.zap.org.au/pub/trader/ Copyright ========= -Copyright (C) 1990-2019, John Zaitseff. +**Copyright © 1990–2019, John Zaitseff.** -Star Traders is free software that is distributed under the terms of the -GNU General Public License. You can redistribute it and/or modify it -under the terms of that License as published by the Free Software +Star Traders is free software that is distributed under the terms of the +GNU General Public License. You can redistribute it and/or modify it +under the terms of that License as published by the Free Software Foundation, either version 3 or (at your option) any later version. -This game 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 in -the file COPYING for more details. +This game 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 in +the file `COPYING` for more details. diff --git a/build-aux/README b/build-aux/README index 436a528f..ed186fd2 100644 --- a/build-aux/README +++ b/build-aux/README @@ -1,17 +1,16 @@ -************************************************************************** -* * -* Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2019, John Zaitseff * -* * -************************************************************************** +.. -*- mode: rst; coding: utf-8 -*- -This directory, build-aux, contains auxiliary build-related files for Star -Traders. The following scripts are specific to this package: +============================================ +Star Traders: A Game of Interstellar Trading +============================================ - bootstrap - Generate auxiliary files needed for building - msgfmt-desktop - Use msgfmt(1) or cp(1) to copy desktop files +This directory, `build-aux`, contains auxiliary build-related files for +Star Traders. The following scripts are specific to this package: -All other files in this directory (other than this README file, of course) -are generated by Autoconf, Automake or Gnulib. The bootstrap shell script -generates these files by running those tools in the correct order; see the -top-level INSTALL file for more details. +* `bootstrap`: Generate auxiliary files needed for building +* `msgfmt-desktop`: Use ``msgfmt``\(1) or ``cp``\(1) to copy desktop files + +All other files in this directory (other than this `README` file, of +course) are generated by Autoconf, Automake or Gnulib. The bootstrap +shell script generates these files by running those tools in the correct +order; see the top-level `INSTALL` file for more details. diff --git a/data/README b/data/README index c6e1841e..6806512f 100644 --- a/data/README +++ b/data/README @@ -1,9 +1,8 @@ -************************************************************************** -* * -* Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2019, John Zaitseff * -* * -************************************************************************** +.. -*- mode: rst; coding: utf-8 -*- -This directory, data, contains non-code data related to Star Traders. In -particular, the desktop file and icons are located here. +============================================ +Star Traders: A Game of Interstellar Trading +============================================ + +This directory, `data`, contains non-code data related to Star Traders. +In particular, the desktop file and icons are located here. diff --git a/doc/README b/doc/README index a9034f84..c09bd9b1 100644 --- a/doc/README +++ b/doc/README @@ -1,9 +1,9 @@ -************************************************************************** -* * -* Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2019, John Zaitseff * -* * -************************************************************************** +.. -*- mode: rst; coding: utf-8 -*- -This directory, doc, contains documentation related to Star Traders. In -particular, the Unix manual page for the game is in the file "trader.6". +============================================ +Star Traders: A Game of Interstellar Trading +============================================ + +This directory, `doc`, contains documentation related to Star Traders. +In particular, the Unix manual page for the game is in the file +`trader.6`. diff --git a/lib/README b/lib/README index 359b3287..af32813c 100644 --- a/lib/README +++ b/lib/README @@ -1,20 +1,23 @@ -************************************************************************** -* * -* Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2019, John Zaitseff * -* * -************************************************************************** +.. -*- mode: rst; coding: utf-8 -*- -This directory, lib, contains source code as generated by the Gnulib GNU -Portability Library "gnulib-tool" script. See the project web site at -https://www.gnu.org/software/gnulib/ for more information. +============================================ +Star Traders: A Game of Interstellar Trading +============================================ -The following file is used by xopen-source.m4 to redefine _XOPEN_SOURCE -appropriately. It is not part of the GNU Portability Library: +This directory, `lib`, contains source code as generated by the `Gnulib +GNU Portability Library`__ ``gnulib-tool`` script. See that project web +site for more information. - xopen-source.h +__ https://www.gnu.org/software/gnulib/ -The following file provides translatable strings for obsolete versions of + +The following file is used by `xopen-source.m4` to redefine +``_XOPEN_SOURCE`` appropriately. It is not part of the GNU Portability +Library: + +* `xopen-source.h` + +The following file provides translatable strings for obsolete versions of various libraries. It is not part of the GNU Portability Library: - obsolete-strings.c +* `obsolete-strings.c` diff --git a/m4/README b/m4/README index e320df0c..ed3e53d2 100644 --- a/m4/README +++ b/m4/README @@ -1,28 +1,34 @@ -************************************************************************** -* * -* Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2019, John Zaitseff * -* * -************************************************************************** +.. -*- mode: rst; coding: utf-8 -*- + +============================================ +Star Traders: A Game of Interstellar Trading +============================================ + +This directory, `m4`, contains M4 macros used by Autoconf. -This directory, m4, contains M4 macros used by Autoconf. The following macro is custom-defined for Star Traders: - xopen-source.m4 +* `xopen-source.m4` -The following macros are from the Autoconf Archive project, as detailed on -that project's web site, https://www.gnu.org/software/autoconf-archive/: - ax_c___attribute__.m4 - ax_cflags_warn_all.m4 - ax_compiler_vendor.m4 - ax_prepend_flag.m4 - ax_require_defined.m4 - ax_with_curses.m4 +The following macros are from the `Autoconf Archive project`__, as +detailed on that project’s web site: -The following macro was generated by running the GNU Portability Library -"gnulib-tool" with appropriate command line options, as detailed on that -project's web site, https://www.gnu.org/software/gnulib/: +* `ax_c___attribute__.m4` +* `ax_cflags_warn_all.m4` +* `ax_compiler_vendor.m4` +* `ax_prepend_flag.m4` +* `ax_require_defined.m4` +* `ax_with_curses.m4` - gnulib-cache.m4 +__ https://www.gnu.org/software/autoconf-archive/ + + +The following macro was generated by running the `GNU Portability +Library`__ ``gnulib-tool`` with appropriate command line options, as +detailed on that project’s web site: + +* `gnulib-cache.m4` + +__ https://www.gnu.org/software/gnulib/ diff --git a/po/README b/po/README index 094829ce..f961f357 100644 --- a/po/README +++ b/po/README @@ -1,9 +1,10 @@ -************************************************************************** -* * -* Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2019, John Zaitseff * -* * -************************************************************************** +.. -*- mode: rst; coding: utf-8 -*- -This directory, po, contains translations for text strings used in Star -Traders. The GNU Gettext project is used for this purpose. +============================================ +Star Traders: A Game of Interstellar Trading +============================================ + +This directory, `po`, contains translations for text strings used in Star +Traders. The `GNU Gettext project`__ is used for this purpose. + +__ https://www.gnu.org/software/gettext/ diff --git a/src/README b/src/README index 3e1b1a23..35b1bdd4 100644 --- a/src/README +++ b/src/README @@ -1,20 +1,19 @@ -************************************************************************** -* * -* Star Traders: A Game of Interstellar Trading * -* Copyright (C) 1990-2019, John Zaitseff * -* * -************************************************************************** +.. -*- mode: rst; coding: utf-8 -*- -This directory, src, contains the main source code for Star Traders. The -source code is split up among the following files: +============================================ +Star Traders: A Game of Interstellar Trading +============================================ - trader.c trader.h - Main program, command-line interface - globals.c globals.h - Global game constants and variables - game.c game.h - Game start, end and (some) display functions - move.c move.h - Functions for making and processing a move - exch.c exch.h - Stock Exchange and Bank functions - fileio.c fileio.h - Load and save game file functions - help.c help.h - Help text functions: how to play the game - intf.c intf.h - Basic text input/output functions - utils.c utils.h - Utility functions needed by Star Traders - system.h - All system header files are included here +This directory, `src`, contains the main source code for Star Traders. +The source code is split up among the following files: + +* `trader.c`, `trader.h`: Main program, command-line interface +* `globals.c`, `globals.h`: Global game constants and variables +* `game.c`, `game.h`: Game start, end and (some) display functions +* `move.c`, `move.h`: Functions for making and processing a move +* `exch.c`, `exch.h`: Stock Exchange and Bank functions +* `fileio.c`, `fileio.h`: Load and save game file functions +* `help.c`, `help.h`: Help text functions: how to play the game +* `intf.c`, `intf.h`: Basic text input/output functions +* `utils.c`, `utils.h`: Utility functions needed by Star Traders +* `system.h`: All system header files are included here