Chapter 4. Qt, Artistic, and Creative Commons Licenses

This chapter addresses two licenses closely associated with particular programs: the Q Public License (the Qt Toolkit) and the Artistic License (Perl). Each of these licenses has unique features, reflecting the specific terms that their creators wished to impose on users or modifiers of their work. Unlike the GPL or BSD licenses, these licenses are not frequently applied to programs other than those for which they were originally developed, and they tend to be adapted only for the code originally licensed under them and derivative works. Nonetheless, because these licenses are still in frequent use and because they provide some interesting contrasts to the licenses already discussed, they are described at some length in this chapter.

Also discussed is the Creative Commons license—the fruit of an effort to expand the open source model of development beyond software to literature and the arts. While its creators state that it is not applicable to software, it is a well-written license and has begun what will be an interesting experiment at the very least.

The Q Public License

The Q Public License (QPL) was designed by the Norwegian firm Trolltech to govern the distribution of its software, the Qt Toolkit. The Qt Toolkit is a crossplatform toolkit for the development of graphical user interface (GUI) applications. It is used in KDE, a graphical user interface frequently used as a desktop environment for UNIX and UNIX-like operating systems, including many varieties of Linux. As KDE became more popular for use in Linux operating systems, concerns developed in the open source and free software community about the limitations imposed by the QPL. In reaction to this pressure, Trolltech agreed to cross-license the Qt Toolkit under the GPL as well as the QPL, after which the developers of KDE immediately shifted their license to GPL. Distribution of the Qt Toolkit and KDE has since been predominantly under the GPL.

The QPL provides a novel approach to a number of open source licensing issues. Among other things, the QPL permits distributions of modifications to covered software in the form of patches under less restrictive terms than modifications compiled with the original code, and provides certain rights applicable only to the initial developer of the licensed code.

The QPL is presented in numbered sections following the first (unlabeled) section that is the introduction. This introduction includes the copyright notice for the license itself, permits distribution and copying of the license explicitly, and provides that the license applies to all software containing the appropriate copyright notice.

Copyright © 1999 Trolltech AS, Norway.

Everyone is permitted to copy and distribute this license document.

The intent of this license is to establish freedom to share and change the software regulated by this license under the open source model.

This license applies to any software containing a notice placed by the copyright holder saying that it may be distributed under the terms of the Q Public License version 1.0. Such software is herein referred to as the Software. This license covers modification and distribution of the Software, use of third-party application programs based on the Software, and development of free software which uses the Software.

This is standard form for an open source license. The section's last sentence makes clear that the license is intended to apply to all programs "based on the Software" and "which uses the Software." As was the case with the GPL, any software that is based on or uses the Software must itself comply with the terms of the QPL or otherwise violate the terms of the original grant of rights under the QPL.

Sections 1 through 6 of the QPL appear under the section heading "Grant of Rights." Section 1 reiterates and further articulates the generational limitations applicable to QPL-licensed software

1. You are granted the non-exclusive rights set forth in this license provided you agree to and comply with any and all conditions in this license. Whole or partial distribution of the Software, or software items that link with the Software, in any form signifies acceptance of this license.

Any work that incorporates, relies on, or links to the Software must be governed by its terms.[1] Distinctions concerning the effect of linking and libraries[2] are described later in Sections 5 and 6.

Section 2 articulates the right to distribute unmodified versions of the software.

2. You may copy and distribute the Software in unmodified form provided that the entire package, including—but not restricted to—copyright, trademark notices and disclaimers, as released by the initial developer of the Software, is distributed.

The only apparent limitation on the exercise of this right is that the copyright and trademark notices and the disclaimers applicable to the Software (described at the end of the license) are distributed with the Software. However, Section 4 also requires compliance with certain provisions as a prerequisite to distribution of the unmodified Software, beyond those in Section 1. Any person distributing the Software should comply with both sections.

Section 3 permits the distribution of modifications to the Software, in the form of patches.

3. You may make modifications to the Software and distribute your modifications, in a form that is separate from the Software, such as patches.

The QPL provides substantially different restrictions on distributions of modifications as patches than it does on distributions of modifications in executable code. The distribution of modifications as patches has significant benefits to the original developer, some benefits and drawbacks to users of the modified software, and some substantial drawbacks for contributors. Distributing modifications as patches clearly delineates, in a way that no set of notices ever could, what part of the software is the work of the initial developer and what part of it is a result of the work of contributors. This has the effect of protecting the reputation of the initial developers and of making clear the primacy of the developer's work.

From a user's point of view, there is the benefit, presuming that the initial work is good, that the end user will always have access to the functionality embedded in the original work. The user does not have to compile the patches, after all. On the other hand, to the extent that such a user wants to access functions or improvements made by contributors, she is put to the task of recompiling the source code to include the patches, which is not an insurmountable obstacle.

Tip

Another product that allows free distribution but prohibits changes is the qmail mail server. For details on its distribution rules, see http://cr.yp.to/qmail/dist.html. As a result, developers extending qmail also use patching methods, although there aren't any explicit rules on the nature of those patches.

From the point of view of the contributors, the distribution of modifications in the form of patches presents a serious drawback. Because of the additional effort required by the end user, users are less likely to use the contributor's version of the software than the initial developer's. Why then would a contributor choose to distribute software as a patch? The reason is because the QPL requires contributors to surrender much fewer rights to their work when that work is distributed only as a patch. The last sentence of Section 3 with the section's two subparts follow.

The following restrictions apply to modifications:

a. Modifications must not alter or remove any copyright notices in the Software.

b. When modifications to the Software are released under this license, a non-exclusive royalty-free right is granted to the initial developer of the Software to distribute your modification in future versions of the Software provided such versions remain available under these terms in addition to any other license(s) of the initial developer.

These restrictions are quite limited. The first, Section 3(a), requires only that the patch not contain modifications that would have the effect of altering or removing copyright notices. Section 3(b) requires that the contributor permit the initial developer (Trolltech in the case of the Qt Toolkit) to gain a royalty-free license to the patch. The initial developer's exercise of rights under this license is contingent on the developer itself releasing the code containing the modification in future versions of the Software under the QPL. Other than these restrictions, a contributor releasing a patch need not surrender any other rights. He can license the patch under any license, including a proprietary license, that does not prohibit compliance with Section 3(a) and (b).[3] Moreover, the QPL does not require that the creator of such a patch make available the source code for that patch.

Section 4 governs the distributions of executable code both with and without modifications, which is in deliberate contrast to the distribution of executable code and patches provided by Section 3. The distribution of unmodified versions of the code is already permitted by Section 2; nonetheless, the restrictions imposed by Section 4—including the requirements that source code be made available and that a copy of the license be provided with the code—should be considered to be in addition to, not in place of, the restrictions imposed by Section 2.

With regards to modified versions of the Software, Section 4 provides an alternate licensing scheme to the provision of modifications in the form of patches, as described in Section 3. Section 4 permits the distribution of modifications into machine executable code (including the code in the original Software) thereby avoiding the burdens placed on end users by distributing modifications as patches. However, by distributing modified executable code, the contributor is obligated to make the source code readily available and to license the modifications under the QPL.

4. You may distribute machine-executable forms of the Software or machine-executable forms of modified versions of the Software, provided that you meet these restrictions:

a. You must include this license document in the distribution.

b. You must ensure that all recipients of the machine-executable forms are also able to receive the complete machine-readable source code to the distributed Software, including all modifications, without any charge beyond the costs of data transfer, and place prominent notices in the distribution explaining this.

c. You must ensure that all modifications included in the machine-executable forms are available under the terms of this license.

This license also permits multiple licensing; i.e., the contributor can make his modifications available under another license, such as the GPL or a proprietary license, so long as they are also available under the QPL. As already noted, all of these restrictions, including the inclusion of the license document, apply equally to distributions of the unmodified Software as well.

Section 5 permits the user to combine the Software with other products, including libraries.

5. You may use the original or modified versions of the Software to compile, link and run application programs legally developed by you or by others.

This section does not address the distribution of such Software with other application programs, but only addresses actions by end users using the Software. Distribution of a QPL-licensed program linked with a library (under a non-QPL license) is not permitted except as described in Section 6.

Section 6 describes the restrictions applicable to distributions of the Software as linked to other software. While they do not require that such "other software" be licensed under the QPL, these restrictions require both that the source code for the other software be made available and that the "other software" be subject to a license that permits distribution and modification of that software without a fee.

6. You may develop application programs, reusable components and other software items that link with the original or modified versions of the Software. These items, when distributed, are subject to the following requirements:

a. You must ensure that all recipients of machine-executable forms of these items are also able to receive and use the complete machine-readable source code to the items without any charge beyond the costs of data transfer.

b. You must explicitly license all recipients of your items to use and re-distribute original and modified versions of the items in both machine-executable and source code forms. The recipients must be able to do so without any charges whatsoever, and they must be able to re-distribute to anyone they choose.

c. If the items are not available to the general public, and the initial developer of the Software requests a copy of the items, then you must supply one.

There is no provision for distribution of the Software as part of a larger work, as there is, for example, with the LGPL. Subsections 6(a) and (b) thus essentially require that "other software" itself be licensed under an open source license, although not necessarily the QPL. In addition, consistent with its emphasis on the rights of the initial developer, subsection 6(c) of the QPL provides that the initial developer can request a copy of the "other software" in the event the distribution is non-public or the initial developer is otherwise unable to obtain a copy.

The next section of the QPL is the " Limitation of Liability" section.

In no event shall the initial developers or copyright holders be liable for any damages whatsoever, including—but not restricted to—lost revenue or profits or other direct, indirect, special, incidental or consequential damages, even if they have been advised of the possibility of such damages, except to the extent invariable law, if any, provides otherwise.

Pairing with the "Limitation of Liability" is the "No Warranty" section.

The Software and this license document are provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

As with the open source licenses examined previously, these provisions seek to limit the liability of the initial developer, contributors, and distributors to the maximum possible extent.

The final section, "Choice of Law," actually contains a choice of law provision and a choice of forum provision.

This license is governed by the Laws of Norway. Disputes shall be settled by Oslo City Court.

Non-Norwegians considering adopting the QPL to license their own software would be well-advised to revise at least this part of the license.

The QPL has some interesting features. The distinction between requirements placed on modifications distributed in patches and the requirements placed on modifications distributed incorporated into executable code is meaningful and may prove useful at least in some contexts. However, with the cross-licensing of the Qt Toolkit under the GPL, and the GPL's adoption by the KDE developers, the QPL may become less important as a license.



[1] A QPL-licensed piece of software can still operate on the same system as software licensed under another license. For exampe, the KDE program may run on a GPL-licensed system: as already noted, the simple operation of a program is outside the scope of the GPL. Similarly, the operation of the GPL software, assuming it does not link with the QPL licensed software, does not violate the QPL.

[2] The importance of libraries and linking are described in detail in connection with the LGPL in Chapter 3.

[3] For example, because of the GPL's bar on any deviations from its terms, the contributor could not license a patch under the GPL and distribute it for use with a QPL-licensed piece of software.

Get Understanding Open Source and Free Software Licensing now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.