Memo Evangelist PostgreSQL: are expropriating the expropriators

hi, Habr, long time no see! Since my previous publications in
the series "Memo Evangelist PostgreSQL" (1, 2, 3) it's been a while, and much has changed. Out new releases of MySQL and PostgreSQL with interesting features (although the contents of my articles remains largely relevant, I tried to make small updates where required). In Vogue co-marketing (with co-franchising and sometimes even co-lease) reports PostgreSQL sound at conferences on MySQL and Vice versa. There was even joint reports, where attempts an objective comparison between MySQL and PostgreSQL in different planes. Died down the story of the Uber with a long-time discussion that I also made a contribution.
In General, the dialogue between the two projects becomes more meaningful. I rarely hear the horror stories and myths as I described in previous articles. However, there is one persistent myth that continues to be spun by the PostgreSQL community. To be exact, it spins my favorite Postgres Professional company – from other companies I still have not heard. This is the myth of the "proprietarily" MySQL. In conversations the user Postgres Professional demonstrates a wild ignorance of materiel and peculiar interpretation of the terms. So the time has come dear editor, again to climb on the armored car!
how it all began?
it all Started with the report of Oleg zen Bartonova, CEO Postgres Professional, the conference DevConf 2017. The report called PostgreSQL for hipsters. Of course, as you can not go past Teschin home no joke, and it is impossible to talk about PostgreSQL, not mentioning the 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 particular statement of Oleg, where he famously drives Oracle RDBMS, MySQL and Microsoft SQL Server with the same brush, calling them all "proprietaries" (video with 16:48 to 17:11).
I contacted Oleg to find out what it was: plain trolling, slip of the tongue or a deliberate evangelism. It turned out that evangelism – Oleg really thinks so and even willing to argue their point of view. But his argument seemed to me tight, and my arguments Oleg is also rejected. I thought that since Oleg expresses his views publicly, why should not I make my own, and that it would be good prodoljeniem series of articles about PostgreSQL evangelism.
Actually, this is not the first attempt to declare Postgres Professional MySQL proprietary software. I briefly touched on this topic in previous articles, but I did not know the depth of the misconceptions that came to light only in the comments to the articles and in a recent personal correspondence and a small discussion on this topic in Facebook. Periodically to debate, connect Director Postgres Professional development Alexander smagen shortly. To justify proprietarily in the course are any arguments: differences in development models, licensing and business models between the MySQL and PostgreSQL communities. The difference, of course, there is – there are hardly two completely identical on all the criteria of the project. However, the desire to declare "proprietaries" everything that does not fit into their own idea of the ecosystem is open source, there is only Postgres Professional.
Copyright and license
let's Start with basic terms. I'm not going to delve into the history, as it does in his lectures Richard Stallman. I am also not going to go into the legal jungle, describing the copyright for "works of science, literature and art," as it does Wikipedia. I will describe things in plain language with a focus on software.
Copyright (copyright) software is a set of laws adopted in most countries, which give the author of the program (holder in a more General sense) the right to determine the conditions for the use and distribution of the program. Such conditions are called license. Copyright arises at the time of writing the program code. The author may transfer the copyright to another person or organization, or completely reject them. In case of refusal of copyright or the expiration of their actions, the program enters the "public domain" (public domain).
Free and proprietary software
the Terms "free", "open" and "proprietary" are used quite widely for conventional separation of the whole spectrum BY depending on the level of "freedom" of use and distribution, that is, the terms of this license.
the Term "free software" (eng. free software) is used established by Stallman in 1985 by the Free Software Foundation. In recent times also used the term "libre software" to avoid the ambiguity of the word "free" in the English language that can mean both "free" and "free" that with respect to programs is not the same.
Stallman and the FSF defines the following the four criteria for free software
the
-
the
- freedom 0: the ability to run the program for any purpose the
- freedom 1: the opportunity to study the source code and modify to fit your needs the
- freedom 2: the ability to distribute unmodified copies of the program the
- and freedom 3: the ability to distribute modified copies of the program
Very near term "open-source software" (eng. open source software) was proposed founded in 1998 by the Open Source Initiative. OSI defines a longer list of formal criteria, but if we put aside the tinsel, all of them reduced in addition to the definition employed by the FSF: open source software is "software that can be freely obtain, use, modify and redistribute in original or modified form". A new term was created mainly in order to avoid ambiguity of the word free in the English language. A new organization was created because of disagreement on the "filosofskim" issues with the FSF and the desire to focus on practical issues without unnecessary evangelism.
the Term "proprietary software" is used to refer to programs that do not meet the criteria for free or open-source. Note also that proceeding from the popular definition, "free", "openness" and "proprietarily" depends entirely on the license.
it is Obvious that MySQL, which Oracle distributes under a license created by the FSF GPLv2 does meet these criteria. There are a lot of projects and even companies which are no listed freedoms simply would never have appeared, such as MariaDB, Percona Server/XtraBackup, and Galera, Amazon RDS/Aurora. Using MySQL many large companies create and use their own "forks" of MySQL, which would not be possible if MySQL was proprietary: Facebook, Twitter, LinkedIn, Uber, Alibaba.
Arguments Postgres Professional: "all rights in the same hands"
so, calling MySQL "proprietaries" Oleg Bartunov obviously uses some of its definitions of open/free and proprietary software. Has the right, of course, but to find out these definitions I failed. Instead of defined criteria Oleg gives some quotes from Wikipedia and Oracle Contributor Agreement, which he obviously is not very well understood.
At first, says Oleg, open source does not mean anything and as proof cites a quote from a Wikipedia article about proprietary software: "Proprietary software, nonfree software (eng. proprietary software; proprietary — private[1], patented[1], the composition of ownership[1] and software — software) — software that is the property of the authors or right holders not meeting the criteria of free software (the availability of open source code is not enough)".
Indeed, open source is not enough to meet the criteria by the FSF or OSI. Code of the proprietary product can be obtained from the manufacturer in very limited circumstances (and even steal), and examples of such "open" you can find. Usually such code can be read, but anything beyond that to do with him is impossible. The ability to read source code is only a small part of the freedoms defined by FSF/OSI.
But where is the MySQL license, which is GPLv2 c full range of freedoms that it defines?
second, Oleg argues that proprietarily MySQL is provided that "all rights are concentrated in the same hands" and it confirms the existence of the OCA (Oracle Contributor Agreement) and the following quote from there: "This Oracle Contributor Agreement ("OCA") applies to any contribution that you make to any product or project managed by us (the "project"), and sets out the intellectual property rights you grant to us in the contributed materials."
As I understand it, Oleg interpreterpath this quote about all your base are belong to us, saying "help, the bullies deprive the copyright!".
Start with the fact medical fact that Oracle would never accept any patches from the outside, and MySQL would not have ceased to be free and open FOR the definitions of FSF and OSI. But Oleg your definition, and I was curious to go ahead and try it at least understand.
If Oleg had bothered to read the agreement in its entirety (it is short) or at least frequently asked questions, he would have learned that OCA does not require exclusive the transfer of copyrights and rights are not "concentrated in the same hands". The agreement sets forth the joint copyright between Oracle and the author of the code, after which each of the parties to the agreement can do with the code whatever you want. Quote from OCA FAQ: "You retain all rights, title, and interest in your contributions and may use them for any purpose you wish. Other than revoking the rights granted to Oracle, you still have the freedom to do whatever you want with your code."
in addition, there is at least one more known in the world of free software organization that is even more radical position than Oracle. It's called the Free Software Foundation. If you want to make a contribution in any project, the copyright of which belong to the FSF, you will required to sign the agreement on complete (and not joint as in Oracle) the transfer of copyright to 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 ecosystem of free software.
it Turns out that all of these projects – the same proprietaria from the point of view of Oleg as MySQL ("all rights are concentrated in the same hands")? Oleg is not the answer as this problem to solve. But then he comes to the aid of Alexander Korotkov, who seems to be telling us that "the FSF and Oracle – it's quite a different organization!". But who would argue that the Oracle is, what's not to love (FSF way, too). But here we are again embarking on a very slippery slope when anyone can call "proprietaries" anything according to their own religious beliefs. And I want to speak a common language. Who and how will determine the kashrut of the developer to understand whether it's open soure projects "proprietaries" or "free"?
If you look at the whole spectrum of free/open source, some projects (including PostgreSQL) do not require the signing of agreements, and some require the signing of a license agreement (examples: openssl, Qt, Apache Software Foundation projects), which require the developer to provide the project generally irrevocable use license with a sufficiently broad rights, and some require cooperative or transfer full copyright (examples: FSF and Oracle).
why the confusion and vacillation? Here begins the legal hardcore. It all depends on the specifics of the project, the legal concerns of the owner, as well as the views of the individual lawyers who, the owner, advised. Free software is in many respects a "gray zone" for traditional copyright law. There is no single "correct" way, not even agreement between the lawyers. For example, the conference is FOSDEM single track devoted to legal issues in the development and use of free software, and these problems are still many.
the Absence of any agreements of course simplifies the inclusion of third-party patches. But there is a downside associated with legal risks. It's all about, you can write a separate article. I'm just going to leave links for the most informative, from my point of view, articles for those wishing to investigate further:
the
-
the
- "Contributor Agreements FAQ" the
- "Copyright Assignment and Ownership" the
- "Contributor Agreements"
to Repeat, all these questions relate to the conditions of inclusion in the draft third-party patches. That is completely orthogonal to the conditions under which project code to get the users and which determine the "free" or "proprietarily" of the project, at least from the point of view of FSF and OSI. Oleg Bartunov and Alexander Korotkov at liberty to give their own definitions of what they vzdumaetsya, but by his own admission, in the legal matters they do not understand. We can all be wrong, but I would like to see at least a desire to understand basic things.
Arguments Postgres Professional: dual licensing
This argument neizbejno arises when discussing "proprietarily" 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 variants, which are distributed under a proprietary license.
Here we will talk about the business models of open source. One of the main tasks put in front of him as the FSF, the OSI, has always been encouraging commercial companies to develop open-source. 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 everyone for free, and even under a free license. If you are Facebook or Google, there not so much. One of them is called dual licensing.
Model of dual licensing can be applied in different ways. You can same to distribute our product under different licenses. For example, under the GPL for those to whom this license is suitable, and under a proprietary license for those restrictions the GPL does not allow you to use or integrate the product into their applications. That is, the business model is essentially selling exceptions to free license.
the Second option for the sale poprietary of product licenses with advanced features, also called open core.
the First option is used, for example, by Oracle for some versions of MySQL Enterprise, Digium VoIP system Asterisk system, full-text search Sphinx and well-known library Qt. By the way, Stallman once first proposed this model of Trolltech, a former Qt developer.
Dual licensing in open core and Professional uses Postgres for proprietary product Postgres Pro Enterprise. By the way, I have never heard of a staff Professional called Postgres, Nginx, Sphinx, Qt, VirtualBox, and indeed PostgreSQL "proprietaries" due to the presence of the proprietary version under a dual license. But for some reason about the dual licensing of MySQL and a "stumbling block" they love to speculate. the What a strange selectivity.
In my opinion it is obvious that there are proprietary versions does not make the relevant open projects "proprietaries", whether it's MySQL, Nginx, PostgreSQL, Qt, or Sphinx. All vague arguments on this score from the Postgres Professional is to try to pull an elephant on a globe.
Arguments Postgres Professional: "Oracle is evil!"
This argument in various forms POPs up in discussions with people from Postgres Professional and not only when it comes to MySQL. "Trust company", "exclusive rights in the hands of commercial companies, Oracle can close MySQL". It's all on the one hand truth and on the other another attempt to put a shadow on the fence.
It's true, because Oracle really is a commercial company with a fairly "aggressive" reputation. And no one will ever be able to guarantee that Oracle will not close the MySQL or will not stop the development.
But it also attempts to put a shadow on the fence, because at the courtyard 2017-th year, not 1997, and we live in a world where a significant (if not bomost part) open source, from device drivers to distributions and the DBMS being developed by commercial companies. It is neither good nor bad, it's just the objective reality given us in sensation. Here's a list of open source projects other major companies: Facebook, Google, IBM, Intel, Redhat, Canonical, Map, Mail.Ru.
it's hard to say what all these companies are "kinder" to the Oracle, and who can guarantee that they will not drop or will not close their projects. The very concept of open source was developed in order to minimize the damage from such situations where to raise the fallen banner of can community if it is. The community includes the employees of the company who participate in the development of the project, but after closing, or stopping the project could continue beyond the "evil" of the company, and such examples in the ecosystem of open source very much.
Finally, the last made by Oleg argument is that if there is no confidence in the Oracle, and the right to not give. As I wrote, Oracle obtained a joint and non-exclusive rights – they are not "concentrated in the same hands," and the author of the code remains the copyright owner and can do with it anything. But it is not even that.
I am a tolerant attitude to people of all religious faiths. Indeed, there are people for whom religion forbids to pass anything to Oracle, Microsoft, IBM, Facebook, Google+, etc. Rationally it's hard to explain, but I don't see this as a problem. The problem is that calling MySQL "proprietaries" essentially on the basis of their own religious beliefs, Oleg impose their religion in their reports and conversations with various people, from students to officials. I would expect more responsibility from a person with such a position and with such a wide range of communication.
What is the result?
"Yes, it's all obvious!" – exclaim precocious reader and will be absolutely right. I myself, was a little boring it's all writing, there are much more interesting and informative topics for discussion around MySQL and PostgreSQL. But the thing is, dear reader, that we live in an amazing world posttradeso it is useful sometimes to talk about the obvious things, solely for psychotherapeutic purposes.
But there is good news! Common sense is still prevails, and in my opinion that MySQL is "proprietaria", Postgres Professional still in the minority. You don't even need to understand all the nuances, to understand that freedom for the study, modification and distribution of code Oracle or Microsoft SQL Server (which don't exist) is fundamentally different from the same freedoms that get MySQL users, and then call them all single term "proprietaria" already at least logical – it's pure FUD. MySQL to obtain, use, modify and redistribute in original or modified form in full compliance with the GPL license, the same conditions that thousands of other projects under this license. The FSF contains the MySQL in your open directory, Wikipedia well as MySQL considers "free database", the number forks on Github is also a little hint, and employees of such companies as MariaDB, Percona, Amazon, Facebook, Twitter, LinkedIn, Uber and Alibaba clearly has a story to tell Oleg.
Following the fashion, I propose to organize the battle in the form of a survey to the article!
Комментарии
Отправить комментарий