以“道德”为由进行歧视的软件许可


43

我花了一些时间阅读常见的copyleft和许可的软件许可证。是否有许可证允许应用程序或算法的创建者根据自己的个人偏见广泛地指定谁可以使用/分发产品?

我了解人们使用双重许可来强迫商业实体支付许可许可,或者被迫分发项目的源代码,但是我在想一些类似的事情,例如“可以免费使用该代码,修改并由不涉及Industry x的任何实体分发[我认为我不值得使用我的自由软件]”。

我一直找不到任何这样的许可证或许可证模板,并且我以为至少有些程序员会担心其产品的道德影响。是否可以创建AI寻路算法,并确保最终不会指导武装无人机或北极浮冰模型,并确保最终不会将其用于海上石油钻井,同时仍使用许可式许可证?


41
最根本的问题是提出一个关于“道德”和“不道德”的可行的法律定义。如果有人能够做到这一点,我们将不需要99%的法律。实际上,即使“涉及X”也可能太含糊。JSON许可证曾有句著名的话:“该软件应被用于善良,而不是邪恶的行为”,但没人知道实际上排除了什么。实际上,执行自己的道德标准的唯一可行方法是要求所有潜在软件用户通过解释他们想要使用的软件,获得您的明确许可来使用您的软件。
Ixrec

4
在您的最后一段中,对该问题的简单回答是:“是的,不要将其提供给任何人使用”
Caleth,2016年

3
从理论上讲,这是完全合法的AFAIK。实践方面是另一个故事。您将需要一位优秀的律师来适当地措辞和定义“ 涉及X行业的任何实体 ”。作为谈判公司合同的人,我经常在反竞争条款中看到这样的短语,并且我们一直都在打击它们,因为它们过于模糊,笼统和/或主观。然后就是强制执行的问题:如果不是由拥有方积极执行的法律条款,至少可以说是有问题的,而且在许多情况下,它们是无效的。
RBarryYoung '16

11
值得注意的例子:Treefinder的许可证:treefinder.de请注意,他有点怪异。
恢复莫妮卡

14
Treefinder的许可证是一个警示故事。他基本上说,他可以随时更改您的许可条款,这使得该软件几乎不适合每次使用。
罗伯特·哈维

Answers:


16

这个问题在自由软件社区中经常出现,这是可以理解的。人们编写自由软件(通常是在业余时间)并将其捐赠给公众通常会这样做,因为他们希望有所作为,而不是变得更糟。因此,尝试确保不以您认为不道德的方式使用手工艺品是很自然的事情。

自由软件基金会显然反对使用软件许可证来限制人们使用软件的方式。理查德·斯托曼(Richard Stallman)撰写了一篇文章“为什么程序一定不能限制运行它们的自由”,他解释了为什么他坚信使用软件许可证将某软件的使用限制为符合道德的应用程序注定会失败,并且只会损害互操作性和限制。对合法用户的有用性。我觉得他的文章很有说服力,当然建议您阅读原著,但我想解释一下(我的评论)我认为他在这里的主要论点。

  • 禁止将软件用于非法活动充其量是毫无意义的。无论许可证怎么说,这些活动始终是非法的。许可证只能授予用户版权所有者拥有的软件权利。它没有在他的文章中明确写出,但我得出结论并同意,从政治上宣传将不道德的活动改为非法更为有意义。

  • 禁止国家使用该软件进行不道德活动(RMS提到酷刑为例)可能不会奏效,因为大多数州都有专门的立法,允许他们根据自己的利益做几乎任何事情。国家安全。虽然我认为这有些夸张,但可以肯定的是,许多州都存在对军事用途的这种法律豁免,或者如果立法权认为可取的话可以通过。可能更相关的是,您将很难证明自己的作品在没有访问机密信息的情况下根本无法使用,并且尽管许多参与者都在扩大版权法以证明令人发指的东西,但我 我不知道“获得机密信息,以便您可以起诉该州”是版权法在世界任何州授予您的东西。您肯定不会成功起诉可能将您的软件用于最可怕事情的独裁国家。

  • 尚不清楚此类限制是否可以通过版权强制实施,如果可以实施,是否会有所裨益。我只能说德国,但我非常有信心在德国法院诉讼中任何这样的许可条款都是无效的。我认为这是一件好事。版权法在他人可以强加给您的东西方面已经太强大了。我们需要的最后一件事是更多限制。

  • 如果软件许可将软件的使用限制为“道德目的”,则将导致严重的混乱,并且软件将不兼容。尽管这肯定发生,但我不明白为什么不能出现一个可信组织发布的事实上的标准“道德公共许可证”,而今天的GPL却被许多项目使用。我所看到的是,为了使这样的一般许可被广泛接受和使用,很可能必须归纳为将已经被商定为不道德的东西定义为不道德的东西,因此民主制中的公共立法禁止了该行为,因此它不会提供太多。更重要的是,由于今天没有这样的许可证,因此您必须自己动手发行,这总是一个坏主意。


您是否认为可能有一个授予部分人口(或使用)的权限的许可证,并且任何包含该许可证的软件都必须授予部分较小或相等的人口(或使用)的权限?
Bug Catcher Nakata

1
@BugCatcherNakata这与免费软件许可证相反。您当然可以将其写到文档中,但是我认为这不是防止您的软件在您不赞成的应用程序中使用的有效法律措施。但是,这肯定会阻止许多诚实的人使用您的作品。
5gon12eder's

实际上,通常被认为是道德的和合法的之间的差距比大多数人意识到的要大得多。一个简单的例子:如果您今天去商店,货架上的咖啡和巧克力中有很大一部分涉及奴隶劳动。
ChristopherJ

有时存在禁止不受欢迎的事物分离的念头,而不是使其无法做事。(1)和(2)更多地是要取消激励某人起诉开发商作为犯罪/不道德行为的同谋的动机。即使在这种情况下许可证不授予任何法律保护,它也会降低对开发商的“合法底池”。这类似于商店的招牌,上面写着他们对停车场的事故或盗窃概不负责。这是法律上不相关的通知,但是它用于关闭已尝试的诉讼,从而从统计角度上节省了商店/开发人员的审判费用。
平坦

34

存在使用此类许可证的软件项目。但是,OSI定义不将其视为免费许可证。

更重要的是,每次我看到它们提到这些许可证的可执行性时,都受到强烈质疑,就我所知,它们从未在法庭上受到测试。使用这样的许可证不太可能具有象征意义。

正如Ixrec在其评论中指出的那样,部分问题在于这些术语难以理解。假设您开发了一种可指导自动驾驶汽车的算法。合乎道德吗?大概。然后,使用此算法来构建自行驾驶的卡车。仍然是道德的。现在,这些卡车用于补给军营或运输毒品。然后您会说不允许这样做吗,因为在那里使用了您的代码?也许它们甚至被用于人口贩运,这绝对是不道德的,但是您将如何控制呢?要求卡车制造商也将许可证放到卡车上吗?

最后,您的普通军事或石油公司有足够的钱来接受您的想法并重新实现它,因此,如果您不想使用它是您的算法,那么无论如何您还是很不幸。而且由于无论如何通常都会对军用代码(例如火箭或无人机制导软件)进行分类,因此您怎么知道您的代码已被使用?


关于您的最后一段:您无法在世界许多地方(例如欧洲)获得算法专利,版权并不能保护算法,而只能保护编写的实际代码,因此,它只能避免人们复制和粘贴您的代码,而不是真正重新实现算法的人们用不同的代码。
巴库里

6
著名的是Douglas Crockford的JSON许可证:json.org/license.html “该软件应用于善良,而非邪恶”。
Eterm 2016年

8
“然后,该算法用于制造自行驾驶的卡车。这仍然符合道德规范。” -实际上...如果自动驾驶卡车迫使人类卡车司机失业并陷入贫困,这是有道理的,那就是创造自动驾驶卡车是不道德的。是的,这是一个令人难以置信的模糊标准。
aroth '16

令人沮丧的是,JSLint一直被视为道德许可不佳的原因。这就好比有人写了一条法律说“不要成为罪犯”,而每个人都在说:“看,您不能使用法律阻止犯罪行为,因为您无法定义罪犯”。您可以,但是只有当您尝试;-)时,才违反直觉,JSLint实际上提供了一些有力的证据证明这种许可可以起作用。即使大多数人认为它是不可强制执行的,IBM仍在使用该软件之前仍明确寻求使用该软件的许可-担心可能会强制执行。
ChristopherJ

@ChristopherJ您的评论与我的回答有什么关系?我根本没有提到JSLint。
塞巴斯蒂安·雷德尔

26

当您查看当前市场时,已经有许可证规定了该软件的用途。

  • 苹果在iTunes许可证中有一项规定,其中规定您不得使用它来开发核武器。
  • 游戏《孤岛惊魂2(Far Cry 2)》在许可中有规定,不允许您违反道德或现行法律使用它。
  • WordWeb拥有许可证该许可证规定,如果您在过去12个月内乘坐了4次以上的航班或拥有/定期驾驶SUV,则不允许使用免费版本,不过最后的规定对教育机构和注册残疾人,需要SUV才能运输。
  • Amazon AWS Lumberyard(视频游戏引擎)拥有许可证该许可证限制在各种自动化和军事目的中使用该软件,但规定该限制不适用于僵尸末日。许可证的字样如下:

    [...]通过叮咬或与体液接触传播的广泛病毒感染(由美国疾病控制中心或后继机构证明),导致人体尸体复活并试图消耗活人的肉,血,大脑或神经组织,可能会导致有组织的文明沦陷。

可能还有许多其他许可证具有类似的怪异条款。因此,基于道德理由进行区分的许可证不是第一次有一个奇怪的规定。


4
+1为提及“核武器”。提及核电厂或医院也很常见,如果在这样的关键系统中出了问题而不是出于道德考虑,更多的是避免承担责任。就iTunes而言,美国法律的限制是不能将其用于“开发,设计,制造或生产核,导弹或化学或生物武器。”(想向敌人发送带有难以忍受的歌曲的导弹吗? ☺)。
安赫尔

-1代表提及“核武器”,因为这只是对现有控制法的重述。
克莱里斯(罢工)-16年

1
@chrylis即使如此,它仍然是许可协议的一部分。我将添加一个在怪异度方面可比的新产品。
恩扎尔

Java许可证声明“您承认许可软件并非设计用于或旨在用于任何核设施的设计,建造,运行或维护” oracle.com/technetwork/java/javase/downloads/…–
drolex

@Nzall您是否从列表中获得了这些许可证?从记忆里?我正在寻找有关此主题的更多资源。谢谢!
玛姬

14

您可以编写自己喜欢的任何许可证,并起诉使用您的代码的任何人违反许可条款以侵犯版权。

例如,您的术语“不被X行业使用”会使许可证与GPL许可证不兼容。我无法将您的软件包含在我要分发的GPL代码中(或可能偶然分发的情况)。我无法将您的代码包含在公司的封闭源代码中,因为法律部门会杀了我(这意味着如果有人向我们提供了数百万美元的源代码,由于您的限制,我们可能无法出售它)。至少我们的法律部门会说:“检查许可证将花费我们5,000美元。您自己编写代码需要花费多少钱?”


9

如果您担心行业X的道德,而不是创建歧视行业X的许可证,则可以采取不同的方法。您可以采用双重许可方式,并创建免费和商业版本。然后以完整的商业版本或从商业版本中获得的部分收益向一些反行业X的组织捐款。

这是完全合法的,并且支持您所信奉的理想。此外,“善意营销”要好得多。甚至专业行业X人群中的人也会尊重您,因为至少您在支持自己所相信的东西。总能看到支持理想而不是反击其理想。


8

我在一家受委托为渐进式慈善机构开发软件产品的公司工作。我们创建了一些我们想开源的库,例如OP,我们对可以找到的许可证不满意。

我们创建了《正义世界》许可证,因此,至少,那些与我们所支持的慈善机构的目标背道而驰的人不会使用我们的代码。(这里有一篇文章解释了我们背后的原因)

在下面,我将解决对意见和答案中提出的道德许可的一些反对意见。这样做时,我要与GPL进行比较,因为它也是从强大的意识形态角度得出的许可的示例,因此对于如何将许可不仅仅是法律文件以及它的各个方面具有指导意义。我们已经接受了。

为什么(不)道德?

我读过的许多异议都与此类许可证的可执行性有关,但我认为,道德许可证的目的不是在法庭上强制执行。实际上,大多数您真正不想在法庭上测试的法律文件-既昂贵又痛苦。是的,您应该使它们清晰明确,但是大多数人不会起草法律文件,其主要目的是将另一方告上法庭。

正如人们(正确地)指出的那样,如果一家大公司希望不受限制地使用您的软件,他们可能会有资源将您埋葬在法律文书中。

但是,这与GPL没什么不同,GPL的编写也不是为了使FOSS开发人员可以向大型公司提起滥用滥用开放源代码的诉讼。是的,这在法律上是特定的,可以执行,但这并不是作者想到的主要目的。他们创建了GPL来传播一个想法-应该自由共享软件及其来源的想法。

同样,在创建道德许可时,我们想传播一个想法-我们的软件应被用于改善世界,我们作为开发人员可以对软件的使用方式承担责任。

可执行性

话虽这么说,我也认为可以执行道德许可证。即使对JSLint的许可条款含糊不清,IBM仍然十分关注强制执行,以至于要求作者明确表示同意将JSLint用于邪恶

是的,大烟草公司可以使用我们的代码并对此保持沉默,但是对于大多数公司(甚至是做坏事的公司)来说,担心被发现或吹口哨以及强制执行的可能性足以使它认为不值得冒险和去找到其他代码。

限制非法物品的使用是没有意义的

同意

我们在写道德许可证时决定,由于这个原因,我们决定不排除非法行为,还因为某些国家的法律确实很糟糕,以可怕的方式限制了人们的自由。如果反对这些事情的激进主义者想使用我们的软件,他们有足够的担忧而不必担心我们可能会出现并停止并阻止他们的麻烦。

如果情况不好,有法律禁止它

<插入立法者的强制性视频,询问马克·扎克伯格有关通过WhatsApp发送电子邮件>

不幸的是,在响应不断变化的社会规范时,我们的立法者是行动最慢的国家之一,更不用说技术了。对于初学者来说,这是2018年,仍然有货架上的产品是由实际的奴隶制造的

道德无法定义

世界并不像通常想象的那么灰暗。

我们的许可将阻止人们使用我们的软件来(除其他外)采取行动,这些行动已知会破坏子孙后代的地球状况,利用奴隶劳动,鼓吹种族主义或破坏行为心理,从而使人们浪费生命点击广告。

这些并不是小车问题

道德是主观的

是的,但这不是一件坏事。

我们一些最重要的决定是主观的。如果您有兴趣,有一些非常有趣的故事,讲述的是人们在事故中受损了情绪中心,即使他们的理由和客观性完好无损,他们也仍然无法正常工作

哲学上少一些。主观上认为,采用FOSS软件并在不发布更改的情况下对其进行改进是错误的。这是构成GPL关键部分的主观观点,并不是软件开发界的每个人都同意这是一件好事,但是这种意见分歧尚未使FOSS社区失望;-)

不方便

好吧,这就是重点。如果公司正在为道德上可疑的行为编写软件,则道德上的许可将带来不便。

某些FOSS许可也可以这样说。如今,有些公司正在使用许可证检查器之类的工具,因为它们不希望在其产品中使用GPL代码。

如果每个作者都提出了自己的道德定义,并且我们有大量的非标准道德许可证,那么这确实变得非常艰巨和不便,但是如果像我们现在对通用开源所做的那样,我们可以商定一些标准许可证没有任何不便之处。

不好的公司只会写自己的

好。如果他们想从伤害人民和我们的未来中获利,那就让他们浪费资源。

我不会自欺欺人地说,放开我已经释放的小型图书馆将实质上抑制大型邪恶公司,但是如果大型项目这样做会怎样呢?

例如,石油和天然气公司正在使用Apache的Hadoop帮助他们在应该关门的时候更有利地运营,以便我们避免气候灾难。

如果Apache基金会确定此类用途不属于 其任务所设想的资源公共利益,并决定将其许可编入法规,则公司将不得不转向其他方法,也许是昂贵的专有解决方案。拖累损害我们未来发展的公司的底线将是一件好事。

这是一个新主意

综上所述,《正义世界许可证》是一个新主意。我们认为这很有帮助,我们欢迎您提出反馈或提出要求,以使其变得更好。


3

有些许可证专门禁止军事用途。

http://mindprod.com/contact/nonmil.html

明确禁止军事应用的“开源”许可证

这些问题是,它们变得与其他许可证(例如GPL)不兼容。因此,从表面上看,它们可能接缝“合理”,但会削弱用法。

的CryEngine的许可证只允许“游戏”的发展,特别是禁止的情况如下:

  • 军事项目
  • 赌博;
  • 模拟(技术,科学,其他);
  • 科学;
  • 建筑;
  • 色情;
  • 严肃的游戏。

严肃的游戏:

1.10。“严肃游戏”,即不是为娱乐目的而开发,而是出于培训,模拟,科学,建筑等目的的“游戏”。

当然,这可能是出于商业原因,而不是出于道德原因,因为他们可以从例如军事承包商那里获得更多的钱,而他们只需要获得不同的执照即可。不允许教育性游戏也很糟糕。


2

从定义上将软件限制用于某些特定目的的任何许可证都不是自由软件许可证。这违反了GNU认为的四个基本自由的第一部分:

  • 出于任何目的自由运行程序的自由(自由0)。

您可以在GNU的非自由软件许可证列表中找到几个,但是坦率地说,世界上到处都是非自由软件许可证持有者。JSON许可就是一个很好的例子,其中包括以下内容:

该软件应用于善良,而非邪恶。

请注意,任何此类许可均与GPL和LGPL不兼容。这意味着,如果任何人试图将使用该许可证的软件与GPL或LPGL软件一起使用,则可能不会将所获得的作品合法地分发给任何人。

总的来说,我真的非常讨厌必须仔细研究某人的自制软件许可,看看我是否可以使用他们的软件。我的时间更好。我发现有3个许可证可以用于我公开发布软件的任何目的:

  • GPL-对于软件,我永远都不想让任何公司安装自己的封闭源产品。我为公共利益而捐赠它,如果您以它为基础,那么您也应该(或将它保留给自己)。您仍然可以赚钱,只是无法关闭来源。
  • 具有链接和包含例外的GPL-适用于我想保持开放状态但允许人们在封闭源程序中使用的库和API。这意味着即使在专有项目中,任何人都可以使用该API。许多人认为LGPL允许这样做,但事实并非如此。
  • CC0-我正在赠送。做任何你想做的事。这是美国人在法律上可以最接近公共领域的东西。

如果您使用其他东西,我已经对您有些恼火。如果它的晦涩之处使其不在GNU的许可证列表中,那么我必须自己分析一下,这让我感到三烦。通常,它更容易找到具有更好许可证的其他软件。

请注意,任何打算将您的软件用于“邪恶”活动的人都不太会在意您许可证中的使用限制。


12
OP从来没有说过他希望这是自由软件,是吗?
James McLeod

4
这回答了未说明的问题。它可能应该发布在其他地方,而不是这里。
2016年

1
@JamesMcLeod-“我花了一些时间阅读常见的copyleft...。”。
TED

我认为MIT许可证涵盖了(L)GPL(例外)和CC0之间的重要中间地带。它也是非常著名的,并且广泛用于使潜在用户满意的软件。无论如何,这与这里提出的问题背道而驰。
5gon12eder's

1
我可以想象对“自制”许可证的沮丧。我本来打算在外行人的自由定义中涵盖“自由”软件。我认为避免自制软件许可证是一个很好的主意,也是我提出这个问题的动机的一部分
Bug Catcher Nakata
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.