GPL-Style License w/ A Twist?
txsable asks: "I'm trying to find out if there is a GPL-style Open-source license available with a special twist: that any modifications made, while being allowed to be released as per the terms of the 'normal' GPL, must also be submitted back to the original author for possible inclusion in the main project. I know it seems ridiculous to require by license what should be a common-sense procedure for open-source developers, but I've seen enough projects which were greatly modified from the original project, with features the original project either was working on or had also developed, and it led to confusion and/or unnecessary duplication of effort. Anyone have any suggestions for me (other than writing my own license...I don't speak enough lawyer to make something that reads as bad as a legal document)?"
- This would violate the Free Software Foundation's definiton of Free Software. One of the primary freedoms of Free Software is the freedom of privacy. Namely, the right to keep your modifications private, for yourself, and not share them with your neighbor. RMS would certainly prefer that you do share--but he feels it unethical to require that you share. If you do this, then your software, while still being Open Source, will not be Free Software.
- Think in the long-term. What happens in ten years when you're no longer active in the community? What if nobody can find you to send you these diffs? In that case, your software cannot be modified and distributed--because without sending you the diffs, the software cannot be distributed!
- If you have a clause that says ``you are not required to send me changes if you can't find me'', then people can make whatever diffs they like and not send them on--after all, hey, they looked around their cube for you, you weren't there, so they just went on with business as usual. Yes, that's an extreme case, but it'd be technically legal.
- The more complex a legal agreement becomes, the easier it is to subvert. The GPL is already on questionable legal ground; if you add another clause, even with a lawyer's help, you also diminish the likelihood that you can ever enforce this license.
... I don't mean to burst your bubble here, but this is just a Bad Idea. Better to leave a note in the README that says ``please, please, please remember to send me diffs'' and not make it a legal requirement of the license than to try and write in your own clause.Do you mean:
"If you modify this code, you must submit changes back to the original author"
or:
"If you modify this code and release the modified code for public use, you must release the modified source to the public and submit changes directly to the original author"
Basically, does someone have to send you changes they made if they are not releasing the modified code in general? I am not clear from the wording you used.
"This message is composed of 100% recycled electrons."
You might want to check out the Apple Public Source License
It is pretty close to what you want, although it is not GPL compatable.
If you are writing your own, it might be a useful starting point.
There is a nice list of other licenses here - always a good spot to start exploring.
I think in general anybody adding a feature for their own use wants to see their code in the main version. They don't want to have to keep patching it with their modifications every time you make a new version. They also worry that you will provide that feature in a different way and get credit for your idea. Also they worry you will change the code such that their modifications can't work or have to be rewritten.
I also think anybody who does not want to contribute back to the original code is not going to be stopped just because of a clause in the license.
So I would ignore this. Make sure it is easy for people to contact you and respond to any patches sent (even if you don't put them in).
but it doesn't really change anything. The changes are freely available to the creator anyway, because of the GPL.. he just wants to be informed about them, rather than have to go looking.
I think a lot of people (me included) still get confused regarding the GPL (or other licenses.. but let's talk about the GPL), and open-source projects.
If I start a project to build Gnu-App-X.. and release it, and someone submits some changes to me... and I incorporate those changes into the product.. those changes are not the 'property' of the submitter.. they were given to me, for inclusion in my project. I would guess that I now 'own' the resulting work. I can still re-license if I want. The GPL has nothing to do with this situation, though many probably think it does.
THE GPL only comes into play when someone other than me wants to distribute the software.
You must be joking:
:-)
The freedom to run the program, for any purpose (freedom 0).
The freedom to study how the program works, and adapt it to your needs (freedom 1).
Access to the source code is a precondition for this.
The freedom to redistribute copies so you can help your neighbor (freedom 2).
The freedom to improve the program, and release your improvements to the public, so that the whole community benefits. (freedom 3).
These are 'Freedoms' just as much as my 3 (starting with 0 because were talking about geeks) bulleted items:
Freedom 0: The Freedom NOT to have someone else tell me what to do with the software.
Freedom 1: The Freedom to make modifications without others asurping its control.
Freedom 2: The Freedom to Sell this software without restriction.
Freedom 3: The Freedom to what ever I god damn want with it.
So, Odd, you are wrong. My freedoms listed above are just as valid and just as much propoganda as the GPL. Its no secret that I like the BSD license better, but thats because I like those freedoms more than I like the 'freedoms' associated with the GPL.
If I release something GPL'd, it sure as hell ain't going to be about Freedom (and I have released several apps this way), its going to be about restricting my competitors so that they cannot use my software agaist me. With the GPL, I can still have my copyrighted code, yet anyone competing against it with the GPL'd code have to overcome several barriers.
The first is that if they release anything, I get access to their modifications. If they keep it in house, I don't get that, but they most likely won't. They will have to release the code along with the software. The client has no reason to buy from them because they have to give the software away for free...as such, they won't make money off of this where as I can with my future modifications -- I keep the GPL'd software is always a version behind to ensure that I can pay rent. My customers also get the code and the agreement that within XX # of Months or the Next Revision, the code given to them will revert to GPL, so they don't have to worry about me kicking over or anything
As you can see, I can use the GPL in very twisted, in what some would say non-ethical, ways...and they certainly ain't freeing. Its more Binding than it would have been IMHO. If I wanted it to be free, I would have BSD'd the stuff.
clif
sonikmatter.com