Licensing: Difference between revisions

m
Bot: fixing lint errors, replacing obsolete HTML tags:
[unchecked revision][unchecked revision]
m (Reverted edits by David23x (talk) to last revision by Exetwezz)
m (Bot: fixing lint errors, replacing obsolete HTML tags:)
 
(12 intermediate revisions by 9 users not shown)
Line 1:
{{Tone}}
:"Reading legal mush can turn your brain to guacamole!" - ''Amiga ROM Kernel Reference Manual: Includes & Autodocs, 2nd edition''
 
 
== Introduction ==
 
When the idea for a brilliant new piece of software strikes, Licensing Issues are usually the last thing you want to think about. But Licensing Issues can ''bite'' you afterwards, in a way that ''really'' hurts. So it might be best to spend a moment of consideration. This text actually does not apply only to OS development, but to software in general.
 
Probably the scariest thing about software licenses are the endless paragraphs of legalese; we try to keep this text as crisp and short as possible.
 
== Popular Licenses ==
 
Here's the most popular ones, with a '''very''' short version of the licence (to help you all):
 
[httphttps://www.gnu.org/licenses/licenses.html#GPL GNU General Public License (GPL)]:
:Users have a right to receive source code, and are free to use, modify, and redistribute as long as sources remain available and everything stays under GPL. Object files linked to GPL'ed code fall under GPL too.
[httphttps://www.gnu.org/licenses/licenses.html#LGPL GNU Lesser General Public License (LGPL)]:
 
:Users have a right to receive source code, and are free to use, modify, and redistribute as long as sources remain available and everything stays under LGPL or (optionally) GPL. Object files linked to LGPL'ed code are unaffected by the LGPL, but users must be able to link themselves (i.e., distribute your non-(L)GPL'ed object files ''separately'', not linked to the LGPL'ed code).
[http://www.gnu.org/licenses/licenses.html#LGPL GNU Lesser General Public License (LGPL)]:
[httphttps://www.xfree86.org/3.3.6/COPYRIGHT2.html#5 Berkeley Software Distribution (BSD) License]:
:Users have a right to receive source code, and are free to use, modify, and redistribute as long as sources remain available and everything stays under LGPL or (optionally) GPL. Object files linked to LGPL'ed code are unaffected by the LGPL, but users must be able to link themselves (i.e., distribute your non-(L)GPL'ed object files ''separately'', not linked to the LGPL'ed code).
 
[http://www.xfree86.org/3.3.6/COPYRIGHT2.html#5 Berkeley Software Distribution (BSD) License]:
:Users are free to use, modify, and redistribute, with or without source code, as long as the copyright notice within the BSD license remains. Note that there are two versions, slightly different in meaning.
 
[https://creativecommons.org/licenses/?lang=en The Creative Commons (CC) License Suite]:
:This differs from the others in that there are several variants of the license, each of which has its own specific stipulations. Developers can choose whether or not to restrict distribution, derivative use, commercial use, or any or none of those; the only requirement all six versions have in common is that the author get attribution for the original code. This is an increasingly popular alternative to the GPL, as it is considerably simpler but also considered less 'sticky'.
[[wikipedia:Public_Domain|Simple Public Domain]]:
 
:Copyright is waived, and no restrictions are placed on use, modification, or redistribution. In some countries public domain is not possible, even if the publisher does not live in such a country. Normally it will still grant full rights to the user (except possibly cases in which it is not possible, like for moral rights), because the intention is clear. Nevertheless one should still have a fallback clause permitting full rights to the user. The easiest way to handle using public domain is the [https://creativecommons.org/publicdomain/zero/1.0/ CC0].
[[wikipedia:Public_Domain|Public Domain]]:
:Copyright is waived, and no restrictions are placed on use, modification, or redistribution.
 
Proprietary Licenses:
:'''Licensed''' users are free to use; '''perhaps''' (depending on contract) they may modify for own use, but may not redistribute.
 
No License Information:
:Defaults to "all rights reserved", which usually surprises both authors and users...
 
== Being Employed as Software Developer ==
 
When you are under employment contract, the code you write during office hours is usually ''owned'' by those paying your salary, unless your contract ''explicitly'' says otherwise.
 
In some countries{{which}}, a working contract could encompass ''all the work you do in a certain field of knowledge, as long as the contract is valid, and sometimes even beyond that''. That means that, if you are hired to write code at day, the code you write after office hours at home might ''also'' be legal property of your employer, the reasoning being that, since your employer payedpaid you for working (and gaining experience) in a certain field, that experience is payedpaid for, and you are obliged to put that experience back into the company that payedpaid you for it. Another line of reasoning could be that you are not allowed, in your spare time, to build a product that could become a competitor to your company's products.
 
This might sound strange to you, outrageous even. But you really should have a talk with your superior. At best, your superior will see that you really are a dedicated software engineer, happy about having such an enthusiastic individual under contract, and tell you to go ahead with your spare-time project. At worst, you will be told that you cannot work on that project - ''before'' you have churned out 10k lines of source code and been sued by your employer.
Line 44 ⟶ 34:
 
What this means is, unless you are ''certain'' of your legal position, consider the code you work with during office hours to be ''foreign'' source, ''even if you wrote it yourself''. Whatever licensing information is given in the source file ''does'' apply to you, and if ''no'' licensing information is given, that means "all rights reserved", ''even if you are the author, because chances are you are not the copyright holder''.
 
== Merging Source Code ==
 
You are looking whether you could salvage some existing source code to insert
into your own code base.
 
* '''Without License Statement''' - As said above, if you are employed as software developer and you do not have ''written'' proof to the contrary, you are ''not'' allowed to take code from your employer's code base, and paste it into your own project. You'll get fired and sued. Don't do it.
:You might be surprised to hear that tutorials, or code snippets posted to some forum, are copyrighted by their author unless ''explicitly'' labeled otherwise. ''Legally speaking'', that means you must not copy them into your code either. However, this is usually as surprising to the writers as it is to the readers, and you might contact them for an individual license (see below).
Line 63 ⟶ 50:
:Note that, while LGPL'ed code may be "promoted" to GPL, it is not allowed to do it the other way round (GPL -> LGPL).
:Also see the paragraph on (L)GPL versions below.
 
== Separate Translation Unit / Object Code ==
 
You have a separate translation unit (i.e., a file or collection of files that
corresponds to an individual object file, module, etc., or a binary object file
Line 71 ⟶ 56:
of including a header file at compile time and linking the binary object when
compiling your executable / library.)
 
* '''Without License Statement''' - If there is no license statement, you are not licensed to use or redistribute. Keep away.
* '''Proprietary License Statement''' - Subject to the terms of the actual license.
Line 82 ⟶ 66:
* '''GPL''' - You can only use GPL'ed sources in a project that is itself under GPL.
:Also see the paragraph on (L)GPL versions below.
 
== Reference / Education ==
 
The question here is whether code written using X as tutorial material is
"a work derived from X" (GPL terminology), and/or "theft of intellectual
Line 90 ⟶ 72:
is involved, just how much of the code you've written is actually based
on what you have read before, and who you ask.
 
* '''Without License Statement''' - Assume the worst (lawsuit if anybody finds out).
* '''Proprietary License Statement''' - Subject to the actual license.
* '''Public Domain''' - Just go ahead, be inspired and reap huge profits; the author won't mind.
* '''BSD License''' - The BSD License applies to the code itself, "with or without modification", but does not speak about getting inspired by it. You should be safe to use BSD licensed code to educate yourself.
* '''(L)GPL''' - Both the LGPL and the GPL require that any "work derived from the product" must be placed under the very same license.
:Hardcore evangelists claim that being inspired by (L)GPL'ed code constitutes a "work derived from the product". Personally, I consider this as much nonsensical as claiming that paying you by day makes a company own what you code by night. It seems as if no such case has yet been brought to court, but the opinion exists, so be careful.
 
== (L)GPL versions ==
 
There is a twist to the GPL and LGPL, as they are ''versioned''. A copyright
holder is free to specify a specific version of the (L)GPL that sources shall
Line 112 ⟶ 91:
any later version" if it isn't there or remove an existing one without written
consent of the copyright holder.
 
== Individual Licensing ==
 
We only talked about ''generic'' licenses in this document. If the licensing
for a ''specific'' piece of code gives you problems, you can ''always'' attempt
Line 124 ⟶ 101:
project without having to bother with the BSD copyright notice / list of
conditions.
 
== Changing License ==
 
As copyright holder of a project, you are absolutely free to ''change'' the
licensing of your project. Prepare for some flaming from your peers, though,
Line 136 ⟶ 111:
version v1.9 and continue the project under GPL, as you are '''not''' allowed to
''retroactively'' change licensing.
 
=== The Contributor Trap ===
 
There is a twist to this which is equally surprising as forum postings being
"all rights reserved" or your employer telling you "all your bases are belongs
Line 145 ⟶ 118:
Let's say you have read all the above, and suddenly decided that placing your
project under the GPL wasn't that good an idea: You want to change the license.
Now, if you worked on your project alone, nothing keeps you. (Except that
[http://www.sourceforge.net SourceForge] doesn't accept proprietary licensed
projects).
 
'''But''', if many other people contributed to your project, you might be in
Line 159 ⟶ 130:
* from BSD to anything else;
* from some X to some Y I haven't thought about;
 
''you might not be allowed to do so even when it's your own project''.
 
For this reason many projects add "or any later version" to a GPL declaration, because this way it is not longer necessary that all copyright holders of the project consent to the change to a new GPL version. It is also possible to drop the older version of GPL for later versions of the software.
That is one reason why the Free Software Foundation encourages people to
transfer the ''copyright'' of sources to the FSF, ''in writing'', as only this
enables the FSF to change the licensing of those sources in ways not explicitly
covered in the (L)GPL itself.
 
== See Also ==
 
=== External Links ===
* [http://choosealicense.com/ choosealicense.com] — a site that helps you to choose an open source license
 
[[Category:OS Development]]
[[de:Lizenzen]]
40

edits