#1136237 gtsam: FTBFS with libeigen3-dev 5.0 (major version transition)

Package:
src:gtsam
Source:
src:gtsam
Submitter:
Anton Gladky
Date:
2026-05-11 05:11:03 UTC
Severity:
normal
Tags:
#1136237#5
Date:
2026-05-11 05:08:54 UTC
From:
To:
Dear Maintainer,

your package depends on libeigen3-dev. The upstream released a
new major version of this mathematical library, 5.0.0. Some
basic information about new features and changes in this version
can be found here:

https://libeigen.gitlab.io/releases/5.0/

This is a major version change and may require code changes in packages
depending on eigen3. The key breaking changes include:

  - Minimum required C++ standard is now C++14
  - Changes in the build system integration
  - Some API name changes

gtsam FTBFS with libeigen3-dev 5.0.1. The full build log is available at:

https://debusine.debian.net/debian/developers-gladk-eigen3/artifact/3756024/

Here is the most probably relevant part of the failing build log:
    ===========================================
[  0%] Generating geometry.cpp
cd /build/reproducible-path/gtsam-4.2.0+dfsg/obj-x86_64-linux-gnu/python && /usr/bin/cmake -E env PYTHONPATH=/build/reproducible-path/gtsam-4.2.0+dfsg/wrap/cmake/..: /usr/bin/python3 /build/reproducible-path/gtsam-4.2.0+dfsg/wrap/scripts/pybind_wrap.py --src /build/reproducible-path/gtsam-4.2.0+dfsg/gtsam/geometry/geometry.i --out geometry.cpp --module_name gtsam --top_module_namespaces gtsam --ignore gtsam::Point2 gtsam::Point3 gtsam::ISAM2ThresholdMapValue gtsam::FactorIndices gtsam::FactorIndexSet gtsam::IndexPairSetMap gtsam::IndexPairVector gtsam::BetweenFactorPose2s gtsam::BetweenFactorPose3s gtsam::Point2Vector gtsam::Point2Pairs gtsam::Point3Pairs gtsam::Pose3Pairs gtsam::Pose3Vector gtsam::Rot3Vector gtsam::KeyVector gtsam::BinaryMeasurementsPoint3 gtsam::BinaryMeasurementsUnit3 gtsam::BinaryMeasurementsRot3 gtsam::DiscreteKey gtsam::KeyPairDoubleMap gtsam::gtsfm::MatchIndicesMap gtsam::gtsfm::KeypointsVector gtsam::gtsfm::SfmTrack2dVector --template /build/reproducible-path
 /gtsam-4.2.0+dfsg/python/gtsam/gtsam.tpl --is_submodule --use-boost
In file included from /build/reproducible-path/gtsam-4.2.0+dfsg/gtsam/base/Matrix.h:28,
                 from /build/reproducible-path/gtsam-4.2.0+dfsg/gtsam/base/Matrix.cpp:19:
/build/reproducible-path/gtsam-4.2.0+dfsg/gtsam/base/Vector.h:45:82: error: conversion from ‘CwiseNullaryOp<Eigen::internal::scalar_zero_op<double>,[...]>’ to non-scalar type ‘CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>,[...]>’ requested
   45 | static const Eigen::MatrixBase<Vector2>::ConstantReturnType Z_2x1 = Vector2::Zero();
      |                                                                     ~~~~~~~~~~~~~^~
/build/reproducible-path/gtsam-4.2.0+dfsg/gtsam/base/Vector.h:46:82: error: conversion from ‘CwiseNullaryOp<Eigen::internal::scalar_zero_op<double>,[...]>’ to non-scalar type ‘CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>,[...]>’ requested
   46 | static const Eigen::MatrixBase<Vector3>::ConstantReturnType Z_3x1 = Vector3::Zero();
      |                                                                     ~~~~~~~~~~~~~^~
/build/reproducible-path/gtsam-4.2.0+dfsg/gtsam/base/Vector.h:52:92: error: conversion from ‘CwiseNullaryOp<Eigen::internal::scalar_zero_op<double>,[...]>’ to non-scalar type ‘CwiseNullaryOp<Eigen::internal::scalar_constant_op<double>,[...]>’ requested

    ===========================================
libeigen3-dev_5.0.1-1 is available in experimental.

When this package version lands into unstable (probably at the beginning
of June 2026), this bug will be increased in severity to serious.

Thanks,

Anton