Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reduce boost dependency scope #118

Merged
merged 2 commits into from
Sep 7, 2022
Merged

Conversation

stwirth
Copy link
Contributor

@stwirth stwirth commented Aug 19, 2022

<depend>boost</depend> resolves to libboost-all-dev on Ubuntu which is far too much for what is really needed. The -dev packages should never be needed at runtime. Instead, the corresponding libboost* (without -dev) libraries should be used as run_depend/exec_depend. Many boost libraries are also header only and don't need a runtime dependency either.

This PR should reduce the scope of boost dependencies quite a bit.

@stwirth
Copy link
Contributor Author

stwirth commented Aug 19, 2022

debian buster build has a failing unit test:

16:25:13   /tmp/ws/devel_isolated/test_nodelet/lib/test_nodelet/test_callback_queue_manager --gtest_output=xml:/tmp/ws/test_results/test_nodelet/gtest-test_callback_queue_manager.xml
16:25:13 [==========] Running 3 tests from 1 test case.
16:25:13 [----------] Global test environment set-up.
16:25:13 [----------] 3 tests from CallbackQueueManager
16:25:13 [ RUN      ] CallbackQueueManager.singleThreaded
16:25:14 [       OK ] CallbackQueueManager.singleThreaded (1007 ms)
16:25:14 [ RUN      ] CallbackQueueManager.multipleSingleThreaded
16:25:15 [       OK ] CallbackQueueManager.multipleSingleThreaded (1007 ms)
16:25:15 [ RUN      ] CallbackQueueManager.multiThreaded
16:25:15 terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::lock_error> >'
16:25:15   what():  boost: mutex lock failed in pthread_mutex_lock: Invalid argument
16:25:15 Aborted (core dumped)

@stwirth
Copy link
Contributor Author

stwirth commented Aug 19, 2022

Trying another build...
@ros-pull-request-builder retest this please

@stwirth
Copy link
Contributor Author

stwirth commented Aug 19, 2022

... and the next build went through.

@stwirth
Copy link
Contributor Author

stwirth commented Aug 19, 2022

@mjcarroll I'd appreciate your review/merge. Thanks!

@gbiggs
Copy link
Contributor

gbiggs commented Sep 7, 2022

Compiles here and LGTM; merging!

@gbiggs gbiggs merged commit 6265cac into ros:noetic-devel Sep 7, 2022
@mikaelarguedas
Copy link
Member

@mjcarroll @gbiggs is it possible to release a new version with this change in ROS Noetic ?

This package is the last of the robot stack that's still pulling all of boost:

$ docker run -it --rm ros:noetic-robot
root@95c364007210:/# cd /opt/ros/noetic/share/
root@95c364007210:/opt/ros/noetic/share# grep -r "depend>boost"
nodelet_topic_tools/package.xml:  <depend>boost</depend>
nodelet/package.xml:  <depend>boost</depend>

@ros-discourse
Copy link

This pull request has been mentioned on ROS Discourse. There might be relevant details there:

https://discourse.ros.org/t/package-separation-for-building-and-running-ros-applications/35527/3

@mjcarroll
Copy link
Member

ros/rosdistro#39492

@mikaelarguedas
Copy link
Member

Great thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants