libceres-dev needs rebuild because of mismatching eigen version

Bug #1708971 reported by Mikael Arguedas
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
ceres-solver (Debian)
Fix Released
Unknown
ceres-solver (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

Current version of ceres ("1.12.0+dfsg0-1") was built against eigen 3.3.0. Current libeigen-dev version is 3.3.2 (3.3.2-1).
So ceres needs a rebuild otherwise packages cannot link against it getting the following cmake error
```
CMake Error at /usr/lib/cmake/ceres/CeresConfig.cmake:88 (message):
  Failed to find Ceres - Found Eigen dependency, but the version of Eigen
  found (3.3.2) does not exactly match the version of Eigen Ceres was
  compiled with (3.3.0). This can cause subtle bugs by triggering violations
  of the One Definition Rule. See the Wikipedia article
  http://en.wikipedia.org/wiki/One_Definition_Rule for more details
```

For reference the debian build (1.12.0+dfsg0-1+b2) solves the problem

Thanks!

Revision history for this message
Mikael Arguedas (mikael-arguedas) wrote :

SRU:
[Impact]

 * This bug prevents users to find and link against ceres libraries
 * There is no upload required as rebuilding the package is enough to fix the bug

[Test Case]

 * install libceres-dev
   * apt-get update && apt-get install libceres-dev
 * mkdir -p /tmp/test_ceres/src && cd /tmp/test_ceres
 * echo "find_package(Ceres REQUIRED)" > CMakeLists.txt
 * mkdir build && cd build
 * cmake ..
This produces the error message:
```
CMake Error at /usr/lib/cmake/ceres/CeresConfig.cmake:88 (message):
  Failed to find Ceres - Found Eigen dependency, but the version of Eigen
  found (3.3.2) does not exactly match the version of Eigen Ceres was
  compiled with (3.3.0). This can cause subtle bugs by triggering violations
  of the One Definition Rule. See the Wikipedia article
  http://en.wikipedia.org/wiki/One_Definition_Rule for more details
Call Stack (most recent call first):
  /usr/lib/cmake/ceres/CeresConfig.cmake:217 (ceres_report_not_found)
  CMakeLists.txt:4 (find_package)

CMake Error at CMakeLists.txt:4 (find_package):
  Found package configuration file:

    /usr/lib/cmake/ceres/CeresConfig.cmake

  but it set Ceres_FOUND to FALSE so package "Ceres" is considered to be NOT
  FOUND.

-- Configuring incomplete, errors occurred!
```

[Patch]
 * Rebuild the package
 * Test case passes once the package rebuilt

[Regression Potential]

 * Given that the patch is just a rebuild I don't see a potential for regression
Package: libceres-dev (libceres-dev (1.12.0+dfsg0-1) (on Zesty)

Source of the bug: libceres-dev was built against libeigen3-dev version 3.3.0 but the currently distributed eigen3 package is libeigen3-dev (3.3.2-1)

Impact: unable to find_package Ceres

Solution: rebuild libceres-dev against libeigen3-dev (3.3.2-1)

Thanks!

Revision history for this message
Federico Reghenzani (federeghe) wrote :

I can confirm the bug. I'm not able to install ceres via packages.

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in ceres-solver (Ubuntu):
status: New → Confirmed
Changed in ceres-solver (Debian):
status: Unknown → Confirmed
Changed in ceres-solver (Debian):
status: Confirmed → Fix Released
Changed in ceres-solver (Ubuntu):
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.