Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I wrote a number of NodeJS modules (some of which are actually good, in my modest opinion). I basically forgot to set a license for them.

I would like to pick the AGPL (Affero GPL).

How do I do that? Can I just get away with a LICENSE file in the project? Or do I need a license disclaimer in every single file in the project? What about CSS?

share|improve this question
3  
2  
The FSF has a GPL how-to that should answer your questions exactly. –  apsillers Jul 17 '13 at 11:51
1  
This may help choosealicense.com –  verbose-mode Jul 17 '13 at 12:31
add comment

migrated from stackoverflow.com Jul 17 '13 at 11:16

This question came from our site for professional and enthusiast programmers.

1 Answer

NOTE: I am not a lawyer. If you are making business decisions, I recommend getting professional legal advise first.

In most cases, merely adding a LICENSE file to your project should be sufficient and is common convention in open source projects. If you are concerned, reference your LICENSE file from any documentation you have. You should not need to reference it from every file unless your license is restrictive or unusual and most open source licenses are neither.

That said, take a step back and ask why do you want to add a license? For example:

  1. Protect yourself by disclaiming any warranties.
  2. Control how others modify your software and distribute those modifications.
  3. Control whether others can resell or distribute your software.
  4. Appear more professional by specifying a license (don't laugh, it happens).

If you are concerned about warranties, the worst case scenario is something taking you to court. You could consider professional indemnity and personal liability insurance but this is expensive but, without knowing your project, you would be extremely unlucky to need it.

If you are concerned about people copying or taking credit for your work, specifying a license may be insufficient. You could close source your software but this hard for JavaScript. You could also make the code publicly available so any blatant copying is easily found by a Google search but that defeats the purpose of using an open source licence.

In short, the big thing you want to do is control how others use and modify your code and the LICENSE file does not, by itself, prevent anyone from doing anything. What it does do is give you some legal and moral recourse if someone abuses it and making a reasonable effort to define that, such as adding a LICENSE file and referencing it from other documentation, is usually sufficient.

share|improve this answer
    
Why would other people taking credit for your open source work be a problem? If you opened your source, it will be freely available for everyone to see who the real author is. Usually the community knows who did what. –  Andres F. Jul 17 '13 at 13:29
    
@AndresF. There is a difference between allowing others to learn and use from your code (open source, use restrictions) and allowing others taking credit and payment for your work. For example, what happens if open source code is copied and used in a closed source product? Some licenses do not use or restrict copying (e.g. MIT or BSD) while some say you can copy or extend it but "derivative works" must also be open source (e.g. early GPL). The license choice articulates the author's preference. –  akton Jul 22 '13 at 2:05
    
Agreed about MIT/BSD vs GPL re: using it proprietary software. And yes, someone else can sell Free Software (not necessarily Open Source software). But why would anyone buy the software from someone else when you, the author, can provide it for free? And no-one can take credit for something you did (regardless of Free vs Closed status). You just show the world you did it first (e.g. link to github repo or whatever), and argument closed. Free software communities tend to know who did what. –  Andres F. Jul 22 '13 at 16:13
    
Your comment reminds me of the author of Adventure Game Studio, a free (as in beer) games SDK. He claims he won't open the source because he's afraid someone else will take credit for it. Of course he's within his rights not to open it, but his reasoning is faulty. The AGS community is very close-knit. Everyone knows who made AGS. How could someone else take credit? –  Andres F. Jul 22 '13 at 16:18
    
@AndresF. A NodeJS plugin is probably safe. As you say, it is a smaller community where many people understand and recognize each other's work. However, some languages/platforms have huge audiences where it is practically impossible to know everyone's work and many do not adhere to the spirit of open source. As I said, the license does not physically prevent modification but it may bring you some moral or legal recourse. Taking your example of AGS, what is stopping someone from copying parts of it into their own closed source adventure game? –  akton Jul 23 '13 at 12:48
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.