Software licenses

As an author or co-author of software one has to be aware of the advantages and disadvantages of different software licenses. Under my time at the Security Engineering group I wrote the following summary about different licenses. The text does not raise the claim to be complete. It should only provide a short overview about the topic.

As the author of a software you can choose the license under that you want to cover your software. You can also decide to use no license at all. Nevertheless, if you want to claim the conditions under that your software can be used and modified you should add a license to it. If you don’t want to create you own license text then there is a wide range of available software and document licenses that can be used instead. This page should give a short introduction and some links to further reading. The following topics are explained in the document:

  • Copyright/ Copyleft
  • Overview
  • Detailed Comments
    • GPL
    • LGPL
    • BSD License
    • Apache License
  • Further Reading

As mentioned above as author you are free to choose any license you want there are only some points that can limit the freedom:

  1. If you use programs or documents that are covered under a certain license you have to read the license agreement of this software carefully to find out if there are restrictions for you own software. Such restrictions might be that you have to put your own software under the same license (e.g. GPL, LGPL), you have to provide source code for your software (e.g GPL, LGPL), you can only use your software for non-commercial use (e.g. licenses for trial versions), …
  2. If you want to provide industrial partners the possibility to use your software in commercial non open-source products you should not choose a license that forbids this (e.g. GPL).

As long as you respect the licenses of used software/documents you can also decide to use differnt license models for different users.

Copyright/Copyleft, Open-Source

Copyright: the right to use, modify and distribute the software/document is limited to the author. This concept is not compatible with the open software idea.

Copyleft: the right to use, modify and distribute the software/document is not limited. Moreover, it is guaranteed that other software that uses or modifies software covered under a copyleft license is also open in use, modification and distribution.

Open-Source: this term is directly linked to the use of the software and includes the freedom to use, modify and distribute the software. Open-Source software does not have to be covered under a copyleft license as the BSD license demonstrates.

Overview

The following overview table is copied from AWStats. It was updated the last time on 2002-09-21.

License Family License Name Download and use Sources available Use, modify, distribute for Use, Modify, Distribute for Examples
Liberty Policy (1) Copyleft (2) Copyright Software at no charge free or just for a fee for copy a fee or with sources not provided
Free Non Copylefted Non Copyrighted Public Domain Software You can (5) yes You can (5) You can (6) Xwindow
Copyrighted to author MIT License You can Not always You can You can
BSD License You can Not always You can (7) You can (7) BSD Unix
Apache License You can Not always You can (8) You can (8) Apache
Free Copylefted Copyrighted to author LGPL You can Yes You can (3) You can’t (9) OpenVRML
GPL You can Yes You can (3) You can’t (4) Most of GNU software
Semi-Free Sofware Copyrigthed to author Semi-Free Software Yes if you are individual and for non profit purpose only No You can’t (4) You can’t (4) PGP
Proprietary software Copyrighted to author Freeware (price=0) You can No You can’t (4) You can’t (4) Sonique
Shareware (price>0) Only for evaluation purpose No You can’t (4) You can’t (4) Most of ASP Softwares, Paint Shop Pro
Commercial license You can’t (4) No You can’t (4) You can’t (4) Windows, Office

(1) Don’t forget that "free" software refers to "liberty" to use and distribute it. So don’t use "free software" for a program which price is null.

(2) Copyleft means that changes and distributions can be made with no additional restrictions. So gratis software must be kept gratis.

(3) Sources must be provided

(4) You can if the author give its authorization

(5) Everyone who modify a non copylefted and non copyrighted software can use its own license for his version. So some modified/distributed versions may be Proprietary Softwares.

(6) Your modified version can become a Proprietary Software if you want

(7) Name of authors/contributors can’t be used to endorse or promote products derived from the software

(8) A modified version can’t be called with its original name. Name of authors/contributors can’t be used to endorse or promote products derived from the software.

(9) You can link a LGPLed library into a commercial program but you must allow users to use another version of this library.

Detailed Comments

GPL

You may copy, modify and distribute software that is covered under GPL. Every time you use a GPL library or other GPL code then you have to apply the GPL to you program. You are allowed to charge fee for you GPL software. You must provide the source code. The full version of the GPL must be shipped with the program. The current version is 2.0 (17.07.06). Information about version 3 can be found here.

LGPL

LGPL is a weaker version of the GPL. Programs/Libraries under LGPL (formerly the GNU Library General Public License) can be integrated into software that is covered under other licenses by linking dynamically to the LGPL software. A software that is a modification of a LGPL software or that links statically against a LGPL software has to be covered under LGPL or GPL.

BSD License

This is a more flexible license that allows others to cover modified or distributed versions of the software under a wide range of licenses. The only restriction is that the copyright statement has to be shiped with the source or binary. The template for a BSD like license has to be adapted with respect to your own dates.

Apache License

You can modify and distribute software that is covered under Apache-License. You must give any recipients of the program a copy of the Apache-License, you must cause any modified files to carry prominent notices stating that You changed the files. You must retain, in the source that You distribute, all copyright, patent, trademark, and attribution notices, excluding those notices that do not pertain to any part of the derivative works. Finally, if the original software includes a "NOTICE" text file as part of its distribution, then you must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.

You may add your own copyright statement to your modifications and may provide additional or different license terms and conditions for use.

Further Reading

If you are really interested in a special license you should read the license text.

Lists of licenses:

Article about free-software licenses : http://www.stromian.com/Public_Licenses.html