From ada947c69c0fc063784c77cdf0c40749511b5d10 Mon Sep 17 00:00:00 2001 From: Tom Brewe Date: Thu, 19 Feb 2026 17:38:48 +0100 Subject: [PATCH 1/2] add license (GPL-v3.0) --- LICENSE | 674 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 674 insertions(+) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..9cecc1d --- /dev/null +++ b/LICENSE @@ -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. + + {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 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: + + {project} Copyright (C) {year} {fullname} + 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 +. From f9fce225d293517c057e804900fe2df542cd105d Mon Sep 17 00:00:00 2001 From: Tom Brewe Date: Thu, 19 Feb 2026 17:39:13 +0100 Subject: [PATCH 2/2] documentation: update readme with license info - also add a QR-code that encodes the testflight link - check some todo items --- COPYING.ios | 13 +++++++++++++ README.md | 20 +++++++------------- Testflight-QR-Code.png | Bin 0 -> 121258 bytes 3 files changed, 20 insertions(+), 13 deletions(-) create mode 100644 COPYING.ios create mode 100644 Testflight-QR-Code.png diff --git a/COPYING.ios b/COPYING.ios new file mode 100644 index 0000000..c04ea92 --- /dev/null +++ b/COPYING.ios @@ -0,0 +1,13 @@ +The CommonsFinder developers are aware that the terms of service that +apply to apps distributed via Apple's App Store services may conflict +with rights granted under the CommonsFinder license, the GNU General +Public License, version 3 or (at your option) any later version. The +copyright holders of the CommonsFinder iOS app do not wish this conflict +to prevent the otherwise-compliant distribution of derived apps via +the App Store. Therefore, we have committed not to pursue any license +violation that results solely from the conflict between the GNU GPLv3 +or any later version and the Apple App Store terms of service. In +other words, as long as you comply with the GPL in all other respects, +including its requirements to provide users with source code and the +text of the license, we will not object to your distribution of the +CommonsFinder iOS app through the App Store. \ No newline at end of file diff --git a/README.md b/README.md index 9756b69..4269d68 100644 --- a/README.md +++ b/README.md @@ -2,13 +2,15 @@ CommonsFinder is an iOS app to explore and upload media to [Wikimedia Commons](https://commons.wikimedia.org). -The test version can be installed via TestFlight: https://testflight.apple.com/join/15KtE2Mn +CommonsFinder is currently in beta and can be installed via TestFlight: https://testflight.apple.com/join/15KtE2Mn +Or scan the QR-Code with your iPhone: [[Testflight QR Code](Testflight-QR-Code.png)](https://testflight.apple.com/join/15KtE2Mn)! ## Features The project is **currently work-in-progress**, but several core features already work. You can: - upload single images +- editing captions, categories and depictions - save image-drafts for later uploading - search images and categories (including wikidata items that are depicted in images) - view images and their metadata, including categories and depicted wikidata items @@ -47,8 +49,8 @@ I plan an implement more functionality in the next months and improve on the cur - [ ] improve map: better live-location experience, direct opening of single items on the map - [x] improve search: search for categories, currently only images can be searched - [x] when uploading, suggest nearby location categories/items to add -- [ ] make upload more robust in some areas (eg. check if filename already exists) -- [ ] editing of uploaded files (eg. changing the caption or adding categories) +- [x] make upload more robust in some areas (eg. check if filename already exists) +- [x] editing of uploaded files (eg. changing the caption or adding categories) - [ ] improve author and attribution editing and viewing Those above have priority, but there are many more things planned. Here is a rough overview of what I would like the app to be able to do at some point: @@ -69,18 +71,11 @@ At some point I'd also love to see an iPadOS and MacOS adaptation. This should n The idea for "CommonsFinder" came from combining the [view*finder*](https://en.wikipedia.org/wiki/Viewfinder) in cameras with the word "commons". Since the aspect of taking photos mobile and on-the-go and contributing them to wiki commons is one goal of this app, using a camera's viewfinder as part of the app name seemed fitting. The word "finder" is also used in combination like path*finder* and Mac users may be familiar with the file manager "Finder", so the name hopefully evokes a theme of both photo-taking ("viewfinder"), exploring ("pathfinder"), finding ("find") and also managing and organizing files (file manager "Finder"); and all that in relation to "commons", both regarding the project Wikimedia Commons, but also in a more general and broader meaning of the word. -Another app name idea was "CommonExplorer" (or alternatively "CommonsExplorer"), but unfortunately the word is a bit too long to fit on the homescreen without being truncated, so the current "CommonsFinder" was chosen instead. - -Although I am happy with the current name, I am open to other suggestins if they fit the use-case well and are short enough to not be truncated when the app(-icon) is placed on the home screen, so unfortunately not more than 11-13 characters, it seems. - - ## Contributing and Testing The best way to curently help, is by using the TestFlight releases and especially reporting crashes (should they occur) as well as other experience breaking issues: https://testflight.apple.com/join/15KtE2Mn - -Regarding MRs and Issues: Although a lot of stuff already works well, the project and code base is still work-in-progress and several parts are actively being worked on. I value your and my time and therefore do not consider MR's to avoid duplicate over conflicting work. -Once the development becomes slower-paced and the code base settles a bit more I'll be happy to consider contributions. +MRs authored by LLM agent tools may be closed without further comment if they are non-trivial or implementing features or bugs that have not been discussed and reported before. ## Funding and Donations @@ -90,5 +85,4 @@ Donations are currently possible via Github-sponsors. ## License -I have **not yet finally decided** on the open-source license. I would like to use GPL-3 or AGPL-3, but as far as I know there are some complications in regards to publishing to the iOS AppStore, especially when accepting contributions (MRs/PRs) from others. I will need some more time to decide on that and gather input from other open source iOS-apps projects who use GPL. - +[GPLv3](LICENSE) with [Apple app store exception](COPYING.ios) diff --git a/Testflight-QR-Code.png b/Testflight-QR-Code.png new file mode 100644 index 0000000000000000000000000000000000000000..1dd75f9bf031f43e235865a7d47bd0586898135d GIT binary patch literal 121258 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

}S1BBGA$(`#mK2%$zs* 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