I'm trying to figure out in which of these cases the legal ramifications of "Derivative work" come into play. When exactly is my code a derivative work?
Isn't that GPL invalid since PHP has it's own license and you are using PHP to build that framework?
Isn't that a "Derivative work" and hence invalid because wordpress is GPL?
Is that a derivative work?
You see, I originally thought that all code built on (or built for) something was derivative code - but that is not true. For example, apple uses Linux parts in their OS - yet their OS isn't released under the GPL.
Most of us have built libraries for languages or systems built on those languages. So when does our code become a derivative of someone else's code?
Derivative work refers to a copyrighted work that comes from another copyrighted work. Copyrights allow their owners to decide how their works can be used, including creating new derivative works off of the original product.
Making minor changes or additions of little substance to a preexisting work will not qualify the work as a new version for copyright purposes. The new material must be original and copyrightable in itself. Titles, short phrases, and format, for example, are not copyrightable.
No Derivatives licenses (CC BY-ND and CC BY-NC-ND) allow people to copy and distribute a work but prohibit them from adapting, remixing, transforming, translating, or updating it, in any way that makes a derivative. In short, people are not allowed to create “derivative works” or adaptations.
“Originality” means that the work is independently created and not copied from other works. Originality of a derivative work means any variation of an original work which is sufficient to render the derivative work distinguishable from its prior work in any meaningful manner.
IANAL. One thing to remember: several projects explicitly draw a line around the "derivative work" concept to limit what it can entail.
For example, every program that runs on the Linux kernel ends up including kernel code into the operating program because of the way programs run on operating systems. To make it easy to write a program a header file is typically used when compiling the program so that it knows how to incorporate the kernel bits. Linus Torvalds has stated that this use does not make the program a derivative work of the kernel.
In other cases, such as PHP (and C, to a lesser extent) the language can not be claimed to be a derivative work of its libraries. Sure, you can call strlen()
and, at link time or run time your program is linked to a library you did not write. But the program itself is not a derivative work of the language or the runtime. In many cases the library used merely exposes an implementation of a standard, and thus the program is not a derivative of that library specifically. So your C program which calls strlen()
can link against any C library that has a strlen()
in it. Your program is not automatically a derivative work of Glibc. Even PHP has multiple implementations (The Resin webserver ships with a PHP implementation in Java). So even if PHP were GPL your program might not need to be.
A framework is really an extended set of libraries and the normal rules for libraries would apply. For example, if the framework is one implementation of a standard, then maybe distributing it with your app is a violation of the GPL but simply using it would not be since your app is a derivative of the standard and not this specific instance of the framework. For example, an application which uses EJBs can run on IBM WebSphere, RedHat's JBoss, Bea's Weblogic, etc, and not have to comply with JBoss's license. Maybe shipping JBoss and your app on the same CD would violate the license for JBoss but your app is otherwise free of restrictions (unless it includes parts of JBoss in it).
If the framework in question is not a standard and nobody else implements it, and/or you must include parts of the framework in your own code, then your app may be a derivative work. Consider a linux kernel module: it is difficult to create a module which does not violate the GPL because most modules must include kernel code to get their job done. nVidia sidesteps this by creating a proprietary blob which has no kernel code in it, but is not a fully functional module, and adds on some GPL glue code which makes it into a module. Most kernel devs consider it a GPL violation to distribute both the kernel and the driver together (since you create a derivative work of the kernel by adding a module, but that module is not GPL) but distributing the module by itself does not create a derivative work until it is combined by the end user, who no longer distributes it and thus is not bound by any distribution terms.
Keep in mind: not all projects have the same interpretations of the licenses they use. You may be within your legal rights to use code a certain way according to the stated license, but you probably don't want to be sued, so when in doubt consult with a lawyer the original copyright holders.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With