From 2987ec72c0ab4db2feb98cd2d44a95b20a6fcd6f Mon Sep 17 00:00:00 2001 From: Nick Schuetz Date: Fri, 9 Oct 2026 02:06:17 -0500 Subject: [PATCH] fix(lyrical): vendor packages need python3-pkg-resources on Fedora 45+ gz_cmake_vendor and rviz_ogre_vendor failed on all four Python 3.15 chroots (fedora-45, fedora-rawhide) with from pkg_resources import load_entry_point ModuleNotFoundError: No module named 'pkg_resources' raised by vcstool during the ExternalProject download step. Fedora 45 ships setuptools 83, which no longer carries pkg_resources; it moved to the separate python3-pkg-resources package, and python3-vcstool does not require it. Fedora 44 and CentOS Stream 10 still get pkg_resources from setuptools. Every vendor package runs vcs at build time through ros-lyrical-ament-cmake-vendor-package, so that package now Requires python3-pkg-resources behind an %if 0%{?fedora} >= 45 guard. Release bumped to 2 so the dependency reaches the vendor buildroots. The stale comment in the ogre-vendor spec is corrected to match. Verified in fedora:45 and fedora:rawhide containers: vcs fails to import without the package and runs with it. verify-specs: 0 errors. --- .../ros-lyrical-ament-cmake-vendor-package.spec | 14 +++++++++++++- specs/lyrical/ros-lyrical-rviz-ogre-vendor.spec | 7 ++++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/specs/lyrical/ros-lyrical-ament-cmake-vendor-package.spec b/specs/lyrical/ros-lyrical-ament-cmake-vendor-package.spec index 30edb09..ddceb2b 100644 --- a/specs/lyrical/ros-lyrical-ament-cmake-vendor-package.spec +++ b/specs/lyrical/ros-lyrical-ament-cmake-vendor-package.spec @@ -11,7 +11,7 @@ Name: ros-%{ros_distro}-ament-cmake-vendor-package Version: 2.8.8 -Release: 1%{?dist} +Release: 2%{?dist} Summary: ROS 2 Lyrical ament_cmake_vendor_package License: Apache-2.0 @@ -29,6 +29,14 @@ BuildRequires: ros-lyrical-ament-cmake-export-dependencies Requires: git Requires: python3-vcstool +# vcstool imports pkg_resources, which Fedora 45+ ships as a separate +# python3-pkg-resources package (setuptools 83 no longer carries it) and +# python3-vcstool does not require it. Every vendor package (gz_*_vendor, +# rviz_ogre_vendor, spdlog_vendor) runs vcs during its build, so pull it in +# here. Fedora 44 and CentOS Stream 10 still get pkg_resources from setuptools. +%if 0%{?fedora} >= 45 +Requires: python3-pkg-resources +%endif Requires: ros-lyrical-ament-cmake-core Requires: ros-lyrical-ament-cmake-export-dependencies @@ -93,6 +101,10 @@ echo 'tests skipped (see CLAUDE.md / packages.yaml)' %changelog +* Thu Oct 09 2026 Nick Schuetz - 2.8.8-2 +- Require python3-pkg-resources on Fedora 45+. vcstool needs pkg_resources, + which setuptools 83 no longer ships and python3-vcstool does not require. + * Tue Aug 25 2026 Nick Schuetz - 2.8.8-1 - Sync with upstream lyrical: 2.8.8. diff --git a/specs/lyrical/ros-lyrical-rviz-ogre-vendor.spec b/specs/lyrical/ros-lyrical-rviz-ogre-vendor.spec index e0d0878..15e10af 100644 --- a/specs/lyrical/ros-lyrical-rviz-ogre-vendor.spec +++ b/specs/lyrical/ros-lyrical-rviz-ogre-vendor.spec @@ -29,9 +29,10 @@ BuildRequires: libXaw-devel BuildRequires: libXrandr-devel BuildRequires: mesa-libGL-devel mesa-libGLU-devel BuildRequires: python3-devel -# ogre_vendor's ExternalProject download/configure helper imports pkg_resources; -# on Fedora rawhide (fc45) it is no longer pulled in transitively, so require -# setuptools explicitly. Harmless on fedora-44 and centos-stream-10. +# ogre_vendor's ExternalProject download runs vcstool, which imports +# pkg_resources. On Fedora 44 and CentOS Stream 10 that comes from setuptools; +# on Fedora 45+ it is the separate python3-pkg-resources package, pulled in by +# ros-lyrical-ament-cmake-vendor-package. BuildRequires: python3-setuptools BuildRequires: ros-lyrical-ament-cmake BuildRequires: ros-lyrical-ament-cmake-vendor-package