我试图弄清楚在哪些案例中"衍生作品"的法律后果发挥作用.我的代码到底是什么衍生作品?
这不是GPL无效,因为PHP拥有自己的许可证并且您使用PHP构建该框架吗?
这不是一个"衍生作品",因此无效,因为wordpress是GPL吗?
这是衍生作品吗?
你看,我原本认为构建在(或构建)某些东西上的所有代码都是衍生代码 - 但事实并非如此.例如,苹果在他们的操作系统中使用Linux部件 - 但他们的操作系统不是在GPL下发布的.
我们大多数人都为这些语言构建的语言或系统构建了库.那么我们的代码什么时候成为别人代码的衍生物?
IANAL.需要记住的一件事是:有几个项目明确地围绕"衍生工作"概念划清界限,以限制它可能带来的东西.
例如,由于程序在操作系统上运行的方式,在Linux内核上运行的每个程序最终都会将内核代码包含在操作程序中.为了便于编写程序,通常在编译程序时使用头文件,以便它知道如何合并内核位.Linus Torvalds表示,这种使用并不能使程序成为内核的衍生工作.
在其他情况下,例如PHP(和C,在较小程度上),该语言不能声称是其库的衍生作品.当然,您可以致电,strlen()并在链接时或运行时将您的程序链接到您未编写的库.但程序本身不是语言或运行时的衍生作品.在许多情况下,使用的库仅暴露了标准的实现,因此该程序不是该库的衍生物.因此,您调用的C程序strlen()可以链接任何包含其中的C库strlen().您的程序不会自动成为Glibc的衍生作品.甚至PHP也有多个实现(Resin webserver附带了Java中的PHP实现).因此,即使PHP是GPL,您的程序也可能不需要.
框架实际上是一组扩展的库,并且适用于库的常规规则.例如,如果框架是标准的一个实现,那么将其与您的应用程序一起分发是违反GPL的,但仅仅使用它不会是因为您的应用程序是标准的派生而不是框架的特定实例.例如,使用EJB的应用程序可以在IBM WebSphere,RedHat的JBoss,Bea的Weblogic等上运行,而不必遵守JBoss的许可.也许在同一张CD上发布JBoss和你的应用程序会违反JBoss的许可证,但你的应用程序没有任何限制(除非它包含JBoss的部分内容).
如果有问题的框架不是标准,没有其他人实现它,和/或您必须在自己的代码中包含框架的一部分,那么您的应用程序可能是衍生作品.考虑一个Linux内核模块:很难创建一个不违反GPL的模块,因为大多数模块必须包含内核代码才能完成工作.nVidia通过创建一个没有内核代码的专有blob来回避这一点,但它不是一个功能齐全的模块,并添加了一些GPL粘合代码,使其成为一个模块.大多数内核开发人员认为将内核和驱动程序一起分发是一种GPL违规(因为你通过添加模块来创建内核的派生工作,但该模块不是GPL),但是单独分发模块并不会产生衍生产品工作直到由最终用户组合,最终用户不再分发它,因此不受任何分发条款的约束.
请记住:并非所有项目都对他们使用的许可证有相同的解释.根据所述许可证,您可能属于以某种方式使用代码的合法权利,但您可能不希望被起诉,因此如有疑问,请咨询原始版权所有者的律师.