How is it legally possible to take a project initially released as open source back to closed source? Especially one licensed with the GPL any version.
There are two things here:
- revoking the open source license which has been given. It will probably depend on the text of the license. If the license has no provision, I'm not sure it is possible if the licensee hasn't infringed it. And some license like GPL version 3, are explicit in that:
All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met.
- re-licensing under other terms. It is possible as long as you get the agreement of all copyright holders. If you had the foresight to get it before accepting the contributions (some GNU projects like GCC ask you to assign the copyright to the FSF for instance) it is easy. If you didn't, it will be difficult (some project do that voluntarily so that a change of license is in practice impossible, getting the agreement of everybody or tracking and removing the contributions of those who didn't being impractical).
(Mandatory mention: I'm not a lawyer, see yours, and some aspect may be localised and depend on your jurisdiction).
You can't take one user's rights of using given-software v1.5 away once he obtained it trough GPL/OSS licensing.
You can contact the author of given-software v1.5 and
- buy a commercial license with right of modification and closed source redistribution
buy his rights on the software from him
(this does not apply in all jurisdictions - in many countries some rights are inalienable - this means the author always retains those and he can only license them to you)
Ah, as you're already there, you may also be interested in buying rights to the name of the product.
Then you could release further versions (say given-software 2.0) under a commercial license and leave only the previous version free. (as in free speech)
Some OSS projects keep selling new versions, and release the previous one as opensource, at every major version upgrade.
(I'm thinking Ghostscript here, but also Android has been known to do something like that, pre-releasing stuff to interested partners, for hefty prices)
What could go wrong
Competition. A major OSS fork + rename could simply kill the new commercial product, (it's a free market)
The maintainer may not have all the rights he needs to re-license given-software 1.5
- The original author could not be available: the current maintainer could be the second, or third, or fourth maintainer after the original one.
The project could have received too many external bug-fixes, or feature additions, and the maintainer never bothered asking for waivers, so the software now is really owned by the maintainer and everybody that ever contributed any code. Under undetermined terms.
A real inextricable mess that's only waiting for a lawyer with some time to burn and a corporation that's worth milking for money. (in fact, even the GNU project always asks for waivers that remise all copyrights to the GNU foundation)
- Waivers could have been signed, but the terms on them could precisely state the license on the code can never be changed.
In those last two situations the only way out of OSS is an hard, huge, gory and sad rewrite of all the contributed code. And even if done right and well, it could still be challengeable, (by that lawyer, yes) so... it really ain't worth it.
I think that if you own all the copyrights to the code base i.e. all contributors have given you (or your company as may be more likely) the copyrights to all of their contributions, then you can re-release that code base under a different licence (which may be a closed source one) if you choose. Some projects (like jQuery) release their code under two different licences simultaneously (one of which is the GPL).
This does not change the licence of any existing versions of the code though and when doing so you may find your contributors feeling quite upset, forking the project and continuing to develop it under a different name. Don't quote me on this but I think that was the kind of thing that has resulted in Libre Office vs. Open Office.
If you are copy right holder of the project, you have right to set (unique) license to each party you distribute your source to.
Now given that you have already given someone a code with GPL, what he/she now possess cannot be revoked unless the code was distributed under some condition.
For example, Open Office was open source (and still is). But since Oracle acquired Sun, people felt that OO might be too tight now so they can begin modifying that code independently under the name of Libre Office and Oracle cannot revoke that right.
However, there are two things you can always do:
Attach license under some condition. For example you can have commercial license different from Open source which is only if you are yourself an Open source project (or NGO / Academia).
For all new version you can still discontinue old license and provide a new one. For example REDHAT 7 (or 8) was all open source. After that they created RHEL which was licensed commercially. This is how Fedora was born.