这次只不过是推翻了上一次的错误判决,为保护GPL的法律效力开了先例。(对GPL在开源界的反对者来说是给GPL破坏开源生态的说法增添了一个例子)

private static void rangeCheck(int arrayLen, int fromIndex, int toIndex {
     if (fromIndex > toIndex)
          throw new IllegalArgumentException("fromIndex(" + fromIndex +
               ") > toIndex(" + toIndex+")");
     if (fromIndex < 0) 
          throw new ArrayIndexOutOfBoundsException(fromIndex);
     if (toIndex > arrayLen) 
          throw new ArrayIndexOutOfBoundsException(toIndex);
}

jdk7/jdk7/jdk: src/share/classes/java/util/Arrays.java annotate (看1317行)
这就是那9行代码。OpenJDK这个GPL项目的著作权属于Oracle。当时在谷歌供职的Joshua Bloch直接从OpenJDK复制了这9行代码到谷歌的Android项目中。要点是,Android项目没有按GPL兼容的方式授权,而这种情况下对OpenJDK项目的复制行为是没有通过GPL得到授权的。显然,谷歌没有另外得到一个授权

我觉得我们反而应该看到这个判决积极的一面:一直以来都有一些声音表示GPL在美国法律下可能不是合法的,现在Oracle作为一个GPL项目的所有人从谷歌手里拿到这么大一笔钱,对开源界绝对是一个好消息——至少国内外很多侵犯版权的企业如果被告上美国法庭可能会真的赔偿上一大笔钱。坏消息是,这些侵犯版权的企业通常不会像谷歌这样开放源代码,所以操作上还是留下了巨大的难度。这也鼓励各种企业开放源代码。像微软显然就受到这种思维的鼓励。

最后为了让这个答案更加完整,说明一下:
GPL是一种授权声明,它主要的目的是方便让所有人自动获得修改、重新发布的权利,但是除了这些部分,它并没有使原作者放弃自己的著作权。著作权仍然是原作者所有,受到当地法律的保护,这些保护多半是和伯尔尼公约兼容的。
GPL软件的工作方式是,软件的作者以GPL方式授权所有人可以修改、发布软件,这样就允许每个人参与软件开发的过程。
像谷歌工程师这次做的是属于复制,而从GPL得到的复制授权要求只能复制到以兼容GPL的方式作授权的软件当中(被称为是病毒式的协议,因为更宽松的授权协议比如公共域声明无法带来GPL所要求的自由,因而不是GPL兼容的)。

这里有更多一些相关讨论:
Oracle/Google jury finds Google infringed SSO but hangs on fair use

最后是一些吐槽:Oracle和谷歌的这段rangeCheck函数的代码都是同一个人,Joshua Bloch贡献的(估计是受到这个官司的影响,他已经在前年8月从谷歌离职)。有趣的是GPL的创建者RMS之所以创建GPL就是因为他曾经为MIT的两家创业公司同时贡献代码,因此为了著作权考虑他总是要把同样的算法按2种不同方式来实现(因为2家公司做的是类似的软件),他的想法是,以后都用GPL来保护代码这样其他的人就不必忍受他的这种痛苦。

— 完 —

本文作者:bombless

【知乎日报】
你都看到这啦,快来点我嘛 Σ(▼□▼メ)

此问题还有 4 个回答,查看全部。
延伸阅读:
玩家自制发布的游戏补丁版权属于谁?如果用于商业用途(如付费下载)是否违法?
最近下载音乐收费问题闹得沸沸扬扬,为什么要支持正版?

分享到