libceres-dev needs rebuild because of mismatching eigen version
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/
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://
```
For reference the debian build (1.12.0+dfsg0-1+b2) solves the problem
Thanks!
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 |
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 cmake/ceres/ CeresConfig. cmake:88 (message): en.wikipedia. org/wiki/ One_Definition_ Rule for more details lib/cmake/ ceres/CeresConf ig.cmake: 217 (ceres_ report_ not_found)
* 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/
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://
Call Stack (most recent call first):
/usr/
CMakeLists.txt:4 (find_package)
CMake Error at CMakeLists.txt:4 (find_package):
Found package configuration file:
/usr/ lib/cmake/ ceres/CeresConf ig.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!