When is your code a “Derivative work”? [closed]

谁都会走 提交于 2019-12-03 05:39:53

问题


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?

  • A PHP framework released under the GPL.

Isn't that GPL invalid since PHP has it's own license and you are using PHP to build that framework?

  • A Commercial Wordpress theme?

Isn't that a "Derivative work" and hence invalid because wordpress is GPL?

  • A commercial class which is inserted into an existing GPL framework - yet does not include references to that framework inside that class.

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?


回答1:


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.




回答2:


Edit to Add: I am not a lawyer, I don't play one on TV, nor do I pretend to be one on the internets.

From the Copyright Act:

A “derivative work” is a work based upon one or more pre-existing works, such as a translation, musical arrangement, dramatization, fictionalization, motion picture version, sound recording, art reproduction, abridgment, condensation, or any other form in which a work may be recast, transformed, or adapted. A work consisting of editorial revisions, annotations, elaborations, or other modifications which, as a whole, represent an original work of authorship, is a “derivative work”.

In English, from Wikipedia:

A derivative work pertaining to copyright law, is an expressive creation that includes major, copyright-protected elements of an original, previously created first work.

None of those that you've mentioned would be derivative works because your completed product has nothing in there that is under someone else's copyright nor was it based off of someone else's copyright. -- Tools used, however, are fine.

A side example: In a previous lifetime, I used to create audio books and sell them on Ebay. I was sent a cease-and-desist order for selling audio versions of CS Lewis books. Even though what I was selling was original, it was based off of copyrighted text, and therefore it was a derivative work.




回答3:


The crux of the answer depends on whether distribution of the new work includes code from the work you are referencing. It sounds like the GPL is specifically what you're asking about, so we'll stick with that.

Case 1: If you create a PHP framework and include code licensed under the PHP License in the source code that comprises that framework, then your code would be a derivative work. In the case of PHP source code, that means that you would have to include the PHP license information and identify portions of your source code that are licensed under the PHP license.

If you wrote all of the code within the PHP Framework source you're talking about, you can release it under whatever license you wish. Most PHP Frameworks (from my brief search) appear to be BSD-licensed, but nothing prevents you from creating a GPL-licensed framework of your own.

Case 2: Wordpress themes are GPL (at least the PHP code is) http://wordpress.org/development/2009/07/themes-are-gpl-too/

Case 3: Depends on what you're asking. If you're asking if it's okay to create a new class that could be used with an existing framework (and doesn't reference anything in the framework it's meant to be included in), but you are not creating a new version of the framework, including the class, and distributing this modified compilation, then no, that wouldn't be a derivative work.

Even if you did include it, you'd still not have licensing issues until you decided to distribute that version. At that point, you would have a derivative work (since it includes other code), and the license of that existing code would become important in determining whether or not you would be allowed to do so.

It might help a bit to know why the question is being asked, since there are an awful lot of what-ifs involved. You might contact the EFF or SFLC with specific questions about a specific situation.




回答4:


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.

If you're referring to gcc and the bash shell, these are not a part of Linux. These are independent programs, and Apple's use of them is subject to the GPL. For instance, if Apple makes modifications to gcc, these modifications must be licensed under the GPL.

If Apple was to borrow parts of the linux kernel into their own kernel for instance, then they'd have to release their own kernel under GPL.




回答5:


IANAL, but much of this is very simple. A derivative work is something based on something else, fundamentally. It doesn't mean something that's created by a pre-existing work, or something separate that works with the original. To go through some of your examples....

The PHP license is for using the language, presumably the interpreter. Programs written in PHP aren't derivative works, since they don't incorporate PHP themselves, but are written to work with PHP and are interpreted by it. (Even so, there's no reason there can't be multiple licenses on software, so that it can only be used under the intersection of the conditions.)

I don't know about Wordpress themes, but it sounds like something you'd create with Wordpress and use with Wordpress. If they incorporated something pre-existing, like a template, they'd be a derivative work of the template.

A work under a proprietary license can exist side-by-side with GPLed code, but compiling creates a derivative work from the source code (not from the compiler), and linking creates a further derivative work. Therefore, if you have an executable that contains some GPLed code, it's a derivative of that code (among others) and by the terms of the GPL must be under the GPL.

Apple does not in fact use Linux in MacOSX. Their OS is based on BSD, which is similar to Linux in function but a different OS kernel and differently licensed. They do ship GPLed software, like much of their software development kit, but anybody can do that. A collection of independent programs is not an actual work, and Apple (like anybody else) can ship GPLed software under the GPL.

If you're shipping a product that has something somebody else has written in it, it's a derivative work. If not, it's generally not. It doesn't matter if you used somebody else's program to create it, or if you need to use somebody else's program to use it, or if you're shipping somebody else's program along with your stuff.




回答6:


Sorry about the non-answer — I can’t comment on the answer directly.

OS X is not based on Linux. It’s kernel is called Darwin, which is based on NeXTSTEP/BSD and is open source: http://developer.apple.com/darwin/

There is a project called PureDarwin that releases a complete distribution based on it.




回答7:


The PHP license doesn't place any constraints on what you do with stuff you build with it. If you want to GPL something you've produced with PHP, there's nothing in the PHP license stopping you.

Note also that even if there was, you could distribute the source form of your framework under the GPL just fine - the license on a particular piece of software does not extend to plain text that may or may not be used as input to the software.

IANAL, though.




回答8:


In theory, the GPL requires anything that statically links to any code under the GPL to be released back to the GPL community.

http://63.249.85.132/open_source_license.htm

Does this mean that dynamic scripts like Ruby & PHP aren't under this license?




回答9:


The GPL is a license for the distribution of software owned by the original copyright holder, as long as you don't distribute GPL code yourself you can ignore it.

If you distribute GPL code together with GPL-incompatible code, you are violating the license and thus, you are not getting a right to copy which means you are committing a copyright violation over the original GPL code. Your code is still copyright you and available under whatever license you choose, unless it is a derivative work.

The GPL asserts that anything that links with GPL code is a derivative work, but that is dubious to say the least especially if the interfaces to that code are public.

However, if their assertion was supported in court, and for example under Japanese Copyright Law, the original authors would get copyright over all of your code except the moral right to modification meaning they would be free to distribute free copies of your code whatever license you used for it even if you never distributed GPL code.

Note that even if your code is not derivative despite of linking, you would still be violating the copyright of GPL code on distribution. You could distribute it to users of the GPL program for them to do the linking, though.

Even blurrier is what happens to code that was originally derived from other code but no longer containing any of the original code. Most people seem to think that deleting the code is enough, but is it? No one knows for sure.



来源:https://stackoverflow.com/questions/1890148/when-is-your-code-a-derivative-work

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!