19

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)

Ben
  • 460
  • 2
  • 11
  • 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 03: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
  • Echoing Luaan, you may want to pick something other than GPL, but saying that availability under a certain license starts on a particular future date should not be a problem. – WBT Aug 24 '15 at 13:16
  • 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
  • @JamesRyan post that as an answer please. I think it's the most sensible solution and I'd like to give you an upvote for thinking of it. – RubberDuck Aug 24 '15 at 23:51
  • @JamesRyan I'm not asking about the practical issues here. I can most certainly give people access to my IP without licensing them to redistribute it; as has happened with almost every book published since copyright law was invented. Whether it's commercially a good idea and whether or not it would be practical to enforce my rights is not an answer to this question. The bit about being hit by a bus was a quote from the other question I linked, as an example of how it was different; sorry if that was unclear. – Ben Aug 25 '15 at 00:35
  • The difference between software and a book is that the value is in how you did something not the specific words used. – JamesRyan Aug 25 '15 at 09:26
  • @Luaan why would that be so? People who are already using the work under the early-period commercial licence can continue using it under the provisions of that licence, unless they choose not to. Rights they have paid for won't evaporate just because the rest of the world can now choose to use the software under GPLv3. If the OP had written "After the 1st of January 2020, you may only* distribute this work under the terms of the GPL v3*" it is possible (though not, to my mind, certain) that your fears might be realised, but he did not. – MadHatter Aug 25 '15 at 10:05
  • @MadHatter I'm pretty sure you'd have to explicitly note that this new license doesn't invalidate the old license - but this is the kind of thing that kind of needs a lawyer. You can't just assume this is how it works - there's plenty of precedent for entirely silly laws and licenses. Ambiguity usually isn't a good idea in documents like this. Even if it did work like you think, the OP still wants people to keep using (and improving) his work after he abandons the project - sticking with ten years old version is probably a bad idea. And I know e.g. our company could never use anything GPL. – Luaan Aug 25 '15 at 11:52
  • 3
    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
  • Just wondering why you would want to do this. Wouldn't it be simpler to just say "All Rights Reserved" for now. Then, when 2020 rolls along, take that opportunity to push out a new version with the GPL attached. Announcing that you're GPL'ing it may momentarily probably boost its popularity and give you more site traffic, etc. – Brandin Sep 16 '15 at 14:22

4 Answers4

10

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.

Abhi Beckert
  • 2,899
  • 1
  • 14
  • 24
  • 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 Tobin Aug 24 '15 at 10:27
  • 6
    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 Tobin Aug 24 '15 at 23:00
  • @AbhiBeckert I feel that it's the programmer B's responsibility to know the licensing terms of a project before modifying it; he should read the LICENSE or README before doing anything. And in the (US) courts, ignorance of the law is not an excuse. – Cole Tobin Aug 24 '15 at 23:03
  • 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
  • 1
    That is nonsense. If I place the texts of e.g. MIT and GPL in a bundle, it doesn't mean you can choose the license you like most, particularly if I state none applies – vonbrand Mar 05 '16 at 18:45
  • @vonbrand if it goes to court, a jury will decide what license applies. Juries are not trained in copyright law and might not even speak English. You need to be crystal clear to avoid stupid decisions - copyright lawyers say asking a jury to decide any copyright issue is almost like flipping a coin. – Abhi Beckert Mar 05 '16 at 20:27
7

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.

Stephen Kitt
  • 4,183
  • 18
  • 32
  • 2
    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
  • 2
    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
5

These types of licenses are called "springing licenses." One example of this type of license was created by MariaDB - the Business Source License. This might not quite meet your objectives, since the time period (of no more than 4 years) starts when it is first "released". So, if the code is only used internally, it would never have to be open sourced. Before it is open sourced, there are restrictions that disallow the use in production (unless granted by the licensor), but allow the redistribution. This license requires that the new license be compatible with GPL. However, it would not itself be compatible with GPL until then.

Jonathan
  • 151
  • 1
  • 2
-3

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
  • 103
  • 3
  • 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 09: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
  • @Martijn no that is an example of sharing interface code to make it easier for people to connect to/from their entirely closed source proprietary software. You are highlighting a technicality while completely missing the point that they are still keeping the part which they value secret rather than sharing it and protecting it with a licence, because in reality a licence wouldn't stop people reengineering those methods into their own 'original' software. – JamesRyan Aug 25 '15 at 10:28
  • I don't understand the down votes. This is legitimately the most practical way to go about this. – RubberDuck Aug 26 '15 at 00:39
  • 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 02:44
  • @Ben the problem is that if you choose a restrictive licence like the GPL that is incompatible with other work it will put a lot of people off in the short term rather than add value. – JamesRyan Aug 26 '15 at 09:19
  • 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 09:35
  • @Ben none of that changes the fact that it makes no sense to release proprietary source code to begin with. – RubberDuck Aug 27 '15 at 02:13