How to select an open source license agreement (1)-understanding the agreement

Source: Internet
Author: User

At present, open-source projects in China are gradually warming up, and many outstanding open-source projects in China are also highlighted. When everyone is ready to join the Open Source army, they also need to know the rules in this circle. Technical personnel cannot only study technology, but have rules in any circle. They must know before they can play well. Some time ago, there was a lot of fun about open-source software. A Chinese developer sold his work at a high price by someone from other companies who packed it into their own products. Most open-source software developers do not pay much attention to copyrights. The specific microblogs are as follows:

After being open-source, we found that most of them were learned by others, copied them, and closed the source to sell them. There is no shortage of large companies. One company sold my open-source system to a domestic operator and sold at least 100,001 sets of expensive products. Therefore, I strongly recommend that you do not open source the English version of software, but not the Chinese version.

In China, everyone is used to piracy and cracking, and it is taken for granted that such free software is encapsulated into their own commercial components for sale. If you are doing this, immediately stop and study the license agreement for these open source components, or one day you will receive a subpoena from the court. If you are developing or preparing to develop open source software but do not know about the open source license agreement, read this article and select an open source license agreement to protect your open source software.

Common open-source license protocols include GPL, lgpl, BSD, Apache licence vesion 2.0, and MIT. What are the differences between these protocols?

  • GPLThe name is GNU General Public License. Its main content is: as long as you use the GPL protocol in a software ("use" refers to the Code referenced by the class library or modified), the software product must also adopt the GPL protocol, it must be both open-source and free. This protocol is not suitable for commercial software or commercial projects that are prepared to use Open-Source GPL components. Projects Based on this Protocol greatly increase the number of open source software. In the above Weibo case, if the author uses the GPL protocol and the user does not disclose the source code, it is a violation of the Protocol. Currently, gplv1 and gplv2 are mostly used. What are the differences between the two trees. Open-source software using this Protocol includes Linux and MySQL.


  • LgplIt was first abbreviated as library GPL and later called lesser GPL. Because GPL is too strict, many commercial software are limited to use the GPL component to launch this lgpl. Lgpl allows commercial software to use the lgpl component by referencing the class library (without directly using the source code), so that the code of open source commercial software is not required. However, if you want to modify the code of the original component, you must use the lgpl protocol for both the Code involved in modification and the code derived from the original code. Lgpl is not suitable for commercial software that uses code based on the lgpl protocol for secondary development. However, if the commercial software can use the compiled class library reference, the source code does not need to be published. Open-source software using this Protocol includes: JBoss, FCKeditor, and hibernate. Previously, extjs caused a lot of vibration by converting from lgpl to GPL. Click for details.


  • BSDThe full name is Berkeley Software Distribution. This Protocol is much more loose than the above two protocols. It allows users to modify and re-release code, and allows users to use or develop commercial software release and sales based on BSD code. Therefore, this protocol is suitable for commercial software. The user must meet the following requirements:

1) if the released product contains the source code, the BSD Protocol in the original code must be included in the source code.

2) If you only release binary class libraries/software, you must include the BSD Protocol in the original code in the Library/software documentation and copyright statement.

3) Open-source author/Organization Names and original product names cannot be used for marketing. Open-source software applicable to BSD protocols include nginx, cruisecontrol, and redis.


  • Apache licence vesion 2.0In addition to providing users with a copyright license, this agreement also has a patent license. Similar to BSD Protocol permissions, commercial software is applicable to code modification and re-release. However, the following conditions must also be met:

1) The user of the Code must have an Apache license.

2) If you have modified the code, you need to explain it in the modified file.

3) in the extended code (Modification and code derived from source code), the Protocol, trademark, patent statement in the original code and other instructions required by the original author shall be included.

4) if the product to be released contains a notice file, Apache licence must be included in the notice file. You can add your own license to notice, but it cannot be expressed as a change to Apache licence.

In addition to these conditions, it also has these benefits:

1)Permanent rightsOnce authorized, it is permanently possessed.
2)Worldwide rightsAuthorization in one country applies to all countries. If you are in the U. S., your license is authorized from India.
3)Free authorizationNo royalty, no fees in the early and later stages.
4)No exclusive authorizationAnyone can be authorized
5)Authorization irrevocableNo one can cancel the authorization. For example, if you develop a derivative product based on the product code, you do not have to worry about being banned from using the code one day.

Open-source software using Apache licence vesion 2.0 protocols include hadoop, Apache httpserver, Spring framework, and MongoDB.


  • MITOriginated from the Massachusetts Institute of Technology (MIT), also known as the X11 protocol. MIT is similar to BSD, but it is more loose than BSD. It is currently the protocol with the minimum limit. The only condition of this agreement is that the modified Code or release package contains the original author's license information. Applicable commercial software. Software projects using MIT include jquery and node. js.

Common protocols are listed, and some of them are commonly used by Google, such as Mozilla Public License, Creative Commons, and eclipse Public License 1.0.

The tree structure of a blog explains the differences between the current mainstream licensing protocols.

The following is a diagram of the license agreement proportions currently used in GitHub:

The next article describes how to add an open source license agreement to the project website.


Original article, reprinted Please note:Reprinted from lanceyan. com

Link:How to select an open source license agreement (1)-understanding the agreement

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.