27

I am developing an open source ruby application under the MIT license. I am using this license because I don't want to place any restrictions on the users of the application. Also I can actually read and understand this license.

I recently started using another ruby gem in my project (require "somegem"). This ruby gem is under the LGPL license.

Do I have to change anything about my project because I am using this other ruby gem that is licensed with LGPL? My project does not contain the source code for the other gem and it is not shipped with my project. It is simply listed as a dependency so that ruby gems will install it and my project will call into it from my code.

Additionally, it would be helpful to know if there are any licenses I need to "watch out for" because using them would affect the license of my project.

There are some other post about this topic but phrased in different ways. Since I find this license stuff tricky I am hoping to get a answer directed at my situation.

Thank you,
Corsen

corsen
  • 371
  • 3
  • 3
  • 1
    This seems like a question for lawyers, not programmers. (That is to say: this is a good question, well-asked, that some programmers may have experience with…but that doesn't make it appropriate for Stack Overflow, as it has very, very little to do with programming.) – Phrogz Mar 28 '12 at 03:10
  • 7
    Phrogz: you're exaggerating. It's a simple licensing question, that is answered explicitly by the text of the license and by numerous FAQs. You really don't need a lawyer to read. – vartec Mar 28 '12 at 09:23

2 Answers2

27

It does not affect

LGPL — stands for Lesser GPL (used to mean Library GPL). The significant difference with GPL is, that it doesn't impose the license on software using the library. Only if you'd modify the library or directly include parts of the code in your software, then your code would have to be LGPL. On the other hand if you're just using gem in your app, it's perfectly fine to keep your app with any license you please.

The mentioned part of LGPL:

A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License.

vartec
  • 20,760
  • 1
  • 52
  • 98
  • 1
    There are some more requirements for the LGPL library you need to meet, especially if you hardencode the import of it inside a closed program. Saying that does not mean you need to put your code under LGPL, but that there are requirements to be met. I'm not firm with the rubygen linking mechanism, probably it's comparable to java import: [The LGPL and Java](http://www.gnu.org/licenses/lgpl-java.html). – hakre Apr 09 '12 at 07:37
0

Do I have to change anything about my project because I am using this other ruby gem that is licensed with LGPL? My project does not contain the source code for the other gem and it is not shipped with my project. It is simply listed as a dependency so that ruby gems will install it and my project will call into it from my code.

The LGPL'ed software is a dependency of your software. So it actually is part of your software. The LGPL allows to be used from non-free software (while MIT is even free software), so being a dependency is not a blocker.

However as it's a dependency you need to offer the source-code of it if you distribute your software. I have no clue if the require mechanism within ruby always provides sources as well. If so I'd say that you already distribute with sources. If not, you need to take care that for every version of that gem that you require with your software you offer sources for.

You probably should take care of sources anyway because it might be that the third-party project (the gem) will go offline and your project would be broken then as it requires a non-existing gem any longer.

This is no legal advice, just from a programmers perspective. Consider that users of your software ask for sources from you as your software makes use of the library and it can be actually seen as distribution because you wrote require "somegem" in there. The legal definition of distribution might not match a programmers day-to-day expectation of burning files onto a cd-rom. So it's wise to have a more broad conception here to stay pro-active in case things don't turn out as expected.

hakre
  • 1,165
  • 12
  • 17
  • 1
    *"you need to offer the source-code of it if you distribute your software."* no you don't if it's publicly available. – vartec Apr 07 '12 at 21:43
  • 1
    @vartec: if you distribute you need to offer source. Only in case of being a non-commercial and the code is not changed, you can delegate that requirement to the upstream project (see GPL). If the library is not distributed by you (however, in this case there are hardencoded setup instructions the user can not change, and actually there are requirements in the LGPL being replaceable so this could even break LGPL compatibility), I think it's safest to provide sources so reverse-engineering and replacement requirements are easy to be met. – hakre Apr 09 '12 at 07:33
  • @vartec: Being publicly available means you don't distribute. If the gem distributor is unable to offer sources, the copy of the gem might not be legitimate. – hakre Apr 09 '12 at 07:50
  • LGPL, section 4.e *"Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version."* – vartec Apr 09 '12 at 14:06
  • 1
    @vartec: Exactly. 4.e continues: *"(If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.)"* – hakre Apr 09 '12 at 14:52