%global ros_distro jazzy %global pkg_name pluginlib %bcond fedora_fhs 0 %if %{with fedora_fhs} # FHS layout for a possible Fedora main-repo build or reference impl (ADR 0012). %global install_prefix %{_prefix} %else # COPR default: upstream ROS 2 /opt convention. %global install_prefix /opt/ros/%{ros_distro} %endif Name: ros-%{ros_distro}-pluginlib Version: 5.4.5 Release: 1%{?dist} Summary: ROS 2 Jazzy pluginlib License: BSD-3-Clause URL: http://www.ros.org/wiki/pluginlib Source0: https://github.com/ros2-gbp/pluginlib-release/archive/refs/tags/release/jazzy/pluginlib/5.4.5-1.tar.gz#/%{pkg_name}-%{version}.tar.gz BuildRequires: cmake BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: python3-devel BuildRequires: ros-jazzy-ament-cmake BuildRequires: ros-jazzy-ament-index-cpp BuildRequires: ros-jazzy-class-loader BuildRequires: ros-jazzy-rcpputils BuildRequires: ros-jazzy-rcutils BuildRequires: ros-jazzy-tinyxml2-vendor Requires: ros-jazzy-ament-index-cpp Requires: ros-jazzy-class-loader Requires: ros-jazzy-rcpputils Requires: ros-jazzy-rcutils Requires: ros-jazzy-tinyxml2-vendor # Under /opt these libraries must not be exposed to the system dependency # solver; under FHS (--with fedora_fhs) normal auto-provides/requires apply. %if %{without fedora_fhs} %global __provides_exclude_from ^%{install_prefix}/.*$ %global __requires_exclude_from ^%{install_prefix}/.*$ %endif %description The pluginlib package provides tools for writing and dynamically loading plugins using the ROS build infrastructure. To work, these tools require plugin providers to register their plugins in the package.xml of their package. %prep %autosetup -p1 -n pluginlib-release-release-jazzy-pluginlib-5.4.5-1 %build # Make our previously-installed ROS Python packages discoverable to CMake's # execute_process invocations of python3. export PYTHONPATH=%{install_prefix}/lib/python%{python3_version}/site-packages${PYTHONPATH:+:$PYTHONPATH} %cmake \ -DCMAKE_INSTALL_PREFIX=%{install_prefix} \ -DAMENT_PREFIX_PATH=%{install_prefix} \ -DCMAKE_PREFIX_PATH=%{install_prefix} \ -DCMAKE_INSTALL_INCLUDEDIR=include \ -DCMAKE_INSTALL_LIBDIR=lib \ -DCMAKE_INSTALL_BINDIR=bin \ -DCMAKE_INSTALL_DATADIR=share \ -DCMAKE_INSTALL_SYSCONFDIR=etc \ -DINCLUDE_INSTALL_DIR=%{install_prefix}/include \ -DLIB_INSTALL_DIR=%{install_prefix}/lib \ -DSYSCONF_INSTALL_DIR=%{install_prefix}/etc \ -DSHARE_INSTALL_PREFIX=%{install_prefix}/share \ -DSETUPTOOLS_DEB_LAYOUT=OFF -DBUILD_TESTING=OFF %cmake_build %install export PYTHONPATH=%{install_prefix}/lib/python%{python3_version}/site-packages${PYTHONPATH:+:$PYTHONPATH} %cmake_install %check export PYTHONPATH=%{install_prefix}/lib/python%{python3_version}/site-packages${PYTHONPATH:+:$PYTHONPATH} echo 'tests skipped (see CLAUDE.md / packages.yaml)' %files # (no LICENSE file in source tree; see package.xml ) %doc CHANGELOG.rst # TODO: review the file list against the build's "Installing:" log lines; the # generator emits the conventional ament_cmake set but specific packages may # need additions or trimming. %{install_prefix}/share/%{pkg_name}/ # Sentinels: ament_index/resource_index//. Glob covers # packages/, package_run_dependencies/, parent_prefix_path/, and any # member_of_group entries (rosidl_runtime_packages, etc.). %{install_prefix}/share/ament_index/resource_index/*/%{pkg_name} %{install_prefix}/include/%{pkg_name}/ # pluginlib is INTERFACE (header-only), no .so. Ships only list_plugins # CLI under lib/pluginlib/. %{install_prefix}/lib/%{pkg_name}/ %changelog * Fri May 08 2026 Nick Schuetz - 5.4.5-1 - Initial Fedora COPR build for ROS 2 Jazzy.