3

I see in the GPL license FAQ :

Does the GPL require that source code of modified versions be posted to the public? (#GPLRequireSourcePostedPublic)

The GPL does not require you to release your modified version, or any part of it. You are free to make modifications and use them privately, without ever releasing them. This applies to organizations (including companies), too; an organization can make a modified version and use it internally without ever releasing it outside the organization.

I always saw the GPL license as a more restrictive license than MIT, BSD, etc., and as a way of being sure that if modifications/improvements are done (and/or used in a commercial context), the improvements would benefit to the original author and the whole community. Because of the FAQ answer mentionned here, it seems that I was wrong.

Question:

Doesn't the GPL license help to be sure that improvements of a software can benefit to the whole community? If so, are there some other well-known licenses that care about this question?

Let's take an example. Is there an open-source license that requires that if somebody does a new JSBIN by reusing parts of https://github.com/jsbin/jsbin, then this new "online service" would need to be open-source? It seems that GPL does not offer this, according to the point discussed in the first part of this question.

8

Yes, undistributed improvements don't need to have source code released. This was an intentional decision when designing the GPL; you're allowed to modify the code for your own purposes without needing to tell anyone what you're doing, or to distribute anything related to it. The GPL was never intended to say "if you improve the code, you must release the improvements", but rather "if you do release the improvements, you must release them as free software."

The goal of the GPL is definitely not to ensure that any improvements benefit the whole community. Instead, the GPL is designed to help give users the four freedoms defined by the FSF. With permissive licenses, open-source software can be incorporated into closed-source software with restrictions that the FSF doesn't think are ethical (in some cases, a closed-source program can completely displace the FOSS program it's derived from, and the FSF certainly doesn't want that to happen); thus, the GPL requires anyone distributing GPLed software or derivatives of GPLed software to give users those freedoms. Otherwise, closed-source software could use open-source code but not vice versa, giving closed-source a competitive advantage.

This only applies to users of the software; while users must be able to distribute it, non-users have no right to obtain it (they have to find a user who wants to distribute it to them). Freedom 3 says that users must be able to let the community benefit from their changes, but if you don't want the community to do that, you're free to not distribute them. The only rule is that any users of your changes must also get the four freedoms, so you must GPL your derived work if you release it. Non-users have no rights relating to your software; that's just not what the GPL is for. Internal corporate use is a bit of a special case (because your helpdesk people likely don't have access to the code of your modified GPL ticket management system for administrative reasons); there, since the employees are employees using it just as part of their job, the FSF considers the "user" to be the company, not the employees. Likewise, using a public kiosk doesn't make you the user of the software for free software purposes, so you don't get source code.

That was the original purpose: the community often gets improvements, but that's a side effect of ensuring user freedom. Someone who just wants to do something for their own purposes doesn't have to care. However, with the Internet, the line was blurred between "internal use" and "sharing with the world" -- strictly speaking it's similar to public kiosks, but it feels kinda different. With the Internet, you can use your program as part of something you're offering the whole world, while never actually distributing it under the GPL's meaning. While modifications generally got distributed under the GPL, the Internet means that many kinds of software (e.g. database software) can easily be used to provide a service to the general public without being distribution under the GPL (I think this vs. kiosks is mostly a matter of scale and context), so the FSF added a different license (the AGPL) that says that if you host an AGPL program for people to interact with (but only running it on your server), and you modify it, you have to share the modifications. The AGPL isn't that commonly used, though.

  • Thanks for this answer. So this means that GPL won't help much more than MIT license in order to make that if you make a great library, any people using it (for example commercially) should release any improved version? So I should probably stick on less restrictive MIT license, if GPL doesn't help much for that... What do you think @cpast ? – Basj Dec 3 '14 at 20:04
  • By the way, @cpast, what do we call "distribute" ? Example : can I fork "GIMP" (GPL license), modify it, improve it, and release it / sell it as a commercial product without sourcecode (like Photoshop)? (this is just an example, of course I don't want to do so)... Here is the full question about this : programmers.stackexchange.com/questions/264577/… – Basj Dec 4 '14 at 16:19
  • 1
    @Basj No, if you release it to the general public, it is distribution. Internal use is not distribution, because the idea is that the software belongs to the organization (a corporation can have a private copy just like a person can have a private copy); there are also a few conditions in GPL v3 where you can hire someone to run or modify the software for you and only for you, and they don't get GPL permissions. Any time you give it to someone else to use for their own purposes, you've distributed it and they have full GPL rights. – cpast Dec 4 '14 at 17:49
  • 1
    Actually, to be more precise: Internal use, as it's a private copy, isn't even propagation; putting it on a public kiosk that your company owns, or using it on your company's web server, isn't conveyance; giving it to contractors under a couple circumstances is allowed conveyance (without other restrictions, based on the idea that you can contract out some things where the contractors are acting like your employees). Distribution is defined in relevant copyright law and can vary between countries, but the US definition is like GPL 3's terms. – cpast Dec 4 '14 at 17:54

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.