kinetic uses unstable eigen3 on Ubuntu 16.04
Dear all,
as I've recently discovered, Ubuntu 16.04 has by default libeigen3-dev
pointing to the unstable branch 3.3-beta1
, which has serious bugs as the following one:
#include <iostream>
#include <Eigen/Dense>
using namespace std;
using namespace Eigen;
int main()
{
Eigen::Vector3d b = Eigen::Vector3d::Random();
Eigen::MatrixXd A = Eigen::MatrixXd::Random(3,3);
std::cout << "The following code crashes from Eigen 3.3-beta1 to Eigen 3.3-RC1" << std::endl;
std::cout << -A*b << std::endl;
return 0;
}
Now, I could solve by using Eigen 3.3.4
(stable) for my applications. Although, official ROS Kinetic packages (such as tf
) would still be linked against the unstable version.
Besides the general instability that this can bring to official ROS packages, I'm afraid that linking my code with 3.3.4
and ROS packages with 3.3-beta1
would cause problems.
Could the different versions co-existence be an issue?
BTW,
the best would be to have the official libeigen3-dev
to point to 3.3.4
and then have ROS build consequently.
Therefore, I've sent a bug report here (if you are interested): https://bugs.launchpad.net/ubuntu/+so...
This seems like an issue upstream should fix, especially seeing as this is an LTS release of Ubuntu. If upstream doesn't see the need to fix this it might be necessary to do something in ROS, but for now I'd say wait for a response on your launchpad bug.
+100 for reporting upstream btw.
I guess that if you declare the bug to be affecting also you it would speed up the process.
No response from the upstream in months. What should I do? How can I alert the ROS maintainers?
An LTS version with unstable code inside is a severe issue IMHO.
I'm surprised nobody noticed so far.
I'm not entirely sure really. I think this merits a post on ROS Discourse, seeing as it such a ubiquitously used package.
I posted a summary of this post on ROS Discourse (here).