[vtk-developers] Scope of VTK and it's potential as a common research language

Benoit Jacob jacob.benoit.1 at gmail.com
Sun Jan 31 00:36:23 EST 2010


Hi,

[Re-sending now that I am subscribed to the list which is subscribers-only]

I'm one of the developers of Eigen. Reading your e-mails and your
concerns, I updated a bit the FAQ, see especially:
http://eigen.tuxfamily.org/index.php?title=Licensing_FAQ#How_about_static_linking.3F_2

Let me summarize things a little (just elaborating on what Marcus said).

Executive Summary:

The LGPL version 3 is fully applicable to template libraries and there
simply is no issue at all with static linking, not even if VTK uses
Eigen and then some application links statically to VTK.

Explanation:

First of all, the old LGPL version 2.1 did indeed have lots of issues
with template libraries. That's why we don't use it for Eigen.

The LGPL version 3 provides 3 different ways in why LGPL-licensed
libraries may be used: these are Sections 3, 4, and 5.

In the case of Eigen, the only of these sections that you have to read
is Section 3. It covers the case of template libraries. Eigen is to be
used entirely under Section 3.

Section 3 is very simple, it's essentially the same thing as a
2-clause BSD license. That doesn't mean that LGPL=BSD, because there
still is the fact that the LGPL prevents proprietary forks of Eigen
itself.

I would now like to address this concern:

>> I disagree with this not being an issue. Adopting something licensed
>> under LGPL as a
>> core library in VTK is a bad idea since it would preclude anyone
>> building a statically
>> linked application using VTK - unless they were distributing all of
>> the components
>> required to relink.

The "issues with statically linking to LGPL libraries" refer to
Section 4, specifically 4.d.1. As I said, Section 4 simply doesn't
apply to Eigen. The confusion comes from the fact that most LGPL
libraries are used under Section 4 (e.g. Qt is) but Eigen is just a
special case as it is a pure headers-only library with nothing to link
to. Thus Eigen is used entirely under Section 3, thus bypassing
Section 4 entirely, thus bypassing the issues with static linking in
particular. Subsequently, it just doesn't matter that VTK is a binary
library and not a headers-only library, because Section 4 just never
was used in the first place.

More details and explanations in the FAQ that Marcus already linked to:
http://eigen.tuxfamily.org/index.php?title=Licensing_FAQ

I hope that this addresses your concerns and am available if you need
more explanations, or disagree with mine!

Thanks,
Benoit



More information about the vtk-developers mailing list