代码之家  ›  专栏  ›  技术社区  ›  Johannes Rudolph

正确应用开源许可证[已关闭]

  •  22
  • Johannes Rudolph  · 技术社区  · 16 年前

    我的问题包含多个固有的相关点,对此我深表歉意。我试着再分开一点,但我会不断重复。

    1. 对我的知识产权代码库应用开源许可证到底需要什么?
    2. 许多开源项目都在根目录的某个地方包含许可证的完整副本,但也有一些文件头,包括许可证说明、免责声明和版权声明。这真的有必要吗?还是取决于许可证类型?
    3. 如果其他人对此文件进行了更改,是否也需要在版权声明中对其进行命名?
    5 回复  |  直到 12 年前
        1
  •  20
  •   Michael Aaron Safyan    16 年前

    免责声明
    我不是律师,所以你应该向律师咨询,以得到绝对正确的答案。

    据我所知…

    无论什么时候你写了什么东西,不管是代码还是其他什么东西,你都会自动成为这件作品的版权所有者(除非你已经签署了一项协议,即“出租作品”)。

    作为版权所有者,您可以申请任何您喜欢的许可证。事实是,如果你不发放许可证,那么没有人有任何权利使用、复制、修改、分发等你的作品。因此,用户需要您的许可证才能有权使用该项目(如果您不授予许可证,那么它就不能被假定为公共域,这与流行的观点相反)。所以,你不必担心人们忽视了许可证…如果他们不能指出你授予他们使用你的软件的权利的许可,作为版权所有者,你可以起诉他们使用你的受版权保护的作品,而无需你明确的许可。

    在开源项目中,通常将许可证放在项目顶层目录中名为“license”或“copying”的文件中。我建议你坚持这个公约,因为人们会在那里寻找许可证。在项目的网站上指出许可证的内容也很好,这样人们就不必在知道许可协议是什么之前下载整个项目。

    尽管这是相当常见的做法,但不必在每个源代码文件中包含许可证的完整副本。不过,请记住,在安装的任何头文件中放置许可证的完整副本(或者至少显示版权所有权和许可证名称,如果是众所周知的许可证),将避免对头文件的来源产生任何混淆,因此这样做是合理的。

    如果你拥有这个项目,而其他人的贡献方式类似于“雇佣工作”,那么就没有必要说出贡献者的名字。但是,您应该明确表示(并从贡献者那里获得协议的永久记录),尽管您做出了贡献,您仍然是项目的唯一版权所有者。否则,贡献者对他们贡献的文件/代码拥有版权所有权。

    最后一件与问题无关的事…我强烈建议您避免GPL和LGPL,并获得更宽松的许可证(例如MIT、新BSD、简化BSD),因为前者将限制您的代码的可采纳性,而项目具有更宽松的许可证,如果它们在行业中被采纳,则有可能被行业支持(例如Apache基金会有强)。行业支持,因为与GNU/FSF不同,GNU/FSF错误地将开放源代码和封闭源代码视为敌人,将它们视为合作者,因此使用允许其项目被业界广泛采用的许可证)。

        2
  •  3
  •   Jeff Hammerbacher    16 年前

    免责声明:IANAL。也就是说,这里有一些关于这个主题的随机想法:

    “知识产权”一词将多种法律捆绑在一起:专利、版权、商标和商业秘密等。对所创建的作品应用许可证将影响作品的使用方式。因为每个许可证都允许对代码进行不同的使用,所以应用许可证的方式通常特定于您选择的许可证。例如,有关如何在Apache2.0许可证下许可代码的信息,请访问 http://www.apache.org/licenses/ . 注意,由Apache软件基金会管理的项目也要求每个贡献者授予ASF版权。版权的授予与许可证是分开的。

    我建议阅读范林德伯格的“知识产权和开放源码”来学习一些术语,如果你对代码有重大的商业兴趣,那就花几个小时和律师在一起。

        3
  •  2
  •   slyfox    16 年前

    免责声明:我不是律师,以下只是我对OSS授权的理解。如果我错了,我会感激你的纠正。

    1. 清楚地说明(在您的项目网站上,在源代码、文档、初始屏幕、关于对话框等)项目是根据您选择的许可证获得许可的。
    2. 考虑到开源的性质,如果 部分 您的项目被用于其他人拥有的不同项目(例如一些有用的实用程序类),将许可证的“基础”作为源代码标题文本的一部分,可以清楚地说明哪个许可证管理该特定源文件的使用,以及谁拥有整个项目中该部分代码的版权。
    3. 是的,除非他们向你提供了说明他们已经将版权转让给你的文件(我相信一些大型项目需要贡献者这样做?).

    有关将OSS许可证应用于项目的示例,请参见 http://www.gnu.org/licenses/gpl-howto.html

        4
  •  1
  •   Andrew    16 年前

    许可证只是您希望其他人对您的代码做任何事情(使用它、修改它、发布它、取笑它、做任何事情)时遵守的规则。

    a)你可以放你想要的东西,但要认真对待,你可以使用一个已经写得很好并被接受的许可证…查看opensource dot org/licenses/category以获取(loong)列表 b)要决定哪种类型的许可证,请查看最近的声明: http://www.itbusinessedge.com/cm/community/features/guestopinions/blog/ringing-in-the-new-year-with-clean-intellectual-property/?cs=38892&page=1 . 常见的是gpl v2、lgpl、apache、new bsd——请参阅本文第2页的摘要矩阵。 c)确保您的软件不包含来自其他开放源代码或第三方的代码,否则您将声称他们是您的-这不是个好主意!有一些工具可以在试用的基础上用来扫描代码。 d)将许可证文本放在license.txt或copyright.txt文件的文件夹中。另外,如Kimvais在上一篇文章中提到的那样,在源文件中添加一个简单的(或者复杂的,如果您愿意的话)头文件。

    祝你好运。

        5
  •  0
  •   Kimvais    16 年前

    简短的非律师回答;

    1. 除了向任何人明确表示,您是代码的唯一作者,可以根据任何条款许可代码。
    2. 建议将许可证文件放在根目录中。我会亲自在所有文件的“顶级评论”中添加该行 Copyright 2010 <Your Name>. Released under <license name> in <Your country>. 最后一部分是,您可以声称许可证从未被任何其他法律解释,而不是您当地的法律(这样,您就可以在您的祖国找一名称职的律师,以防出现任何问题)
    3. 我想说这取决于你选择的许可证

    欲了解更多信息,请阅读 this book -或者咨询有软件许可经验的律师。

    推荐文章