28

I plan to develop an application using an easy to use GPLv2 licensed libraries. Once my app is complete I plan to distribute it free and open source complying with GPLv2 copyleft requirements. The GPLv2 source code will not be put online, but can be obtained by request.

However, down the line, say after 1 year, I intend to replace those GPLv2 libraries with commercial ones. I will also make my application closed source and commercial.

Since there are people already using the open source version of my application, am I obliged to give them the source code upon request? Note: The open source version of the project has been abandoned.

  • Comments are not for extended discussion; this conversation has been moved to chat. Discussion of the OP's business strategy, license choice, and other peripheral matters not concerned with the substance of the licensing question asked here should be directed there, or else asked in a new question post. – apsillers Jun 18 at 0:09
50

The GPL gives you a few options for how to distribute source code. Typically, you distribute source at the time you distribute the binary. However, section 3(b) of the GPLv2 allows you to distribute a work based on another GPL-licensed work, in binary form, as long as you also

Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange

The approach will work for you so long as you are prepared to respond to requests for source code for at least three years after you stop distributing a version of your software that includes GPLv2-licensed work. Since this offer is only usable by someone who has obtained your GPLv2-derived software, for three years after you distribute it, your obligation to supply source will naturally end three years after you switch to dependencies that do not include GPL-licensed code. This obligation only extends to the version(s) of your software that include GPLv2 components: fully non-GPL versions may be distributed with no source, even during the three years that you are required to share your the source of your old GPL'd version(s).

Note that this would require you to send the source, in physical media, to anyone in possession of your binary, upon request. Probably anyone would be willing nowadays to receive it via download instead, but recipients do have that right under the GPL.

Note also that this distribution of source still happens under the GPL, so any recipient in the world can take the source you give and upload it to a public website, forever. You might not get any requests for source code after that (unless you release a new version) because your source code is now freely out in the world.

In view of those factors, it's not clear to me what benefit you'll see by using a written offer, and you'll be incurring a three-year obligation to potentially mail out source code. If you're worried that everyone who downloads your binary will have to download your large source code as well, rest easy that the GPL expressly does not require users to download the source if they do not want it (emphasis mine):

If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.

  • 3
    Three years... that sure is an important keyword here. Thanks for the reply! – user1034912 Jun 17 at 5:28
  • 1
    "Note that this would require you to send the source, in physical media, to anyone in possession of your binary, upon request. Probably anyone would be willing nowadays to receive it via download instead, but recipients do have that right under the GPL." Has this ever been tested in court? I don't think any court would entertain anyone that claims their rights have been violated because they got offered a one-time transfer of information digitally instead of on physical media regardless of what the license says. – orlp Jun 18 at 11:58
  • 1
    @orlp I'm inclined to agree, but not because the court wouldn't care what the license says, but because they would most likely find a favourable interpretation in the word "medium", which (to me) doesn't imply that the medium must be physical. – JBentley Jun 18 at 13:24
  • What if you die in this three year period? Can your estate be sued? What if the ability to produce this code dies with you--could your beneficiaries be sued, and if so by who: the user of your software, or the authors of the GPL'd software you linked to who required you in turn obey the GPL? What if you yourself lose the ability to produce, due to disk crash or dementia? How long do you have to deliver the source--what if you take over three years to do so? What if the request is after 2 years 364 days--can you wait a day then no longer need to service the request? – Swiss Frank Jun 18 at 18:12
  • 1
    @SwissFrank What happens if you publish something under the GPL, offer binaries only, and include a "source available on request", but then die within 3 years and are therefore unable to meet this GPL obligation, might be an interesting legal question for law.stackexchange.com but not for Open Source. – Brandin Jun 19 at 9:45
8

You have to make the source code available in some form if you publish the program. If you never publish it, you have no obligations whatsoever.

If you publish, you have (in theory) three possibilities:

  1. If there is a commercial distributor of the software, you can point everyone to that distributor to get the source code. This doesn't apply in your case, since no commercial distributor has the source code.
  2. You can promise to supply the source code to anyone who wants it, charging only reasonable cost.
  3. You only ever distribute the software together with the source code.

Once you distribute one version, as you plan, you have to supply the source code for that version to anyone who wants it, unless you only ever distribute application and source code together. There are no requirements for newer versions that you don't distribute, or for newer versions that you distribute with no open source code within.

What about your own code that was part of the first, open source, version? Isn't that open source? Yes, it is. But the only one with the right to complain is the copyright holder, that is you yourself. So you are fine distributing future versions without source code.

  • 8
    @user1034912 If the source code is that big, how big is the binary and how do you distribute that? – Brandin Jun 16 at 8:31
  • 9
    @user1034912 If you cannot comply with the GPL then you cannot use those libraries. If you don't want to supply the source code together with the software you will have to look into that "written offer" mechanism, and e.g. offer the source as a download. But out of interest, how on earth do you get multiple GBs of source code? If things like assets are inflating the size, you may be able to split them off. – amon Jun 16 at 8:33
  • 3
    in my understanding, making both available for download at the same time is enough. iaw: if you provide two links, ideally close to each other so they can't be missed, one for the binary and one for the source, should be enough. – eMBee Jun 16 at 8:39
  • 4
    @user1034912 If your source code is so big that you cannot distribute it with your application then the alternative is much worse - having to distribute the source code to anyone who wants it, even people that you are not connected to at all, and that forever. – gnasher729 Jun 16 at 15:02
  • 7
    @user1034912 Is your GPL'd source code that big? Or is it the size of the entire project including media files? If it's mostly media files the typical solution is to split the project into the GPL'd "engine" and the non-GPL media files the engine uses. Many Open Source rewrites of video games have used this approach, for example Aleph One. – Schwern Jun 16 at 20:59
5

GPL doesn't define what constitutes an abandoned software. FWIF you can declare your software abandoned right after the release, but that doesn't mean you don't have to provide the source code if you release it under GPL.

What matters in terms of GPL license is distribution. If users can obtain software from a source that's under your control, you're distributing it, so you have to provide the source code. If you stop distributing the software, you have no further obligations (unless you opt to provide the source code on demand, in which case such offer should last for 3 years after you stop distributing the software, so it's wise to avoid this option).

3

Because the answers to legal questions differ from country to country, I can only speak about the situation in Germany. However, I think that the situation in other countries of the European Union is similar.

I also have to say that I'm not a lawyer, so my understanding may be wrong.

Because German law does not know the word "license", a court had to decide what a "license" (such as the GPL) actually is. (It was a trial of some Linux developer against a company which created a closed-source variant of the Linux kernel.)

The decision was (more or less): A license is a document written by the copyright owner where he defines the conditions and terms under which he grants other persons the right to copy the software.

This definition has consequences:

If you publish your software under some license, other people must observe the license terms to legally copy and re-distribute it (in Germany).

Because nobody is required to grant any permission to himself, the copyright owner himself may legally copy and re-distribute the software without observing the license terms!

So you may even distribute your own software under GPL license and keep the sources secret!

(Of course this makes absolutely no sense, but it would be legal.)

BUT...

  1. Normally, GPL projects contain code written by other developers (such as libraries) that are also licensed under GPL code.

    The other programmers published their code under GPL license, which means that you have to observe the GPL's license terms to legally use their code!

    If you don't observe the GPL's terms, you violate their copyright (unless the other developers explicitly grant you the right to use their code)!

    And GPL would require you to provide the sources for download a certain time (as far as I understand correctly: three years) after you delivered the binaries (unless you deliver your program together with the sources). So if you provided the sources by request, you still have to provide them three years after the last download.

    One single line of code in your project which is not written by you - and you must observe the GPL terms!

  2. Once you published your software under GPL, you granted everybody to copy, modify and re-distribute your software - forever!

    You may sell your program as closed software if all source lines without exception are written by yourself (and not taken from another GPL project).

    However, as far as somebody has the source code of the old version, he is allowed to improve the old version of the program and to re-distribute the improved version for free!

    This means that there will be a free version of your program available and you cannot forbid anybody to copy, re-distribute or to use that free version.

    I doubt that you will sell too much copies if there is a free version available.

  • GPL does not require to deliver compiled software with the sources, you can offer to provide sources upon request. Or did the German court rule against section 3(b) of the GPL? – Dmitry Grigoryev Jun 18 at 8:36
  • 1
    @DmitryGrigoryev Seems that I have confused GPL with another FOS license. I'm editing my answer. – Martin Rosenau Jun 18 at 10:40
  • Because German law does not know the word "license", a court had to decide what a "license" — when I read that, I knew that the rest of this answer would be massively informative, as an English speaker who has never really thought about what "license" means exactly in that context. Thanks for the write-up. – Mark K Cowan Jun 18 at 13:36
  • 1
    @MarkKCowan Of course the German language knows a translation of the word "license". However, in Germany you must observe laws made by the parliament and contracts that you have agreed with - but there is no law that says that you have to observe a "license". For this reason the court's decision was very important because it explains under which conditions a "license" must be observed and under which conditions it can be ignored in Germany. – Martin Rosenau Jun 18 at 13:59
  • 2
    @MarkKCowan Isn't the situation with "license" exactly the same in English? I've never heard of a law that grants special status to licenses, they're just contracts that give you permission to use something in ways that copyright normally forbids. (IANAL) – user253751 Jun 18 at 22:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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