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.
>This 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:
Keir:>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.
Benoit: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?