【问题标题】:Which is the best license for my Open Source project? [closed]哪个是我的开源项目的最佳许可证? [关闭]
【发布时间】:2010-04-23 16:02:50
【问题描述】:

我是一名网络开发人员,但我对软件许可证的了解不够。我希望发布我的一些作品,我需要为它们选择许可证。我的软件产品是免费的,但我对代码的分发/修改有一些限制。

  1. 它是免费的(但可以接受捐赠)。
  2. 源代码免费提供。您可以使用、自定义或编辑/删除代码(只要软件的基本性质没有改变)。
  3. 您无权更改产品名称。
  4. 有些库和类位于名为“myname”的文件夹中。您无权重命名“myname”。
  5. 您可以将我的项目的任何添加或修改贡献到原始源存储库(贡献者的姓名/电子邮件/站点链接将在信用文件中列出)。
  6. 您不能从许可中删除原作者的姓名。
  7. 您可以将许可文件或许可代码放在项目文件或文件夹中的任何位置。
  8. 您可以将此代码作为免费或商业软件重新分发。

所有这些限制都有效吗? 鉴于这些限制,我应该使用哪个许可证?

我的主要目的是通过免费源代码让产品更受欢迎,同时确保原作者不被忽视。产品已打开。

谢谢大家;以上几点是因为我对许可条款缺乏了解。 您可以帮助我更正或删除以上几点。我基本上在上面的段落中寻找。

【问题讨论】:

  • 您是否希望所有衍生作品也都是开源的?您是否希望允许人们使用代码而不承认他们正在使用它和/或要求他们也开源他们的更改?
  • 是的,衍生作品必须开源。并且在使用时确认不是强制性的,但在重新分发时需要显示许可证,无论是否修改。
  • 请检查我的编辑1和编辑2

标签: open-source licensing


【解决方案1】:

我认为我熟悉的任何许可证目前都不涵盖以下内容:

  • 不要偏离软件的基本性质。
  • 您可以免费或商业使用/自定义/重新分发,但不能更改名称。

【讨论】:

    【解决方案2】:

    我认为,虽然产品可能是免费的并且“源代码可用”,但您所描述的并不是“开源”。值得注意的是,您不会让人们分叉和/或重新利用代码,这两者都是开源代码库的主要功能。

    通过保留版权,任何人都不能从你的代码中“取走你的名字”,因为他们不拥有版权,但不能重命名项目,或者更改文件夹的名称,这是相当极端的。

    因此,我建议您考虑一下您发布代码的动机以及这些限制的来源。

    【讨论】:

      【解决方案3】:

      正如其他人所指出的,您有一些相当奇怪的要求:

      • “不要偏离软件的基本性质。” (您是否在程序本身中指定了“软件的基本性质”,您是否会在法庭上为如此模糊的事情争论?)

      • “您无权更改产品名称。” (通常情况下,如果有的话,则需要相反:如果您更改它,您必须更改名称,因此人们不会认为这些修改代表您的工作。)

        李>
      • “有些库和类位于名为‘myname’的文件夹中:您无权重命名‘myname’。” (与第一个类似,但更具体——虽然我不确定这是什么意思。)

      基于这些要求,我认为最符合您的要求的许可证是GNU Free Documentation License。正如标题所示,它几乎从不用于程序的源代码。

      这是我所知道的唯一允许您禁止用户更改或改进工作的特定部分的许可证。例如,我认为您可以说文件夹“myname”是“不变部分”(请注意,我不是律师,这不是法律建议)。

      它与 GPL 不兼容,并且(您使用它的方式)它不是 DFSG-free。它很少用于软件,因此分销商和贡献者可能难以理解如何应用它。简而言之,您可能不会在这条路线上交到任何朋友。

      【讨论】:

        【解决方案4】:

        BSD 许可证应该涵盖这一点。我也为我的开源项目选择了它。

        【讨论】:

          【解决方案5】:

          正如您所写的那样,您的要求不适合任何特定的许可证(据我所知),而且由于您不希望赚钱,因此请律师起草一份会相当昂贵,而且从根本上会适得其反.

          我建议你查看不同开源项目的许可证,看看哪一个与你想要的最匹配,然后使用它。

          【讨论】:

            【解决方案6】:

            要获得您想要的一切,您可能必须编写自己的许可证。这不一定符合您的最佳利益。您将不得不在受欢迎程度控制之间做出选择:

            • 如果您使用已建立的许可证,您的作品将拥有非常广泛的受众,这将有机会变得流行。

            • 如果你坚持一定的限制(名字不能改)你会保持更大的控制权,但你会失去潜在的用户;因为许多组织不会考虑使用非标准许可证的软件。

            您的要求与 BSD 非常接近,与 MIT 并没有什么不同。我建议您浏览popular licenses blessed by the Open Source Initiative 并选择您认为最接近您的愿望的一个。我已经检查了您的编辑,如果您坚持我提出建议,出于您的意愿,我推荐 Simplified BSD 许可证。这是一个很好的流行许可证,希望其工作得到广泛部署的开发人员经常使用它。

            如果您要求 README 文件中的人不要分叉您的软件并更改名称,这是出于个人喜好而非许可条款的考虑,大多数人都会尊重您的意愿。

            【讨论】:

            【解决方案7】:

            我认为您将很难找到适合您需求的现有许可证,因为您似乎需要两组独立的权限:一般来说,一组类似于 MIT 的源权限,除了锁定的-下“我的名字”文件夹。您最好将代码分成两个单独的部分,每个部分都有不同的许可证。 MIT license 似乎适合您的大部分代码条件(除了“软件的基本性质”声明,我不确定您的意思)。 MIT 许可证要求在源的所有副本中保留带有您姓名的版权声明,因此这将解决您在第一次编辑时提出的问题。根据您需要为“myname”文件夹添加特殊限制的特定原因,您可能必须编写一个仅管理该文件夹的自定义许可证(您可以使用现有的接近的许可证并简单地对其进行调整)。您的整个项目不必属于一个许可证。

            3) 您没有任何权限 更改产品名称。

            你可能会问这个问题。如果有人使用您的代码,对其进行增强,并以相同的名称发布它,那么您将拥有两个非常不同的同名程序。这对于潜在用户来说非常令人困惑。是原版吗?用德语界面修改的版本?修复了特定错误的版本?当它们都具有相同的名称时,很难确定。如果用户对特别有缺陷(或更糟糕的是,受病毒感染)的衍生作品有不好的体验,他们将不太可能使用您的软件的任何版本,因为它似乎与有缺陷的版本是同一个程序。

            我的印象是,您主要是希望避免在不承认您参与的情况下复制您的作品并完全重新命名。我可能建议不要禁止更改名称,而是要求衍生作品引用您的原始产品名称(例如,“ShinyNewProgram - Powered By YourOriginalName”)。许多开源项目将其产品名称注册为商标,而您的#3 之类的条款将违反商标法;更常见的解决方案是要求一个新名称(以区别于原作)并要求对原作明确归属。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2010-10-08
              相关资源
              最近更新 更多