Trying to choose between GPL and BSD licensing
I’ll be frank: I have no idea how to choose an appropriate license for my web work. The work I’ve done–mostly in the area of tools for small web hobbies–I’ve just slapped on a “license” that says:
This script is made available for free download, use, and modification as long as this note remains intact and a link back to http://scripts.indisguise.org/ is given. It is hoped that the script will be useful, but does not guarantee that it will solve any problem or is free from errors of any kind. Users of this script are forbidden to sell or distribute the script in whole or in part without written and explicit permission from me, and users agree to hold me blameless from any liability directly or indirectly arising from the use of this script.
Which has worked all right for me so far, but I’ve been thinking of jumping to a better-known license. Now, I know both the GPL and BSD licenses allow free distribution, and my homemade license prohibits it, but let me talk about why it was there in the first place.
Small scripts need some credit love too
Back when I started with Enthusiast, the de facto standard for fanlistings (the original purpose of Enth) was PHPFanBase. There were no other scripts in the community. I tried using it, but I wanted more out of it. So I decided I’d make my own script, for my own use. After a while, well, hell, I’d just put it up in case someone else wants an alternative.
Only a few people knew of Enthusiast then. I was extremely gratified that people found it useful, and I continued to work on it on and off. It wasn’t an instant hit, or anything like that; the response was gradual, but it was growing. For my part, I didn’t mind so much that it wasn’t too well known. I was just glad that people liked it, and came to thank me for it.
And then a friend of mine directed me to take a look at something. I found out that someone who was more popular than I am in the community (this may be wrong–I have no proof of this or otherwise, but I did know that I admired her work and thought her to be very popular) started offering her own fanlisting script. And it looked very similar to my own. I opened the source. Gone was my name and notes, of course, but the coding style down to the indents, the odd quirks and naming conventions…they were all the same.
I was devastated. Apparently, she had taken my script and modified it (how much? I don’t know; only that big chunks of code had been lifted verbatim) and released it as her own. It was a painful blow to me, a relative unknown, and to see the praises she had already received for “her script” without any note or credit to me.
This was a long time ago–I might actually still have been in college then. She did take it down, and apologize, and my own homemade license grew stricter.
So now what?
Yes, what? I’ve been doing a lot of reading on GPL vs BSD licensing, but let me tell you…it’s horrid going. If it’s not a very long and hard-to-read document, it’s a dubious-looking blog post with comments that refute the blog post, thanks to the infamous BSD vs GPL wars debates.
The licenses themselves are quite straightforward. They both require attribution. GPL requires derivative works to be open-source and also licensed under GPL, so programs stay open and free. BSD (new) prohibits using the copyright owners’ names to be used to promote/advertise derivative works.
That’s it. BSD does not require open-sourced derivative work, GPL has no restrictions on the whole promotion thing.
What’s more indistinct, however, is what this means both for the project and the creator. And that’s what I’m trying to figure out.
It’s easier to think how it may affect the project by looking at the nature of the product itself. If it might be useful in setting a standard, for example, and would be helped along by adoption into proprietary/closed-source systems, then BSD might be the right way to go.
As for the creator? That feels like a vast gray area to me. What rights have you, exactly, over the work?
- I have read a couple proponents say that GPL is about equality across all contributors, so does that mean the original creator has less control over his work, now?
- What does “derivative work” exactly mean in this sense?
- If someone adds a patch to the script, is the result already a derivative work, and does that mean the one who contributed the patch is on even ground with the original creator?
- What does either mean for significant new releases of a project, and the project moves in a direction I do not envision for the project, do I not have the right anymore to ensure it is in keeping with my vision?
- As creator of two projects, likely I would be sharing code across the two: will that mean I cannot, anymore?
I realize that one of the basis behind open source software is that people are good and kind enough to want to improve programs for the good of the community. It is based on the belief that people are intrinsically good. But when that is not always the case, when I with my paltry few contributions have experienced someone trying to rip off my work–what kind of protection can one even fall back on?
Is there even a point in all this, or should I just close my eyes, pick a license out of a hat, and slap it on my scripts?