From 74d0ae85a028acfb5cef3c15541657788bed911a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20T=C5=AFma?= Date: Tue, 6 Oct 2015 01:56:19 +0200 Subject: [PATCH] Windows stuff --- gpxsee.nsi | 136 ++++++++++ gpxsee.pro | 1 + gpxsee.rc | 1 + icons/gpxsee.ico | Bin 0 -> 370070 bytes licence.txt | 674 +++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 812 insertions(+) create mode 100644 gpxsee.nsi create mode 100644 gpxsee.rc create mode 100644 icons/gpxsee.ico create mode 100644 licence.txt diff --git a/gpxsee.nsi b/gpxsee.nsi new file mode 100644 index 00000000..c5af51e9 --- /dev/null +++ b/gpxsee.nsi @@ -0,0 +1,136 @@ +;Include Modern UI +!include "MUI2.nsh" + +; The name of the installer +Name "GPXSee" + +; The file to write +OutFile "install.exe" + +RequestExecutionLevel user + +; The default installation directory +InstallDir "$LOCALAPPDATA\GPXSee" + +; Registry key to check for directory (so if you install again, it will +; overwrite the old one automatically) +InstallDirRegKey HKCU "Software\GPXSee" "Install_Dir" + +; Registry key for uninstaller +!define REGENTRY "Software\Microsoft\Windows\CurrentVersion\Uninstall\GPXSee" + +; Start menu page configuration +!define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU" +!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\GPXSee" +!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "GPXSee" + +Var StartMenuFolder + +;-------------------------------- + +; Pages + +!insertmacro MUI_PAGE_WELCOME +!insertmacro MUI_PAGE_LICENSE "licence.txt" +!insertmacro MUI_PAGE_COMPONENTS +!insertmacro MUI_PAGE_DIRECTORY +!insertmacro MUI_PAGE_STARTMENU Application $StartMenuFolder +!insertmacro MUI_PAGE_INSTFILES + +!insertmacro MUI_UNPAGE_CONFIRM +!insertmacro MUI_UNPAGE_INSTFILES + +;-------------------------------- + +; Languages +!insertmacro MUI_LANGUAGE "English" + + +; The stuff to install +Section "GPXSee (required)" SEC_APP + + SectionIn RO + + ; Set output path to the installation directory. + SetOutPath $INSTDIR + + ; Put file there + File "gpxsee.exe" + + ; Write the installation path into the registry + WriteRegStr HKCU SOFTWARE\GPXSee "Install_Dir" "$INSTDIR" + + ; Write the uninstall keys for Windows + WriteRegStr HKCU "${REGENTRY}" "DisplayName" "GPXSee" + WriteRegStr HKCU "${REGENTRY}" "Publisher" "Martin Tuma" + WriteRegStr HKCU "${REGENTRY}" "DisplayVersion" "0.1.0" + WriteRegStr HKCU "${REGENTRY}" "UninstallString" '"$INSTDIR\uninstall.exe"' + WriteRegDWORD HKCU "${REGENTRY}" "NoModify" 1 + WriteRegDWORD HKCU "${REGENTRY}" "NoRepair" 1 + WriteUninstaller "$INSTDIR\uninstall.exe" + + ; Create start menu entry and add links + !insertmacro MUI_STARTMENU_WRITE_BEGIN Application + CreateDirectory "$SMPROGRAMS\$StartMenuFolder" + CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk" "$INSTDIR\Uninstall.exe" + CreateShortCut "$SMPROGRAMS\$StartMenuFolder\GPXSee.lnk" "$INSTDIR\gpxsee.exe" + !insertmacro MUI_STARTMENU_WRITE_END + +SectionEnd + +Section "QT libs" SEC_QT + + File "Qt5Core.dll" + File "Qt5Gui.dll" + File "Qt5Widgets.dll" + File "Qt5PrintSupport.dll" + File "libGLESv2.dll" + File /r "platforms" + +SectionEnd + +Section "MSVC runtime" SEC_MSVC + + File "msvcr100.dll" + File "msvcp100.dll" + +SectionEnd + +;-------------------------------- + +; Uninstaller + +Section "Uninstall" + + ; Remove registry keys + DeleteRegKey HKCU "${REGENTRY}" + DeleteRegKey HKCU SOFTWARE\GPXSee + + ; Remove directories used + RMDir /r "$INSTDIR" + + ; Remove Start menu entries + !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder + Delete "$SMPROGRAMS\$StartMenuFolder\*.*" + RMDir "$SMPROGRAMS\$StartMenuFolder" + +SectionEnd + +;------------------------------- + +;Descriptions + +;Language strings +LangString DESC_QT ${LANG_ENGLISH} \ + "QT Library. Unselct only if you have QT already installed!" +LangString DESC_MSVC ${LANG_ENGLISH} \ + "Visual C++ 2010 runtime components. Unselct only if you have the runtime already installed!" +LangString DESC_APP ${LANG_ENGLISH} \ + "GPXSee application" + +;Assign language strings to sections +!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${SEC_QT} $(DESC_QT) + !insertmacro MUI_DESCRIPTION_TEXT ${SEC_MSVC} $(DESC_MSVC) + !insertmacro MUI_DESCRIPTION_TEXT ${SEC_APP} $(DESC_APP) +!insertmacro MUI_FUNCTION_DESCRIPTION_END \ No newline at end of file diff --git a/gpxsee.pro b/gpxsee.pro index 050c860d..eddc74b0 100644 --- a/gpxsee.pro +++ b/gpxsee.pro @@ -35,3 +35,4 @@ SOURCES += src/main.cpp \ RESOURCES += gpxsee.qrc TRANSLATIONS = lang/gpxsee_cs.ts macx:ICON = icons/gpxsee.icns +win32:RC_FILE = gpxsee.rc diff --git a/gpxsee.rc b/gpxsee.rc new file mode 100644 index 00000000..afc1964a --- /dev/null +++ b/gpxsee.rc @@ -0,0 +1 @@ +IDI_ICON1 ICON DISCARDABLE "icons/gpxsee.ico" \ No newline at end of file diff --git a/icons/gpxsee.ico b/icons/gpxsee.ico new file mode 100644 index 0000000000000000000000000000000000000000..0bf0697535e21e8e478abeca93712fc77b85eb81 GIT binary patch literal 370070 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 literal 0 HcmV?d00001 diff --git a/licence.txt b/licence.txt new file mode 100644 index 00000000..94a9ed02 --- /dev/null +++ b/licence.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +.