Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am creating an internal application for the company I am contracted to. We wish to use a GPLv2 licensed library in this application. Some points

  1. The application is to be used within the confines of the company and never be available for public use. It is for internal company use only.
  2. It will never be sold, ever!!. So no money will be made directly from selling the code. It's not a product.
  3. There are two forms of usage of the application
    • Its native form which is console based exe (which uses the GPL library); and
    • Usage via a web interface which calls the executable.
  4. The source code will remain closed source (company use only), and be propriety

I have gone through numerous questions on SO about this (one closed as off-topic and another unmarked from Programmers ), but I have had a hard time in understanding whether my interpretation of the licence is correct.

Based on my understanding thus far, I am permitted to use this library without any concern. I am not modifying the source code nor am I distributing the application or making the application publicly available. The application will not be sold nor will it be distributed to anyone outside the company (It will however be available at our company's offsite DR facility). I am very likely to use the released versions binaries and not re-compile from source.

The following question from the GNU FAQ seems to support my thoughts.

Does the GPL require that source code of modified versions be posted to the public?

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.

But if you release the modified version to the public in some way, the GPL requires you to make the modified source code available to the program's users, under the GPL.

Thus, the GPL gives permission to release the modified program in certain ways, and not in other ways; but the decision of whether to release it is up to you.

Can any GPLv2 licensed library be used in a company's internal intranet application?

share|improve this question
2  
This is a legal question for the company's attorney or chief legal consul to decide. –  hotpaw2 Jul 25 '11 at 6:27
1  
@hotpaw2 -your suggestion definitely has its merits & is the best guidance once can give, it really does baffle me that with all the developers in the world,these questions are still asked & still in some cases remain unclear.I guess local jurisdiction applies,but seriously though,my feeling is that the licence is deliberately unclear about certain aspects.Now if developers who use this software have not been able to get clear answers,IMO trying to explain concepts to lawyers and getting their interpretation of the licence is a lot to ask.An answer for developers by developers is the way to go –  Ahmad Jul 25 '11 at 7:25
    
@Ahmad: The only aspects I've found seriously unclear are the parts that need to respect copyright law: what is a derived work, what is distribution, etc. Until we have legal clarification (in the US, that could involve changing the text of the law or court rulings producing case law), nobody is going to know that for sure. –  David Thornley Sep 21 '11 at 15:58
    
As you mentioned that there are two forms of usage of the application 1) Its native form which is console based exe (which uses the GPL library); and 2) Usage via a web interface which calls the executable. For the 1st one, please clarify that 'Is it a calling to GPL library through a system calls or through a custom calls'? –  user54291 May 17 '12 at 14:01

9 Answers 9

The GPL, in all its variants, is a redistribution license. It simply doesn't apply at all if you don't redistribute code. It may apply in the future if, some day, you decide to make a product out of your application, but not now.

share|improve this answer
    
As long as it is never redistributed the license has no effect on you. None. Of course, run that by your counsel if you are at all uncertain, and make sure that they are familiar with copyright licensing law. –  Michael Trausch Jul 25 '11 at 8:33
1  
In other words all those who have the binary, must also have the corresponding source so they can fix bugs and create a new binary. –  user1249 Jul 25 '11 at 10:04
    
So does this mean, that I also can use GPLv2 website inside company, without selling it's functionality? –  Johnny_D Sep 19 '13 at 12:46

I think you have quoted the answer, so you have it.

My knowledge of the GPL is that for what you want to do, you have no problem.

share|improve this answer

Yes, you can BUT take into account cooperation with subcontractors, partner firms and the likes. This has came to bite many admins in the backside, as "just for in-house" became "shared among partners" then "product for sale". Then either the GPL parts need to be rewritten from scratch or you release sources to your Intranet.

share|improve this answer
3  
OTOH, most of the dreams of making money out of the tools developed for in-house use the managers dream are crushed when realizing how corporate-specific and buggy the application really is. The license always was the last problem i encountered, when such scenarios occurred. –  keppla Jul 25 '11 at 7:23
    
@keppla: Yes, and that means: Use it, but be aware of it. Keep semi-clear borders between your proprietary and GPL'd, so that if the time of change comes you won't find yourself hopelessly entangled. "Business secrets" separated with good abstraction layer of some glue logic from GPL parts. –  SF. Sep 8 at 8:47

The answer here hinges on the legal definition of distribution.

If giving a program to your employees to run is distributing it, then the GPL requirements apply, and you have to give the employees who receive the program the source as well.

If giving your employees a copy of the program is not distribution, then you have no requirements, as you have not distributed it.

The FAQ you have quoted tells you that you do not have to make your code available publicly. (That is, to any random person on the street.)

Note that it's clear that under GPLv2 that a web service is not considered to be distribution. It's only the console application that is confusing.

I suggest that you get legal advice from your company's lawyer.

share|improve this answer

I don't think that would be a problem. Web applications using GPL'd code but not available in source code form to users is one of the issues that the GPLv3 changed compared to GPLv2, closing that "loophole". This seems like largely the same question.

Depending on what exactly the library is for, another obvious way to avoid the entire issue is to create a very simple wrapper around the library. If the library is GPL, then the wrapper might end up needing to be GPL'd, but if the interfaces are clearly separated, then the license of the wrapper code should not (I almost said will not, but consult with a properly skilled legal practitioner) have any impact on the licensing requirements of the main application.

share|improve this answer

It's important to remember in all of this "programmer-to-programmer" advice that none of it is legal counsel. As this thread makes clear, there is room for interpretation with GPL.

You've got to weigh the cost of exposing your organization to legal action if you violate the GPL vs. getting a good, sound legal opinion. There are good ideas in this thread, but I wouldn't make a decision on this input alone.

--

For example, here's a wrinkle: What if the the GPL'd code is JavaScript?

When a user accesses a website with GPL'd JavaScript code, technically the "source code" (in this case a JS file) is "distributed" to the end-user. Does that mean your entire website needs to be GPL'd? There's an entire debate about that, too.

While I hate paying lawyers as much as the next hardworking guy, given the risk, this is one area it's generally better not to depend on Internet advice (except for this advice, of course).

share|improve this answer
    
Irrelevant - the OP is asking about a completely internal application. In that case, no version of the GPL says anything about having to distribute anything (although linking to non-GPL-compatible software may be a problem), and the Gnu FAQ addresses that lack of requirements directly. –  David Thornley Sep 21 '11 at 15:49

The LGPL version 2 allows you to redistribute the source and binary.

You can even sell it.

The only real restriction is as follows:

If you modify the library and distribute it, then you must release the changes you have made to the library publicly. Read point 2 of the LGPL.

If you don't modify it you don't really have a problem.

share|improve this answer

As previous posters have said, the GPL license only applies if you release your application, if it remains for internal use only, then there is no issue. However, it is worth considering the implications regardless, in case this ever changes.

My basic understanding of the license is that it allows you to modify the source code, then sell the resulting application if you wish, but on the condition that you make the source code available to anyone that asks, including any changes you made to it.

In the case of a compiled library, the GPL'd code is separate from your main code base, and as such only source code for the compiled library is required to be released - not the rest of your code base.

Where the library is not compiled - i.e in a PHP application, I believe the separation still exists. Say for example your application uses an open source library to generate PDFs - any modification to the PDF generating code would be covered by the license and any enhancements must be released, however any code within your application that uses this library does not need to be released.

Please note that this changes with GPL v3 whereby your code must be open sourced if you link to an open sourced library...

share|improve this answer
1  
"only source code for the compiled library is required to be released" -- this describes the LGPL, not the GPL. The GPL works under the assumption that linking to a library makes your application a derivative work of the library, and hence, subject to the GPL itself. –  Sean McMillan Jul 25 '11 at 13:01

I'm not sure whether it's OK to forbid the employees to redistribute that application, since the application itself is also GPL. So what you think may be an "internal application" might potentially be (legally?) leaked together with the source code.

share|improve this answer
    
Please elaborate on 'since the application itself is also GPL'. What are you referring to? If anyone wants to take the GPL'ed library only and distribute it, the licence kicks in from what I understand thus far. The intranet application (console n web) is NOT for distribution and if any employee decides to 'redistribute' the company's application I'm pretty sure he wont be an employee for long thereafter.. –  Ahmad Jul 25 '11 at 10:01
    
The console-based EXE is GPL since it uses a GPL library, and, as such, the GPL requires that it must remain freely redistributable by anyone who gains access to it. Yes, an employee might lose his job for doing so, but it is his right to redistribute the GPL'd EXE with the source. Though, other rules and laws (e.g., trade secret) might apply. Check with a lawyer whether you can really hold "disloyal" employees responsible for doing that which is granted by the GPL. –  zvrba Jul 25 '11 at 11:26
    
please re-read the question. The majority of answers seem to disagree with you or is there something we are all missing? The application (incl the GPL'ed part) is NOT for distribution/re-distribution, will be used internally only, not sold, not public facing. The GPL library will NOT be modified in any way whatsoever. You do know that Google use modified versions of linux kernal for internal use only and do not distribute this version. I stressed internal use only. –  Ahmad Jul 25 '11 at 12:20
    
Whether you intend to distribute the application or not is irrelevant. The GPL is clear on the following: anyone who gets his/her hands on a GPL work can freely distribute it further (and can demand the source code). Talk to a lawyer to find out what else can be held against your employees if they choose to distribute the GPL work, as the GPL license allows them. –  zvrba Jul 25 '11 at 12:53
1  
The application is not automatically GPL by including a GPL library. However, if you wish to distribute an app that includes a GPL library, it must be licensed under a GPL compatible license. Section 7 of GPL V2 states: If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. So if you do not have permission to distribute your companies application code, you cannot distribute the application. –  KeithB Jul 25 '11 at 15:46

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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