Archive: NSIS has gone LGPL???


NSIS has gone LGPL???
Well, if you use the LZMA compression, that would appear to be case. :(

Please tell me that you guys got permission from Igor to release under a "LGPL with linking exception" license. But only if it's true, of course. :)

Note that I have been away from the NSIS community for a few months, and if this has already been covered here I apologize for raking it up again - but I *did* do a forum search on "LGPL" and didn't see anything that seemed to pertain.

Anyway, I was writing up an entry in my site's News section, talking about the new packaging release of my software based on the new NSIS installer (including LZMA compression, which I used)...

Since I was of course providing links to NSIS and (I assumed) 7-zip, I went looking for the NSIS project's acknowledgement of the contribution from the 7-zip project.

I didn't find anything like that, just ordinary LGPL license notices.

Imagine my surprise and disappointment to find that a truly "open" project like NSIS has started incorporating components carrying incompatible licenses. :(

I *really* hope that this is just confusion on my part, and that NSIS users can actually use LZMA with a "linking exception"... otherwise, I will have to pull my software packages and re-re-release them, back with good ol' bzip2.

Finally, while as they say over on Slashdot, IANAL (I Am Not A Lawyer), I wonder how clear the legal position is even if an NSIS user chooses *not* to use [7-zip -based] LZMA compression... while it is fairly clear that if you generate an installer which *does* use LZMA, you end up being subject to the LGPL terms, and since the NSIS system *itself* now incorporates the LGPL code, *it* would now be subject to those terms.

BUT (and it is a large one), it seems at least intuitively clear that NSIS installers *not* using LZMA are probably "clean"... remember, IANAL, and the legal definition of "derivative work" is definitely getting some stretching today - just look at what SCO is up to! ;)


iirc, nsis is released under the zlib license


As noted in the NSIS license text, the zlib license applies to everything (makensis, NSIS script code VM, Modern UI, plug-ins) except otherwise noted.

The LGPL license is only relevant if you want to modify the source code of the LZMA compresion method, in that case you are are not allowed to hide the changes.


So Joost, is it your considered opinion, and that of whatever legal counsel the NSIS project may have access to, that an NSIS-generated installer using the 7-zip LZMA code does NOT come under [at least] Section 6 of the LGPL?

The first paragraph of which is:

"6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications."

Is the thinking here that, since the NSIS user's code is only treated as "data" by the LZMA version of the exeheader, the NSIS-using developer's own product does NOT come under Section 6 or any other part of the LGPL (but taking note of Joost's post)?

Sounds sweet to me, but what do copyright lawyers think about how "combine or link" applies to the case of the "payload" of a generated installer?

I am truly not trying to be obnoxious here... I am just trying to make sure that the decision-makers for what goes into NSIS did the proper research into the implications for the NSIS community before adding this LGPL code into their extremely useful package. :)

Since presumably all of these issues were already considered, I wouldn't mind a little help understanding *why* there is nothing to worry about... or if anyone knows of some site(s) discussing this particular [non-]application of the LGPL in greater detail, links would be welcome. :)

And yes, it does look like I could just not use LZMA if I am worried, but this isn't just about me... right?


An application that is installed using NSIS is not a part of NSIS itself, so that should be no problem.

The author of the LZMA code has also agreed with the LZMA implementation and helped us with it.


Excellent! Thanks for clearing that up for me (and anyone else concerned with the issue), Joost. :D

It would be nice if the "readme.txt" in the "7zip" folder of the Source tree mentioned something like "Usage of the unmodified LZMA code in an NSIS-generated installer is specifically permitted by the author, without subjecting the NSIS-using developer to any LGPL responsibilities".

But that's just me. :)

Thanks again.


I think has nothing to do with a specific permission, it's allowed by LGPL.


Well, Joost, since you are bringing this up again... :)

For anyone interested in the subject of the LGPL, here is a page giving a nice summary of what it is all about:

http://teem.sourceforge.net/lgpl.html

The biggest thing which I hadn't understood until about 9 months ago is that the LGPL does NOT mean that if you just link against someone's LGPL library, you can just use it and ship your own [possibly proprietary] product without having to reveal your sources (not that I ever actually did this, but this was about my general level of understanding of the LGPL vs the GPL).

???? you say? While it is true that you don't have to release your sources, you may have to (in effect) release your object code. The deal is that your users are supposed to be able to use your app with any NEW versions of the LGPL library that you used.

What this means is, if you link *statically* to the LGPL library, you really do have to make your object code (or sources) available... if you link *dynamically* to the LGPL library, you get off easy on this, since people should automatically be able to run your app with newer versions of the LGPL library.

So, if Igor says that the NSIS usage of his LZMA code is fine, *and* that I do not "inherit" any LGPL responsibilites from NSIS for using his LGPL library (as long as I just link to the code), then, as you say, there isn't a problem. :D

But you must see why I was worried, just in terms of the LGPL (and particularly "Section 6")... I *am* shipping an executable (the installer) that has *my* code in it and *his* code - and a copyright lawyer might be able to say that my code does "combine or link" with the LZMA code.

For that matter, "my" code, for these purposes, could actually be my NSIS install script, right? And NSIS is not really that strange - it is a compiler and runtime system, and that runtime definitely is statically linked to the LZMA code.

See how a legal type might look at this? :)


In my opinion the data of the installer is not linked to the inteller VM itself, it's only a seperate data block.

When I read these liceneses I don't think using a (L)GPL installer for a proprietary binary is a license violation.

It's a bit similar to this: http://www.gnu.org/licenses/gpl-faq....eGPLToolsForNF


Thanks for the link - a quote from it exactly illustrates my point:

"As it happens, Bison can also be used to develop non-free programs. This is because we decided to explicitly permit the use of the Bison standard parser program in Bison output files without restriction."

For those who don't go and read Joost's link, Bison "copies a standard parser program into its output file" and "In such cases, the copied text in the output is covered by the same license that covers it in the source code".

But *despite their own license terms* the GNU folks chose to allow unencumbered use of the Bison tool... which they are course allowed to do... which [to me] sounds a lot like what actually may have happened here with NSIS and [7-Zip] LZMA.

But I wasn't "there", and it sounds like Joost and [presumably] Kichik were, and as I have said more than once, the good part is it all came out "right". :)


Here is a quote from someone of the Free Software Foundation.

Since the program being installed by the installer is just data to the
installer, I believe this scenario can be compared to the various faq
questions on editors and tools. Basically, if the installer has no
stipulations about its output (the program to be installed), then a GPL
Installer should be allowed to install any kind of program.

See these links to the faq for more detail:
http://www.gnu.org/licenses/gpl-faq....eGPLToolsForNF
http://www.gnu.org/licenses/gpl-faq.html#UseGCC

Hope this helps,
Dan

--
Dan Tomalesky
Licensing Question Volunteer
Free Software Foundation
This is not legal advice. If you need legal advice, consult a lawyer.

We modified the LZMA library, released it under LGPL and linked to that in NSIS just like any other application links to glibc. So there is not much need to go into what NSIS includes and what your application is because NSIS is still released under zlib license.


Seems to me the important thing is not what the technicality of the licenses are, but rather what the intent of the various authors are.

It seems pretty clear that the intent of the 7-zip authors is to allow LZMA NSIS installers to be distributed without restrictions. Perhaps it would be good to formalize this somewhere, since LGPL is not so clear (and may actually prohibit it).

-Justin


The original LZMA SDK is available under both the Common Public License version 1.0 and the LGPL.

We decided to switch to the CPL for the LZMA compression module because it does not have a restrictive defintion of derivate work like the LGPL has.

This is relevant when someone wants to publish a closed-source modification of NSIS that includes the unmodified LZMA compression module.

The CPL contains the following statement:

Contributions do not include additions to the Program
which: (i) are separate modules of software distributed in
conjunction with the Program under their own license
agreement, and (ii) are not derivative works of the
Program.


We believe NSIS is such a separate module that works with the LZMA compression module. However, this is not a legal advice. If you need legal advice, you must contact your own lawyer.

The CPL does apply to any modifications you make to the LZMA compression module for NSIS. This includes the requirement to make the source code available.

We now also have a special exception:

Igor Pavlov and Amir Szekely, the authors of the LZMA
compression module for NSIS, expressly permit you to
statically or dynamically link your code (or bind by name)
to the files from the LZMA compression module for NSIS without
subjecting your linked code to the terms of the Common Public
license version 1.0. Any modifications or additions to files
from the LZMA compression module for NSIS, however, are
subject to the terms of the Common Public License version 1.0.