I am looking for a software license which has stronger protection than AGPLv3. The GPL license said that when we distribute the software, we must provide a way for user to download the source code. However there is a loophole in this license, the GPL FAQ said (see below) it is not considered "distribution" if the company uses it as an internal project. Is there any license which require to distribute the source code, even it is only used in a company's internal project?

PS, GPL FAQ "Internal Distribution" section:

Is making and using multiple copies within one organization or company “distribution”?
No, in that case the organization is just making the copies for itself. As a consequence, a company or other organization can develop a modified version and install that version through its own facilities, without giving the staff permission to release that modified version to outsiders.

However, when the organization transfers copies to other organizations or individuals, that is distribution. In particular, providing copies to contractors for use off-site is distribution.

closed as off-topic by user40980, Kilian Foth, ratchet freak, Martijn Pieters, Ampt Sep 15 '14 at 0:57

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions asking us to recommend a tool, library or favorite off-site resource are off-topic for Programmers as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it." – Community, Kilian Foth, ratchet freak, Martijn Pieters, Ampt
If this question can be reworded to fit the rules in the help center, please edit the question.

  • You could make your program a Quine in some mode. That is, embed the source code inside the binary. But I don't understand why you care: if a company transmits the binary to internal users which are not developers, why should they care about source code? – Basile Starynkevitch Sep 7 '14 at 7:00
  • 2
    Why do you ask? What is your nightmare scenario? What is your free software project doing? – Basile Starynkevitch Sep 7 '14 at 7:10
  • @BasileStarynkevitch Well, I am just asking, I don't have nightmare scenario. I wrote some libraries and I want to require improvements to my code to be released back to me and the general public. I don't think you could assume the internal users are not developers. e.g. Consider I wrote a powerful open source IDE. A software company changed the code, did some improvement and use it internally. I want this software company release the modified source code in such scenario. – ytj Sep 7 '14 at 8:26
  • 2
    No, in practice that won't happen in a big company: it is too risky for them. The most likely outcome if you wrote an open source IDE with an unfamiliar license is that nobody will use it. – Basile Starynkevitch Sep 7 '14 at 11:12
  • 1
    I believe you have unrealistic concerns. You should want your code to be used. An unfamiliar license will in practice prohibit that (any professional user would have to ask his manager and/or lawyer before convincing colleagues to use it). Don't be that afraid about "stolen" code: when and if that is happening, you have already succeeded, because you have interested a lot of people. Getting outside interest on your free software (with a familiar license like GPLv3) is already hard! – Basile Starynkevitch Sep 7 '14 at 11:20

If you are asking about license that forces to attach source to every binary copy somehow, I highly doubt that somebody wrote something like this; since it implies that any software under this license would be at least twice larger than usual, which is not crucial, of course, but still is quite onerous for end-user.

If you are interested in licenses that forces anybody to publish sources of any modifications they made, even if they are for internal use in organization only, then yes, there was at least one licence of that kind – Reciprocal Public License.

But, think seven times before you use it. Besides the obvious incompatibility with GNU GPL, so you would not be able neither to borrow (A)GPL-code for this project, nor other (A)GPL-projects would be able to use your code (many believe, this is enough to avoid such a license); licenses with that kind of restrictions do not qualify as licenses for Free / Libre Software at all (according to both FSF and DFSG), in other words, your project would be considered as non-free / proprietary software. This implies that it would never be included in main repositories of most free operating systems (such as Debian, Ubuntu, Red Hat, Fedora, etc).

  • 1
    Also, (large) companies won't use software with a license unfamiliar to their lawyers. So stick to widely used free software licenses! So think 7 * 7 times before using that Reciprocal Public License, in other words use GPLv3! – Basile Starynkevitch Sep 7 '14 at 11:13
  • @BasileStarynkevitch I got you point, I think LGPLv3 is probably better for my code (Unfortunately there is no Lesser AGPL). Personally I don't like GPL, because according to the GPL FAQ, it is possible to distribute the GPL-covered software alongside with proprietary system via "arms-length communication". Which makes GPL less useful. – ytj Sep 8 '14 at 11:20
  • 1
    @ytj I’m not sure, I got your point. You’re dissatisfied with possibility to include GPL-covered software into proprietary products, if they are communicating ‘at arms length’, so you’ve decided to allow your program to communicate with proprietary software even at the most ‘intimate’ level by applying Lesser GPL? – Dmitry Alexandrov Sep 8 '14 at 11:56
  • @DmitryAlexandrov Yes, I know LGPL is less strict than GPL. I choose LGPLv3 is because it would be easier for people who really want to include my code into their proprietary system, since we couldn't avoid it anyway (even with GPL). Sorry for the confusion, – ytj Sep 8 '14 at 23:19
  • @ytj Prohibition to incorporate some software into non-free system (that essentially means ‘using it in the same time on the same computer along with any non-free program’) would go far beyond all reason. So lack of such a weird possibility is not considered as a problem by thousands of developers who are using GPL for their projects. But if your intention is to make lives of commercial companies that release proprietary software a bit easier :), LGPL would fit better, of course. – Dmitry Alexandrov Sep 9 '14 at 0:16

Well IANAL, but I think there is good reason why GPL allows internal use without distribution: in reality, it would be extremely hard to enforce a stronger kind of license on any company as long as they keep all their stuff internal. And if a company decides not to publish or distribute certain source code or code modifications, any employee taking actions against that decision could be easily sued by them for a breach of business secrets.

So, I am pretty sure there exist some written licenses which try to enforce distribution even when done internally, but I think also that any of them is pretty useless.

  • 2
    Plus, of course, Stallman's whole point originally was not "software should be free", but rather "users should have full access to the software they use". If you're weren't a user of the software, he didn't think you had a right to the source code. If you were a user, he thought you should be able to do what you wanted with it. – Ross Patterson Sep 7 '14 at 15:30

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