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

buildfarm fails for noetic with KeyError: libcurlpp-dev

asked 2022-05-10 02:00:00 -0600

ipa-hsd gravatar image

updated 2022-05-10 02:08:18 -0600

We are trying to release the packages in pf_lidar_ros_driver for melodic and noetic. We have been able to release for melodic successfully in the past and even the latest job was successful. However the job for noetic failed with the error:

Looking for the '.dsc' file of package 'ros-noetic-pf-driver' with version '1.2.0-1'
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apt/cache.py", line 297, in __getitem__
    rawpkg = self._cache[key]
KeyError: 'libcurlpp-dev'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/tmp/ros_buildfarm/scripts/release/create_binarydeb_task_generator.py", line 216, in <module>
    main()
  File "/tmp/ros_buildfarm/scripts/release/create_binarydeb_task_generator.py", line 92, in main
    apt_cache, debian_pkg_names)
  File "/tmp/ros_buildfarm/ros_buildfarm/common.py", line 175, in get_binary_package_versions
    pkg = apt_cache[debian_pkg_name]
  File "/usr/lib/python3/dist-packages/apt/cache.py", line 299, in __getitem__
    raise KeyError('The cache has no package named %r' % key)
KeyError: "The cache has no package named 'libcurlpp-dev'"
Build step 'Execute shell' marked build as failure

Since libcurlpp-dev is not a ROS package and is present in rosdistro, I am wondering what went wrong in case of noetic.

Edit 1: Among all the builds, looks like it fails only for debian buster.

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted
0

answered 2022-05-10 02:07:29 -0600

gvdhoorn gravatar image

updated 2022-05-10 02:18:16 -0600

Afaict, there is no libcurlpp-dev in the current rosdep db.

The only keys which contain the libcurl substring are libcurl and libcurl-dev.

libcurlpp-dev does not exist. Only curlpp-dev (here).

Seeing the traceback though, it would appear this is not a problem with the rosdep side of things, but while actually installing packages (in this case the .deb): curlpp-dev maps to libcurlpp-dev for debian. According to this, that package only exists in bullseye, bookworm and sid (if you include Debian Unstable).

If it doesn't exist in other releases, the curlpp-dev key might have to be specialised further for the debian OS entry.

edit flag offensive delete link more

Comments

Yes we did use the keyword curlpp-dev. But for debian and ubuntu it gets resolved to libcurlpp-dev

ipa-hsd gravatar image ipa-hsd  ( 2022-05-10 02:14:13 -0600 )edit

Yes, but you wrote:

Since libcurlpp-dev is not a ROS package and is present in rosdistro, [..]

which implied you believed it is a problem with rosdep somewhow.

gvdhoorn gravatar image gvdhoorn  ( 2022-05-10 02:16:00 -0600 )edit

That was my initial thought. But with my "edit 1", I realized it seems to be a problem with debian buster specifically.

ipa-hsd gravatar image ipa-hsd  ( 2022-05-10 02:18:46 -0600 )edit

Yes agreed with your recent edit

ipa-hsd gravatar image ipa-hsd  ( 2022-05-10 02:19:45 -0600 )edit

That would still not make the build succeed of course.

Perhaps blacklisting the package for Buster would be an option.

gvdhoorn gravatar image gvdhoorn  ( 2022-05-10 02:26:01 -0600 )edit
0

answered 2022-05-10 02:26:17 -0600

tfoote gravatar image

updated 2022-05-10 02:27:16 -0600

libcurlpp-dev is not packaged for buster.

Looking here: https://packages.debian.org/sid/libcu... it's only on bullseye bookworm and sid

You can compare that to libcurl-dev which is available on all platforms: https://packages.debian.org/sid/libcu...

The rosdep key should be updated to state that the resolution is valid for wildcard, but null for stretch, buster to be completely accurate. With this inaccuracy bloom filled in an invalid package. And that is why the build is failing. If the rosdep key was more complete bloom would have failed at an earlier stage and you could have skipped buster generation. If this is a necessary dependency blacklistingit for buster as suggested by @gvdhoorn is likely the best solution. Also a fix for the rosdep key would be appreciated.

edit flag offensive delete link more

Comments

to clarify, I need to add the package pf_driverin https://github.com/ros-infrastructure... and add bullseye, bookworm and sidin https://github.com/ros/rosdistro/blob... ?

ipa-hsd gravatar image ipa-hsd  ( 2022-05-10 02:57:40 -0600 )edit

Correct on the blacklist. For the rosdep rule. You should change the existing rule to be a wildcard '*' to cover all platforms and explicitly blacklist buster using buster: null and stretch: null This will cover all current and expected future versions. And also give an accurate failure to resolve on buster and stretch which covers all supported debian versions.

tfoote gravatar image tfoote  ( 2022-05-10 09:46:04 -0600 )edit
1

Question Tools

1 follower

Stats

Asked: 2022-05-10 02:00:00 -0600

Seen: 202 times

Last updated: May 10 '22