Author: Chen Shujun
Source of this article: original contribution
*The original content is produced by the open source community of Aikesheng, and the original content shall not be used without authorization. For reprinting, please contact the editor and indicate the source.
1. Why can Oracle release MySQL in a dual-license model (GPLv2 open source license and commercial license)?
The third-party source code referenced in MySQL is all released under a permissive open source license that is not license contagious, or is released under a dual-license, Oracle in its open-source version of MySQL, for such dual-licensed third-party code Choose to use the GPLv2 license, and choose a more permissive license for such dual-licensed third-party code in the closed-source commercial version of MySQL.
For example, MySQL has the following statement when citing the source code of Memcached.pm (Artistic license is a more relaxed and non-infectious open source license, allowing modification or citing its source code and not open source):
Memcached.pm
Memcached.pm
Memcached.pm is licensed
under the Perl license.Oracle may use, redistribute and/or modify this code under the terms of either:
a) the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version, or
b) the "Artistic License" which comes with the Expect/pr code.
Oracle elects to use the GPLv2 for version of MySQL that are licensed under the GPL.
Oracle elects to use the Artistic license for all other (commercial) versions of MySQL.
A copy of the GPLv2 and the Artistic License (Perl) 1.0 must be included with any distribution. This component is licensed under the GNU GPL license, version 2.0. This component is licensed under Artistic License (Perl) 1.0
Based on the above facts, and when a third party contributes source code to Oracle MySQL, they must sign Oracle's OCA Agreement (Oracle Contributor Agreement), stating that they will give up the intellectual property rights of the contributed source code, and the intellectual property rights of this part of the source code shall be owned Oracle Corporation owns it, so Oracle Corporation has absolute control and intellectual property rights over the MySQL source code, and Oracle Corporation has the right to decide under which license MySQL is distributed. Many people may have some doubts: why the GPL of GNU clearly stipulates that the code must be released under less restrictive terms, and the copyright holder can also provide a private license. The answer is that the terms of the GPL are set by the copyright holder for all others; and the copyright holder is free to decide whether to apply the terms to himself. A good way to understand this is to imagine that the copyright owner has countless copies of the software in the bucket. Every time it takes one from the bucket and sends it to the world, it can decide whether to use the GPL, proprietary or other license. It's not just about the GPL or any other open source license, it's just a right conferred by copyright law.
2. Can Oracle change the open source protocol of MySQL or simply close the source?
Based on the conclusion of question 1, yes, but only for subsequent new releases. Older versions of MySQL that have been released under the GPLv2 license cannot be changed to open source license or closed source.
3. Why can't the released old version of MySQL be able to change the open source protocol or closed source?
Open source licenses are distributed with software copies, and each copy of the MySQL software comes with an open source license. When a user downloads a copy of the MySQL software, he obtains the corresponding license for the copy of the software. Oracle, the publisher of the software copy, cannot reclaim the distributed software copy and license, so it is impossible to change the license. License for copies of software. What can be used as evidence for the above conclusion is a FAQ on the GUN official website, which has the following explanation:
http://www.gnu.org/licenses/gpl-faq.zh-cn.html#WhyMustIInclude
Why does the GPL require a GPL copy to be included with every software copy?
It is critical to include a license with each copy so that everyone who gets a copy knows what their rights are.
It might seem nice to include a URL to the license instead of the license itself. But you can't guarantee the validity of that URL five or ten years from now. In 20 years, the URLs we use today may not exist anymore.
No matter what happens to the network, the only way to ensure that people who have a copy will still see the license is to include a copy of the license in the program.
4. How likely is it that Oracle will change the MySQL open source license or closed source?
Although the MySQL product itself is open source and uses the GPLv2 license, its development is under the control of Oracle Corporation, although there may be people who are really dissatisfied with Oracle Corporation's control of MySQL development and fork the project (actually someone has done this, such as Percona, MariaDB, etc.). To a certain extent, this threat forces Oracle to carefully consider the consequences of changing licenses or closing source MySQL, which may lead Oracle to voluntarily give up the huge market opportunity of MySQL and hand it over to others. On the other hand, whether a completely closed-source MySQL is likely to succeed in the current open-source world ecosystem or beyond is also something that Oracle needs to consider.
We can't speculate on Oracle's thoughts on MySQL, but only from the above analysis, we believe that it is unlikely that Oracle will change the current MySQL business strategy.
5. What should we do if subsequent versions of MySQL change to a less friendly open source license or directly closed source?
You can create a code branch based on the old version of MySQL source code that has been released, continue to develop the MySQL branch version based on the GPLv2 open source license, and release a commercial distribution based on this branch version (must be open source, you can sell software licenses or provide technical services to users as commercial model).
We believe that even if Oracle has no plans to change the open source license or closed source for MySQL in the future, it is necessary to develop a MySQL branch version project that is independent and organized by authoritative departments in China. The reasons are as follows:
- Due to Oracle's absolute control over the MySQL project, MySQL does not have a truly equal development community. Oracle can only obtain small-scale BUG fixes and patch cleanups from the outside world, and it needs to invest a lot of internal company resources to support the development of the MySQL project. Once MySQL If the income of the project is too small, there is the possibility of reducing the investment and then affecting the development of the MySQL project. At the same time, whether it is to meet the user community's demands for new functions and new features or the response speed of bug fixes, it is not satisfactory, and users' expectations and demands for MySQL cannot be timely fed back and satisfied.
- Due to the escalation of competition between China and the United States, the country's requirements for independent and controllable software and hardware, Oracle MySQL's adaptation of domestic software and hardware, national encryption algorithms, and support for scenarios with huge domestic business volume are all lacking, and Oracle's It is impossible for the MySQL needs assessment department to properly consider China's national conditions.
Based on the above two points, it is very urgent to develop a MySQL branch version with Chinese characteristics, in line with China's national conditions, and able to fully respond to the needs of domestic users.
6. Why is MySQL so important in the entire open source ecosystem and in the consideration of end users, can we go to other routes without developing MySQL?
MySQL is currently the most popular open source database software in the world, with a huge market share, which is an undeniable fact. In our country, end users from all walks of life also use MySQL database in large quantities, which has formed a huge investment of assets. These assets include but are not limited to: basic software and hardware facilities, application software development adapted to MySQL, and talent training in the MySQL ecosystem. On this basis, a huge software ecosystem and talent ecosystem around MySQL have been formed in China, and a large number of end users use MySQL as their preferred database software. To replace such a huge ecosystem of software and talents requires huge investment and strong leadership, and the risks involved are self-evident. This risk is no less than the consequences of Oracle's sudden closure of MySQL. We believe that instead of taking huge risks and completely abandoning MySQL and changing the route, it is better to lead various authoritative departments and cooperate with domestic manufacturers in the database industry to establish a domestic independent and controllable MySQL branch community, and form a unified MySQL branch through strong and scientific leadership. Community ecology, beware of the fragmentation and fragmentation of MySQL's domestic community. Through this unified and powerful MySQL branch open source community, we can serve the huge MySQL end-user group in China.
7. Will the development of MySQL open source branch in China involve intellectual property infringement?
Won't. To understand this problem, you first need to understand the most basic principles of the GPLv2 license.
The GPL licenses the public to enjoy: the freedom to run and copy software, the freedom to distribute and disseminate software, the freedom to obtain software source code, the freedom to improve software and the freedom to distribute and disseminate the improved version to the society. The GPL also stipulates that as long as the modification as a whole or a certain part comes from a program that follows the GPL, the modification as a whole must be circulated in accordance with the GPL, not only the source code of the modification must be disclosed to the public, but also the circulation of such modification Permission is granted with limitations imposed by the modifiers themselves. Therefore, a program circulated under the GPL cannot be merged with nonfree software. This kind of circulation rules expressed by GPL is called Copyleft, which is contrary to the concept of Copyright (copyright).
The main principles of the GPL agreement:
1. Ensure that the software is released in the form of open source code from beginning to end, and protect the development results from being stolen and used for commercial sale. Any set of software, as long as the source code of the third-party software protected by the GPL agreement is used in it and released to non-developers, the software itself automatically becomes an entity protected and bound by the GPL. That is, at this point it has to be open source.
2. GPL is the embodiment of Copyleft, or translated as "copyright only", except that the copyright belongs to the original author, all other rights are shared with anyone. The essence of GPL is to make the software in the case of complete open source, as much as possible to allow users to get free play space, so that the software can be developed faster and better.
3. No matter what form the software is released in, the source code must be attached at the same time. For example, to provide downloads on the Internet, a link to the source code download must be clearly provided on the same page where the binary version (if any) is downloaded. If it is distributed on CD, the CD of the source files must also be attached.
As can be seen from the above description, GPL is a license agreement based on the principle of "freedom" over "copyright". In the face of "free" dissemination, everything else needs to give way. Users can obtain the rights waived by the copyright owner through the GPL license, but they must also abide by the provisions of the license to exercise their rights. If they do not comply with the GPL provisions, they are infringing the copyright of open source software, and the copyright owner has the right to ask the other party to stop related behaviors and others. Once Oracle releases a copy of the MySQL software under the GPLv2 license, it immediately relinquishes all rights other than copyright to the copy of the MySQL software. Due to the protection of the GPL license, this copy of the MySQL software Immediately becomes a "free" copy of the software, which can be freely used, modified, and distributed by the person or organization that obtains the copy, subject to continued compliance with all provisions and constraints of the GPL license.
To sum up, when developing the domestic MySQL open source branch, as long as all the regulations and constraints of GPLv2 are followed, disputes at the intellectual property level will not be triggered, and we can legally and freely use the MySQL source code released by Oracle.
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。