Reason I was hesitant to start doing this is that we risk breaking downstream packages that may be (implicitly/unknowingly) depending on cpp_common to bring in libboost-all-dev.
This seems to have happened before (from: ros/roscpp_core#24):
Before the ROS package console_bridge was bringing in the boost dependency transitively. Since roscpp_core now uses the system package of console_bridge boost is not exposed as a transitive dependency anymore.
Anyway the packages in roscpp_core should state their direct dependencies explicitly anyway and not rely on transitive dependencies for this. Please see PR #25 for the proposed fix.
Technically those downstream packages would need to be fixed of course. I just wasn’t sure that was a feasible thing to do in ROS 1 still.
That was all really. I’m more than happy to start submitting PRs. But I don’t like breaking things and potentially problematic changes like this have been met with hesitation from OR maintainers in the past, so it’s not too strange for us to first look at approaches that would result in similar gains without causing too much trouble “upstream”.