如何在GitHub上为RAD框架选择开源许可证

在本文中,我们将讨论一些版权,但主要是关于为IADV RAD框架选择免费许可证 框架以及基于它的开源产品。 我们将讨论Apache 2.0许可许可证,导致它的原因以及在此过程中遇到的解决方案。


选择许可证的过程非常耗时,应该由相当通俗易懂的人来处理,如果您对法律学位不满意,那么您会看到各种免费许可证的原始信息。 主要要做的是制定一些限制条件。 在讨论和思考的过程中,您和团队将能够理解您希望允许产品用户使用的内容以及禁止使用的内容。 如果您已经掌握了某种说明,则需要将其强加于现有许可证上,并选择最重合的一种。 这听起来很简单,但实际上,通常即使在讨论之后,问题仍然存在。



首先,链接到choicealicense.com ,这是我们积极使用的有用网站。 尤其要注意13个主要标准的许可比较表 。 愿英语和耐心与您同在。


选择的面粉


让我们从免费软件许可证的常见功能开始。 开源软件意味着完全免费的许可证,在Open Core模式下,它不限制商业和非商业发行。 因此,将软件置于免费许可下的网络上并不能完全限制第三方对其的转让,分发和销售,而您只需要对此做好心理准备。


免费许可证授予用户参与软件反向开发或以其他可用方式进行更改的权利。 大多数许可证不允许您重命名产品或对其执行任何操作,从而更改了系统的作者和/或所有者的权利。


我们对免费许可证感兴趣的主要问题是:


  1. 对软件所做的更改应该是固定的,与系统的版权持有者无关吗?
  2. 衍生软件的名称应与版权所有者的软件的名称匹配吗?
  3. 是否可以将任何新版本的许可证更改为另一个版本,包括专有版本?

在仔细查看了最常见的许可证列表之后,我们选择了一些被更详细考虑的许可证。 IONDV的潜在许可证 框架包括:GNU GPLv3,Apache 2.0,MIT和MPL。 MIT几乎立即被排除在外,它是一种允许使用的非版权许可,几乎允许以任何方式使用,修改和分发代码,但我们不喜欢这种选择,我们仍然希望该许可规范版权持有人与用户之间的关系。 GitHub上大多数不是最大的项目都是根据MIT许可证或其各种变体进行布局的。 许可证本身很短,禁止的内容仅表示软件创建者的作者身份。


下一个是MPL 2.0 。 我们没有立即承认,但是经过更详细的研究后,我们很快将其删除,因为主要缺点是许可证不是应用于整个项目,而是应用于单个文件。 另外,如果用户修改文件,则他不能更改许可证。 实际上,无论您多么努力地更改开放源代码项目,由于有这样的许可证,您都无法将其货币化。 附带地,这不适用于版权所有者。


GNU GPLv3许可证仍然存在类似的问题。 它要求任何文件都保留在其中。 GNU GPL是一个copyleft许可证,它要求衍生作品的源代码是开放的,并且必须处于同一许可证下。 也就是说:在重写两行代码之后,您将被迫提交更改并将代码保存在GNU GPL下,以备将来使用或分发。 在这种情况下,这是对我们项目用户而非我们的限制因素。 但是,即使在GPL版本中,也禁止将GPL更改为任何其他许可证。 例如,如果将LGPL (GPL上的附加项)更改为GPL,则将无法返回LGPL。 这个项目在投票中起决定性作用。


一般而言,我们的选择最初倾向于GPL3 ,这是因为修改后的代码在同一许可证下的分发。 我们认为,通过这种方式我们可以保护我们的产品,但是在Apache 2.0中我们发现的风险较小。 根据自由软件基金会的说法,GPLv3与Apache License v2.0兼容。也就是说,始终可以将许可证从Apache License v2.0更改为GPL v3.0。


阿帕奇2.0


Apache 2.0是平衡的许可许可证,重点关注版权。 这是她对我们问题的回答。 对软件所做的更改应该是固定的,与系统的版权持有者无关吗? 是的,所有更改都必须记录在案,我们对源代码或更改不承担任何责任。 具有更改的文件应应用于进行这些更改的代码。 衍生软件的名称应与版权所有者的软件的名称匹配吗? 是的,衍生软件必须以不同的名称和商标出现,但必须具有版权持有人。 是否可以将任何新版本的许可证更改为另一个版本,包括专有版本? 是的,它可以在不同的许可证下发布,Apache 2.0并不限制使用任何非商业和商业许可证。


另外,在发布基于Apache 2.0开源代码的新产品或具有其他功能的产品时,无需使用相同的许可证。 在下面,您可以看到带有Apache 2.0许可条款和条件的图像。



许可证要求保留和提及版权以及发行软件所依据的许可证。 强制性存在带有版权持有人名称和许可证的版权声明 ,可以保护该软件的原始作者的权利,因为即使重命名,分发或以其他许可证出售该软件,作者的商标仍将保留。 为此,您还可以使用NOTICE文件并将其附加到源代码或项目文档中。


我们在GitHub上发布了Apache 2.0许可下的所有产品( IONDV除外) 战争档案 ,其源代码于今年4月由远东社会技术中心在GitHub上以GPLv3许可发布。 目前,除了框架本身及其模块之外 ,还发布了在框架上发布的应用程序 。 我们已经谈论了项目管理系统通讯注册


科技 有关框架的详细信息

IONDV。 框架-node.js上的开源框架,用于创建基于元数据的高级Web应用程序,不需要认真的编程技能。


应用程序功能的基础是数据注册表-注册模块。 这是一个关键模块,专门用于处理基于元数据结构的数据-包括用于管理项目,程序,事件等的数据。该项目还使用门户模块显示任意数据模板-它实现了存档文件注册表的前端。


MongoDb用于DBMS-它还存储应用程序设置,元数据和数据本身。


如何为您的项目申请许可证?


将带有许可证文本的LICENSE文件添加到项目和voilà(受Apache 2.0保护的项目)的存储库中。 您必须指定版权所有者,这是版权声明 。 您可以在源代码中或在NOTICE文件(一个文本文件中列出所有根据Apache许可获得许可的库及其创建者的名称)中执行此操作。 该文件应放在源代码中或与工作一起分发的文档中。 对于我们来说看起来像这样:


版权所有©2018 LLC“ ION DV”。
根据Apache许可,版本2.0许可

Apache 2.0许可文本

Apache许可证
2.0版,2004年1月
http://www.apache.org/licenses/


使用,复制和分发的条款和条件


  1. 定义


    “许可”是指使用,复制,
    以及本文档第1至9节定义的分发。


    “许可人”是指版权所有者或经
    授予许可的版权所有者。


    “法律实体”是指行为实体与所有
    控制,受其控制或受其控制的其他实体
    该实体的控制权。 就此定义而言,
    “控制”是指(i)直接或间接导致
    对该实体的指示或管理,无论是通过合同还是
    否则,或(ii)百分之五十(50%)或以上的所有权
    已发行股份,或(iii)该实体的实益拥有权。


    “您”(或“您的”)是指个人或法人实体
    行使本许可证授予的权限。


    “来源”表格是指进行修改的首选表格,
    包括但不限于软件源代码,文档
    源和配置文件。


    “物体”形式是指机械产生的任何形式
    源形式的转换或翻译,包括但
    不限于已编译的目标代码,生成的文档,
    并转换为其他媒体类型。


    “作品”是指作者的作品,无论是在来源中还是在作者中
    对象表,根据许可证提供,如
    作品随附或随附的版权声明
    (下面的附录中提供了一个示例)。


    “衍生作品”是指任何作品,无论是源作品还是客体作品
    表格,该表格基于(或衍生自)作品,并且
    编辑修订,注释,细化或其他修改
    总体上代表着原创作品。 出于目的
    在本许可的范围内,衍生作品不应包括剩余的作品
    与以下接口可分离或仅链接(或按名称绑定):
    因此,作品和衍生作品。


    “贡献”是指任何作者的作品,包括
    作品的原始版本以及任何修改或增补
    因此,这是有意为之
    提交给许可方,以供版权所有者将其包含在作品中
    或由有权代表提交的个人或法人
    版权拥有者。 就此定义而言,“已提交”
    指发送的任何形式的电子,口头或书面通讯
    发给许可人或其代表,包括但不限于
    在电子邮件列表,源代码控制系统,
    和由或代表其管理的问题跟踪系统
    出于讨论和改进工作的目的而授予许可者,但是
    排除明显标记或其他方式的通信
    由版权所有者书面指定为“非贡献”。


    “贡献者”是指许可人和任何个人或法人实体
    许可方代表谁收到了捐款,并且
    随后纳入工作。


  2. 授予版权许可。 遵守以下条款
    本授权书,每位贡献者特此授予您永久的,
    全球性,非排他性,免费,免版税,不可撤销
    复制,准备以下作品的版权作品的版权许可,
    公开展示,公开表演,再许可和分发
    源或对象形式的作品和此类衍生作品。


  3. 授予专利许可。 遵守以下条款
    本授权书,每位贡献者特此授予您永久的,
    全球性,非排他性,免费,免版税,不可撤销
    (本节中规定的除外)制造,制造,
    使用,提供要约,出售,进口和以其他方式转让作品,
    此类许可仅适用于应许可的专利权利要求
    被此类贡献者侵犯的行为
    单独贡献或将其贡献合并
    提交此类贡献的作品。 如果你
    针对任何实体(包括
    在诉讼中提出交叉要求或反要求),指控该作品
    或包含在作品中的贡献直接构成
    或共同专利侵权,然后是任何专利许可
    根据本许可协议授予您的作品应终止
    截至提起诉讼之日。


  4. 重新分配。 您可以复制和分发
    因此,无论有无媒介,都可以在任何媒介中进行作品或衍生作品
    修改,并以“源”或“对象”形式提供,前提是您
    满足以下条件:


    (a)您必须将作品的其他任何收件人或
    衍生作品本许可的副本; 和


    (b)您必须使任何修改过的文件带有明显的声明
    说明您更改了文件; 和


    ©您必须以任何衍生作品的原始格式保留
    您分发的所有版权,专利,商标和
    作品来源形式的出处通知,
    排除与本手册任何部分无关的那些声明
    衍生作品; 和


    (d)如果作品包含“注意”文本文件作为其一部分
    发行,那么您发行的任何衍生作品都必须
    包含可读的归属声明副本
    在此类NOTICE文件中,不包括那些没有
    在至少一个方面与衍生作品的任何部分有关
    以下位置:在NOTICE文本文件中分发
    作为衍生作品的一部分; 在“源”表单中或
    文件(如果与衍生作品一起提供); 或者,
    在衍生作品产生的显示中,如果且
    通常在此类第三方通知出现的任何地方。 内容
    NOTICE文件的内容仅供参考,并且
    不要修改许可证。 您可以添加自己的归属
    您分发的衍生作品中的通知
    或作为“作品”中“通知”文本的附录
    不能解释此类附加出处声明
    作为修改许可证。


    您可以在修改内容中添加自己的版权声明,
    可能会提供其他或不同的许可条款和条件
    用于使用,复制或分发您的修改,或
    整个此类衍生作品,只要您使用,
    作品的复制和分发符合
    本许可证中规定的条件。


  5. 提交会费。 除非您明确声明,否则,
    有意提交以包括在作品中的任何贡献
    您授予许可方的条款和条件
    本许可,无任何其他条款或条件。
    尽管有上述规定,任何描述均不得取代或修改
    您可能已执行的任何单独许可协议的条款
    与许可方就此类贡献进行协商。


  6. 商标。 本许可不授予使用该交易的许可
    许可方的名称,商标,服务标记或产品名称,
    除非合理和惯常使用在描述
    作品的来源并复制NOTICE文件的内容。


  7. 免责声明。 除非适用法律要求或
    书面同意,由许可方提供作品(每个
    贡献者在“现状”基础上提供其贡献),
    没有任何明示或明示的保证或条件
    暗示的,包括但不限于任何保证或条件
    的标题,非侵权性,可销售性或适用性
    特殊目的。 您应全权负责确定
    使用或重新分发作品的适当性并承担任何责任
    与您在本许可下行使许可有关的风险。


  8. 责任限制。 无论如何,在没有法律理论的情况下,
    无论是侵权(包括过失),合同还是其他方式,
    除非适用法律要求(例如故意和严重
    过失行为)或书面同意,任何贡献者
    对您负责,包括任何直接,间接,特殊,
    由于以下原因而产生的任何性质的偶然或间接损失
    本许可的结果,或者由于不使用或无法使用
    工作(包括但不限于因商誉损失,
    工作停止,计算机故障或故障或任何其他
    其他商业损害或损失),即使该贡献者
    已被告知可能造成此类损害。


  9. 接受保修或其他责任。 在重新分配时
    您的作品或其衍生作品,您可以选择提供,
    并收取以下费用:接受支持,保修,赔偿,
    或与此相关的其他责任义务和/或权利
    许可证。 但是,在接受此类义务时,您只能采取行动
    代表您自己并独自承担责任,而不是代表
    任何其他贡献者,并且只有在您同意赔偿时,
    捍卫每个贡献者,并使他们不承担任何责任
    该贡献者因原因引起或主张的索赔
    您接受任何此类保证或其他责任。


    条款和条件的结尾


    附录:如何将Apache许可证应用于您的工作。


    要将Apache许可证应用于您的工作,请附加以下内容
    样板公告,其字段用方括号“ []”括起来
    替换为您自己的识别信息。 (不包括
    括号!)文本应放在适当的位置
    文件格式的注释语法。 我们还建议
    文件或类的名称和目的说明应包括在
    与版权声明相同的“打印页面”,更容易
    第三方档案中的标识。


    版权[yyyy] [版权所有者名称]


    根据Apache许可证2.0版(“许可证”)获得许可;
    除非遵守许可,否则不得使用此文件。
    您可以在以下位置获得许可的副本:


    http://www.apache.org/licenses/LICENSE-2.0


    除非适用法律要求或书面同意,否则软件
    根据许可分发的内容按“原样”分发,
    没有任何明示或暗示的保证或条件。
    有关特定语言的管理权限,请参阅许可证。
    许可中的限制。



许可=合同


免费许可证虽然是免费的,但不允许放任自流,我们已经给出了一些限制示例。 选择一个许可证时要同时考虑您和用户的兴趣,因为开源软件是专门为他设计的。 项目的用户应将许可看作是他和版权所有者之间的一种协议,因此在对源代码采取任何措施之前,请仔细研究项目许可对您施加的限制。


我们希望我们对许可的主题有所了解,尽管问题很复杂,但它不应成为您通往开源之路的障碍。 开发您的项目,不要忘记您,您和他人的权利。


有用的链接


最后,一些有用的资源可帮助我们查找有关现有许可证的信息并选择最适合我们目的的资源:


Source: https://habr.com/ru/post/zh-CN459732/


All Articles