ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
2

build eloquent snaps on OSX

asked 2020-02-25 16:53:30 -0500

Karsten gravatar image

updated 2020-02-25 16:54:44 -0500

I am following the information provided on https://snapcraft.io/blog/how-to-buil... but my colcon compilation fails with

colcon build --merge-install --build-base /root/parts/colcon-part/build --base-paths /root/parts/colcon-part/src/demo_nodes_cpp --install-base /root/parts/colcon-part/install/opt/ros/snap --parallel-workers=2 --cmake-args -DCMAKE_BUILD_TYPE=Release
Starting >>> demo_nodes_cpp
--- stderr: demo_nodes_cpp
make[2]: *** No rule to make target '/usr/lib/x86_64-linux-gnu/libpcre.so', needed by 'listener'.  Stop.
make[2]: *** Waiting for unfinished jobs....
make[2]: *** No rule to make target '/usr/lib/x86_64-linux-gnu/libpcre.so', needed by 'listener_serialized_message'.  Stop.
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/listener.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/listener_serialized_message.dir/all] Error 2
make: *** [all] Error 2
---
Failed   <<< demo_nodes_cpp [ Exited with code 2 ]

Summary: 0 packages finished [5.30s]
  1 package failed: demo_nodes_cpp
  1 package had stderr output: demo_nodes_cpp
Failed to run 'colcon build --merge-install --build-base /root/parts/colcon-part/build --base-paths /root/parts/colcon-part/src/demo_nodes_cpp --install-base /root/parts/colcon-part/install/opt/ros/snap --parallel-workers=2 --cmake-args -DCMAKE_BUILD_TYPE=Release' for 'colcon-part': Exited with code 2.
Verify that the part is using the correct parameters and try again.
Run the same command again with --debug to shell into the environment if you wish to introspect this failure.
An error occurred when trying to execute 'sudo -i env SNAPCRAFT_HAS_TTY=True snapcraft snap' with 'multipass': returned exit code 2.

I am by no means familiar with Snaps and just wanted to get some pointers or insights on what's going on here or how to debug this further.

I've tried to debug this in an interactive shell with snapcraft --debug and I can verify that /usr/lib/x86_64-linux-gnu/libpcre.so does indeed exist.

edit retag flag offensive close merge delete

Comments

Faced similar issue on ubuntu 18.04 host.

Note that this fails only for eloquent but successfully builds dashing snaps. Both (mostly identical) tutorials 12 result in the same errors for eloquent and work for dashing.

Maybe relevant details:

In the console output:

Copying needed target link from the system /lib/x86_64-linux-gnu/libz.so.1.2.11
Copying needed target link from the system /lib/x86_64-linux-gnu/libpcre.so.3.13.3

And the final error is

make[2]: *** No rule to make target '/usr/lib/x86_64-linux-gnu/libpcre.so', needed by 'listener_serialized_message'.  Stop.

The only libpcre lib in /usr/lib is:

/usr/lib/x86_64-linux-gnu/libpcreposix.so.3

@artivis FYI

marguedas gravatar image marguedas  ( 2020-03-16 05:31:23 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
0

answered 2020-03-16 11:59:36 -0500

Karsten gravatar image

updated 2020-03-16 11:59:53 -0500

I've opened a ticket on the tutorial's package herewhich then further lead to a ticket upstream: https://bugs.launchpad.net/snapcraft/...

I know too little about snapcraft to actually start helping out with this, so any pointer or insights are welcome :)

edit flag offensive delete link more

Comments

1

A fix is in progress thanks to your initial report. It's still not clear what changed in Eloquent to cause this, because poco hasn't changed (although they fixed this issue upstream). I suspect part of the cmake dependency logic in ament was updated at some point.

kyrofa gravatar image kyrofa  ( 2020-03-16 17:39:26 -0500 )edit

Question Tools

2 followers

Stats

Asked: 2020-02-25 16:53:30 -0500

Seen: 159 times

Last updated: Mar 16 '20