8

I am using a LGPL (GNU Lesser General Public License version 2.1) licensed library in my Java project I'm soon about to release. In order to solve a bug in this library I have copied a particular class from the source code, modified it, and made it a part of my project.

Breakdown:

  • Library A is available in binary form at central nexus repo. This library A is also available as source code and licensed with LGPL 2.1. Library A contains class B that is buggy.

  • Project C built in Java and Maven depends on library A. In order to solve the bug in class B, B is copied to a new class D and stored as a part of project C source code. The bug is then fixed in D.

  • Project C's source code is about to be released and available for others.

Question: What must project C contain, license-wise?

I am looking for another answer than answers like: "In order to follow LGPL 2.1, you must implement the things listed in license LGPL 2.1".

Mureinik
  • 5,112
  • 3
  • 31
  • 42
Stefan Vahlgren
  • 133
  • 1
  • 6
  • Under which license do you intend to release project C? – Mans Gunnarsson Feb 15 '17 at 19:44
  • 1
    Thats one of the things I would like to know. Is it enought to license it with the same one as the dependency (LGPL 2.1) ? In this case, and if I choose LGPL 2.1, what do I need to add to my project in terms of files, content. Do I need to comment my code in any way? – Stefan Vahlgren Feb 15 '17 at 19:49
  • That would definitely be enough, but perhaps not necessary. You do, in any event, need to release class D as LGPL 2.1 since it's an improvement of LGPL 2.1 class B.

    Regarding how to apply the license: https://www.gnu.org/licenses/gpl-howto.html

    – Mans Gunnarsson Feb 15 '17 at 19:53
  • Ok. But I still don't know how to actually do this. For example, if reading some other description of the license it says this: "Give prominent notice with each copy of your work that the LGPL'd software is being used." What does this mean? Am I supposed to create a text file named prominent_notice.txt and specify that the class D is a modified copy of the class B from the library A ? This is very unclear to me. – Stefan Vahlgren Feb 15 '17 at 19:58
  • What information to put in source files is explained in the link I provided. Regarding the "prominent notice" that depends on your application, but a normal way is to display the contents of the license file somewhere in the UI, like in an "About this application" screen. – Mans Gunnarsson Feb 15 '17 at 20:02
  • Hmm, so the prominent notice has to be available through the executable to the user? my project (C) is more like a library and there will not be a UI to speak of. But it sounds like I can choose a suitable way of showing this, for example a text file. Thanks so far. I will read through the link you sent me and be back tomorrow with further question if there are any. – Stefan Vahlgren Feb 15 '17 at 20:13
  • 1
    If there's no UI then the documentation is a good place – Mans Gunnarsson Feb 15 '17 at 20:24
  • @StefanVahlgren Many projects place comments near the top of licensed files with a note such as "This code is licensed under XYZ. See the file COPYING.XYZ for the full license text." You can also include a Web link, but I would prefer to include the actual license text as a separate file to prevent possible confusion. – Brandin Oct 17 '17 at 15:23

1 Answers1

2

The main thing to note is that the conditions for distributing modified copies are a hassle and basically amount to having to maintain your personal fork with carefully marked modification and a distribution channel for it. You want to get rid of that hassle as soon as possible, so you should try getting your bug fixes accepted upstream.

Apart from that advice, I don't think the gist of your request "what do I have to do to heed the conditions of the LPGL? Please don't ask me to read the conditions of the GPL" makes a lot of sense. You have to read through and understand a set of conditions anyway, so why not read the original rather than something regurgitated by someone whose reading is legally irrelevant?

user7422
  • 31
  • 1