如何创建自己的软件许可证?[关闭]


17

我已经看到各种软件的大量许可,例如GNU GPL,BSD许可,MIT许可和LGPL。创建新软件许可证(例如“ John Doe的通用许可证”)的过程是什么?


8
@缺口。您可以编写自己的。但是,您获得许可证中实际想要的东西的可能性很小,甚至根本不存在(除非您是律师)。法律用语不平凡且复杂,律师也具有以前在法庭上一直存在/未能通过的漏洞(抱歉的特定条件)方面的经验。您提到的所有许可证都是由经验丰富的律师团队精心制作的(即使第一个版本不是)。
马丁·约克

4
我只能给出的建议是不要接受程序员的法律建议.....
mattnz 2012年

2
这是一个很好的问题。真可惜,这被认为是不合时宜的。
耶隆(Jeroen)

1
@MartinYork法律语言不是某种特殊语言。在英语中,他们将英语用于合同。当您进入合同中出现的星巴克时,是否有不常用的词?可以,但是对于加油站“行话”确实如此。不过,您仍然可以去星巴克,要求他们在大型手持式储油罐中填充简单的黑色能量燃料,最高价格为3.5美元(假设这是一杯大咖啡的价格),而且您会完全理解,而无需使用“咖啡行话”
安德烈(Andrei)

1
@安德烈,我不同意。法律语言是英语的子集。英语可能很不精确。因此,合同中的法律语言倾向于使用具有特定含义的词来确保没有歧义。因此,让专家以正确的风格写作是一个好主意。
马丁·约克

Answers:


29
  1. 打开一个编辑器。
  2. 写下许可条款。
  3. 保存存档。
  4. 包括在项目中。

一般来说,仅此而已。说真的

不相信我吗?查看Phil Sturgeon的“不要成为迪克”许可证(以及启发它的WTFPL)。

话虽如此,软件许可是否可合法执行(无论是由律师撰写)还是成败攸关(至少在美国是这样,这几乎完全取决于法官或裁决版权当局的心血来潮)。不过,更一般而言,作为软件作者,您已经受到所在国家/地区版权法的保护(假设您已采取措施使您的作品获得版权;在美国,这实际上只是在制作作品)。

归结为您想要在版权法之外(或代替版权法)使用许可来完成的工作。对于像Phil的DB​​aD许可证这样的许可证,很大程度上取决于荣誉原则和相互尊重。

如果您希望它具有法律上的强制性(或至少有这样做的机会),例如发布封闭源代码的产品,那么您很可能想与律师交谈。这样,您可以确保不存在任何明显的漏洞,并且可以以这样的方式编写漏洞:如果某人确实违反了该规则,则法官/执政党更有可能以您的名义做出裁决。

EllisLab(CodeIgniter背后的公司)从法律的角度,从FLOSS开发人员的角度以及我上面提到的荣誉原则的角度,对软件许可(实际上是有关此问题的整整一周的博客)都有很好的解释

(免责声明:我不是律师,这不是具有法律约束力的建议,等等,等等。我只是一个开发人员,必须在软件开发和许可的合法雷区中立足。 ,与实际上是律师的人交谈,最好是具有版权,专利和/或许可重点的人。)


1
+1回答实际问题,然后提供正确的行动方案
David Peterman 2012年

1
我喜欢“不要成为迪克”许可证。它甚至比WTFPL好。
罗伯特·哈维

可能值得注意的是,“不要成为Dick许可证”绝不是免费的/自由的/“开源的” 许可证
德米特里·亚历山德罗夫

16

为您的软件用户回答以下问题:

  1. 您的产品是开源的吗,即我可以获取源代码的副本吗?

    • 我如何使用您的源代码?我可以将其自由复制到自己的应用程序中,还是必须链接到您的二进制文件?如果我在自己的应用程序中使用您的代码,那么我可以使用多少代码有限制?我是否必须在包含您的代码的我重新分发的任何源文件的顶部,或在我的二进制文件的“帮助/关于”框中,包括您的许可证或署名标头?
  2. 我该如何处理您的产品?我可以一台电脑使用它吗?我可以在多台计算机上使用它吗?我可以重新分发或转售它吗?

  3. 如果我将您的产品用作我编写的另一个应用程序的一部分,是否还必须开源?

  4. 您如何保修产品?如果我有问题,您应承担法律责任吗?

  5. 您的再分配条件是什么?我可以将您的产品作为我编写的产品的一部分进行重新分配吗?如果提供了源,我可以修改您的库并重新分发所做的修改吗?如果可以,我必须满足哪些条件?

研究其他许可证,看看他们如何回答这些问题。


6

实际上,它与开发人员的工作惊人地相似:

您向律师(或大型公司的法律部门)提供许可证许可条件和许可条件的要求列表(例如,许可证仅适用于一个用户,这是临时的,您不能出于某些目的使用该软件等),然后将其“翻译”成律师用语,就像我们将需求翻译成代码一样。

例如,“许可证仅适用于一个用户”通常被翻译成类似以下内容:“ FooCorp Inc.授予您一个非排他性的,不可转让的许可证,以将FooSoftware用于...。

您可能会认为这不适用于F / OSS许可证,但大致相同,只是要求不同:您可以在http://opensource.org/docs/OSD中找到这些要求的最简单版本。

但是律师是必不可少的部分,尝试自己写许可证是没有意义的(除非您是在知识产权相关和国际法方面具有丰富经验的律师)。有人会发现一个方便的漏洞,这将使他能够以自己喜欢的方式使用您的产品(我会尽可能将其与漏洞利用进行比较)。

当然,我不认为这种解释是完整的甚至是正确的,但是就涉及软件开发人员而言,这只是过程的粗略概述(因此,我将其与程序员的工作进行了比较)。


因此,这基本上是律师职业?
Rrjrjtlokrthjji 2012年

1
@Nick当然,程序员通常不应该踩在那里。
K.Steff

4

要回答您的问题,任何人都可以写许可证-它会显示!

我们这些使用软件来构建事物并实际上尝试遵守每个许可证的人,每当有人谈论制作新许可证时,都准备用热门扑克打磨自己的眼球。世界上已经有无数的软件许可证。其中99%几乎是现有的,更受欢迎的许可证的重复副本,除非没有经过深思熟虑。

我参与的一个网站拥有本地开发的创意-常见的非商业归因类型许可,但它对衍生作品一无所知。他们被允许吗?它们可以在同一许可证下分发吗?打败我!

如果其他人为某个项目做出了贡献,而您曾经想要或需要更改许可证,则需要让他们所有人同意更改许可证,否则,您或多或少会永远被它困住。其中一些可能变得无法到达甚至死亡。我不是律师,但是如果您没有所有人都能签署的供款人协议,让您对许可做出决定,那么我认为您是SOL。

编写好的许可证真的很难。即使是最好的软件许可证也充满了漏洞。定期有Apache和GPL许可证的新版本。请查看是否可以找到满足您90%需求的许可证并使用它。在GPL链接例外或“类路径例外”就是一个很好的例子。我有点担心Hibernate员工几年来在其站点上发表的声明,基本上是公开地误解了GPLv2,使其听起来像它包含了Classpath Exception。那是classpath异常吗?除非有人起诉他们,否则我们不会知道。

在我看来,起诉是调试许可证的最痛苦的方式。如果您使用的是已经被人们起诉的许可证,那么可以肯定的是它可以正常工作,并且对它的工作原理也有一定的保证。更好的是,选择已在不同国家/地区提起诉讼的许可证。您是否考虑过如何在世界其他地方解释您的许可证?

如果您以现有许可证为基础建立许可证,那么关心遵守许可证条款的人可能不必花很多年时间研究许可证的确切含义。

如果有可能,我鼓励您将精力和才华投入到改进现有许可证上,而不是编写新许可证。

很抱歉成为这样的杀人狂。如果我很苦,那是因为我在使用别人的作品之前确实阅读并尝试尊重别人的许可证。


3

写下条款,并随您的软件一起发布。而已。

但是,一个问题是为什么要这么做?您希望添加的任何条件已经不太可能已经存在于另一个常用许可证中。

这增加了一个初步步骤-检查您是否实际上必须创建许可证。

您可能要强制执行的某些条件在某种程度上也存在缺陷。添加另一个初步步骤-阅读有关您要应用的“独特”条款的信息。可能有人尝试过这些术语,并发现它们无法执行或以某种方式适得其反。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.