17

I'm interested in a license that says something like "After the 1st of January 2020, you may distribute this work under the terms of the GPL v3" (or some other open source license). I'm interested in developing software products and keeping a limited period of monopoly for commercial exploitation, but granting people open source freedoms far sooner than copyright law would put my works in the public domain.

I saw an existing question (Can I force my work to be open sourced in the future?), but that question is largely about the logistics of doing so (e.g. "I want to add value to users by guaranteeing that the work eventually becomes free and maintainable by volunteers, even if I get hit by a bus or I go bankrupt").

In this question I'm interested specifically in licenses that would grant any licensee the traditional open source freedoms at a specific point in the future. I'm wondering if there are any licenses already in use, considering the oft-repeated advice to try to avoid modifying existing licenses.

A closely related question: would such a license be GPL compatible (after the open source date; obviously not before)? Or would the additional historical restrictions prevent it being combined with other GPL works?

(I'm aware that using this sort of license implies that I am actually giving the source code to someone earlier than the open source period; if I just refrain from publishing the source until I want it to be open source, then there's no need for a special license)

  • An excellent question. I'm not sure anything like this really exists, but I'm not sure. We'll see what the community has to say :) – Zizouz212 Aug 24 '15 at 3:25
  • 1
    I'd be careful about GPL - it's actually pretty restrictive. It might very well be that people will have to stop using your product when it turns to GPL - it sounds like you don't want that. – Luaan Aug 24 '15 at 10:44
  • 2
    @Luaan: only if the existing license is revoked by the clause that licenses it as GPL. Which should be easily avoided. – Steve Jessop Aug 24 '15 at 13:02
  • 1
    In practice you can't distribute your source if you want to keep it proprietary so trying to make time limited licences is nonsense. This isn't a licencing issue at all. You just need to make a will/tell people you trust where a latest copy and instructions to release it with a standard licence after a certain date/on your death. – JamesRyan Aug 24 '15 at 16:51
  • 2
    You're probably right that a qualified legal opinion would be helpful, but normally anything you don't specify in a legal agreement doesn't happen; eg, I don't need to add a clause saying that you still have the right to use other software on your computer, because this isn't in question. Moreoever, it has been noted here that you cannot unilaterally revoke a licence grant post hoc, so it seems unlikely you'd need to be explicit that that's not happening. Much FUD is spoken and spread about the GPL, and this feels to me like much of that. – MadHatter Aug 25 '15 at 12:15
8

No, I'm not aware of any existing licenses.


However you don't need one. Just make a LICENSE file like this:

Copyright (c) 2015 Ben

All rights reserved until 2025 after which this work is made available under version 3 of GPL license.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

I grabed the last section from MIT. Including your name and the current year is optional but I'd include it.

Beware that you have to do this in your own license file - the FSF explicitely does not give permission to distribute modifed copies so integrating dates into GPL would infringe on their intelectual property (isn't it ironic that the FSF licenses are proprietary?)

I'm not sure of the best way to include the GPL license text in your project without implying that the project is under GPL. Perhaps just don't include it at all, let someone else find/copy it in (or do it yourself) once 2025 arrives.

  • Why would you need to modify the GPL's text? You can LICENSE containing that block of text and LICENSE.GPL containing the GPL. Including the GPL's text, on its own, doesn't make the project fall under the GPL; each file must explicitly say it's GPL'd, no? – Cole Johnson Aug 24 '15 at 10:27
  • 3
    I'm guessing the proprietary nature of FSF licenses is to stop people from maliciously modifying them, then distributing software under them without any warning about the modifications. – Mark K Cowan Aug 24 '15 at 13:19
  • @ColeJohnson as per FSF's recommendation "it is safest" for each file to explicitly say that it's GPL. But it's not required and some files are binary or programatically generated XML that would strip any comments as soon as they're edited. Those files still fall under the license. I think somebody could argue in court that having a "LICENSE.GPL" file made them incorrectly assume that it fell under the license, and therefore should not be punished for infringing copyright. It's up to you but I wouldn't risk it. – Abhi Beckert Aug 24 '15 at 20:06
  • Adding to @MarkKCowan comment, it seems no different than putting a copyright on your GPL'd code so people don't steal it and use it maliciously. – Cole Johnson Aug 24 '15 at 23:00
  • 1
    @ColeJohnson that's correct, however it is also the copyright holder's responsibility to not be misleading about what terms the code is released under. You're not being "ignorant" if you see a "LICENSE.GPL" file that contains a free software license and incorrectly assume that the copyright holder intended for that license to apply to the code. I think a court would force the infringer to stop infringing on copyright, but would not hit them up with any damages. – Abhi Beckert Aug 24 '15 at 23:36
6

I don't think you need a specific license to do this, you just need to specify how you're applying the existing license of your choice. Adapting the "How to Apply These Terms to Your New Programs" section of the GPL version 3:

After midnight on January 1, 2020, UTC (2020-01-01T00:00+0000), this program is free software: after this time you can redistribute it and/or modify it under the terms of the GNU General Public License ...

If you specify this everywhere you'd normally specify the license grant (so in the license headers of your source code, and your general license documentation), then it's clear that the code is covered by the GPL starting in 2020. Before that there is no license grant so standard copyright terms apply ("all rights reserved" basically); you'd need to provide a separate license to any users of your code.

Once the code is covered by the GPL, it is GPL-compatible; in effect it's just the same as if you'd gone in and added the license (without the date) on January 1, 2020. The date restriction isn't a "further restriction" since that only applies if the GPL is already applicable, which isn't the case here.

In fact on or after January 1, 2020, you could publish a new version without the date restriction, just to make things clear then.

  • There's a significant difference between adding the license at the big bang date, and putting in a trigger date from the beginning: if you add the license later, only that code and all future modifications are licensed under the GPL, whereas if you put in the trigger date, all versions will become GPL. There may be interesting code in an older version that you later deleted when the project underwent a re-focusing of its goals, for example. (Unless you meant retroactively adding the license to all older versions as well, which would have its own set of problems with multiple contributors.) – Jörg W Mittag Aug 24 '15 at 16:01
  • 1
    Yes, I meant retro-actively, with all the contributors' agreements (but since it's proprietary in the mean-time, that shouldn't be too hard to control). – Stephen Kitt Aug 24 '15 at 16:07
-2

In practice you can't distribute your source if you want to keep it proprietary so trying to make time limited licences is nonsense. This isn't a licencing issue at all. You just need to make a will/tell people you trust where a latest copy and instructions to release it with a standard licence after a certain date/on your death.

  • 3
    In practice you can, and this has been done a lot. A prime example is the shared source/reference source model Microsoft used for Windows under the Microsoft Enterprise Source Licensing Program and Microsoft Windows Academic Program. – Martijn Aug 25 '15 at 9:29
  • @Martijn actually they have not released the whole source, they have kept the parts which they deem valuable completely closed. – JamesRyan Aug 25 '15 at 10:01
  • 1
    Microsofts shared source CLI is another exmple. These are clearly exmples of propriety software that have had it's source code released. That that didn't release everything under shared source doesn't negate that they did distribute source code and kept it propriety. – Martijn Aug 25 '15 at 10:10
  • 1
    @RubberDuck The question isn't about the most practical way to go about releasing code as open source in the future (and if it was it would be a duplicate of the one I linked in the question). It's about how to write a license that says to people who already have the code that they will be able to redistribute it in future, but not yet. – Ben Aug 26 '15 at 2:44
  • 1
    Thank you for that advice, but I'm already aware of the trade offs involved between the GPL and permissive licences, and that knowledge does not address the question here. I also wasn't specifically asking about the GPL (hence the "or some other open source license" in the question). – Ben Aug 26 '15 at 9:35

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.