Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Web Services and open source libraries - licensing [closed]

Tags:

licensing

gpl

Could you please suggest which are the well-known "open source" licenses allowing me to use libraries under these licenses in proprietary webservice (accessible in Internet to the public), which I am not going to make opensource.

I am ok to state somewhere that I am using the library, and I am ok with sharing the changes I make in the library.

I guess GPL ones does not work here, as I am not going to release whole product as GPL, what are other options?

That's what I've found about Meebo & libpurple:

I have a licensing question. Do you guys feel that Meebo's use of libpurple is acceptable given the GPL status of the libpurple codebase? According to a post on the Meebo website, they feel that they are not required to release their source code because they do not directly distribute binaries to customers (since Meebo is a web application). The reason that I ask is because I am thinking about starting a project using the libpurple codebase and I'm wondering what the licensing restrictions would be.

And the libpurble developer replied that it's ok :-S

Also, I've found this:

The loophole referred to is that an “Application Service Provider” (hence “ASP”) gains the benefit of the freedom of a copyleft license, by running the program and (presumably) gaining whatever benefits come from having people access the running program across the network; but the provider can argue that they themselves are not redistributing the work as such, so they are not obliged to offer recipients the same freedom.

That says that we can use GPL v2 & v3 code in web services while we are not distributing the application itself (for example like google does). Is that correct?

like image 897
BarsMonster Avatar asked Sep 13 '10 13:09

BarsMonster


People also ask

What is a closed source license?

Closed source means computer programs whose source code is not published except to licensees. It is available to be edited only by the organization that developed it and those licensed to use the software.

Can I use open source libraries in commercial software?

Open source software can be used for commercial purposes. This means you can use open source software for commercial purposes — but you can't always place restrictions on people who receive software from you. And commercial doesn't mean the same thing as proprietary.

Does open source software require a license?

Open source licenses are licenses that comply with the Open Source Definition — in brief, they allow software to be freely used, modified, and shared. To be approved by the Open Source Initiative (also known as the OSI), a license must go through the Open Source Initiative's license review process.

Are open source licenses enforceable?

Because open source licenses flow directly from the author/owner to the licensee, the only party in a legal position to enforce the GPL is the author or owner of the copyright. Intermediate distributors do not have the power to enforce except with respect to any contribution they may make.


2 Answers

This wound up being a long answer, so for those who don't want to read it all:

tl;dr: You don't have to worry about running the code on your own server, unless the license is AGPL. You do have to release your source code if you use GPLed JavaScript libraries, but those aren't common. In some cases, it may be beneficial to release your modifications even if you aren't required to.

That says that we can use GPL v2 & v3 code in web services while we are not distributing the application itself (for example like google does). Is that correct?

Yes, this is correct. Many companies use their own modified version of GPLed code in-house, without having to distribute the modifications.

From the GPLv3:

To “propagate” a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well.

To “convey” a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying.

...

You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you.

This means that you have permission to use and modify the program on your own servers, even with users interacting with it remotely, without any of the additional conditions, such as providing the source code, that are required of you if you "convey" the program itself to another user. So as long as you are using it internally on your own server, you can run modified GPLed code to your heart's content without having to distribute the modified source to anyone else.

The GPLv2 also doesn't restrict running the code on your own server, and thus doesn't require you to distribute source code of your modifications, though it is a little less explicit about this case than the GPLv3 (which is very clear):

Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.

From the GPLv2 FAQ:

A company is running a modified version of a GPL'ed program on a web site. Does the GPL say they must release their modified sources?
The GPL permits anyone to make a modified version and use it without ever distributing it to others. What this company is doing is a special case of that. Therefore, the company does not have to release the modified sources.
It is essential for people to have the freedom to make modifications and use them privately, without ever publishing those modifications.

The AGPL is a license that is designed to require you to distribute your source code to your users, even if you are just running it on a server. It was created because the GPL does not provide such restrictions, and some people wanted such restrictions on their software. Not nearly as much software is released under the AGPL as the GPLv2 and v3, however.

Almost all free software licenses listed by the FSF, or open source licenses listed by the OSI also have no restrictions on running code on your own server.

Now, one thing to watch out for is that all of the above applies only to code running on your own server. JavaScript code, which is sent to the client and run on their machine, is entirely different. The GPL does apply in this case. Most JavaScript libraries (jQuery, Prototype, Dojo, MooTools) are released under permissive licenses (MIT/BSD-style), though be sure to check the license of any library you use; some people might release libraries under the GPL or LGPL.

Even if you are not required to release your source code, in some cases it may be beneficial to do so. In particular, if you make lots of modifications to a project, and then they release a new version, it might be a lot of work to go through and re-apply all of those modifications to the new version. If you instead send the patches back to the original project, and they think that your patches are good enough to apply, then your changes will be part of the upstream project, and any changes they make will include your modifications.

Now, if you're using a library, that reason might not apply to the code that is just using it, but it will apply to any fixes or enhancements you make to the library itself.

Standard disclaimer: I am not a lawyer, and this is not legal advice. If you need actual legal advice, please talk to a lawyer.

like image 192
Brian Campbell Avatar answered Sep 21 '22 02:09

Brian Campbell


I am not a lawyer and this is not a legal advice, but I think that apart from the AGPL, you would be OK with almost all licenses, as you are not distributing the software - merely using it on your server.

like image 38
Ofir Avatar answered Sep 20 '22 02:09

Ofir