Open Source License Agreement
License is a license to the software that gives you the right to get the code, what you can do with other people's work, and what kind of actions are prohibited.
Types of Open Source agreements
There are many open source agreements that exist today, and there are currently more than 60 kinds of http://www.opensource.org/licenses/alphabetical approved by open source Initiative organization. Our common open source agreements such as BSD, GPL, lgpl,mit, etc. are all OSI-approved protocols.
Apache License, 2.0 (Apache-2.0)
Apache Lience allows users to modify and republish code (in the form of other protocols), allowing closed source commercial release and sales.
Apache Lience encourages code sharing and respecting the copyright of the original author.
Using the Apache licence protocol, the following rules apply:
- Need to give code to the user a copy of Apache Lience;
- If you modify the code, you need to explain it in the modified file;
- The extension of the code (modified or derived code) requires the original code of the Agreement, trademarks, patent statements and other original written instructions need to be included.
- If the notice file is included in the rereleased product, you will need to have Apache Lience in the notice file. You can add your own permission to the notice, but you may not be able to make changes to Apache Lience.
In addition to these conditions, it also has these benefits:
1) Once the perpetual rights are authorized, they are permanently owned.
2) Worldwide rights are granted in one country and apply to all countries. If you are in the United States, the license is licensed from India, and there is no problem.
3) Royalty free, no upfront, late, no fees.
4) Authorization is granted to anyone without exclusivity.
5) Authorization cannot be revoked once authorized, no one can cancel. For example, if you develop derivative products based on the product code, you don't have to worry about being banned from using the code on a certain day.
Open source software using the Apache Licence vesion 2.0 protocol is: Hadoop, Apache Httpserver, Spring Framework, MongoDB.
GPL (GNU general public License)
Its main content is: As long as in a software use ("use" refers to the class library reference or modified code) of the GPL products, the SOFTWARE product must also use the GPL agreement, both open source and free. This agreement is less suitable for commercial software, or for commercial projects that are ready to use GPL open source components. Projects based on this Protocol have greatly increased the number of open source software.
The following rules apply to the use of the GPL agreement:
1. Ensure that the software is published in open source form from start to finish, protecting development results from theft for commercial sale. Any set of software, provided that the source of the third-party software protected by the GPL is used and published to non-developers, the software itself automatically becomes a GPL-protected and constrained entity. In other words, it must open the source code at this time.
2, the GPL is generally a left-hand copyright (Copyleft, or translated as "anti-copyright", "copyright belongs to the left", "copyright is not", "version of the responsibility", etc.) embodiment. You can get rid of all the original copyright information, as long as you keep open source, and with the source code, binary plate with the GPL license, so that posterity can be very clear about this software licensing information. The essence of the GPL is that, as long as the software in the case of full open source, as far as possible to allow users to free play space, so that the software to achieve faster and better development.
3, regardless of the form of software release, you must also attach the source code. For example, to provide a download on the Web, you must download the same page in the binary version (if any), providing a clear link to the source code download. If you publish as a disc, you must also attach a CD-ROM of the source file.
4. Companies or individuals who develop or maintain software developed under the GPL may charge a service fee for the user. But it is an old saying-the full source code of the software must be provided free of charge, and the source code should not be bundled with the service or bundled in any disguised form.
Many of the current uses are GPLV1,GPLV2. What's the difference between the two look at the back of the tree-shaped figure. Open source software with this protocol is: Linux, MySQL.
LGPL (GNU Library or "Lesser" general public License)
Because the GPL is too restrictive, the LGPL is limited by the use of GPL components in many commercially available software. LGPL allows commercial software to use the LGPL component in a way that references a class library (without using the source code directly), so that it does not require code for open source commercial software. However, if you want to modify the code of the original component, the code that involves modifying the part and code derived from the original code must adopt the LGPL protocol. LGPL is not suitable for commercial software that is developed two times with code based on LGPL protocol, but commercial software can use compiled class library references without exposing the source code.
Open source software with this protocol is: JBoss, FCKeditor, Hibernate. Before ExtJS, the conversion from LGPL to the GPL brought a lot of vibration.
BSD Open Source Agreement (Berkerley software distribution)
Currently divided into BSD 3-clause and BSD 2-clause. As the name implies, 3-clause contains 3 terms, 2-clause only two.
This protocol is much looser than the above two protocols, allowing the user to modify and republish the code, and to allow the use or development of commercial software to be published and marketed on the basis of BSD code, and therefore for commercial software.
The user is not too happy, the use must also meet three conditions (2-clause without 3rd):
1) If the re-published product contains source code, it must be in the source code with the BSD protocol in the original code.
2) If you redistribute only binary class libraries/software, you will need to include the BSD protocol in the original code in the class library/software documentation and copyright notice.
3) The author/organization name of the open source code and the name of the original product can not be marketed. Open source software for BSD protocol: Nginx, CruiseControl, Redis.
Important: Commercial software can be used, or code that uses the BSD protocol can be modified.
MIT (MIT License)
Originating from MIT (Massachusetts Institute of Technology, MIT), also known as the X11 protocol. MIT is similar to BSD, but more lenient than the BSD protocol and is currently the least restrictive protocol. The only condition of this agreement is that the modified code or the release package contains the original author's license information. Applicable to commercial software. Software projects using MIT are: jquery, node. js.
Important: Commercial software can be used, you can modify the code of the MIT Protocol, and even the Code of the MIT protocol can be sold.
MPL (Mozilla public License 1.1)
The MPL agreement allows for free re-posting, free modification, but requires that the modified code be copyrighted to the originator of the software. This authorization maintains the interests of commercial software, and it requires the free contribution of copyright to the software based on the modification of such software. In this way, the copyright of all the code around the software is concentrated in the hands of the initiating developer. But MPL is allowed to be modified, free to use. The MPL software does not require links.
Important: Commercial software can be used, or the code of the MPL protocol can be modified, but the modified code is copyrighted to the originator of the software.
EPL (Eclipse Public License 1.0)
EPL allows the recipients to use, reproduce, distribute, transmit, display, modify, and two commercial releases of the closed source at any time.
With the EPL protocol, the following rules apply:
- When a contributors the whole or part of the source code is released again, it must continue to follow the EPL open source agreement to publish, but not to use other protocols. Unless you have the original "source" Owner's authorization;
- Under the EPL agreement, you can publish the source code without making any changes. But if you want to post the modified source code, or when you re-publish the object code, you have to declare that its source code is available, and to inform the acquisition method;
- When you need to EPL the source code as a part of the other private source mixed with the other to become a project release, you can put the entire project/product as a private agreement, but to declare which part of the code is EPL, and declare that part of the code continues to follow EPL;
- Standalone modules (separate module), without the need for open source.
Important: Commercial software can be used, you can also modify the code of the EPL protocol, but to bear the code generated tort liability.
Choice of the Protocol simple Loose Protocol
If you just want a simple protocol and don't want too much trouble.
The MIT protocol is relatively loose but still captures the point. This agreement allows others to use your code in any way while signing the original author, but the original author is not responsible for the risk of use of the code, of course, there is no technical support obligations. jquery and Rails are the MIT protocols.
Consider the case of a patent
If your work involves patent-related.
The Apache protocol is also a relatively loose-fitting agreement with MIT, but it simply identifies some of the licenses granted to the user's patents by the work's licensors (I understand that the software works contain patents, but it authorizes you to use them free of charge). Apache server, SVN, and NuGet are the Apache protocols used.
Code sharing and Promotion
If you care about the spread of your work and other people's changes, you want others to share it with the same agreement.
The GPL (V2 or V3) is a free version of the agreement (which can be understood by copy right, which is a version reservation, the copyleft is copyright free, or no copyright, but no copyright does not mean that you can not comply with the agreement stated in the software). This agreement requires that the code Distributor or derivative works developed on the basis of this code be published with the same protocol. Version 3 of this protocol is similar to version 2, except that more than 3 adds a limit to the hardware that is not supported by the modified code (the meaning of this sentence is not quite clear).
The difference between protocols
The following tree diagram is a good description of the differences between current mainstream license agreements:
Here is the scale distribution of the open source protocol used by GitHub on the current project:
reprint Please indicate the author Jason Ding and its provenance
Gitcafe Blog Home page (http://jasonding1354.gitcafe.io/)
GitHub Blog Home page (http://jasonding1354.github.io/)
CSDN Blog (http://blog.csdn.net/jasonding1354)
Jane Book homepage (http://www.jianshu.com/users/2bd9b48f6ea8/latest_articles)
Baidu Search jasonding1354 access to my blog homepage
"Git" recognizes various open source protocols and their relationships