In this post I will give metainformation about copyright and free licenses. That is, what everyone who writes free software should know. I will not dwell on specific examples of such licenses; you can find this somewhere else on the Internet. Also, I'll talk a little about the GPL. I must say that I am not a lawyer, and could have been mistaken somewhere. This entire post is applicable to almost all developed countries, including Russia and America (although, unfortunately, there is no authorized translation of the GPL into Russian, and therefore it is not valid in Russia). Wherever I talk about the GPL, I mean the GPL of the third version, although almost all of this information applies to GPL 2, and most likely will be applicable to subsequent versions. (I will say it again: I am not well versed in the subject, see UPD from 2016-11-10 at the end of the article.)
Copyright
Any product of intellectual labor automatically becomes the object of copyright. All kinds of "Copyright", "All right reserved", "©", etc. are not required. Copyright registration is not necessary, however, it can be useful to prove later that you really are the copyright owner, for example, in court. That is, if you, for example, wrote a program, put it on the Internet, did not subscribe, did not write “Copyright”, etc., then you still own the copyright to it. But far from being a fact that you will succeed, in which case, prove it.
What does copyright mean? Someone might think that this is the right to take monetary deductions for using the work. Yes, it is, but copyright includes not only that. Copyright is the right to impose any restrictions and conditions (i.e., actually, a license) to use the work, including the right to demand a deduction. For example, some programmer may require that his program be used only on one foot. And he will be right. And anyone who disobeys this condition will break the law.
If the author does not specify what the terms of use of the product are, that is, it does not install a license, then everything automatically becomes prohibited. That is, any use becomes prohibited without the consent of the author. This is how it is. For example, if you post something on the Internet without specifying the terms of use, then even if you do not subscribe and do not put up copyrights, you, it turns out, prohibit any use of the work. You may ask: “Doesn’t the fact of putting it on the Internet say that I allow anything to be done with the products, or at least something?” No, it doesn’t.
')
Well, maybe some kind of minimal use is still allowed. For example, if you posted a photo on the Internet, then perhaps people can look at it. But people don’t have the right to give it to each other.
However, there is a nice little thing. In some countries there is a fixed list of things that are allowed in any case, and which the author is unable to prohibit. In America, this is the so-called "fair use", in Russia - the "free use of the work", see
Wikipedia for details .
The term of copyright is limited. When it ends, the content goes into the so-called public domain. When content is in the public domain, the so-called non-proprietary copyrights still remain for its author. Basically, this is the right to name, that is, no one has the right to call this work his own.
According to the Bern Convention, copyrights are maintained throughout the author’s life and for 50 years after his death. Some countries extend this period, in Russia it is 70 years. If the author is unknown, then the period is counted from the moment of publication of the work.
The author himself can transfer his material to the public domain. But, unfortunately, there is no standard legal way to do this, so for this it is better to use a special legal tool:
CC0 .
So, works are divided into those that are subject to copyright (they can already be divided under the license used: GPL, BSD, etc.), and those that are not, that is, the public domain.
Thus, if you post something on the Internet for public use, you must specify the license, or indicate that it is in the public domain, otherwise everything is forbidden by default.
Free licenses
Now let's talk more about free licenses (GPL, BSD, etc.).
Free, open, free, non-commercial. Free software (free software) is software that is distributed under a free license (or is in the public domain), and a free license is one that gives the user the right to:
- Use the program
- Change its source code
- Distribute the program
- Distribute Modified Versions
More precisely, a free license is one that satisfies
Free Software Definition . The FSF maintains a list of licenses that it considers free.
It may sound strange, but if a person has written a program and does not give it to anyone, then this is free software. Since this software has one user and it has 4 rights mentioned above. Stallman confirms:
"It has already been the case for all users .
"
Open source software is open source licensed software (or in the public domain), and open source software is satisfying
Open Source Definition . OSI maintains a list of licenses that it considers open.
In fact, Open Source Definition is no different from Free Software Definition, so we can assume that "free" and "open" are synonymous, although there are exceptions. OSI recognized the
Artistic License 1.0 as an open license, while the FSF did not recognize it as free.
Free and open source software is not at all the same as free software. Red Hat Enterprise Linux is free software, and at the same time paid. Skype is free software, and at the same time not free.
Free and open source software is not the same as non-commercial software. Virtually all large-scale free projects (Linux, gcc, glibc, Gnome, FreeBSD, clang, and many others)
are commercial in the sense that there are firms interested in the existence of these projects that help these projects in various ways money, hire the developers of these projects, contribute code). And, of course, there is a lot of non-commercial and at the same time non-free software, for example, a small software that has been posted on the Internet without source texts.
When publishing material under a free license, it is recommended to indicate:
- The word "Copyright" in English and copyright sign © (this is optional, but still desirable)
- Year of publication of the work (for use in calculating the expiration of copyright)
- Author's name (there is no copyright without the author, and no license without him)
- Actually, the license itself
Copyright is primary and license is secondary. This means that there can be no license without copyright. When the copyright expires, the license also ceases to operate. If, say, someone has posted a program under the GPL license to the Internet, then at some point the copyright will expire, the program will become public domain, which means the GPL will expire.
When you publish material on the terms of a free license, you do not waive copyright (unless you can say that you waive some of the copyright). On the contrary, you retain copyright and this is what gives you the right to install this free license on your content. A license is a contract between the author and the user. Only the author by his right of the author can install the license and change it. Putting content on the Internet is not fundamentally different from other methods of distribution, from transferring to each user personally. If you post the material on the Internet, then we can say that you give it to each user individually, entering into an agreement with him, that is, a license.
Free licenses are irrevocable, unless otherwise stated. Let me explain by example. Suppose that the author posted the program on the Internet, and some users have downloaded it. Then he changed the license indicated on the Internet (as I said, he has the right to do so as an author). Then new users will download this program under the terms of a new license. But old users will retain the right to use this program under the terms of the old license.
Each new version of the program is a new copyright. Copyright terms of different versions of the program may expire independently of each other. If the Linux kernel will exist for a thousand years, then after this period, the actual kernel version at that time will still be subject to copyright, since each new patch is a new copyright. But the copyright for the old kernel versions can easily expire by that time.
Copyleft is a special case of copyright, and in no case its opposite. Copyleft licenses, for example, GPL, work due to the fact that the authors retain copyright (copyright) for themselves. Therefore, when publishing content under the terms of the GPL or any other license, it is necessary to write “Copyright”, and not “Copyleft” or anything else.
Free Software Foundation (FSF) - the usual organization, like any other. It is not legally highlighted. I read somewhere on the Internet that "You can publish a program under the GPL in two ways: by keeping the copyright for yourself, or by transferring them to the FSF." Well, yes, like any other organization. That's just to transfer the rights of the FSF, even without warning him about it - this is stupid. You need to transfer the FSF rights in a single case - if you make a contribution to the official GNU package (and even in this case, this is not true for all GNU packages). In this case, you will need to sign and send a special document to the FSF.
Moreover, I read on the Internet that by publishing content under the GPL, you thereby automatically transfer the copyright to FSF, or even to Stallman personally. I think it is not necessary to clarify that this is not the case. Yes, the GPL text (let's take, for example, GPL 3) says “Copyright © 2007 Free Software Foundation”, but this copyright refers to the text of the license itself, not to your work.
All prohibitions in the text of the license are not absolute. If something is forbidden, it simply means that it is allowed only with the consent of the author. The author may, at his own request, allow anything he sees fit, and generally distribute his content to different people under different licenses. The author himself can generally use his material as he wants and cannot be constrained by his own licenses. For example, licenses prohibiting commercial use (such as
CC BY-NC ) are recommended to be used only in one case: when you are going to use the product commercially yourself, or when you are going to allow certain people (or organizations) to make commercial use for money. If you publish under CC BY-NC and at the same time do not make money on this material yourself, then you act meanly (neither to yourself - nor to people).
Or take this example: some companies, for example,
Digia, the owner of Qt , earn on the so-called exceptions from the GPL. This means that they publish the code under the terms of the GPL, but at the same time they can give you the code for money under a different, less restrictive license.
The following very good comparison was written on the Qt site, which I cannot find right now. We can say that the author has an infinite number of copies of his work. Every time he gives content to someone, at that moment he chooses the conditions on which he gives it (and by default the user gets the right to use this content until the end of copyright, and the author cannot cancel it, well after the end of copyright, the user can do anything with this content). But after that, the author still has an infinity of copies of the work, and he can give them to whom he wants on what conditions he wants.
But the transfer of the copyright itself is the transfer of this endless bunch. That is, the transfer of the right to decide who and how to use. In this case, the original author of his copyright no longer remains (except for non-proprietary).
Dual licensing is (unless otherwise stated) two licenses connected by the union “or” (the same applies to triple licensing, etc.). That is, the user can choose on the terms of which of these licenses he will use the material. Let us return to the analogy with infinity of copies: the author gives the user two copies of the work at once, each of them under the terms of its license. The user can select any of these instances. Well, if both licenses allow further distribution, then the user can distribute the product under dual licensing further (i.e. distribute both copies).
With this dual licensing (as opposed to dual licensing with the union "and", which will be discussed further), any license is compatible with any other. That is, one cannot say: “Dual licensing under the license“ A
or B ”is impossible, since, say, license A prohibits this.” Because in case of dual licensing, the author in fact simply distributes the material under one license, and besides, he also distributes under the terms of another. And, of course, the first license can not prohibit the second.
Also, there is dual licensing with the union "and". That is, when the author transfers the work to the user, demanding the observance of both licenses at once. And here the concept of license compatibility arises. For example, a BSD license does not prohibit such co-distribution with other licenses. And therefore, distribution under the BSD license and some other possible (provided that it is not prohibited by the second license). But the GPL prohibits the imposition of significant additional restrictions in excess of the GPL. The list of permissible restrictions can be found in paragraphs a - f of section “7. Additional Terms ”license GPL 3. In fact, this list is such that it makes the GPL compatible only with BSD-like free licenses. Therefore, the license “GPL and BSD” is possible (BSD does not impose significant restrictions beyond the GPL), but the license “GPL 2 and GPL 3” (unlike “GPL 2
or GPL 3”) is impossible, since GPL 3 imposes significant limitations beyond GPL 2 and vice versa.
In other words, there is the concept of a “GPL-compatible” license, that is, one that can be connected to the GPL by the union “and”. Such licenses include CC0, BSD-like licenses and the GPL itself of the same version.
Therefore, when you write that the program is distributed under the “terms of GPL version 3 or higher,” make sure that you write “or”, and not “and”.
Is it possible to change the license of another's work without the consent of the author? Of course no. But you have the right to impose additional restrictions (they will be connected to the original license by the union “and”) and distribute the work further (with or without changes) provided that the original license allows it. All free licenses allow changes and further distribution (they are free). And at the same time, as I said, some of them (BSD) allow hanging any additional restrictions, and some (GPL) - only some. This means that if there is a work under the BSD license, then you can distribute it further under the “BSD and GPL” license (which effectively would be equivalent to just the GPL, i.e. it would turn out that you effectively changed the license). That is, you can always “change” the GPL-compatible license to the GPL itself (although the original license [for example, in the case of BSD] is not going anywhere). But of course, you cannot “change” the license from the GPL to BSD.
Mixing in one project code under different licenses. Some licenses (BSD) do not impose any restrictions on sharing with others. That is, if one file (or one code fragment) in your project has a BSD license, then this does not limit the licenses of another code (provided that these licenses can be used with BSD). But the GPL requires that all code that statically or dynamically linked to the GPL code also has a GPL license. Well, if this other code originally had a license other than the GPL, then this license is connected to the GPL by the union “and”, provided that this is possible (that is, provided that the original license is GPL-compatible). If this is not possible, then such a project cannot be distributed.
For example, our project consists of two files: under the BSD license and under the GPL license, and these files are linked. Then the whole project acquires the GPL license. The file that was under BSD becomes “BSD and GPL”, i.e. essentially the GPL (but you can’t remove the BSD license notification anyway, because the notification itself prohibits it).
Another example: a project consists of two files: under the GPL 2 license (“GPL 2 only”, i.e. “no later version”) and GPL 3 (the same), and they are linked. Then GPL 2 "infects" the second file, and it acquires the GPL 2 license, and becomes "GPL 2 and GPL 3". The same thing happens in the opposite direction. But we all know that the license "GPL 2 and GPL 3" is impossible. This means that the distribution of such a project is prohibited due to the incompatibility of licenses.
A common practice in free projects. Any free project has a fixed license for which it is distributed. Also, there are two types of projects: those in which the rights to the entire code are transferred to a single organization, and those in which all participants reserve the right to themselves. The first case can be divided into two more:
- This is the GNU package, and all rights to the code are transferred to the FSF (recall that not all GNU packages accept the transfer of FSF rights). Rights are transferred in order to ensure that the package will always remain free, that is, not to allow participants to choose any other license other than the GPL for the package, or to distribute exceptions from the GPL
- This is a project of a commercial firm, and it collects copyrights for itself specifically in order to sell exceptions to the license or to reserve the opportunity to change the license.
Just want to note that commercial projects do not carry anything bad in themselves. As I wrote above, many free projects are commercial. And not all commercial projects accept the transfer of rights to the code of one organization. But for those projects where such a transfer is accepted, the attitude in the free software community is negative (if it is not FSF). For example, in sysvinit vs upstart vs systemd disputes, one of the important arguments against upstart was that this project accepted the transfer of Canonical rights, which is unacceptable to the free software community.
(UPD, May 19, 2016: the transfer of the rights of the FSF is still not very different from the transfer of the rights of any other organization. And even if, suppose you are the main author of one of the GNU projects, think twice before transferring the rights of the FSF. GnuTLS developer brought his project out of GNU and regretted that he transferred the FSF copyright to it:
www.opennet.ru/opennews/art.shtml?num=35681 .)
When someone contributes to a project in which the transfer of rights is not accepted, he reserves the copyright and transfers the code under the terms of the license that is accepted in the project. And this is implied by default, i.e. it will be true even if the participant transmitted his code without any comments.
For example, almost everyone who contributed to the Linux kernel (in this project the transfer of rights of one organization was not accepted) left the rights with them (since this is assumed to be the default), even if they did not enter a copyright with their name at the beginning of any file. And they all handed over their code to the project under the terms of the GPL 2 license. Now, in order to change this license, the consent of all the participants is required, and this is a huge number of people. If any company wants to buy an exception from the GPL, it will have to bribe all these people, and at the same time it will be a separate problem even to find them all. Thus, "buying a kernel" is almost impossible. You can read more about this in the article
Buying the kernel .
If someone makes a contribution to a project in which the transfer of rights of an organization is accepted, then usually he signs a special document and sends it to this organization. After that, its code becomes available under this project under the terms of the project license, but the organization can later change this license.
Also, projects are possible where participants retain their rights, but still sign and send documents confirming that they actually own the rights to the transmitted code. By sending these documents, they confirm that, for example, this code was not stolen anywhere.
About those who write free code, and at the same time working in the company. If the employee writes the code on the instructions of his employer, in most cases the copyright to the received code belongs to the latter. Who owns the rights to the code written at work, but not on assignment, or in his spare time, depends on the employment contract. In particular, it was written in my contract that the employer owns the rights to the code written using the workplace (it was also written there that I have no right to disclose the terms of the contract, but I don’t care :)). Well, since in case of anything (for example, at the trial) it will be quite difficult to find out if the employee wrote the code at the workplace and during working hours or not, all the code written by this employee is suspicious of belonging to this company.
Therefore, in those projects where the transfer of rights of one organization is accepted, the documents confirming this transfer require the signature of not only the author of the code, but also his employer, if he has one. And if this author is studying or working in a university, then the signature of a representative of this university.
GPL
Briefly, the essence of the GPL can be expressed as follows: this license allows anything but:
- Upon further distribution, the license must remain
- Along with the binaries, the source texts should be distributed (or the promise should be distributed to provide them on demand, I will not mention it further)
- Anything that links (statically or dynamically) with code under the GPL also falls under the GPL
In fact, the only limitation imposed by the GPL is that when distributing binaries, you also need to distribute the source. No other restrictions, one might say, no. No publication of sources or binaries on the Internet or anywhere else is required. Providing source codes and binaries to anyone on demand is not required (unless source codes are provided to someone who has already received binaries). The program is not required to be distributed free of charge. About all this will be discussed in more detail below.
So who is the GPL? Suppose Alice wrote the program and transferred it under the GPL license to Bob. Then Bob in accordance with this license gets the right to further distribution. Suppose he decided to transfer the program to Carol. Then he is obliged to transfer it only under the terms of the GPL. And if he transmits binaries, he is obliged to transfer the source as well. Please note that these obligations occur only in the second gear (from Bob to Carol), and not in the first (from Alice to Bob). Why? Because Alice is the author. And as an author, she can do anything at all, and does not owe anything to anyone. The author can always violate his own license, I already wrote about this above. In particular, the author may declare that he is distributing a certain program under the terms of the GPL and at the same time not distributing the source texts, and he will not violate the law. But those who will distribute these binaries further - will be.
For example, once a case occurred that could not be called anything other than facepalm: a GPL violation was discovered in GNU Emacs. It turned out that for a long time computer-generated files without source codes were distributed with Emacs. You can read more here:
A violation of the GPL license has been discovered in GNU Emacs . Here I want to note this: the authors themselves Emacs and FSF, which owns the rights to Emacs, did not violate the GPL. Because copyright owners can do anything. But those who distributed Emacs further (for example, GNU / Linux distributions) violated. This was confirmed by Stallman, in
his letter : "Anyone redistributing the GPL."
, Emacs .
, , GPL, , . . . , : (), () ().
Let's see once again who is who, who is facing the license, who is meant by the word “you” in the license, etc. Suppose Alice wrote the program, installed the GPL license on it and transferred the program to Bob. Then Bob began to read the license, it is addressed to him, and “you” in the text of the license means him, Bob. The license tells Bob what rights (for example, to run the program) and responsibilities (for example, to distribute binaries only with source code). Rights and obligations begin only from this place. Alice herself has generally all the rights that you can, and no responsibilities. The license gives Bob the right to transfer the program to Carol. And if Bob gives Carol a program without sources, he will violate the license. In general, a violation of a license is feasible only if there are at least three people. And the only one of these three (Alice,Bob and Carol) who can break the GPL is Bob (“maybe” here means not “has the right”, of course, but “physically can”).
, , : , , .
GPL , , - . GPL «internet». GPL , . . . , GPL , , - , , . — , .
I heard that some Russian secret service created its own GNU / Linux distribution for internal use and does not publish it. If so, this is not a violation of the GPL. Since they are not obliged to give anyone this distribution. But if this distribution will leak out of service in any form, then the person who received it will have the right to request the source code of the distribution, and then distribute these source texts further under the terms of the GPL (I am talking about those parts of the distribution that are GPL ).
It is not required that the program (in binary or source form) be distributed free of charge.The only requirement is if you give binaries (paid or free), then you must give the source code with them, or promise that you will give the source code on demand free of charge or at the price of delivery and physical media.
User consent to the license is not necessary to use the software. It becomes mandatory only when it is distributed. This means that the software installer should not issue the message “Do you agree with this license?” During the installation process, unlike the common practice of non-free software.
PS I told about the GPL is not all. For the rest of the details, see the GPL itself .
UPD from 2014-12-22. What happens at the first input of the code?Suppose Alice wrote a program and posted it on the Internet. At that moment, she, as an author, can change the project’s license in any way, she doesn’t have to follow the GPL herself (if the project’s license is GPL), etc. But suppose the first contributor (participant) Bob contributed his contribution ( contribution) to this very program. By default, it is assumed (as I said above) that Bob reserves the copyright, and that he contributes his code under the same license as the program itself. From this point on, Alice will cease to be the sole author of the program, which means that now she cannot change the license of the project in any way and must herself comply with the GPL (if the project is under the GPL) when distributing the program. Now, if she wants to change the license, then she has only two ways to do it:
- Ask for the consent of all contributors
- , « ?» , «» BSD GPL (, BSD ), GPL BSD —
UPD 2016-11-10. , . ( , !) ( ). , , , , . , (). , - ( ). - - , . .
I asked the second lawyer: “How then to deal with the Linux kernel? Thousands of people make changes to it. And when another person makes a change, he does not become the sole owner of the copyright of the modified copy. The copyright is subject to the copyright of all who have ever made changes. ” He said, “Yes, that's right. The reason for this is that Linux is distributed under a special open license, which, in fact, establishes these rules. ”
Okay, why did I tell it? And then. So you understand that I do not understand anything. In this article, I just talked about common practice in the free software world. Just to be understood a variety of discussions about licenses. My text has little relation specifically to Russian law and apparently even to American. And it refers rather only to free software.
UPD from 2017-08-26. The GPL Is a License, not a Contract .