licensing
Program Licence amendments
<p>I am looking to licence my software under the GPL, but I want to add a clause that allows me to change the licence at any time.</p>

<p>How can I do this?</p>

<h1>All Free/Open licenses are irrevocable</h1>
<p>The question isn't clear whether you were talking about changing the license of people who have already received your software, but if you were thinking about that, you should know that it is not possible.</p>
<p>For a license to be approved by the Free Software Foundation or the Open Source Initiative, the license must be irrevocable. Anyone who receives a copy of some GPL licensed software will be able to use it under that license forever, as well as doing anything the license allows, such as distributing it to anyone else they choose.</p>
<h1>The GNU GPL cannot be modified</h1>
<p>Well to be precise you cannot modify it and call it the GPL or claim any association with the GNU project, but you can borrow some of its clauses to use in a license called something else. From the GPL FAQ:</p>
<blockquote>
<p><a href="http://www.gnu.org/licenses/gpl-faq.html#ModifyGPL" rel="nofollow noreferrer"><strong>Can I modify the GPL and make a modified license?</strong></a></p>
<p>It is possible to make modified versions of the GPL, but it tends to have practical consequences.</p>
<p>You can legally use the GPL terms (possibly modified) in another license provided that you call your license by another name and do not include the GPL preamble, and provided you modify the instructions-for-use at the end enough to make it clearly different in wording and not mention GNU (though the actual procedure you describe may be similar).</p>
<p>If you want to use our preamble in a modified license, please write to &lt; licensing@gnu.org &gt; for permission. For this purpose we would want to check the actual license requirements to see if we approve of them.</p>
<p>Although we will not raise legal objections to your making a modified license in this way, we hope you will think twice and not do it. Such a modified license is almost certainly <a href="http://www.gnu.org/licenses/gpl-faq.html#WhatIsCompatible" rel="nofollow noreferrer">incompatible with the GNU GPL</a>, and that incompatibility blocks useful combinations of modules. The mere proliferation of different free software licenses is a burden in and of itself.</p>
<p>Rather than modifying the GPL, please use the exception mechanism offered by GPL version 3.</p>
</blockquote>
<p>The GPL3 exception mechanism allows you to add certain additional exceptions to the license, but you could not add one which would allow you to make the license revocable.</p>
<h1>Copyright holders can always change how they publish their works</h1>
<p>Now while a Free/Open license is irrevocable for those who have already received a copy of the work, copyright holders can always change how they publish their own works. You don't need to add anything to the GPL to do this! You can begin by publishing it under the GPL, and then later start publishing it under an additional license, including a non-Free/Open license. You can stop publishing it under old licenses if you want. But none of those changes affect the people who already have your software under a Free/Open license.</p>
<p>Note that if you are not the sole copyright owner for your software (if you have accepted contributions from others), you will need to get everyone's approval before changing the license, unless they have signed a <a href="http://en.wikipedia.org/wiki/Contributor_License_Agreement" rel="nofollow noreferrer">contributor license agreement</a> with you.</p>

<p>My first question would be, "<em>Can</em> you change a license at any time?"  I doubt you can make arbitrary and unilateral changes to a license after it has been accepted.  If you know ahead of time what terms you might want to impose in the future I suspect you would have to outline them in the initial license.</p>

<p>One way around that problem is to only grant a license for a certain period of time.  After that the license expires and users would have to review and accept a new license with whatever new terms you may wish to add.</p>

<p>I suppose, in the limit, you could require the software to download the "current" license every time it is started and require the users to review and accept any changes from the last license version they accepted.  Maybe you could even try to have running software callback with some frequency to a licensing server to check for new licenses, and then terminate if the user refuses a new license.</p>
