背景是这样的,我有一份开源代码内有一个模块本来是基于 spring-security 做的,但是后来觉得实在不符合自己的需求,于是尝试从新删掉了 spring-security 的依赖,然后重新做了一个认证模块,里面有一部分(或者大部分 23333)代码来自于 spring-security,我很多类是照搬的原来的框架 ..

关于 Apache License 2.0 的一些问题

背景是这样的,我有一份开源代码内有一个模块本来是基于 spring-security 做的,但是后来觉得实在不符合自己的需求,于是尝试从新删掉了 spring-security 的依赖,然后重新做了一个认证模块,里面有一部分(或者大部分 23333)代码来自于 spring-security,我很多类是照搬的原来的框架的,但是又几乎每个类都有一定的修改,我不知道在这种情况下,对于 apache 2.0 协议我应该如何遵守。

以下是对每一条栏目的疑问,希望能帮我解答一下,谢谢 ~

  1. 需要给代码的用户一份 Apache Licence

这是什么意思?意思是我的项目也应该是 Apache License 2.0 协议,而不能是 MIT 吗?即使是我只有其中一个包是抄袭修改的也需要整个项目使用阿帕奇协议吗?

  1. 如果你修改了代码,需要在被修改的文件中说明。

我并不是 fork 的代码,而是完全重新开的代码,一行一行编写,其中有些代码是抄的,我该怎么界定算我修改的文件呢?而且有些类为了符合我自己的习惯,内容和源代码很多抄袭,但是类名和一些功能又完全不一样,我不知道怎么界定

  1. 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。

同上。

求解答,谢谢 ~ 😒

抄代码实属没办法,比较菜有时候又赶时间,很多时候想参考写得好的代码,结果写着写着就有一大段代码抄袭了(抄代码是真爽。。。

展开
  • APL
    1 引用 • 5 回帖
  • 开源

    Open Source, Open Mind, Open Sight, Open Future!

    249 引用 • 2717 回帖 • 879 关注
  • Q&A

    提问之前请先看《提问的智慧》精读注解版,好的问题比好的答案更有价值。

    1204 引用 • 7859 回帖 • 581 关注
5 回帖   
请输入回帖内容...
  • 88250 1 赞同

    1. MIT 和 APLv2 是兼容的,所以项目继续用 MIT 就行

    2. 手打一遍和直接 Copy 从结果看来没有任何区别,甚至只是改改变量名、方法名也没有区别。如果出现法律纠纷,我觉得应该是看如何举证,比如著作权人如何证明其他人抄袭。

      关于 APLv2 中要求列出所有修改点这一条很麻烦,要执行基本不现实。(插个广告,Lute 使用的木兰宽松许可证(很类似 APLv2)就没有这条,所以其他人要改的话也不必列出修改点了,who cares 🤣 )

    3. 只要开源协议兼容就没啥问题,如果是源码的话不要动原有的文件头,项目根目录上加一个第三方库开源协议说明,里面列举所有用到的开源库以及每个库作者要求带的说明

    开源的世界就是这样,大家一起抄抄抄。抄作业是真爽,但是要鸣谢原作大大哦!

    2 回复
  • 其他回帖
  • kafuly

    biubiubiu

    1 回复
  • wuhongxu        

    😒 papapa

  • wuhongxu        

    受教了!!!谢谢 D 大 ~ 😆 ,我大概懂了,哈哈哈哈。

    Lute 代码我肯定会看的,因为我之前就做过 Markdown 解析,结果真的太复杂了,参考了好多框架都没有搞定,始终不符合我的想法😏

  • 查看更多回帖