It’s hard to tell. I think AGPL is one of the better “fuck business opportunities” licenses. If it scares the Google lawyers enough that Googlers aren’t allowed to use AGPL code or use AGPL software on company computers, that makes it seem pretty good to me.
When it comes to “big company forking and taking over”: customise the license. Software licensing is hard, and known licenses make it a little easier. Big companies hate custom licenses because Legal needs to sign off on it. Just adding a little throwaway line to the license used for JSLint has ended up with IBM having written permission to use JSLint for evil.
If you are the sole author of your code, you can relicense as much as you want. Other people may have received a licensed copy before the relicensing, but new additions don’t need to follow that same license model, and you’re not bound by any restrictions on the old code either. The license determines under which terms you’re giving something away, but you can decide those terms for yourself! In other words, it’s almost impossible to prevent yourself from selling your code in the future through licenses alone.
However, when other people come in and help, this becomes complicated. Now you need their permission to relicense their code, because you’re not the owner of that code. You can use it, under the license provided by the alterations, but you can’t just change the license.
A Contributor License Agreement is a document others sign (digitally, usually) that will grant you certain rights to their work. Using the right CLA (and you’ll need a legal professional to determine what is “right” for you!) you can make contributors hand over either full authorship of their work or give you an irrevocable license to reuse and relicense the code. Without such a signed document, you’re bound by the whims of the contributions’ authors, which can be a real issue for “open core” projects that want to relicense (for example, when Amazon takes the code for their open source SaaS and provides a dirt-cheap alternative you cannot compete with).
So, if you want to prevent yourself from ever selling your code: take contributions from as many people as possible, under as open a license as possible. Of course you can always sell your product, but the business would be buying a complex and most likely expensive copyright situation along with the code.
There are licenses that can help prevent business interest. If you don’t mind being classified as a proprietary project, you could use CC-NC. When others contribute to your project and use the same license, you’ve essentially screwed yourself over. However, most people interested in open source software don’t really care when a small shop down the road uses their open source calculator app, so CC-NC isn’t very popular.
It’s hard to tell. I think AGPL is one of the better “fuck business opportunities” licenses. If it scares the Google lawyers enough that Googlers aren’t allowed to use AGPL code or use AGPL software on company computers, that makes it seem pretty good to me.
When it comes to “big company forking and taking over”: customise the license. Software licensing is hard, and known licenses make it a little easier. Big companies hate custom licenses because Legal needs to sign off on it. Just adding a little throwaway line to the license used for JSLint has ended up with IBM having written permission to use JSLint for evil.
If you are the sole author of your code, you can relicense as much as you want. Other people may have received a licensed copy before the relicensing, but new additions don’t need to follow that same license model, and you’re not bound by any restrictions on the old code either. The license determines under which terms you’re giving something away, but you can decide those terms for yourself! In other words, it’s almost impossible to prevent yourself from selling your code in the future through licenses alone.
However, when other people come in and help, this becomes complicated. Now you need their permission to relicense their code, because you’re not the owner of that code. You can use it, under the license provided by the alterations, but you can’t just change the license.
A Contributor License Agreement is a document others sign (digitally, usually) that will grant you certain rights to their work. Using the right CLA (and you’ll need a legal professional to determine what is “right” for you!) you can make contributors hand over either full authorship of their work or give you an irrevocable license to reuse and relicense the code. Without such a signed document, you’re bound by the whims of the contributions’ authors, which can be a real issue for “open core” projects that want to relicense (for example, when Amazon takes the code for their open source SaaS and provides a dirt-cheap alternative you cannot compete with).
So, if you want to prevent yourself from ever selling your code: take contributions from as many people as possible, under as open a license as possible. Of course you can always sell your product, but the business would be buying a complex and most likely expensive copyright situation along with the code.
There are licenses that can help prevent business interest. If you don’t mind being classified as a proprietary project, you could use CC-NC. When others contribute to your project and use the same license, you’ve essentially screwed yourself over. However, most people interested in open source software don’t really care when a small shop down the road uses their open source calculator app, so CC-NC isn’t very popular.