%define ros_distro humble %define RosPkgName agni-tf-tools Name: ros-%{ros_distro}-%{RosPkgName} Version: 1.0.0 Release: 1%{?dist} Summary: GUI and rviz plugin to publish static transforms with Euler angle support License: BSD URL: https://github.com/ubi-agni/agni_tf_tools Source0: agni-tf-tools-1.0.0-1.tar.gz %global debug_package %{nil} %global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') %global __provides_exclude_from ^/opt/ros/%{ros_distro}/.*$ %global __requires_exclude_from ^/opt/ros/%{ros_distro}/.*$ BuildRequires: cmake BuildRequires: ros-%{ros_distro}-ament-cmake BuildRequires: ros-%{ros_distro}-angles BuildRequires: ros-%{ros_distro}-geometry-msgs BuildRequires: ros-%{ros_distro}-interactive-markers BuildRequires: ros-%{ros_distro}-pluginlib BuildRequires: ros-%{ros_distro}-rclcpp BuildRequires: ros-%{ros_distro}-rviz-common BuildRequires: ros-%{ros_distro}-rviz-default-plugins BuildRequires: ros-%{ros_distro}-std-msgs BuildRequires: ros-%{ros_distro}-tf2 BuildRequires: ros-%{ros_distro}-tf2-geometry-msgs BuildRequires: ros-%{ros_distro}-tf2-ros BuildRequires: ros-%{ros_distro}-visualization-msgs BuildRequires: boost-devel BuildRequires: eigen3-devel Requires: ros-%{ros_distro}-ros-workspace Requires: ros-%{ros_distro}-ament-cmake Requires: ros-%{ros_distro}-angles Requires: ros-%{ros_distro}-geometry-msgs Requires: ros-%{ros_distro}-interactive-markers Requires: ros-%{ros_distro}-pluginlib Requires: ros-%{ros_distro}-rclcpp Requires: ros-%{ros_distro}-rviz-common Requires: ros-%{ros_distro}-rviz-default-plugins Requires: ros-%{ros_distro}-std-msgs Requires: ros-%{ros_distro}-tf2 Requires: ros-%{ros_distro}-tf2-geometry-msgs Requires: ros-%{ros_distro}-tf2-ros Requires: ros-%{ros_distro}-visualization-msgs Requires: boost Provides: %{name}-devel = %{version}-%{release} Provides: %{name}-doc = %{version}-%{release} Provides: %{name}-runtime = %{version}-%{release} %description This package provides a GUI program as well as an rviz plugin to publish static transforms. Both support the transformation between various Euler angle representations. The rviz plugin also allows configuring the transform with an interactive marker. %prep %setup -q -n agni-tf-tools-1.0.0-1 # rviz_common humble 中 Display::update 签名为 float,源码用 chrono::nanoseconds 需修正 sed -i 's/void update(std::chrono::nanoseconds wall_dt, std::chrono::nanoseconds ros_dt) override;/void update(float wall_dt, float ros_dt) override;/' src/plugin/TransformPublisherDisplay.h sed -i '/^void TransformPublisherDisplay::update(std::chrono::nanoseconds wall_dt,/{N;s/void TransformPublisherDisplay::update(std::chrono::nanoseconds wall_dt,\n\s*std::chrono::nanoseconds ros_dt)/void TransformPublisherDisplay::update(float wall_dt,\n float ros_dt)/}' src/plugin/TransformPublisherDisplay.cpp %build source /opt/ros/%{ros_distro}/setup.sh 2>/dev/null || true export PYTHONPATH=/opt/ros/%{ros_distro}/lib/python%{python3_version}/site-packages${PYTHONPATH:+:$PYTHONPATH} export PKG_CONFIG_PATH=/opt/ros/%{ros_distro}/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH} mkdir -p .obj && cd .obj cmake3 \ -DCMAKE_INSTALL_PREFIX="/opt/ros/%{ros_distro}" \ -DAMENT_PREFIX_PATH="/opt/ros/%{ros_distro}" \ -DCMAKE_PREFIX_PATH="/opt/ros/%{ros_distro}" \ -UINCLUDE_INSTALL_DIR -ULIB_INSTALL_DIR -USYSCONF_INSTALL_DIR -USHARE_INSTALL_PREFIX -ULIB_SUFFIX \ -DSETUPTOOLS_DEB_LAYOUT=OFF \ -DBUILD_TESTING=OFF -DTESTING=OFF -DCMAKE_SUPPRESS_REGENERATION=ON \ .. make %{?_smp_mflags} %install source /opt/ros/%{ros_distro}/setup.sh 2>/dev/null || true export PYTHONPATH=/opt/ros/%{ros_distro}/lib/python%{python3_version}/site-packages${PYTHONPATH:+:$PYTHONPATH} export PKG_CONFIG_PATH=/opt/ros/%{ros_distro}/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH} cd .obj make install DESTDIR=%{buildroot} %files /opt/ros/%{ros_distro} %changelog * Wed Sep 18 2024 ai-importer - 1.0.0-1 - Initial import (ROS batch)