This is not a legal document. For the exact interpretation of the license you must read it and understand it. This page is simply meant to explain the license in an easy to understand and informal way.
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 to ensure that everyone follows the rules. If you do not accept this license you are not given the right to distribute the software, to make modifications to it nor develop anything with it.
Distribute the software, i.e. Qt, to anyone you like, as long as you include everything in the original distribution. In order to preserve the integrity of the unmodified version, modifications are restricted to being separated in some way from the original Qt source code.
You can make and distribute changes, the preferred form being patches.
You cannot just change the code and redistribute it, as this would not be separate - people would not know what part of the software is Qt and what part is the changes you made.
The easiest way to deal with this is to use a version management system such as CVS - you will find that it is in fact much easier to distribute patches than to try to deal with entire files. With patches, you can easily incorporate changes made by others into your copy of Qt.
You may also distribute a modified binary version if you include the patch (see 4).
Patches should include an accurate description of the modification, the date of the modification, and the author of the modification.
A typical patch is shown below.
Copyright (C) 1998 Harald Acker
This patch may be distributed under the terms of the Q
Public License, version 1.0 or later.
This patch is for Qt 2.42. It fixes the bug where Foo
objects move right when they should move left.
-=- qfoo.cpp 1998/09/15 10:44:25 2.18.2.3
+++ qfoo.cpp 1998/11/20 12:28:12
@@ -157,2 +157,2 @@
// Move to the left
+ x += 1;
- x -= 1;
Any technique is acceptable for keeping changes separate - generally, you would have to mark changes very clearly for them to be separate. We don't want to hard-code the idea that the form must be patches.
This doesn't really need to be stated, since to do so would be fraudulent.
You may license your patch any way you see fit, but note that when distributed in a binary form of Qt, it must be licensed under the QPL - this is explained in section 4.
This clause makes it possible for Troll Tech to include patches in new versions of Qt. It also means that the same patches can be included in the Qt Professional Edition, but Troll Tech are in turn required to ensure that those changes are in both versions.
You may distribute binaries.
You must tell the recipients about their rights.
The easiest way to achieve this is to have the source code accompany the binary version. For FTP distribution, it should be just as accessible. For CD-ROM distribution, it should be on an accompanying CD. The basic rule here is "binary follows source".
Most patches contain quoted Qt code, plus work of your own. You may license your patch any way you see fit, but when distributed in a binary form of Qt, it must be licensed under the QPL. Be careful if taking code from other sources to include in Qt - that other software may not allow such copying.
Why? Without this restriction, nothing would prevent modified versions of Qt, licensed under non-free licensing.
If you have a program written for the software, go ahead and use it. This allows you to use software created under either the Qt Free Edition license or the Qt Professional Edition license with the one library version.
This is a license designed for libraries, therefore we must also talk about application programs or other libraries (components) that are linked with the software, as these include portions of Qt when in binary form. Of course, given the term "link", there is no differentiation between static and dynamic linking.
In essence this clause says that you may develop programs that link with Qt provided that you develop Open Source software.
Like 4b., "source follows binary". You are free to charge for binaries, however you must also supply the source code. Note that "all recipients" includes recipients that you do not directly transfer copies to. The easiest way to achieve this is to allow (or insist) that all recipients can further distribute the source.
This ensures that all recipients have the same rights, no matter how or from whom they received the software. The easiest way to provide this explicit license is to allow recipients to grant the same license to others.
If the recipients of your software wishes to do so they may re-distribute your software without anyone having to pay money either to them or to you.
This is to avoid problems with companies that try to hide the source. If we get to know about it we want to be able to get hold of the code even if we are not users. In this way, if somebody tries to cheat and we get to know we can release the code to the public.
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.
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.
This license is governed by the Laws of Norway. Disputes shall be settled by Oslo City Court.
This LGPL is meant to be included from other files. To format a standalone LGPL, use liblic.texi.