dougo: (Default)
([personal profile] dougo Jul. 30th, 2006 03:57 pm)
To any GPL experts reading this (e.g. [livejournal.com profile] novalis):

What is the minimum I need to do to make my code be covered by the GPL? Is it enough to upload it to a Sourceforge or Google Code project that has specified the GPL as its license? How about if I include the license file (COPYING)? Or do I have to put something in every single source file? Can I put a 1- or 2-line copyright statement, or do I need to include all 15 lines of boilerplate in each file? Can it go at the bottom, or does it have to go "near the top"?

From: [identity profile] mshonle.livejournal.com


You need to include the license file in full (as opposed to, say, providing the URL).

As for the boilerplate, you're better off letting your source control system (if it is at all decent) add it for you whenever something is checked in. It's much nicer working with files without all of that clutter, while being able to give copies to others with all of the proper substitutions in place. I would put your copyright notice on all versions of the files, however.

You might also want to consider using the artistic license instead.

From: [identity profile] dougo.livejournal.com


If I can't live with the boilerplate, then I'm not going to foist it on my users. (Er, "users" isn't the right word... future collaborators?) It seems like a bad idea to work with a different view of the code than what everyone else will see.

Why do you prefer the artistic license?

From: [identity profile] mshonle.livejournal.com


There is nothing preventing your collaborators from using the same text-substitution trick. But overall, I can't imagine they'd care as much about it as you do. Further, they could care strongly in the opposite direction ("Always do what the FSF says!"), so your 'foist issue' is not resolved either way.

I don't really have so strong of an opinion about various licenses. Usually I build from something already out there and so to keep it simple I use the same license it used (e.g. I'm using Polyglot, which is LGPL and Eclipse, so I'm making my extension be the same).

For your second Q: I think the artistic license is much more appropriate for researchers (particularly those funded through taxes). All else equal, research projects should be public domain. However, public domain carries strange liability issues with it that the artistic license avoids. For the same reasons, I would favor the LGPL to the GPL for my own work.

As a secondary benefit, as a researcher I would much rather see more people using and citing my work in their own derivations, and the incentives to make derivations is higher if you have more options (more options in the sense that the LGPL gives users more options). Removing those incentives might help achieve other external goals, but you need to weigh in the costs. (E.g., how bad would it be if someone released a non-free program that linked to yours? Would you be happy to see the code get used and the citation to your work, or would you be angry and wished they had been more generous? Myself, I would rather encourage people to use it, even if their contributions are not free, than to see no one use it.)

It would also depend on the code you are providing for free. Is it more of a "I did it, time to move on" kind of deal, and you just want to help out somebody else doing similar work? Or is it more of a project that you can see a team building around? (In which case you should pick the license most appealing to them.) If the program clearly is a complement to another free program, match its license to make it easier for cross contributors. But if you're just sending the code out to die, put on the artistic license and make a statement that you are willing to release it under other free licenses by request.

From: [identity profile] dougo.livejournal.com


I would rather no one use it than for it to be used to create non-free software. So I'll stick with the GPL.

From: [identity profile] dougo.livejournal.com


I'm working on a Volity library collection in Swindle, which involves making library collections for Jabber and DOM.

From: [identity profile] novalis.livejournal.com


The minimum is to make your intent clear. The clearer you make it, the fewer problems you'll have in the future. The whole boilerplate isn't necessary, but it doesn't hurt.

I would recommend at the least:

Copyright [year], [your name]. This file is licensed under the GNU General Public License, version 2 [or any later version]. See the file COPYING for the full license.

From: [identity profile] novalis.livejournal.com


The Artistic License is unclear and incompatible with the GPL. That is, apparently, the way Larry Wall likes it, because he wants to encourage people to go the GPL route.

At the minimum, if you really like the Artistic License, at least do what Perl does and dual-license.

From: [identity profile] mshonle.livejournal.com


Thinking about it a little more, I suppose I'd just go with the LGPL instead of the artistic license. The LGPL is close enough to the qualities I'd want from being public domain without the liability.
.