1

I have a Java project made by multiple JARs and one of them is LGPL licensed. I know that this kind of license doesn't propagate through the modules that uses it. But every code modification that I make to a LGPL library must be published in some way and the license cannot change.

I modified this LGPL Java module for my purposes and now I have some questions:

  • How can I make the code public? Should I have to publish the Java files at first, or do I simply have to send the sources if anyone requests them?

  • Should the LGPL JAR contain other resources in itself, for example the license file or other stuff regarding the license?

  • 1
    This was cross-posted from Stack Overflow. – amon Mar 8 '18 at 17:33
  • The easiest option would be to supply the source of the LGPL component in parallel with your JAR file (e.g. If you release the JARs in a zip archive called foo-1.0.zip, then release the correspponding source as foo-1.0-lgpl-src.zip). If you want, you can supply a "written offer" to give the corresponding source instead. See GPL section 6. – Brandin Mar 9 '18 at 11:23
1

I have a Java project made by multiple JARs and one of them is LGPL licensed. I know that this kind of license doesn't propagate through the modules that uses it.

Well, that's a shortcut. The LGPL is rather more explicit on the topic and as you will see after, modifications are quite important in this case.

But every code modification that I make to a LGPL library must be published in some way and the license cannot change.

Let's assume that the LGPL at play is the LGPL-2.1

When you modify a third-party LGPL-licensed library you need to read Section 2 and 7 in details as you may be creating a "work based on the library" in which case the LGPL of this one modified library could apply to your whole project.

The preamble ends with this important sentence:

The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run.

I modified this LGPL Java module for my purposes and now I have some questions: How can I make the code public? Should I have to publish the Java files at first, or do I simply have to send the sources if anyone requests them?

Either way work. Making the source code available with or in the binaries or make it available at the same time and place as the binaries is easier and typically meets the requirements. But again note that you may have extended source code redistribution requirements beyond that one LGPL-licensed if you end up creating a "work based on the library": this may require help and legal advice to make this determination.

Should the LGPL JAR contain other resources in itself, for example the license file or other stuff regarding the license?

It should always contain the license for sure, and also extra information to notify of changes. The LGPL text contains details on this for instance in Section 2.b:

You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change.

  • Thank for the answer. I suppose that i am handlind an lgplv3 license though. I think that i will do in this way: the original project is hosted on githun, i forked it and on the my readme i cite the original project, in this way i show my sourcesand maintain the lgpl license. Is it a good way? – Michele Bortolato Mar 13 '18 at 10:01
  • The LGPL-3.0 is not fundamentally different from the previous versions in this domain. The key thing is if or not your modifications are creating a "work based on the library" and this is not an easy determination... combo of tech facts and a legal interpretation best done by a lawyer well versed on FLOSS licensing – Philippe Ombredanne Mar 13 '18 at 22:36

Your Answer

By clicking "Post Your Answer", you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.