Hi, Habr, long time no see! Since my previous publications in
The PostgreSQL Evangelist Memo ( 1 , 2 , 3 ) took quite a long time, and much has changed. New releases of MySQL and PostgreSQL were released with interesting features (although the content of my articles remains mostly relevant, I tried to make minor updates where it was needed). Co-marketing came into vogue (with co-franchising and even co-leasing in places) when PostgreSQL talks are heard at MySQL conferences and vice versa. There were even joint reports where attempts are made to objectively compare MySQL and PostgreSQL in various planes. The story with Uber has died down, with a lengthy discussion, to which I also made my modest contribution .
In general, the dialogue between the two projects becomes more meaningful. I hear less and less horror stories and myths, which I described in previous articles. However, there is one persistent myth that is still spun by the PostgreSQL community. To be precise, it is being promoted by my beloved company Postgres Professional - from representatives of other companies I haven’t heard that yet. This is the MySQL “proprietary” myth. In conversations, the Postgres Professional manual demonstrates some wild ignorance of the materiel and a peculiar interpretation of the terms. So it's time for the dear editorial board to climb onto the armored cars again!
It all started with the report of Oleg zen Bartunov, CEO of Postgres Professional, at the DevConf 2017 conference. The report was called PostgreSQL for hipsters . Naturally, just as it is impossible to pass by the house without joking, you cannot talk about PostgreSQL without mentioning MySQL . So it was here, I heard some amazing stories about MySQL. Some of them, I hope, will be a separate story later. Here we will discuss one specific statement by Oleg, where he famously pushes Oracle RDBMS, MySQL and Microsoft SQL Server with the same brush, calling them all “proprietary” ( video, from 16:48 to 17:11 ).
I contacted Oleg to find out what it was: simple trolling, random reservation or conscious evangelism . It turned out that evangelism - Oleg really thinks so and is even ready to argue his point of view. But his argument seemed strained to me, and Oleg also rejected my arguments. I thought that since Oleg expresses his point of view publicly, then why not give me my own, and that this would be a good continuation of a series of articles on PostgreSQL evangelism .
Actually, this is not the first attempt by Postgres Professional to declare MySQL as proprietary software. In short, I touched on this topic in previous articles, but then I didn’t suspect the full depth of errors that was revealed only in the comments to the articles, as well as in recent personal correspondence and a small discussion on this topic on Facebook. Periodically, Postgres Professional development director Alexander smagen Korotkov joins the discussion . To justify proprietaryity, any arguments are used: differences in development models, licenses, and business models between the MySQL and PostgreSQL communities. Naturally, there are differences - there are hardly two absolutely identical for all project criteria. However, the desire to declare "proprietary" everything that does not fit into their own ideas about the open-source ecosystem is observed only in Postgres Professional.
Purely human, I can understand this desire to expropriate the title of the most popular open database. But to understand the motives is not to agree, therefore we will analyze the arguments in detail.
Let's start with the basic terms. I will not delve into history, as Richard Stallman does in his lectures. I also will not go into the jungle of law, describing the copyright for "works of science, literature and art," as Wikipedia does . I will describe things in simple Russian with a focus on software.
Copyright (copyright) for software is a set of laws adopted in most countries that give the author of the program (the copyright holder in a more general sense) the right to independently determine the conditions of use and distribution of the program. Such conditions are called a license . Copyright occurs at the time of writing the program code. The author can transfer the copyright to another person or organization, or completely abandon them. In case of refusal of copyright or expiration of their validity, the program goes into the “public domain” (public domain).
The terms “free”, “open” and “proprietary” software are used quite widely to conditionally divide the entire software spectrum depending on the level of “freedom” of use and distribution, that is, license conditions.
The term “free software” is used by the Free Software Foundation, created by Stallman in 1985. Recently, the term “libre software” has also been used to avoid the ambiguity of the word “free” in English, which can mean both “free” and “free”, which is not the same with programs.
Stallman and FSF define the following four criteria for free software :
A very similar term “open source software” (English open source software ) was proposed by the Open Source Initiative founded in 1998. OSI defines a longer list of formal criteria, but if we discard tinsel, they all boil down to the same definition that FSF uses: open source software is “software that can be freely obtained, used, modified and distributed in its original or modified form”. The new term was created mainly in order to avoid the ambiguity of the word free in English. And the new organization was created because of disagreement on “philosophical” issues with the FSF and a desire to focus on practical issues without too much evangelism .
The term “proprietary software” is used to refer to programs that do not meet the criteria for free or open source software. Note also that based on popular definitions, “free”, “open” and “proprietary” software depends solely on the license.
Obviously, MySQL, which Oracle distributes under the GPLv2 license created by the FSF, meets these criteria. There are many projects and even companies that would never have appeared without these freedoms, for example, MariaDB, Percona Server / XtraBackup, Galera, Amazon RDS / Aurora. Many large MySQL-using companies create and use their own MySQL forks, which would be impossible if MySQL were proprietary: Facebook, Twitter, LinkedIn, Uber, Alibaba.
This article could have been completed if it were not for all the variety of arguments that Postgres Professional throws on the fan.
So, calling MySQL “proprietary”, Oleg Bartunov obviously uses some of his own definitions of open / free and proprietary software. It has the right, of course, but I failed to figure out these definitions. Instead of formulated criteria, Oleg cites some quotes from the Wikipedia and the Oracle Contributor Agreement, which he clearly does not understand very well.
First, Oleg says, the openness of the source code does not mean anything and cites from a wikipedia article about proprietary software as evidence: “Proprietary software, non-proprietary software (proprietary software; from proprietary - private [1], proprietary software [1], as part of the property [1] and software (software), is software that is the private property of the authors or rightholders and does not meet the criteria for free software ( there is not enough open source code for sure ).
Indeed, the presence of open source is not enough to meet the criteria of the FSF or OSI. The code of a proprietary product can be obtained from the manufacturer under very limited conditions (or it can be stolen altogether), and examples of such a “discovery” can be found . Typically, this code can be read, but something beyond that can not be done with it. The ability to read source code is only a small part of the freedoms defined by FSF / OSI.
But where is MySQL, whose license is GPLv2 with the full range of freedoms that it defines?
Secondly, Oleg claims that MySQL proprietaryity is ensured by the fact that “all rights are concentrated in one hand” and confirms this by the existence of the OCA ( Oracle Contributor Agreement ) and the following quote from there: “This Oracle Contributor Agreement (“ OCA ”) applies to any It’s not a problem. ”
As I understand it, Oleg interprets this quotation approximately as “guard, the hooligans are deprived of copyright!”.
Let's start with the medical fact that Oracle could not accept any patches from the outside at all, and MySQL would not stop being free and open source software in the definitions of FSF and OSI. But Oleg has his own definition, and it became interesting for me to go ahead and try to at least understand it.
If Oleg had bothered to read the entire agreement (it is short) or at least the list of frequently asked questions , he would have learned that the OCA does not require an exclusive transfer of copyright and the rights are not “concentrated in one hand”. The agreement establishes joint copyright between Oracle and the author of the code, after which each of the parties to the agreement can do whatever they want with the code. Quote from the OCA FAQ: " Oracle, you still want your code. ”
In addition, there is at least one more organization in the world of free software that takes an even more radical position than Oracle. It is called the Free Software Foundation. If you go to make a contribution to any project, the copyright of which is owned by the FSF, you will have to sign an agreement on the full (and not joint, like Oracle) transfer of the copyright to the FSF. The list of projects includes glibc , GCC , Bash , Autoconf , Automake , coreutils , GnuPG and many other projects, without which it is difficult to imagine a modern free software ecosystem.
It turns out that all these projects are the same proprietary in terms of Oleg, like MySQL (“all rights are concentrated in the same hands”)? Oleg does not give the answer, how to resolve this problem. But here he comes to the aid of Alexander Korotkov, who kind of tells us that "FSF and Oracle are completely different organizations!". But who would argue, Oracle is something not to love (FSF, by the way, too). But here we are again embarking on a very slippery path, when everyone can call “proprietary” everything, depending on their own religious beliefs. And you want to speak a common language. Who and how will determine the kosherness of the developer company in order to understand whether it should be considered its open soure projects to be “proprietary” or “free”?
Alexander partially agrees with this argument, but turned the conversation to the possibility of changing the license and dual licensing. We will talk about this later.
If you look at the whole range of free / open source software, some projects (including PostgreSQL) do not require signing agreements at all, some require signing a license agreement (examples: openssl, Qt, Apache Software Foundation projects) that require the developer to provide the project as a rule, an undisputed license to use with sufficiently broad rights, and some require the joint or full transfer of copyright (examples: FSF and Oracle).
Where did such confusion and vacillation come from? This is where legal hardcore begins. Everything depends on the specifics of the project, the legal concerns of the copyright holder, as well as the opinions of specific lawyers who advised him, the copyright holder. Free software is in many ways still a “gray zone” for traditional copyright laws. There is no single “right” way, there is not even agreement among lawyers themselves. For example, at the FOSDEM conference there is a separate track dedicated to the legal problems of developing and using free software, and there are still a lot of these problems.
The absence of any agreements certainly simplifies the inclusion of third-party patches. But there is a downside associated with legal risks. About all this you can write a separate article. For now, I’ll just leave links to the most informative, from my point of view, articles for those who want to understand further:
I repeat that all these questions relate to the conditions for the inclusion of third-party patches in the project. That is absolutely orthogonal to the conditions on which users get the project code and which define the project’s “free” or “proprietary” nature, at least from the point of view of the FSF and OSI. Oleg Bartunov and Alexander Korotkov have the right to give their own definitions of what they will think of, but by their own admission, they are not very good at legal issues. We can all be wrong, but I would like to see at least a desire to understand basic things.
This argument inevitably arises when discussing the “proprietaryity” of MySQL. Let me remind you that there are two separate software products: MySQL Community Edition (which is usually called MySQL), distributed under the GPLv2 license, and MySQL Enterprise in different versions, which are distributed under the proprietary license.
Here we will talk about open source business models. One of the main tasks that both FSF and OSI set for themselves has always been to attract commercial companies to develop open source software. To do this, there must be a sustainable business model that would attract commercial companies to invest in the development of what is available to all for free, and even under a free license. If you are not Facebook or Google, there are not so many options. One of them is called dual licensing.
The dual licensing model can be applied in different ways. You can distribute the same product under different licenses. For example, under the GPL for those to whom this license is suitable, and under the proprietary license for those to whom the restrictions of the GPL do not allow the use or integration of the product into their applications. That is, the business model is essentially to sell exceptions from a free license.
The second option, which provides for the sale of premium licenses for a product with extended functionality , is also called an open core .
The first option is used, for example, by Oracle itself for some versions of MySQL Enterprise, Digium for Asterisk's VoIP system, Sphinx full-text search system, and the well-known Qt library. By the way, it was Stallman who first proposed this model to Trolltech, a former developer of Qt.
The second option uses Oracle both for the same MySQL and for VirtualBox . This model is also used by Nginx in the commercial product NGINX Plus .
Open core dual licensing also uses Postgres Professional for the Postgres Pro Enterprise proprietary product. By the way, I have never heard that the Postgres Professional employees called Nginx, Sphinx, Qt, VirtualBox, and PostgreSQL itself “proprietary” due to the presence of proprietary versions under dual licenses. But for some reason they really like to speculate about the dual licensing of MySQL and the “stumbling block”. What a strange selectivity .
In my opinion, it is obvious that the presence of proprietary versions does not at all make the corresponding open projects “proprietary”, be it MySQL, Nginx, PostgreSQL, Qt or Sphinx. All the vague reasoning on this subject from the Postgres Professional is an attempt to pull the elephant on the globe .
This argument comes up in various forms in discussions with people from Postgres Professional and not only when it comes to MySQL. “The issue of trust in the company”, “exclusive rights in the hands of a commercial company”, “Oracle may close MySQL”. On the one hand, this is all true, and on the other hand, another attempt to cast a shadow on the fence.
This is true because Oracle is indeed a commercial company with a fairly “aggressive” reputation. And no one can ever guarantee you that Oracle will not shut down MySQL or stop development.
But these are attempts to cast a shadow on the fence, because it's 2017, not 1997, and we live in a world where significant (if not most) open source software, from device drivers to distributions and DBMSs, is being developed commercial companies. This is neither good nor bad, it is just an objective reality given to us in sensations. Here are the open source projects of other large companies: Facebook , Google , IBM , Intel , Redhat , Canonical , Yandex , Mail.Ru.
It's hard for me to say how all these companies are “kinder” Oracle, and who can guarantee that they will not abandon or close their projects. The very concept of open source software was developed just to minimize the damage from such situations, when a community can raise a fallen banner, if it exists. , , «» , .
, , Oracle, . , Oracle , – « », , . .
. , , - Oracle, Microsoft, IBM, Facebook, Google .. , . , , MySQL «» , , . .
« !» – . , MySQL PostgreSQL. , , , , .
, , Postgres Professional FUD MySQL . , , .
! , , MySQL – «», Postgres Professional . , , , Oracle Microsoft SQL Server ( ) , MySQL, «» – FUD. MySQL , , GPL, , . FSF MySQL , Wikipedia MySQL « », Github , MariaDB, Percona, Amazon, Facebook, Twitter, LinkedIn, Uber Alibaba .
, !
Source: https://habr.com/ru/post/334444/
All Articles