Say, for example I published my code under GPL.
A month after release, I decide evil corporations (*
cough*
) are allowed to use my code after all, because it’s so brilliant and bug-free. Can I just relicense my own code, or have I locked myself out of the right to do so?
1
As a copyright holder you can license the code any which way you want, again and again and again. You could license it as GPL, and then have a client ask for a license for the MS-Pl for one of their projects, and then license it again under BSD…
You, the copyright holder, always have the power to decide to release the work under a different license. You can’t revoke how people got it previously, but you can always release it under a new license.
That ‘you can’t revoke’ does have some implications. If someone went to your GPL version and forked it form there, with their contributions being GPL licensed, that code would still be GPL licensed.
The license is something you use to instruct other people on how they can use your code – and the license for it sticks with it. It never limits how you can use it or decide to license and relicense your code.
2
Yes, the license says what other people can do to the code not what you (the copyright holder) can.
Of course GPL does not prevent a corporation from using code – or even distributing code, however they may want to license under a different license to prevent their code needing to be GPL
3