Default SUITESPARSE to OFF due to GPL licensing

Ceres requires the CHOLMOD supernodal factorization and SPQR components
of SuiteSparse, which are only available under GPL or commercial terms.
Because SuiteSparse was previously autodetected and linked whenever
present, a default build could silently become GPL licensed without the
user choosing that outcome.

Make SuiteSparse support opt-in by defaulting SUITESPARSE to OFF,
document the licensing implications in the installation guide.

Fixes #1026

Change-Id: I1cfb2148b830a72fa18caadcff76f35a50aeb179
This commit is contained in:
Sergiu Deitsch
2026-07-28 00:53:24 +02:00
parent 849f854ff9
commit 76b431ef04
3 changed files with 23 additions and 12 deletions
+11 -7
View File
@@ -629,15 +629,19 @@ Options controlling Ceres configuration
note that if ``LAPACK=ON`` and ``SUITESPARSE=ON``, the ``LAPACK`` and
``BLAS`` libraries used by SuiteSparse and Ceres should be the same.
#. ``SUITESPARSE [Default: ON]``: By default, Ceres will link to
``SuiteSparse`` if it and all of its dependencies are present. Turn
this ``OFF`` to build Ceres without ``SuiteSparse``.
#. ``SUITESPARSE [Default: OFF]``: SuiteSparse support is opt-in. Turn this
``ON`` to link Ceres against ``SuiteSparse``, provided it and all of its
dependencies are present.
.. NOTE::
.. WARNING::
SuiteSparse is licensed under a mixture of GPL/LGPL/Commercial
terms. Ceres requires some components that are only licensed under
GPL/Commercial terms.
SuiteSparse is licensed under a mixture of GPL/LGPL/Commercial terms.
Ceres requires the CHOLMOD supernodal factorization and SPQR components,
which are only available under GPL/Commercial terms. Consequently, unless
you hold a commercial SuiteSparse license, a Ceres build with
``SUITESPARSE=ON`` is GPL licensed. This is why SuiteSparse support is
opt-in rather than enabled by default. Obtaining a commercial SuiteSparse
license removes this restriction.
#. ``ACCELERATESPARSE [Default: ON]``: By default, Ceres will link to
Apple's Accelerate framework directly if a version of it is detected
+8
View File
@@ -20,6 +20,14 @@ Bug Fixes & Minor Changes
#. Clarify building Ceres Solver from Git sources in the installation
documentation.
Backward Incompatible API Changes
---------------------------------
#. The ``SUITESPARSE`` CMake option now defaults to ``OFF``. Passing
``-DSUITESPARSE=ON`` restores the previous behavior, but makes the
resulting Ceres build GPL licensed unless you hold a commercial
SuiteSparse license.
2.2.0
=====