Skip to content

Restore RHEL 8 entries on the Qt5/Qt6-selecting rosdep keys - #53020

Open
nbbrooks wants to merge 1 commit into
ros:masterfrom
nbbrooks:rhel8-qt5-qt6-selecting-keys
Open

Restore RHEL 8 entries on the Qt5/Qt6-selecting rosdep keys#53020
nbbrooks wants to merge 1 commit into
ros:masterfrom
nbbrooks:rhel8-qt5-qt6-selecting-keys

Conversation

@nbbrooks

@nbbrooks nbbrooks commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

The seven Qt5/Qt6-selecting rosdep keys added in #50896 and #50897 all declare rhel: '8': null, so any package depending on them cannot be released for RHEL 8. This PR fills in the RHEL 8 entries with the same Qt5 packages already used for RHEL 9.

How this surfaced

Releasing rviz_visual_tools 4.2.0 to Humble, which switched to qt-base-dev/libqtwidgets to pick up Qt6 on Resolute. Bloom's rosrpm generator for rhel:8:

Could not resolve rosdep key 'libqtwidgets' for distro '8':
[libqtwidgets] defined as "not available" for OS version [8]
Failed to resolve libqtwidgets on rhel:8 with: Error running generator:
  Failed to resolve rosdep key 'libqtwidgets', aborting.

The same package released fine for RHEL 8 previously, using qtbase5-dev and libqt5-widgets.

Why the entries are missing

#50896 built these keys by merging existing ones:

I used gemini to combine the following existing rosdep keys: (and then reviewed it manually)
qt6-base-dev, qtbase5-dev, libqt5-widgets, libqt6widgets6t64

Two of those sources — qtbase5-dev and libqt5-widgets — have a flat, unversioned rhel: entry, which covers every RHEL version including 8. Collapsing that into a version-keyed map produced {'*': qt6, '8': null, '9': qt5}, dropping RHEL 8. The stated scope was "Rolling (and in the future Lyrical) use Qt5 on RHEL 9 / Ubuntu Noble, and Qt6 everywhere else", where RHEL 8 does not apply, so nothing in review would have flagged it.

So the null is an artifact of that collapse, not an assertion that Qt is unavailable on RHEL 8.

Every value here is already in use on RHEL 8

Each package name below is provided by an existing key whose rhel: entry is flat, and therefore already resolves on RHEL 8:

key RHEL 8 value added already provided on RHEL 8 by
qt-base-dev qt5-qtbase-devel qtbase5-dev, qt5-qmake, libqt5-opengl-dev
libqtwidgets qt5-qtbase libqt5-widgets, libqt5-core, libqt5-concurrent
libqtcore qt5-qtbase libqt5-core
libqtopengl qt5-qtbase libqt5-opengl
libqtgui qt5-qtbase-gui libqt5-gui
libqtsvg qt5-qtsvg libqt5-svg
qt-svg-dev qt5-qtsvg-devel libqt5-svg-dev

In every case the new RHEL 8 value is identical to the existing RHEL 9 value, which is the expected outcome: RHEL 8 and 9 both ship Qt5, and only '*' (RHEL 10 and newer) has Qt6.

Scope

All seven members of the family, rather than only the two that blocked our release — the omission is uniform across them and fixing a subset would leave the same failure waiting for the next package. #52673 is the precedent: it filled the equivalent missing jammy entry in qt-base-dev so that packages "correctly pick up the Qt5 or Qt6 version of this package, depending on which distro they are running." This is the RHEL 8 half of that same gap.

The other keys in base.yaml with rhel: '8': null are Qt6-only (qt6-*, libqt6*, qml6-module-*) and are correctly null, since RHEL 8 has no Qt6. They are untouched.

test/rosdep_formatting_test.py and test/rosdep_duplicates_test.py pass.

Assisted-by: Claude Code:claude-opus-5

@nbbrooks
nbbrooks requested a review from a team as a code owner August 3, 2026 06:01
@github-actions github-actions Bot added the rosdep Issue/PR is for a rosdep key label Aug 3, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

For changes related to rosdep:

  • ✅ Platforms for new rosdep rules are valid

For changes related to yamllint:

  • ✅ All new lines of YAML pass linter checks

The seven keys added in ros#50896 and ros#50897 that select Qt5 or Qt6 per platform
all declare `rhel: '8': null`, so no package depending on them can be released
for RHEL 8. Fill in the RHEL 8 entries with the same Qt5 packages already used
for RHEL 9.

ros#50896 built these keys by machine-merging existing ones, two of which
(`qtbase5-dev`, `libqt5-widgets`) carry a flat, unversioned `rhel:` entry that
covers every RHEL version. Collapsing that into a version-keyed map produced
`{'*': qt6, '8': null, '9': qt5}`, dropping RHEL 8. Its stated scope was Rolling
and Lyrical, where RHEL 8 does not apply, so the loss was not visible in review.
The `null` is an artifact of that merge, not an assertion that Qt is unavailable
on RHEL 8.

Every value added here is already provided on RHEL 8 by an existing key with a
flat `rhel:` entry — `qt5-qtbase-devel` by `qtbase5-dev`, `qt5-qtbase` by
`libqt5-widgets`, `qt5-qtbase-gui` by `libqt5-gui`, `qt5-qtsvg` by
`libqt5-svg`, `qt5-qtsvg-devel` by `libqt5-svg-dev` — and matches that key's
existing RHEL 9 value, since RHEL 8 and 9 both ship Qt5.

Found while releasing rviz_visual_tools 4.2.0 to Humble, where bloom's rosrpm
generator failed to resolve `libqtwidgets` and `qt-base-dev` on rhel:8. The same
package released for RHEL 8 previously, via the Qt5-specific keys.

Follows ros#52673, which filled the equivalent missing `jammy` entry in
`qt-base-dev`. Keys with `rhel: '8': null` that are Qt6-only are left alone;
RHEL 8 has no Qt6.

Assisted-by: Claude Code:claude-opus-5
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@nbbrooks
nbbrooks force-pushed the rhel8-qt5-qt6-selecting-keys branch from e564ee5 to 12cb62f Compare August 3, 2026 06:04

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

For changes related to rosdep:

  • ✅ Platforms for new rosdep rules are valid

For changes related to yamllint:

  • ✅ All new lines of YAML pass linter checks

@mergify

mergify Bot commented Aug 3, 2026

Copy link
Copy Markdown

Tick the box to add this pull request to the merge queue (same as @mergifyio queue).

  • Queue this pull request

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.

2 participants