“Licensing”的版本间差异

来自osdev
跳到导航 跳到搜索
(标记此版本进行翻译)
 
(未显示同一用户的4个中间版本)
第1行: 第1行:
<languages/>
<translate>
</translate>
{{Tone}}
{{Tone}}
<translate>


<!--T:1-->
:"读起法规条文就让人满脑子浆糊" - ''Amiga ROM内核参考手册: Includes & Autodocs, 第二版''
:"读法规条文让人的一脑子浆糊!" - ''Amiga ROM内核参考手册:包括和自动文档,第二版''




==简介==


== 介绍 == <!--T:2-->
当一个出色的新软件想法到来时,许可规则问题通常是你最后考虑的事情。 但许可证问题可能会在事后让你栽跟头,在某种程度上''切实''伤害你。 所以最好还是花点时间考虑一下。 本文实际上不仅适用于OS开发,还适用于其它一般的软件。


<!--T:3-->
关于软件许可证,最可怕的可能是理解没完没了的法律条文; 我们尽量使这篇文章简洁明了。
当一款优秀的新软件出现时,许可问题通常是你最不想考虑的事情。 但许可证问题会在事后“咬”你,在某种程度上“真的”伤害你。 所以最好花点时间考虑一下。 本文实际上不仅适用于操作系统开发,而且适用于一般的软件。


<!--T:4-->
== 热门许可证 ==
关于软件许可证,最可怕的可能是没完没了的法律条款; 我们尽量使这篇文章简洁明了。


以下是最受欢迎的一些许可证版本,并带有“非常”简短的对应说明(希望能帮助大家):


== 大众许可证 == <!--T:5-->
[https://www.gnu.org/licenses/licenses.html#GPL GNU通用公共许可证(GPL)]:
: 最终用户有权保留源代码,并可以自由使用、修改和重新发布,只要源代码仍然有效,所有内容要都在GPL下。 链接到GPL代码的对象文件也属于GPL。


<!--T:6-->
[https://www.gnu.org/licenses/licenses.html#LGPL GNU较宽松通用公共许可证(LGPL)]:
以下是最受欢迎的,带有“非常”字样 许可证的简短版本(以帮助所有人):
: 最终用户有权保留源代码,并可以自由使用,修改和重新分发,只要源代码仍然有效,所有内容都保留在LGPL或 (可选) GPL下。 链接到LGPL代码的对象文件不受LGPL影响,但必须得最终用户自己来链接(即,需要''单独''分发还未链接到LGPL代码的非(L)GPL对象文件,让用户自己链接后使用软件)。


<!--T:7-->
[https://www.xfree86.org/3.3.6/COPYRIGHT2.html#5 伯克利软件分发许可证(BSD)]
[https://www.gnu.org/licenses/licenses.html#GPL GNU General Public License (GPL)]:
: 只要保留BSD许可证内的版权声明,用户就可以自由使用,修改和重新分发,无论有无提供源代码。 请注意,BSD两个版本,含义略有不同。
:用户有权接收源代码,并且可以自由使用、修改和重新发布源代码,只要源代码仍然可用并且所有内容都在GPL之下。 链接到GPL代码的对象文件也属于GPL。


<!--T:8-->
[https://creativecommons.org/licenses/?lang=en 知识共享(CC)许可证套件]
[https://www.gnu.org/licenses/licenses.html#LGPL GNU Lesser General Public License (LGPL)]:
: 这与其他许可证的不同之处在于,这是几种许可证变体的统称,每种变体都有自己的特定规定。 开发者可以选择是否限制发行、衍生用途、商业用途,或其中任何一种; 所有六个版本唯一的共同要求是必须保留作者对原始代码的署名权。 它是GPL越来越受欢迎的替代品,因为它相当简单,但也被认为不太有 “传播性”。
:用户有权接收源代码,只要源代码仍然可用,并且所有内容都在LGPL或(可选)GPL下,用户就可以自由使用、修改和重新发布源代码。 链接到LGPL’ed代码的对象文件不受LGPL的影响,但用户必须能够链接自己(即,“单独”分发非(L)GPL’ed对象文件,而不是链接到LGPL’ed代码)。


<!--T:9-->
[[wikipedia:Public_Domain|简单公共领域许可]]:
[https://www.xfree86.org/3.3.6/COPYRIGHT2.html#5 Berkeley Software Distribution (BSD) License]:
: 放弃版权,对使用、修改或再分发没有限制。 在某些国家/地区,即使发布者不住在当地,也无法直接获得公共领域许可。 通常情况下,公共领域许可会向用户授予全部权利(个别情况例外,比如道德权利),因为就是要完全交出权利。 尽管如此,仍然应该有一个后备条款,允许用户明确拥有全部权利。 表达使用公共领域许可的最简单方法是使用 [https://creativecommons.org/publicdomain/zero/1.0/ CC0]
:只要BSD许可证中的版权声明仍然有效,用户可以自由使用、修改和重新发布源代码,也可以不使用源代码。 请注意,有两个版本,含义稍有不同。


<!--T:10-->
[https://creativecommons.org/licenses/?lang=en The Creative Commons (CC) License Suite]:
:这与其他许可证的不同之处在于,许可证有几种变体,每种变体都有自己的具体规定。 开发商可以选择是否限制分销、衍生用途、商业用途,或其中任何一种或任何一种;所有六个版本的唯一共同要求是作者获得原始代码的属性。 这是一种越来越受欢迎的GPL替代方案,因为它相当简单,但也被认为不太“粘性”。
<!--T:11-->
[[wikipedia:Public_Domain|Simple Public Domain]]:
:版权被放弃,对使用、修改或再分配没有任何限制。 在某些国家,公共领域是不可能的,即使出版商不住在这样的国家。 通常,它仍然会授予用户完全的权利(除了可能不可能的情况,比如道德权利),因为意图是明确的。 尽管如此,仍然应该有一个回退条款,允许用户拥有全部权利。 The easiest way to handle using public domain is the [https://creativecommons.org/publicdomain/zero/1.0/ CC0].
<!--T:12-->
专有许可证:
专有许可证:
''授权''用户可以自由使用;'''也许“”(取决于合同),他们可以修改以供自己使用,但不能重新分发。
: '''专门许可的'''用户可以免费使用; '''也许''' (取决于合同) 用户可以修改软件代码以供自己使用,但不能重新分发。
 
<!--T:13-->
无许可证信息:
:默认为“保留所有权利”,这通常会让作者和用户感到惊讶。。。
 
 
== 被聘为软件开发人员 == <!--T:14-->
 
<!--T:15-->
当你签订雇佣合同时,你在办公时间编写的代码通常由支付你工资的人“拥有”,除非你的合同“明确”另有规定。
 
<!--T:16-->
在一些国家{{{},工作合同可以包含“你在某一知识领域所做的所有工作,只要合同有效,有时甚至超过该范围”。这意味着,如果你被雇佣在白天编写代码,那么你在家办公时间后编写的代码可能“也是”你雇主的合法财产,理由是,既然你的雇主为你在某个领域的工作(并获得经验)向你支付报酬,那么你的经验是值得支付的,你有义务将这种经历重新投入支付给你的公司。另一种推理可能是,你不允许在业余时间制造可能成为公司产品竞争对手的产品。
 
<!--T:17-->
你可能觉得这很奇怪,甚至有些离谱。 但是你真的应该和你的上司谈谈。 充其量,你的上司会看到你真的是一个敬业的软件工程师,很高兴有这么一个热情的人签下合同,并告诉你继续你的业余项目。 在最坏的情况下,你会被告知你不能在那个项目上工作——“在”你大量生产了10000行源代码并被雇主起诉之前。
 
<!--T:18-->
这不是一个玩笑,也不是一件可以掉以轻心的事情。 如果你的雇主粗暴对待你,并以违约为由起诉你,你可能会失去工作,还有一大笔钱。 [http://www.gnu.org自由软件基金会]要求你在接受你的代码提交之前提交由你的上级签署的文件,而他们之所以不这样做,是因为他们喜欢官僚主义。
 
<!--T:19-->
这意味着,除非你是“确定”你的法律地位,考虑你在办公时间内工作的代码是“外国”的来源,“即使你自己写了”。无论源文件中给出的许可信息“是否”适用于您,如果给出的许可信息为“否”,则表示“保留所有权利”,“即使您是作者,因为您可能不是版权所有者”。
 
 
== 合并源代码 == <!--T:20-->
 
<!--T:21-->
您正在查看是否可以修复一些现有的源代码以插入
进入您自己的代码库。


<!--T:22-->
无许可证的情况:
* '''Without License Statement''' - 如上所述,如果您被聘为软件开发人员,并且没有相反的“书面”证明,则“不”允许您从雇主的代码库中获取代码,并将其粘贴到您自己的项目中。 你会被解雇和起诉。 不要这样做。
: 默认为'保留所有权利',这样做的结果通常会让作者和用户都感到意外.
  :您可能会惊讶地听到,除非“明确”标记为其他内容,否则发布到某个论坛的教程或代码片段受其作者的版权保护。 “从法律上讲”,这意味着您也不能将它们复制到代码中。 然而,这通常对作者和读者来说都是令人惊讶的,您可能会联系他们获取个人许可证(见下文)。
*“专有许可证声明”- 复制和粘贴拥有专有许可证的源(以实际许可证为准)实际上是“从不”确定的。通常,您甚至无法访问源。
* '''Public Domain''' - 公共域是软件社区的O型阴性血型:复制PD源“总是”可以。
* '''BSD License''' - BSD许可证要求您保留版权声明和构成BSD许可证的条件列表。因此,源代码的特定部分“保留”在BSD许可证下,无论它集成到哪个代码许可证中。只要您尊重您可以在任何BSD'ed或(L)GPL'ed项目中自由使用BSD源,无需另行通知。
  **(L)GPL’ed项目应意识到,BSD’ed源片段可在不侵犯(L)GPL的情况下,由专有或PD项目合法“提取”。
  **PD项目也可以做类似的事情,但这意味着该项目不再是PD“整体”,而是带有BSD部分的PD-应在源文件和文档(如有)的显著位置指出。
  **“我完全不确定将BSD源代码包含到专有软件中的法律含义,因为您必须保持“条件列表”完整,其中包括重新分发的许可。我在这方面听到了相互矛盾的意见马丁堡特
* '''LGPL''' - 如果您自己的项目在LGPL或GPL下,您可以在不另行通知的情况下复制LGPL的源代码,因为LGPL明确允许将源代码从LGPL“升级”到GPL。
  :另请参见下面关于(L)GPL版本的段落。
* '''GPL''' - 除了在类似的GPL项目中,您不能在任何其他地方使用GPL源代码。
  :注意,虽然LGPL’ed代码可以“升级”为GPL,但不允许以相反的方式(GPL->LGPL)执行。
  :另请参见下面关于(L)GPL版本的段落。


== 被聘为软件开发人员 ==


== 独立翻译单元/目标代码 == <!--T:23-->
当你签订雇佣合同时,你在办公时间编写的代码通常由支付你工资的人''拥有'',除非你的合同''明确''另有规定。


<!--T:24-->
在某些国家/地区{{which}},工作合同可能包括''合同有效有效期内你在某一知识领域(有时甚至超出此范围)所做的所有工作''。 这意味着,如果你受雇于白天编写代码,你在家办公时间后编写的代码也可能是你雇主的合法财产。这是因为你的雇主付钱给你在某个领域工作 (和获得经验),这种经验是很有价值的,而你有义务将这种经验带回为你付出代价的公司。 另一个理由可能是,不允许你在业余时间制作可能成为公司产品竞争对手的产品。
您有一个单独的翻译单元(即,一个
对应于单个对象文件、模块等或二进制对象文件
用于链接),并且您希望将其集成到项目中。 (通常是通过
在编译时包含头文件,并在编译时链接二进制对象
编译可执行文件/库。)


<!--T:25-->
这对你来说可能听起来很奇怪,甚至有些离谱。 但是进行业余开发时你真的应该和你的上司谈谈。 最好的情况,你的上司会看到你真的是一个敬业的软件工程师,很高兴有这么一个热情的人能签下合同,并告诉你继续你的业余项目。 在最坏的情况下,你会被告知你不能在那个项目上工作-- 但愿在这''之前''你还没已经写出了10K行源代码,并且被你的雇主起诉了。
* '''无许可证声明''' - 如果没有许可证声明,则您无权使用或重新发布。远离,远离
* '''专有许可证声明''' - 以实际许可证的条款为准。
* '''公共领域''' - 没有附加条件,继续吧。
* '''许可协议''' - 您必须保持BSD许可证中的版权声明和条件列表的完整性。如果您仅提供二进制文件,请在文档中;否则,在源代码中。
  :“根据我上面的说明,我建议将BSD许可单位分开(如下所述,用于LGPL’ed的内容),以避免对BSD许可证适用于“整个”项目(包括重新发布的权利)产生任何误解。”马丁堡特
* '''LGPL''' - 您可以使用LGPL'ed源,但非(L)GPL'ed本身的项目“必须将它们保存在单独的翻译单元中”。
  :如果仅分发二进制文件,则“必须”提供目标代码的“未链接”版本,以便人们可以链接LGPL部分的“不同”版本。这是LGPL的明确要求!
  :另请参见下面关于(L)GPL版本的段落。
* '''GPL''' - 您只能在GPL下的项目中使用GPL源。
  :另请参见下面关于(L)GPL版本的段落。


这不是开玩笑,也不是可以掉以轻心的事情。 如果你的雇主粗暴对待你,并以违约为由起诉你,你可能会失去工作,还有一大笔钱。 [http://www.gnu.org 自由软件基金会]在接受你的代码提交之前,会要求你提交由你上级签署的纸质文件。这样显得过程比较规范正式(官僚主义)。


==参考/教育 == <!--T:26-->
这意味着,除非你 ''已明确'' 自己的法律地位,否则请将在办公时间内使用的代码视为 ''外来''代码,''即使是你自己编写了它们''。 无论源文件中给出的许可信息''是否''适用于你,如果''没有''给出许可信息,则表示''保留所有权利'',因为即使你是代码作者,''你也可能不是版权所有者''。


<!--T:27-->
==合并源代码==
这里的问题是使用X作为教程材料编写的代码是否正确
“源于X的作品”(GPL术语)和/或“窃取知识产权”
“财产”(公司律师术语)。这在很大程度上取决于代码
涉及到,您编写的代码中有多少是基于
你以前读过什么,问过谁。


<!--T:28-->
假如你正在寻找一些现有的代码,看是否可以插入到自己的代码库中。
* '''Without License Statement''' - 承担最坏的后果(如果有人发现,则提起诉讼)。
* '''Proprietary License Statement''' - 以实际许可证为准。
* '''Public Domain''' - 继续前进,受到鼓舞,收获巨大的利润;作者不会介意的。
* '''BSD License'''  - BSD许可证适用于代码本身,“有修改或无修改”,但并未提及从中获得灵感。 您应该可以安全地使用BSD许可代码进行自我教育。
* '''(L)GPL''' - LGPL和GPL都要求任何“从产品衍生的作品”必须置于同一许可证之下。
  :铁杆福音传道者声称,受到(L)GPL'ed代码的启发构成了“从产品衍生的作品”。就我个人而言,我认为这是无稽之谈,因为声称一天付给你一家公司拥有你晚上的代码。似乎还没有这样的案件被提交到法庭,但意见是存在的,所以要小心。


* '''无许可证声明''' - 如上所述,如果你是软件开发人员,并且没有允许的''书面''证明,则''不''允许你从雇主的代码库中提取代码,并将其粘贴到你自己的项目中。 你会被解雇和起诉的。 不要这样做。
: 了解到这些你可能会惊讶,发布到某些论坛的教程或代码片段也受其作者的版权保护,除非另有''明确''备注。(译者注:现在很多论坛都会专门要求发帖人接受开放授权。)''从法律上讲'',这意味着你也不能将它们复制到你的代码中。 但是,这通常对作者和读者一样都有点意外,其实你可以与对方联系以获取个人许可 (请参见下文)。
* '''专有许可声明''' - 实际上,复制和粘贴受专有许可(取决于实际许可)保护的源代码到别处是'''永远不'''可以的。 通常,你也甚至无法访问到它们的源代码。
* '''公共领域许可''' - 公共领域许可是软件社区的万能供血者:复制公共领域源代码''始终''是可以的。
* '''BSD许可证'''- BSD许可证要求你保留版权声明和说明那些构成BSD许可证的情况条件清单。 因此,源代码的特定部分可仍然单独''保留''在BSD许可证下,无论它所集成到的代码的许可证是什么。 只要你尊重这一点,那么你可以在任何BSD许可或 (L)GPL许可的项目中自由使用BSD源代码,而不用另行通知版权所有者。
**(L)GPL许可过的项目应该当心,BSD许可的源代码的部分可在不侵犯(L)GPL的情况下,由专有许可或公共领域许可项目合法'提取'。
** 公共领域许可项目可以做类似的事情,但这意味着项目不再是''作为一个整体''的公共领域许可,而是带有BSD部分的公共领域许可 - 这应该在源代码和文档(如果有的话)的显著位置指出。
** ''我完全不确定将BSD源代码包含到专有软件中的法律含义,你最好必须保持原来BSD许可部分的"情况条件清单"不变,并在其中包括重新分配的许可说明。 关于这件事,我听到了些相互矛盾的意见。''- MartinBaute注
如果你自己的项目属于LGPL或GPL许可发布,你可以复制LGPL的源代码而无需另行通知,因为LGPL明确允许将源代码从LGPL'提升'到GPL。
: 另请参阅下面 (L)GPL版本的段落。
* '''GPL''' - 除了在类似的GPL项目中,你不能将GPL的源代码带到其他任何地方使用。
: 请注意,虽然可以将LGPL的代码'''提升'''为GPL,但不允许反过来 (GPL -> LGPL)。
:另请参见下面关于(L)GPL版本的段落。


== (L)GPL versions == <!--T:29-->
== 单独使用编译转换后单位(对象)代码==


<!--T:30-->
你有一个单独转换后的单元 (即,与单个目标文件、模块等相对应的文件或文件集合,或者用于链接的二进制目标文件),并且你希望将其集成到你的项目中。 (通常是在编译时包含头文件,并在编译可执行文件/库时链接二进制对象。)
GPL和LGPL有一个转折点,因为它们是“版本化的”。 版权
持有人可自由指定源应提供的(L)GPL的特定版本
是否根据或特定版本“或任何更高版本”获得许可
指定任何版本。


<!--T:31-->
* '''没有许可证声明''' - 如果没有许可证声明,则你无权使用或重新分发。 注意避免
复制(L)GPL’ed代码时请注意这一点。 如果未指定版本,
* '''专有许可证声明''' - 受实际许可证条款的约束。
你可以假设版权所有者不在乎,然后添加一个版本
*'''公共领域授权''' - 没有任何附加条件,请便。
带或不带“或任何更高版本”零件的规范。
* '''BSD许可证 ''' - 你必须保留版权声明和BSD许可证中的情况条件清单。 如果只发布二进制文件,则在文档中提供;否则,在源代码中提供。
: ''根据我上面的注意点,我建议将BSD许可的单元保持充分的可识别度,包括重新分配的权利(以下针对LGPL的内容所述也一样),以避免对适用于你的''整个''项目的BSD许可产生任何误解。''-MartinBaute注
* '''LGPL''' - 你可以使用LGPL许可的源代码,但是非(L)GPL许可的项目自身必须将它们放在单独的转换单元中。
: 如果仅分发二进制文件,则''必须''提供目标代码的 ''未链接''版本,以便人们可以链接LGPL部分的''不同''版本。 这是LGPL的明确要求!
: 另请参阅下面关于(L)GPL版本的段落。
* '''GPL'''- 你只能在本身就是GPL许可的项目中使用GPL的源代码。
:另请参阅下面关于(L)GPL版本的段落。


<!--T:32-->
== 参考/教育用途 ==
但如果版权持有人指定了一个版本,则您不得添加“或”
任何更高版本“如果它不存在,或删除现有版本而不写入
版权持有人的同意。


这里的关键问题是:是使用X作为教程材料而编写的代码,就是"源于X的作品"(GPL用语),还是"窃取知识产权"(公司律师用语)。 这在很大程度上取决于所涉及的代码,你编写的代码中有多少实际上是基于你以前读过的内容,以及你询问的人。


== 个人许可 == <!--T:33-->
* ''' 无许可证声明 '''- 需要承担最坏的后果(如果有人发现,则会被提起诉讼)。
* '''专有许可证声明''' - 以实际许可证为准。
* '''公共领域许可'''- 尽管去做吧,受到启发,收获丰厚的利润,作者不会介意的。
* '''BSD许可证 ''' - BSD许可证适用于代码本身,"是否经过修改",但并不涉及从中获得灵感。 你应该可以安全地使用BSD许可的代码来自学。
* '''(L)GPL '''- LGPL和GPL都要求任何“源自产品的作品”必须置于同一许可证之下。
:铁杆传道者声称就算是受到(L)GPL代码的启发,这也构成了一种"源自"关系。 就我个人而言,我认为这和公司声称“付了你白天的工资,就要拥有你晚上编写的成果”一样荒谬。 同时似乎还没有这样的案件被提交法庭,但风险是存在的,所以要小心。


<!--T:34-->
==(L)GPL版本==
我们在本文档中只讨论了“通用”许可证。 如果许可证
对于“特定”代码段给您带来的问题,您可以“始终”尝试
联系版权持有人并申请个人许可证。


<!--T:35-->
GPL和LGPL许可证经历过一个变革,后来它们是多''版本''的。 版权持有人可以自由指定源代码应根据的(L)GPL特定版本,或指定特定版本''及更高版本'',或根本不指定任何版本。
例如,如果您正在组装一个PD库,那么
完成是仅在BSD许可证下可用的特定功能,请询问
版权所有人是否可以将“此”功能包含到您的
不必麻烦BSD版权通知/版权清单的项目
条件


复制(L)GPL许可的代码时要注意这一点。 如果未指定版本,则可以假设版权所有者不在乎,并在你再次发布时带有或不带有"及更高版本"的版本规范。


== 更改许可证 == <!--T:36-->
但如果版权持有人指定了一个版本,未经版权持有人书面同意,你既不能添加“并更高版本”,也不能删除现有版本。


<!--T:37-->
==独立许可==
作为项目的版权所有者,您完全可以“更改”项目
项目的授权。 但是,要准备好面对来自同龄人的愤怒,
因为这对他们来说通常是个惊喜。


<!--T:38-->
我们在本文档中只讨论了''通用''许可证。 如果''特定''代码的许可政策给你带来了问题,你''始终''可以尝试联系版权所有者并要求获得单独的许可。
是的,您可以“自由”发布v2。以前GPL项目的0作为
专有软件,就像您可以自由发布以前的专有软件一样
GPL下的软件。 在前一种情况下,你的同龄人同样可以自由选择
版本v1。9和继续GPL下的项目,因为你是“不”允许的
“追溯性”更改许可证。


例如,如果你正在构建一个公共领域许可的库,而你完成需要的只是一个仅在BSD许可下可用的特定功能,请询问版权所有者是否可以在你的项目中包含''这''一个功能,而不必费心使用BSD版权声明/条件清单。


=== 贡献者陷阱 === <!--T:39-->
== 更改许可证 ==


<!--T:40-->
作为项目的版权所有者,你完全可以''更改''项目的许可政策。 尽管如此,还是要准备好迎接来自你同僚的怒火,因为这通常会让他们大吃一惊。
这其中有一个转折点,同样令人惊讶的是,论坛帖子也在不断增加
“保留所有权利”或你的雇主告诉你“你所有的基地都属于你”
对我们来说,“贡献者陷阱”。


<!--T:41-->
是的,你可以自由地把先前专有软件发布在GPL许可下,同样你也可以''自由''地把先前GPL开发的项目的v2.0作为专有软件发布,。 在后一种情况下,你的同僚同样可以自由选择GPL许可的v1.9版本,并继续在GPL许可下的项目,因为'''不'''允许''追溯''更改许可证。
假设您已经阅读了以上所有内容,并突然决定
GPL下的项目不是一个好主意:你想更改许可证。
现在,如果你独自完成你的项目,没有什么能阻止你。


<!--T:42-->
===贡献者绑定===
''但是''',如果有许多其他人为你的项目做出贡献,你可能会在
深层次的麻烦,比如“从法律上讲”,也可能从道德上讲-
您可能不再是唯一的版权所有者,许可证只能
更改为“如果所有版权所有者同意”。


<!--T:43-->
前面已经说了几个令人惊讶的法规:论坛帖子是被'保留所有权利'的;你的雇主可以告诉你 “你所有的工作都属于我们”。这里还要说明一个同样令人惊讶的事情:贡献者绑定。
让我重复一下:如果您想更改项目的许可证
* 从GPL到其他任何东西;
* 从LGPL到GPL以外的任何其他内容;
* 从BSD到其他任何东西;
* 从某个X到某个Y我都没想过;


<!--T:44-->
假设你已经阅读了以上所有内容,冒然决定将你的项目置于GPL之下,当你想要更改许可证时,会发现这不是一个好主意。
''即使是您自己的项目,也可能不允许您这样做''。
这时如果以前都是你一人独自从事你的项目,也没什么能阻止你。


<!--T:45-->
'''但是 ''',如果许多其他人为你的项目做出了贡献,那么你可能会遇到严重的麻烦,因为 - ''合法地说'',并且从道德上讲 - 你可能不再是项目唯一的版权所有者,并且许可证只能''在每个版权所有者同意''下更改。
出于这个原因,许多项目在GPL声明中添加了“或任何更高版本”,因为这样就不再需要项目的所有版权所有者同意更改为新的GPL版本。 也可以删除较旧版本的GPL以获得较新版本的软件。


让我重复一下: 如果要更改项目的许可
* 从GPL到其他任何许可政策;
* 从LGPL到GPL以外的任何许可政策;
* 从BSD到其他任何许可政策;
* 从X到Y,其它我没有考虑过的许可政策;


== 另见 == <!--T:46-->
通通都是,''即使你自己的项目,你也可能不允许更改许可政策''。


由于这个原因,许多项目在GPL声明中添加"包括任何更新版本",这样更改到新的GPL版本就不再需要项目的每个版权所有者同意。 也可以对更高版本的该软件将其上的旧版本GPL许可删除。


=== 外部链接 === <!--T:47-->
==另见==


<!--T:48-->
=== 外部链接 ===
* [http://choosealicense.com/ choosealicense.com] — a site that helps you to choose an open source license
* [http://choosealicense.com/ choosealicense.com] - 一个可以帮助你选择开源许可证的网站


<!--T:49-->
[[Category:OS Development]]
[[Category:OS Development]]
[[de:Lizenzen|de:Lizenzen]]
[[de:Lizenzen]]
</translate>

2022年2月16日 (三) 15:17的最新版本

本文的语气或风格 可能无法反映整个wiki使用的百科全书式语气。 有关建议,请参阅 Wikipedia's article on tone

"读起法规条文就让人满脑子浆糊" - Amiga ROM内核参考手册: Includes & Autodocs, 第二版


简介

当一个出色的新软件想法到来时,许可规则问题通常是你最后考虑的事情。 但许可证问题可能会在事后让你栽跟头,在某种程度上切实伤害你。 所以最好还是花点时间考虑一下。 本文实际上不仅适用于OS开发,还适用于其它一般的软件。

关于软件许可证,最可怕的可能是理解没完没了的法律条文; 我们尽量使这篇文章简洁明了。

热门许可证

以下是最受欢迎的一些许可证版本,并带有“非常”简短的对应说明(希望能帮助大家):

GNU通用公共许可证(GPL)

最终用户有权保留源代码,并可以自由使用、修改和重新发布,只要源代码仍然有效,所有内容要都在GPL下。 链接到GPL代码的对象文件也属于GPL。

GNU较宽松通用公共许可证(LGPL)

最终用户有权保留源代码,并可以自由使用,修改和重新分发,只要源代码仍然有效,所有内容都保留在LGPL或 (可选) GPL下。 链接到LGPL代码的对象文件不受LGPL影响,但必须得最终用户自己来链接(即,需要单独分发还未链接到LGPL代码的非(L)GPL对象文件,让用户自己链接后使用软件)。

伯克利软件分发许可证(BSD)

只要保留BSD许可证内的版权声明,用户就可以自由使用,修改和重新分发,无论有无提供源代码。 请注意,BSD两个版本,含义略有不同。

知识共享(CC)许可证套件

这与其他许可证的不同之处在于,这是几种许可证变体的统称,每种变体都有自己的特定规定。 开发者可以选择是否限制发行、衍生用途、商业用途,或其中任何一种; 所有六个版本唯一的共同要求是必须保留作者对原始代码的署名权。 它是GPL越来越受欢迎的替代品,因为它相当简单,但也被认为不太有 “传播性”。

简单公共领域许可

放弃版权,对使用、修改或再分发没有限制。 在某些国家/地区,即使发布者不住在当地,也无法直接获得公共领域许可。 通常情况下,公共领域许可会向用户授予全部权利(个别情况例外,比如道德权利),因为就是要完全交出权利。 尽管如此,仍然应该有一个后备条款,允许用户明确拥有全部权利。 表达使用公共领域许可的最简单方法是使用 CC0

专有许可证:

专门许可的用户可以免费使用; 也许 (取决于合同) 用户可以修改软件代码以供自己使用,但不能重新分发。

无许可证的情况:

默认为'保留所有权利',这样做的结果通常会让作者和用户都感到意外.

被聘为软件开发人员

当你签订雇佣合同时,你在办公时间编写的代码通常由支付你工资的人拥有,除非你的合同明确另有规定。

在某些国家/地区[待列出?],工作合同可能包括合同有效有效期内你在某一知识领域(有时甚至超出此范围)所做的所有工作。 这意味着,如果你受雇于白天编写代码,你在家办公时间后编写的代码也可能是你雇主的合法财产。这是因为你的雇主付钱给你在某个领域工作 (和获得经验),这种经验是很有价值的,而你有义务将这种经验带回为你付出代价的公司。 另一个理由可能是,不允许你在业余时间制作可能成为公司产品竞争对手的产品。

这对你来说可能听起来很奇怪,甚至有些离谱。 但是进行业余开发时你真的应该和你的上司谈谈。 最好的情况,你的上司会看到你真的是一个敬业的软件工程师,很高兴有这么一个热情的人能签下合同,并告诉你继续你的业余项目。 在最坏的情况下,你会被告知你不能在那个项目上工作-- 但愿在这之前你还没已经写出了10K行源代码,并且被你的雇主起诉了。

这不是开玩笑,也不是可以掉以轻心的事情。 如果你的雇主粗暴对待你,并以违约为由起诉你,你可能会失去工作,还有一大笔钱。 自由软件基金会在接受你的代码提交之前,会要求你提交由你上级签署的纸质文件。这样显得过程比较规范正式(官僚主义)。

这意味着,除非你 已明确 自己的法律地位,否则请将在办公时间内使用的代码视为 外来代码,即使是你自己编写了它们。 无论源文件中给出的许可信息是否适用于你,如果没有给出许可信息,则表示保留所有权利,因为即使你是代码作者,你也可能不是版权所有者

合并源代码

假如你正在寻找一些现有的代码,看是否可以插入到自己的代码库中。

  • 无许可证声明 - 如上所述,如果你是软件开发人员,并且没有允许的书面证明,则允许你从雇主的代码库中提取代码,并将其粘贴到你自己的项目中。 你会被解雇和起诉的。 不要这样做。
了解到这些你可能会惊讶,发布到某些论坛的教程或代码片段也受其作者的版权保护,除非另有明确备注。(译者注:现在很多论坛都会专门要求发帖人接受开放授权。)从法律上讲,这意味着你也不能将它们复制到你的代码中。 但是,这通常对作者和读者一样都有点意外,其实你可以与对方联系以获取个人许可 (请参见下文)。
  • 专有许可声明 - 实际上,复制和粘贴受专有许可(取决于实际许可)保护的源代码到别处是永远不可以的。 通常,你也甚至无法访问到它们的源代码。
  • 公共领域许可 - 公共领域许可是软件社区的万能供血者:复制公共领域源代码始终是可以的。
  • BSD许可证- BSD许可证要求你保留版权声明和说明那些构成BSD许可证的情况条件清单。 因此,源代码的特定部分可仍然单独保留在BSD许可证下,无论它所集成到的代码的许可证是什么。 只要你尊重这一点,那么你可以在任何BSD许可或 (L)GPL许可的项目中自由使用BSD源代码,而不用另行通知版权所有者。
    • (L)GPL许可过的项目应该当心,BSD许可的源代码的部分可在不侵犯(L)GPL的情况下,由专有许可或公共领域许可项目合法'提取'。
    • 公共领域许可项目可以做类似的事情,但这意味着项目不再是作为一个整体的公共领域许可,而是带有BSD部分的公共领域许可 - 这应该在源代码和文档(如果有的话)的显著位置指出。
    • 我完全不确定将BSD源代码包含到专有软件中的法律含义,你最好必须保持原来BSD许可部分的"情况条件清单"不变,并在其中包括重新分配的许可说明。 关于这件事,我听到了些相互矛盾的意见。- MartinBaute注

如果你自己的项目属于LGPL或GPL许可发布,你可以复制LGPL的源代码而无需另行通知,因为LGPL明确允许将源代码从LGPL'提升'到GPL。

另请参阅下面 (L)GPL版本的段落。
  • GPL - 除了在类似的GPL项目中,你不能将GPL的源代码带到其他任何地方使用。
请注意,虽然可以将LGPL的代码提升为GPL,但不允许反过来 (GPL -> LGPL)。
另请参见下面关于(L)GPL版本的段落。

单独使用编译转换后单位(对象)代码

你有一个单独转换后的单元 (即,与单个目标文件、模块等相对应的文件或文件集合,或者用于链接的二进制目标文件),并且你希望将其集成到你的项目中。 (通常是在编译时包含头文件,并在编译可执行文件/库时链接二进制对象。)

  • 没有许可证声明 - 如果没有许可证声明,则你无权使用或重新分发。 注意避免
  • 专有许可证声明 - 受实际许可证条款的约束。
  • 公共领域授权 - 没有任何附加条件,请便。
  • BSD许可证 - 你必须保留版权声明和BSD许可证中的情况条件清单。 如果只发布二进制文件,则在文档中提供;否则,在源代码中提供。
根据我上面的注意点,我建议将BSD许可的单元保持充分的可识别度,包括重新分配的权利(以下针对LGPL的内容所述也一样),以避免对适用于你的整个项目的BSD许可产生任何误解。-MartinBaute注
  • LGPL - 你可以使用LGPL许可的源代码,但是非(L)GPL许可的项目自身必须将它们放在单独的转换单元中。
如果仅分发二进制文件,则必须提供目标代码的 未链接版本,以便人们可以链接LGPL部分的不同版本。 这是LGPL的明确要求!
另请参阅下面关于(L)GPL版本的段落。
  • GPL- 你只能在本身就是GPL许可的项目中使用GPL的源代码。
另请参阅下面关于(L)GPL版本的段落。

参考/教育用途

这里的关键问题是:是使用X作为教程材料而编写的代码,就是"源于X的作品"(GPL用语),还是"窃取知识产权"(公司律师用语)。 这在很大程度上取决于所涉及的代码,你编写的代码中有多少实际上是基于你以前读过的内容,以及你询问的人。

  • 无许可证声明 - 需要承担最坏的后果(如果有人发现,则会被提起诉讼)。
  • 专有许可证声明 - 以实际许可证为准。
  • 公共领域许可- 尽管去做吧,受到启发,收获丰厚的利润,作者不会介意的。
  • BSD许可证 - BSD许可证适用于代码本身,"是否经过修改",但并不涉及从中获得灵感。 你应该可以安全地使用BSD许可的代码来自学。
  • (L)GPL - LGPL和GPL都要求任何“源自产品的作品”必须置于同一许可证之下。
铁杆传道者声称就算是受到(L)GPL代码的启发,这也构成了一种"源自"关系。 就我个人而言,我认为这和公司声称“付了你白天的工资,就要拥有你晚上编写的成果”一样荒谬。 同时似乎还没有这样的案件被提交法庭,但风险是存在的,所以要小心。

(L)GPL版本

GPL和LGPL许可证经历过一个变革,后来它们是多版本的。 版权持有人可以自由指定源代码应根据的(L)GPL特定版本,或指定特定版本及更高版本,或根本不指定任何版本。

复制(L)GPL许可的代码时要注意这一点。 如果未指定版本,则可以假设版权所有者不在乎,并在你再次发布时带有或不带有"及更高版本"的版本规范。

但如果版权持有人指定了一个版本,未经版权持有人书面同意,你既不能添加“并更高版本”,也不能删除现有版本。

独立许可

我们在本文档中只讨论了通用许可证。 如果特定代码的许可政策给你带来了问题,你始终可以尝试联系版权所有者并要求获得单独的许可。

例如,如果你正在构建一个公共领域许可的库,而你完成需要的只是一个仅在BSD许可下可用的特定功能,请询问版权所有者是否可以在你的项目中包含一个功能,而不必费心使用BSD版权声明/条件清单。

更改许可证

作为项目的版权所有者,你完全可以更改项目的许可政策。 尽管如此,还是要准备好迎接来自你同僚的怒火,因为这通常会让他们大吃一惊。

是的,你可以自由地把先前专有软件发布在GPL许可下,同样你也可以自由地把先前GPL开发的项目的v2.0作为专有软件发布,。 在后一种情况下,你的同僚同样可以自由选择GPL许可的v1.9版本,并继续在GPL许可下的项目,因为允许追溯更改许可证。

贡献者绑定

前面已经说了几个令人惊讶的法规:论坛帖子是被'保留所有权利'的;你的雇主可以告诉你 “你所有的工作都属于我们”。这里还要说明一个同样令人惊讶的事情:贡献者绑定。

假设你已经阅读了以上所有内容,冒然决定将你的项目置于GPL之下,当你想要更改许可证时,会发现这不是一个好主意。 这时如果以前都是你一人独自从事你的项目,也没什么能阻止你。

但是 ,如果许多其他人为你的项目做出了贡献,那么你可能会遇到严重的麻烦,因为 - 合法地说,并且从道德上讲 - 你可能不再是项目唯一的版权所有者,并且许可证只能在每个版权所有者同意下更改。

让我重复一下: 如果要更改项目的许可

  • 从GPL到其他任何许可政策;
  • 从LGPL到GPL以外的任何许可政策;
  • 从BSD到其他任何许可政策;
  • 从X到Y,其它我没有考虑过的许可政策;
通通都是,即使你自己的项目,你也可能不允许更改许可政策

由于这个原因,许多项目在GPL声明中添加"包括任何更新版本",这样更改到新的GPL版本就不再需要项目的每个版权所有者同意。 也可以对更高版本的该软件将其上的旧版本GPL许可删除。

另见

外部链接

de:Lizenzen