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

Parse Alpine package alias names in rosdep_repo_check #31565

Merged
merged 3 commits into from
Jun 24, 2022

Conversation

at-wat
Copy link
Contributor

@at-wat at-wat commented Dec 23, 2021

This PR fixes rosdep_repo_check test to handle alias package names on Alpine Linux.

For example on the recent version of Alpine including edge, package boost does not exist but boost1.77 package provides boost with alias name of boost.
In such case, entry in APKINDEX is like:

C:Q1eEjzBgEI0tEBwEsKN8xHqWg8lPI=
P:boost1.77
V:1.77.0-r3
A:x86_64
S:503233
I:1212416
T:Free peer-reviewed portable C++ source libraries
U:https://www.boost.org/
L:BSL-1.0
o:boost1.77
m:Natanael Copa <[email protected]>
t:1639595897
c:f28bbb115a3af88eb17647009520f3ed1de0d061
D:boost1.77-libs so:libc.musl-x86_64.so.1 so:libgcc_s.so.1 so:libstdc++.so.6
p:boost=1.77.0-r3 cmd:b2=1.77.0-r3 cmd:bcp=1.77.0-r3 cmd:bjam=1.77.0-r3

References

@at-wat
Copy link
Contributor Author

at-wat commented Dec 23, 2021

FYI @russkel

@russkel
Copy link
Contributor

russkel commented Dec 23, 2021

Thanks for that @at-wat. The only change I'd recommend is changing the Dependency class into a function that directly returns the values of interest. Just an opinion, maybe the maintainers think differently.

Copy link
Member

@cottsay cottsay left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does the apk installer and apk detector in rosdep handle these aliases?

test/rosdep_repo_check/apk.py Outdated Show resolved Hide resolved
test/rosdep_repo_check/apk.py Show resolved Hide resolved
@cottsay cottsay self-assigned this Dec 23, 2021
@at-wat
Copy link
Contributor Author

at-wat commented Dec 24, 2021

Does the apk installer and apk detector in rosdep handle these aliases?

They call actual apk command and the command resolves aliases.

@cottsay
Copy link
Member

cottsay commented Dec 24, 2021

They call actual apk command and the command resolves aliases.

While apk itself seems to support it, rosdep is not configured to handle it. The package gets installed, so the apk installer seems fine, but the apk detector doesn't find it properly. I think that rosdep should be updated before we start accepting rules that use aliases on Alpine.

# rosdep install --from-path . -y
executing command [apk add boost]
(1/34) Installing boost1.77-atomic (1.77.0-r3)
(2/34) Installing boost1.77-chrono (1.77.0-r3)
(3/34) Installing boost1.77-container (1.77.0-r3)
(4/34) Installing boost1.77-context (1.77.0-r3)
(5/34) Installing boost1.77-contract (1.77.0-r3)
(6/34) Installing boost1.77-thread (1.77.0-r3)
(7/34) Installing boost1.77-coroutine (1.77.0-r3)
(8/34) Installing boost1.77-date_time (1.77.0-r3)
(9/34) Installing boost1.77-fiber (1.77.0-r3)
(10/34) Installing boost1.77-filesystem (1.77.0-r3)
(11/34) Installing boost1.77-graph (1.77.0-r3)
(12/34) Installing boost1.77-iostreams (1.77.0-r3)
(13/34) Installing boost1.77-locale (1.77.0-r3)
(14/34) Installing boost1.77-log (1.77.0-r3)
(15/34) Installing boost1.77-log_setup (1.77.0-r3)
(16/34) Installing boost1.77-math (1.77.0-r3)
(17/34) Installing boost1.77-prg_exec_monitor (1.77.0-r3)
(18/34) Installing boost1.77-program_options (1.77.0-r3)
(19/34) Installing boost1.77-python3 (1.77.0-r3)
(20/34) Installing boost1.77-random (1.77.0-r3)
(21/34) Installing boost1.77-regex (1.77.0-r3)
(22/34) Installing boost1.77-serialization (1.77.0-r3)
(23/34) Installing boost1.77-stacktrace_basic (1.77.0-r3)
(24/34) Installing boost1.77-stacktrace_noop (1.77.0-r3)
(25/34) Installing boost1.77-system (1.77.0-r3)
(26/34) Installing boost1.77-timer (1.77.0-r3)
(27/34) Installing boost1.77-type_erasure (1.77.0-r3)
(28/34) Installing boost1.77-unit_test_framework (1.77.0-r3)
(29/34) Installing boost1.77-wave (1.77.0-r3)
(30/34) Installing boost1.77-wserialization (1.77.0-r3)
(31/34) Installing boost1.77-json (1.77.0-r3)
(32/34) Installing boost1.77-nowide (1.77.0-r3)
(33/34) Installing boost1.77-libs (1.77.0-r3)
(34/34) Installing boost1.77 (1.77.0-r3)
Executing busybox-1.33.1-r4.trigger
OK: 115 MiB in 91 packages
ERROR: the following rosdeps failed to install
  apk: Failed to detect successful installation of [boost]

@at-wat
Copy link
Contributor Author

at-wat commented Dec 24, 2021

@cottsay opened a PR on rosdep: ros-infrastructure/rosdep#848

@at-wat
Copy link
Contributor Author

at-wat commented Jan 18, 2022

@cottsay ros-infrastructure/rosdep#848 addresses your comment. Please take a look when you have time.

@tfoote
Copy link
Member

tfoote commented Apr 24, 2022

The rosdep PR has been merged. @cottsay Can you loop back on this?

@tfoote tfoote requested a review from cottsay April 24, 2022 05:55
@cottsay
Copy link
Member

cottsay commented Apr 24, 2022

We're trying to get a rosdep release out soon. Then this can be merged.

@audrow
Copy link
Contributor

audrow commented Jun 7, 2022

@cottsay, can this be merged yet?

@cottsay
Copy link
Member

cottsay commented Jun 7, 2022

can this be merged yet?

No. We still need a rosdep release for the affected keys to work.

@audrow audrow added the rosdep Issue/PR is for a rosdep key label Jun 7, 2022
@cottsay
Copy link
Member

cottsay commented Jun 24, 2022

🚢 ros-infrastructure/rosdep#885

@cottsay cottsay merged commit 57f5f4f into ros:master Jun 24, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
rosdep Issue/PR is for a rosdep key
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants