Remove LGPL Code and references.

LGPL is fundamentally incompatible with MPL2, and for a heavily templated header-only library like Eigen, it essentially forces all users to license their work under LGPL (thereby acting more like GPL). Specfically, for LGPLv3, users are only able to relicense their work under a different license if

... the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length)

The LGPL code in Eigen contained the entire logic in large templates and inline functions.

The spirit of the LGPL license is that downstream users can swap out the library with their own version if desired. This will clearly not be possible with Eigen in general. The only way to adhere to this would be to write a separate interface library licensed as LGPL.

The existing LGPL code is limited in scope, hasn't been modified in a while, and doesn't seem to be heavily used. Therefore we have decided to remove it. Anybody wanting to restore the missing module can use an older version of Eigen, or can easily copy the removed components locally.

Merge request reports

Loading