Upgrade to AGPL 3 for Koha 3.4 - Advocacy

From Koha Wiki

Jump to: navigation, search
Home > Legal Matters > Copyright > Copyright licenses > Koha copyright license

This page is reserved only for advocacy of AGPL 3, invoked with an or later version option, for Koha 3.4 as part of a ballot process on the question of upgrading the Koha copyright license. Please use the Koha AGPL 3 option wiki page or the Koha mailing list for open comment.


Upgrade to the GNU Affero General Public License version 3 (AGPL 3), invoked with an or later version option, as the copyright license for Koha 3.4 - advocacy

AGPL 3 Text

See GNU Affero General Public License version 3 (AGPL 3) from the Free Software Foundation (FSF) for the full text of the license.

AGPL 3 Distinctive Advantages

AGPL 3 text is identical to GPL 3 except for the reciprocal section 13. Thus AGPL 3 has all the advantages included within GPL 3, noted below, with a vital addition.

Protection for Remote Network Users

Section 13 ensures that any user of the software remotely over the network, the typical case for Koha, has the right to download the complete source code for the particular modified version being used. All the other license protection for users common to both GPL 3 and AGPL 3 are effective upon conveying copies following from the opportunity to download the source code.

AGPL 3 is a copyleft license in a remote network use context. Neither GPL 2 nor GPL 3 provide a copyleft license in a remote network use context.

Without AGPL 3, GPL software used as remote network service may may be treated by the provider of the service no differently than proprietary software. A common online business model incorporates GPL software as remote network service depriving users of the freedom which the GPL was intended to protect. This circumstance is a consequence of the being GPL developed prior to the world wide web which GPL 3 does not change.

Under AGPL 3, users avoid vendor lock-in over software run as a remote network service. Users should also have regular backups of their data protected in vendor contracts which no copyright license could provide.

Koha under AGPL 3 would ensure free software rights for every Koha user in addition to library organisation themselves. The opportunities for obtaining contributions of various types to improve the software increase dramatically when the copyright license can be used to ensure that OPAC users know that they are using free software and have the same rights to the software as do library organisations. Library patrons are invariably a much larger group with a more diverse set of skills to share than the people employed directly by library organisations.

In ensuring free software rights for all users, AGPL 3 empowers sharing from everyone. Realistically, not many people are liable to have sufficient interest in contributing but AGPL 3 can help find those who would contribute.

Contributions Waiting for AGPL 3

There are some valuable features not found in any library automation system which at least one Koha developer will only develop for Koha under AGPL 3. The rationale is to ensure that unique features always remain treated as free software even in a remote network use context. Other features merely match what other systems do but unique features of free software help people recognise the value of free software.

Additional Greater Software License Compatibility

Compatibility with an even larger set of code from other free software projects which could be used to enhance Koha is available with AGPL 3 in addition to the compatibility provided by GPL 3. See below for compatibility common to both AGPL 3 and GPL 3.

No mere application programming interface (API) from other projects would support the level of feature development to be obtained from sharing code directly.

Notable Projects for Code Sharing

Code Sharing with Open Library

Notable projects using AGPL 3 with which code could be shared with Koha include Open Library.

While Open Library is written in Python, there is some work in Open Library worth porting between Python for Open Library and Perl for Koha. Porting clean well written code between different programming languages is extra work but can be much less work than rewriting everything in a different programming language. Working with Open Library, Karen Coyle has succeeded in having good influence on at least three aspects of Open Library worth the effort to port to Koha.

Koha code for record matching relies on overly simplistic absolute matches requiring perfect data not characteristic of the real world. Koha record matching produces an excessive portion of false matches and match failures with a diverse set of records. Open Library uses a much more sophisticated record matching model based on decades of work with thirty million records at the University of California MELVYL union catalogue before it was outsourced to a proprietary system. Differences include better data normalisation and variably weighted scores for different match points.

Including linked data from a wide range of range of external sources is an important priority at Open Library.

Some careful work on FRBRisation problems is also being done at Open Library.

All of this work could be in Koha improved and shared back with Open Library if Koha would be upgraded to AGPL 3.


BibLibre have announced their intention to rewrite searching in Koha using Solr/Lucene. They have identified JZKit as a potential replacement for Zebra Z39.50/SRU server functionality. JZKit seems as if it may need substantial modification before it might function as a good Z39.50 server.

JZKit is licensed under AGPL 3. Depending on whether or how JZKit might be implemented in Koha, there may be a need for Koha to upgrade to AGPL 3 to sufficiently integrate JZKit.

Advantages Common to GPL 3 and AGPL 3

Open Draft Comment Period for License

A lengthy open, even if imperfect, comment period for was provided for multiple drafts before the license was finalised by FSF.

GPL 2 with Improvements

Substantially the same copyleft license as GPL 2 is provided by both GPL 3 and AGPL 3 with additional protection for users over issues identified subsequent to the 1991 publication of GPL 2 and greater clarity of language. Yes, the improvements have necessarily made the license text significantly longer.

Greater International Legal Compatibility

Greater international legal compatibility is included in both GPL 3 and AGPL 3 for terminology and aspects of copyright law where there are important differences affecting software.

Changes include the following:

  • The word 'distribute' was changed to 'convey' to avoid confusion in the terminology of some jurisdictions.
  • Moral rights of authors, which are vital to copyright law including software copyright in many jurisdictions, are provided for in section 7(b). See attribution rights for authors below.

Greater Software License Compatibility Common to GPL 3 and AGPL 3

Compatibility with a larger set of code from other free software projects which could be used to enhance Koha is available with GPL 3. Compatibility includes GPL 2 code, invoked with an or later version option; code from newer free software projects using GPL 3 or LGPL 3; and greater compatibility with other non-GPL free software licenses. The additional license compatibility for other non-GPL free software licenses is provided by using section 7 options and/or greater patent protection in section 11.

Software under GPL 3, LGPL 3, Apache License 2.0, and a few less common free software licenses could be included as part of Koha under both GPL 3 and AGPL 3 but could not be included if Koha would remain under GPL 2. See the GPL compatible licenses section of the list of licenses described by FSF. See also the statement from the Apache Software Foundation (ASF) on the compatibility of Apache License 2.0 and GPL 3 (from which AGPL 3 compatability necessarily follows).

Attribution Rights for Authors

Rights of authors can be protected by exercising the option for an author attribution in section 7(b).

Authors are not necessarily copyright holders with rights automatically protected by copyright law for software in all legal jurisdictions. Exercising the option protects the moral rights of authors where required by law and provides that protection where copyright law covering software fails to provide it. See international legal compatibility above.

If used, author attributions can help users better identify who contributed what to the code, and contact authors for relevant assistance with understanding how parts of the code work, debugging problems, and developing enhancements to the authors' previous code. Simple statements such as feature X first contributed by author A; extended by authors A and B; with new function Y added by author C with relevant contact information would serve many users better than searching through a git repository.

Greater Patent Protection

Greater protection from aggressive use of patents, controlled by modifiers and conveyors of the software, covering some aspect of the software functionality is included in both GPL 3 and AGPL 3. The greater protection from abuse of patents is contained in section 11 along with a clarification in section 10.

Patents covering software are often patents which include claims granted for supposedly unpatentable mere mathematics or business methodologies embodied in software. Generally, such patent claims would never have been granted under the traditional application of patent law.

Lawsuits over patents covering software plague the US software market. Even if you are in a country which does not allow the patenting of mere mathematics or business methodologies embodied in software, users everywhere suffer if the US market is hurt by the intimidating use of patents covering software.

GPL 3 and AGPL 3 do not protect against the actions of parties who do not modify or convey copies of the software under GPL 3 or AGPL 3, however, some protection is better than no protection. Koha should have this protection in addition to Koha's existing advantage of not being the type of target which most patent aggressors tend to pursue.

30 Day Cure Provision Protection from Compliance Mistakes

A 30 day first time cure provision in section 8, allows parties making mistakes in complying with the license to have their license rights automatically restored to protect unintentional violators. Such a provision should be reassuring to those concerned about not understanding all the details of AGPL 3 compliance.

Advice from the Software Freedom Law Center (SFLC) suggests a means for a copyright holder to reinstate that first time provision to reassure a party who is believed to have violated the license unintentionally. A copyright holder could send a friendly message to a party violating the license with an offer to help the party understand how to comply with the license. The copyright holder could also extend a reassuring offer to reinstate the 30 day first time cure provision if the party in violation acts in good faith to try to comply.

Aaron Williamson, a lawyer at SFLC, explained that a simple contract from a copyright holder reinstating the 30 day first time cure provision could be sent to a violator believed to be acting in good faith. For the case of the US, Aaron gave an example of a three sentence contract which would suffice and would be upheld even if merely sent by email. Such a contract could be sent repeatedly to a party which is believed to be acting in good faith and in need of repeated help to understand how to comply with the license.

GPL 3 Use of AGPL 3

Section 13 allows the license to function as GPL 3 for uses which are not remote network use.

Personal tools