这是一个关于Dalvik和J2SE核心库的许可问题。特别是管理java.util.concurrent.SynchronousQueue的许可证。
JDK源中类的许可头声明它仅为GPLv2 (参见grepcode)。但是,Dalvik核心库中的相同文件似乎只受Apache2许可证的治理(请参见android源)。
这怎麽可能?我不认为您可以将GPLv2源代码重新授权为Apache2。
(很明显,他们做到了: Java上面的一条评论甚至说“移除到集合框架文档的链接”!)
我之所以问这个问题,是因为我有一个GPLv3项目,并且希望包含一些来自核心库( Dalvik或J2SE)的派生工作,但是在GPLv3下发布它。我以为我可以用Apache2来完成这个任务,但不能用GPLv2。
我知道J2SE类源本身就是公共域源的派生工作,但是与原来的变化是相当大的。(如果您感兴趣,可以在gee.cs.oswego.edu获得原件。)因此,android源实际上只是J2SE源的一个副本,但是在Apache2下发布,而不是在GPLv2下发布。谷歌真的可以这么做吗?
发布于 2014-04-29 19:28:36
正如这里的评论所指出的,Android的类库是从Apache的类库中派生出来的。Android项目对其部分进行了修改,但仍然保留了Apache2.0的许可。
Google对于Android开源项目(AOSP)中的代码的策略是,Apache2.0(ASL2.0)是首选许可证。Google在AOSP中创建的所有比特都是Apache2.0许可的。Linux被用作Android的一部分,它是GPLv2。
Android整合了其他项目,比如Webkit。Webkit使用LGPL和BSD许可证。Android的上游项目在源代码树中有明确的标记,所以不应该有任何情况需要Android的Apache2.0许可证,但结果却是另外一回事。
发布于 2014-06-02 15:25:57
我理解情况的复杂性,我怀疑你不用付钱就能得到一个好的答案。但我不建议。
正如我反复告诉人们的那样,如果你没有从中赚到钱而伤害到任何人,那就尽力而为吧,承认别人的工作,不要太担心。如果你从你的产品或服务中赚钱,和/或如果你可能对某人造成损害,你必须接受合格的法律建议。这不会保护你,但它会警告你的风险,并可能有助于减轻它们。
https://softwareengineering.stackexchange.com/questions/236817
复制相似问题