7

Supposed I have written a server in Node.js that I licensed under AGPLv3. Now, if somebody takes my code and modifies it, this is a derivative work. So far, so good.

Supposed my server has the ability to load .js files from disk and run them, e.g. to provide something like a plug-in interface. The interface is designed in a way that the files do not require anything from the server, the binding is only the other way round: The files only contain functions that are being called by the server.

Does this make the additional .js files a derivative work, too?

I find this question quite hard to answer because all the stativ-vs-dynamic-linking-and-binding does not apply here, because the server as well as the additional files are just .js files laying around on disk, and their connection is only established at runtime by the Node.js engine, because the server simply calls require on the files.

So, as said: Does this make the additional .js files a derivative work, too?

Please note that while Does a host application's license apply to plug-ins written for it? is definitely helpful, it doesn't answer my question, since it leaves the main part of my question unanswered:

I find this question quite hard to answer because all the stativ-vs-dynamic-linking-and-binding does not apply here, because the server as well as the additional files are just .js files laying around on disk, and their connection is only established at runtime by the Node.js engine, because the server simply calls require on the files.

IMHO JavaScript and Node.js are different here, as you publish and distribute the code always only as source, never as binary. So the term linking here does not make too much sense, except at runtime (what also means that you don't really have a choice on how to link).

1

Tough question. I'd say that if the the plug-in does not use code from your software, then it is not a derivative work but a good lecture can be this: https://www.drupal.org/about/licensing, where there is a good explanation (Drupal call the plugin "module") about the topic.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.