Question on using AGPLv3 for JavaScript files on a web page
- Inicie sesión o regístrese para enviar comentarios
I've been brainstorming a concept for a new website and have thought about licensing my JavaScript files under a free software license. I will already be using free software licensed libraries like jQuery and Modernizer (both MIT), but have been a little bit unsure on what license to use for code that I create.
If I use a permissive license, then there's the concept of it not being copyleft and the worry of a competing site taking my code and making it non-free. If I go with a GPL, LGPL, or MPL license, the code will be copyleft but since it is running on the site (like how Wordpress is GPL, but you don't have to make the source for modified code available), then the copyleft code is not truely copyleft due to the code running on a site instead of an actual program.
So this is where the Affero GPLv3 could come in handy. The code could be copyleft, I could offer the source code, and if someone wanted to use the code on their site "as-is" or modified, they would have to make the source available.
Due to the general nature of the GPL where all code linked with it must also be free, does the usage of one AGPLv3 licensed JavaScript make ALL of the additional JavaScript files served from that web page as AGPL? Honestly, it wouldn't matter as the libraries I mentioned above are already free software and can be easily linked with GPL code so it wouldn't matter if the AGPL "converted" the other permissive code to AGPL as well.
So in a nutshell, does the inclusion of one AGPL licensed JavaScript file convert the other JavaScript files included on the page to AGPL when referenced on the same web page, or is that AGPL JavaScript isolated from the others?
The way JavaScript works is:
- The web page points to a JavaScript program.
- Your browser transparently downloads that JavaScript program,
temporarily installing it into the browser.
- Your browser executes the JavaScript program where the web page
specifies it should.
JavaScript code gets executed on your computer, not on a remote
server.[0] So in effect, the GNU AGPL is exactly the same as the GNU GPL
for these programs.
Now, for your actual question: the various JavaScript files are
generally several different programs that just happen to be loaded by
the same web page. It's basically the same situation as having several
different programs installed in your OS: a bunch of unrelated programs
are perfectly able to coexist on the same computer, regardless of
license restrictions. For example, software under version 2 of the
Apache License can be on the same system as software under version 2 of
the GNU GPL (see Android, for example; the kernel Linux is under the
GPLv2, while much of Android's userland is under the Apache License
version 2). Similarly, if a web page uses one JavaScript program under
the AGPL, that doesn't mean that some other JavaScript program it loads
is also under the AGPL.
[0] There is such a thing as JavaScript code being server-side, but I
don't think it's very common.
Thanks for the response.
You are true that a .js file is executed in your browser instead of the server and therefore can be considered to fall under the same requirements as if I were to run a program locally. When you refresh that site, the server should give a 304 "Not Modified" message and the JavaScript file should execute from your cache instead of pulling from the server each time.
When you talk about JavaScript being run server side, it is actually pretty common these days with Node.js. I use it for a few projects and find it pretty fast and easy to code.
If I use a permissive license, then there's the concept of it not being copyleft and the worry of a competing site taking my code and making it non-free.
I cannot believe t3g wrote that! The exact same thing we wrote to him over and over while he was criticizing the copyleft!
Yeah, even I remember those discussions though I was never involved.
How come, t3g?
Its a site I have been brainstorming for a while and really passionate about, so I want to make sure that a potential competitor doesn't take my JavaScript code and claim it as their own. I do want to make it under a free software license so visitors that have concerns can make it whitelisted in LibreJS or NoScript.
Plus, I'm not that big and don't have a foundation or huge community to protect me, so it seemed like a smart option to make it copyleft.
They can't claim it as their own even if you use a permissive license, because the copyright notices have to be retained. Of course, it's best to make it copyleft so other sites don't make it nonfree.
- Inicie sesión o regístrese para enviar comentarios