diff options
Diffstat (limited to 'yaets.spec')
| -rw-r--r-- | yaets.spec | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/yaets.spec b/yaets.spec new file mode 100644 index 0000000..3abcdab --- /dev/null +++ b/yaets.spec @@ -0,0 +1,72 @@ +# topdir: yaets-1.2.0 +%define ros_distro humble +%define RosPkgName yaets + +Name: ros-%{ros_distro}-%{RosPkgName} +Version: 1.2.0 +Release: 1%{?dist} +Summary: Yet Another Execution Tracing System - C++ async tracing library for ROS2 +License: Apache-2.0 +URL: https://github.com/fmrico/yaets +Source0: https://github.com/fmrico/yaets/archive/refs/heads/rolling.tar.gz#/yaets-%{version}.tar.gz + +# debug subpackage meaningless under /opt prefix +%global debug_package %{nil} +# suppress python bytecode compilation into standard sitelib paths +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') +# ROS packages under /opt/ros use ament indirect dependency model, not RPM autodeps +%global __provides_exclude_from ^/opt/ros/%{ros_distro}/.*$ +%global __requires_exclude_from ^/opt/ros/%{ros_distro}/.*$ + +BuildRequires: cmake +BuildRequires: gcc-c++ +BuildRequires: ros-%{ros_distro}-ament-cmake + +Requires: ros-%{ros_distro}-ros-workspace +Requires: python3-matplotlib + +# virtual subpackage aliases (single-package strategy per ROS SIG template) +Provides: %{name}-devel = %{version}-%{release} +Provides: %{name}-doc = %{version}-%{release} +Provides: %{name}-runtime = %{version}-%{release} + +%description +YAETS (Yet Another Execution Tracing System) is a C++ library for +asynchronous function execution tracing, combined with Python tools +for analyzing results through Gantt charts and histograms. +The library provides TraceSession, TraceGuard, NamedSharedTrace, and +TraceRegistry classes for efficient, thread-safe tracing with minimal +performance overhead. + +%prep +%autosetup -n yaets-%{version} + +%build +# ROS base environment (guard for missing setup.sh in minimal buildroots) +[ -f /opt/ros/%{ros_distro}/setup.sh ] && source /opt/ros/%{ros_distro}/setup.sh || 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 +cmake \ + -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 \ + .. +make %{?_smp_mflags} + +%install +[ -f /opt/ros/%{ros_distro}/setup.sh ] && source /opt/ros/%{ros_distro}/setup.sh || true +cd .obj +make install DESTDIR=%{buildroot} + +%files +/opt/ros/%{ros_distro} + +%changelog +* Sat Oct 10 2026 ROS_Bot <ROS_Bot@openeuler.org> - 1.2.0-1 +- Initial package |
