Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can I use GPL software binaries in commercial environment? [closed]

I have a concern of using GPL v2 and GPL v3 licensed software in commercial production environment. I would like to use HaProxy as a load balancing solution. Is it safe against copy-left? I won't modify anything from source code and the architecture of the system requires the use of a load balancer.

It will be embedded in a larger distributed system. So what we sell is the whole system. On another site, we will need to install the load balancer again and could mix with something else. I think it's the "Distributing" term which is confusing me.

like image 452
code-gijoe Avatar asked Mar 25 '11 19:03

code-gijoe


People also ask

Can I use GPL in closed source?

@eMAD parts of it can, yes. For example if it has GPLed JavaScript, then the source code for that must be available.

Can I use GPL for commercial purpose?

Use of licensed softwareSoftware under the GPL may be run for all purposes, including commercial purposes and even as a tool for creating proprietary software, such as when using GPL-licensed compilers.

Can I use GPL license library in commercial software?

You can distribute your application using a GPL library commercially, but you must also provide the source code. GPL v3 tries to close some loopholes in GPL v2.

Can software licensed under GPL v2 be used commercially?

Yes a company can use it internally. The GPL just says a person with the binary can request source. So if only the people with the binary are in the company then only they can request source.


2 Answers

If you're distributing (unmodified) binaries along with a product you ship, then you're required to distribute the source with them, or provide a way for people to request the sources. This is not a situation where you can ignore the GPL, but it's not going to be a real problem for you. The GPL won't infect your proprietary software unless you link to it.

Distributing in this sense means giving (or selling) to customers. If you're just using a distributed (multi-node) system inside your company, then you're entirely in the clear, as yan says.

Incidentally, the GPLv2 (v3 here) is written to be read by non-lawyers. I strongly recommend you take a look at it. If English isn't your first language, translations are available in many languages.

like image 159
nmichaels Avatar answered Sep 24 '22 06:09

nmichaels


Haproxy is GPLv2, so you can redistribute it in binary form provided you give enough information to the end user about where to fetch the sources to rebuild it. You also need to inform them about the build options / environment, because without them, it's possible that they won't be able to get the same features.

When you have a doubt on those points, keep in mind that the GPL's goal is to ensure that if you disappear, your customers will not be left with a buggy software they can't fix. So you just have to provide them means not to depend on your availability. When you keep that in mind, it's a lot easier to make the right choice. And good faith always counts if you try to make this possible but fail because you've not thought about everything.

Also, keep in mind that whenever you start distributing software, some of your customers will ask for specific changes to better cover their needs. At first you'll refuse but after losing a few customers who all want the exact same minor feature, you'll accept. Then you'll have patched the code and be embarrassed because you won't be able to point the customer to the original site to get the code.

There are two approaches to this : - the patch is of general use and you don't want to maintain it. Just submit it for inclusion into mainstream. If it's accepted, you can update your version and don't need to maintain a patch anymore ; - the patch is too much customer-specific and has no chance of being accepted, then you need to make it available to your customer along with the build instructions so that the customer can still grab the official release, patch it and build it.

One possible typical patch is to remove some names/urls/versions etc in the doc to make it appear cleaner and better integrated with your solution. Removing these information is right if you provide the patch which removes them. That way there's no obfuscation, your changes are transparent.

In any case, if you spot a bug and think you fixed it, you're strongly encouraged to submit it for review, as it's common to fix the consequences instead of the causes.

like image 38
Willy Tarreau Avatar answered Sep 24 '22 06:09

Willy Tarreau