Re: [eigen] Usage of Eigen2 in a closed source application

[ Thread Index | Date Index | More Archives ]

Hi Frank,

On Sat, Dec 13, 2008 at 6:27 AM, FMDSPAM <fmdspam@xxxxxxxxx> wrote:
Dear Mr. Benoit,

I develop a closed source, commercially distributed application (not a library if that matters).
And I am strongly interested to use your excellent library eigen2.
But unfortunately my understanding of the GPL/LGPL is to limited to anwser my question myself:
"Is it allowed to use your work (your header files) in my application without to be enforced  to publish any of my application code?".

In the Web I found many different opinions about  the use of LGPLed Libs in property applications. Mostly saying: "use a dynamic linked version". Which, in itself, is fully understandable and achieve one of the (in my understanding) important goal of the LGPL: To practically enable the combination and usage of the application code with a newer or otherwise changed version of the Lib afterwards without any intervention possible by the original application code creator and vendor.

On Oct 25 2006 You wrote somewhere:
> But while we allow unrestricted _use_, we want to only allow _changes_ under
> the terms of the LGPL, so that back-contribution of changes is forced.
is why we're choosing the LGPL and not the BSD, for instance.

I'm totally fine with your goal and it would a great pleasure to me to back-contribute some content (not only user questions :-) ).

(... meanwhile the LGPLv3 is available ...)

On Aug. 15. 2008, In a conversation with Mr. Keir from You wrote:
>Another thing that is useful about FLENS: BSD licensed. We are MIT, and
>would prefer to keep as many of our dependent libraries BSD or MIT licensed
>as possible.

I don't understand. Eigen2 is dual LGPL3+/GPL2+. So it even allows
proprietary software to use it. I don't see anything preventing BSD
code from using it....?

(... Thereafter Keir seems to be convinced and the libmv library is switched from FLENS to Eigen2 ...)

I went to FLENS more because I was concerned about the complexity of Eigen2, that it didn't at the time have an SVD, and that I could understand the FLENS code. However, Eigen2 is pretty amazing for many other reasons (see my follow up emails about switching libmv to Eigen2). The rate of development of Eigen2 is also much faster than FLENS.
Would you please so kind to elaborate your answer to Keir in regard to my situation?
What is revered by the "+" in "LGPLv3+"? Did you use an extended version of the LGPLv3?
Why LGPLv3+ "even allows proprietary software to use it" ?
How could the "imported goal" I mentioned above ever be achieved for an header-only lib?
What is the matter of using LGPL, if the "imported goal" is not achievable?
And finally again my first question:
"Is it allowed under the terms of the LGPLv3(+) to use your work (your header files) in my application without publishing any of my application code?".

The eigen licenses are under essentially the same license as the STL headers in GCC, which have an exception clause because they are header libraries. The LGPL3 specifically stipulates that header-only libraries count as libraries. This means that header-only libraries licensed as LGPL3+ can be used in commercial applications in the same manner as normallly linked libraries (i.e. libmylib.a).

Of course, you should read the licenses yourself.

Benoit, perhaps it is worth adding an entry to the license FAQ explicitly explaining that eigen can be used in commercial applications, provided source modifications to eigen itself are released back to the community?


kind regards



Mail converted by MHonArc 2.6.19+