Using a GPLv2 library in a web project

bsdgpllicensingopen sourceweb-applications

I'm trying to understand the way that GPLv2 works, and have a couple of questions.
I'm going to describe a couple of scenarios, and want to know how GPL applies there.

  1. I make a web application that uses a GPLv2 library. I put this project in a public repository (github). The project calls functions from the library, but does not actually include its source – it just pulls it from the developers repository via a package manager during deployment. Do I still need to license the project as GPLv2?
  2. The same scenario, but I do NOT put the project in a public repository. As far as I understand this would not count as "distribution", so I don't have to bother with GPLv2 at all?
  3. I make a project that is built on top of a BSD-3 licensed framework and also use a GPLv2 library. Parts of the framework are included in the project, but the GPLv2 library is only downloaded during deployment. Which license has higher precedence then? Do I license my project under BSD-3 or GPLv2?

Best Answer

When you use a GNU GPL library then the whole software needs to be licensed under the GNU GPL. There is a variant of the GPL, the LGPL (Lesser GPL or Library GPL), which allows to call the library from a non-GPL software. But the authors of the library seem to have intentionally picked the GPL insted of the LGPL, so their intention seems to be to not allow it to be used for non-GPL software. Your build process is irrelevant. What matters is if the software is usable without the GPL component. When it is not, you need to license it under GPL.

The BSD-License, on the other hand, is a so-called "permissive" license. You can use BSD-code in a project and still license it under a different license as long as you follow the requirements of the BSD regarding attributing the original authors and the license conditions of their code (which only applies to their code, not what you built around it).

tl;dr: your whole project needs to be licensed under GPLv2

Rearding not putting the sourcecode on a public repository: When it is a web application, does it include Javascript code which is executed in the client browser? When that is the case, that Javascript code is distributed to your visitors and needs to be licensed to them under GNU GPL. But any code you only use server-sided is not distributed to the users, which means that you don't have to publish the sourcecode (there is another variant of the GPL, the AGPL, which also requires to license the software to anyone who uses it via a network, but the normal GPL does not have this clause).