%global ros_distro lyrical %global pkg_name rcl_interfaces %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}-rcl-interfaces Version: 2.4.5 Release: 2%{?dist} Summary: ROS 2 Lyrical rcl_interfaces License: Apache-2.0 URL: https://github.com/ros2-gbp/rcl_interfaces-release Source0: https://github.com/ros2-gbp/rcl_interfaces-release/archive/refs/tags/release/lyrical/rcl_interfaces/2.4.5-1.tar.gz#/%{pkg_name}-%{version}.tar.gz BuildRequires: cmake BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: python3-devel BuildRequires: ros-lyrical-ament-cmake BuildRequires: ros-lyrical-builtin-interfaces BuildRequires: ros-lyrical-rosidl-default-generators Requires: ros-lyrical-builtin-interfaces Requires: ros-lyrical-rosidl-default-runtime # Hide ROS libraries from the system solver under /opt; 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 ROS client library common interfaces. This package contains the messages and services which ROS client libraries will use under the hood to communicate higher level concepts such as parameters. %prep %autosetup -p1 -n rcl_interfaces-release-release-lyrical-rcl_interfaces-2.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} # Message package: multiple typesupport .so variants + Python bindings. %{install_prefix}/include/%{pkg_name}/ %{install_prefix}/lib/lib%{pkg_name}__rosidl_*.so %{install_prefix}/lib/python%{python3_version}/site-packages/%{pkg_name}/ %{install_prefix}/lib/python%{python3_version}/site-packages/%{pkg_name}-%{version}-py%{python3_version}.egg-info/ %changelog * Fri Oct 16 2026 Nick Schuetz - 2.4.5-2 - Rebuild against rosidl_typesupport_fastrtps 3.9.7. Since 3.9.6 the generated code calls cdr_(de)serialize_with_endpoint on nested types, and interface packages built with 3.9.5 do not export it, so any newer interface package depending on this one failed to link (ADR 0014). * Tue Jun 02 2026 Nick Schuetz - 2.4.5-1 - Initial Fedora COPR build for ROS 2 Lyrical.