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

Dashing patch release 2 not compatible with Poco 1.9.3 #403

Closed
klintan opened this issue Aug 28, 2019 · 5 comments
Closed

Dashing patch release 2 not compatible with Poco 1.9.3 #403

klintan opened this issue Aug 28, 2019 · 5 comments
Assignees

Comments

@klintan
Copy link

klintan commented Aug 28, 2019

Bug report

Required Info:

  • Operating System:
    • MacOS 10.14 Mojave
  • Installation type:
    • Binaries
  • Version or commit hash:
    • Dashing patch release 2
  • DDS implementation:
    • FastRTPS
  • Client library (if applicable):
    • rclpy

Steps to reproduce issue

It seems that rclpy is compiled agains poco version 1.9.2 and latest version on brew is 1.9.3. Resulting in this issue:

Failed to load entry point 'generate_policy': dlopen/ros2/ros2-osx/lib/python3.7/site-packages/rclpy/_rclpy.cpython-37m-darwin.so, 2): Library not loaded: /usr/local/opt/poco/lib/libPocoFoundation.62.dylib
  Referenced from: /Users/andreasklintberg/personal/ros2/ros2-osx/lib/librosidl_typesupport_c.dylib
  Reason: image not found
The C extension '/ros2/ros2-osx/lib/python3.7/site-packages/rclpy/_rclpy.cpython-37m-darwin.so' failed to be imported while being present on the system. Please refer to 'https://index.ros.org/doc/ros2/Troubleshooting/#import-failing-even-with-library-present-on-the-system' for possible solutions

It's a tiny bit tricky because it's not straightforward to install old versions using brew (at least for some libraries). Not sure what the solution would be here, because I'm not exactly sure how C++ links libraries, but there is a symlink libPocoFoundation.dylib pointing to your version, meaning if this is linked instead the problem would go away.

There will probably be a lot of issues/questions about this as it would not work out of the box if you try to install Dashing patch release 2 (poco 1.9.3 was released 7 days ago).

Expected behavior

Poco would work with version higher than 1.9.2

Actual behavior

Additional information

@nuclearsandwich
Copy link
Member

This is a perennial problem due to the rolling nature of Homebrew. Our binaries will only continue to work until a Homebrew update changes something we link against preventing us from linking against it. After a brew update, building ROS 2 from source the only way to guarantee that things will work.

We endeavor to get our hosts up-to-date with Homebrew just before creating new release binaries (allowing enough time to resolve any source-level issues as a result of upgrades) but we have no control over when Homebrew might merge a change that breaks what we've just produced.

This will be temporarily resolved when we update our packaging hosts before the next Dashing patch release but we have no control over when it might break again.

@rotu was looking into trying to find a way to link against whatever version of poco is installed via Homebrew but I'm not aware that they were able to make any headway.

Occasionally there is a situation where we cannot upgrade a dependency, in which case the installation documentation will be updated with instructions for which dependency must be pinned and how to install and use the correct version. This is not one of those cases unless there are also problems building from source using poco 1.9.3.

@nuclearsandwich
Copy link
Member

Wrong key combo. I am fine closing this issue as an answered question or if folks want to leave it open as an "advisory" until Patch release 3 kicks the can down the road. But there is not a near-term solution to the general problem this is an instance of.

@rotu
Copy link

rotu commented Aug 28, 2019

I didn't find a good answer. I think it can be worked around with a custom FindPoco.cmake, but for now I consider it a Poco bug pocoproject/poco#2757

@nuclearsandwich
Copy link
Member

The most recent patch release was built against the latest version of poco available. It won't resolve the issue indefinitely but it's currently possible to use the binaries on an up-to-date homebrew installation.

@ros-discourse
Copy link

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

https://discourse.ros.org/t/is-anyone-using-ros2-gui-tools-like-rviz-on-macos/16353/9

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

No branches or pull requests

4 participants