From 1e759dd271af61283e4e0e4cb80b434e4f89df09 Mon Sep 17 00:00:00 2001 From: I-am-a-robot Date: Mon, 14 Jul 2025 07:45:59 +0000 Subject: [PATCH] apply new package classic_bags --- classic_bags.spec | 118 ++++++++++++++++++++++ classic_bags.src.rpm | Bin 0 -> 16287 bytes files_in_srpm.txt | 2 + ros-humble-classic-bags_0.2.0.orig.tar.gz | Bin 0 -> 8453 bytes 4 files changed, 120 insertions(+) create mode 100644 classic_bags.spec create mode 100644 classic_bags.src.rpm create mode 100644 files_in_srpm.txt create mode 100644 ros-humble-classic-bags_0.2.0.orig.tar.gz diff --git a/classic_bags.spec b/classic_bags.spec new file mode 100644 index 0000000..7beafb1 --- /dev/null +++ b/classic_bags.spec @@ -0,0 +1,118 @@ +%bcond_without tests +%bcond_without weak_deps + +%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}/.*$ + +%define RosPkgName classic-bags +%define ros_distro humble +%define with_tests 0 + +Name: ros-%{ros_distro}-%{RosPkgName} +Version: 0.2.0 +Release: 1%{?dist}%{?release_suffix} +Summary: A ROS 2 interface in the style of ROS 1 for reading and writing bag files + +License: BSD 3-clause +Source0: %{name}_%{version}.orig.tar.gz + +Requires: ros-%{ros_distro}-builtin-interfaces +Requires: ros-%{ros_distro}-rclcpp +Requires: ros-%{ros_distro}-rclpy +Requires: ros-%{ros_distro}-rosbag2-cpp +Requires: ros-%{ros_distro}-rosbag2-py +Requires: ros-%{ros_distro}-rosbag2-storage +Requires: ros-%{ros_distro}-rosidl-runtime-py + +BuildRequires: ros-%{ros_distro}-builtin-interfaces +BuildRequires: ros-%{ros_distro}-rclcpp +BuildRequires: ros-%{ros_distro}-rclpy +BuildRequires: ros-%{ros_distro}-rosbag2-cpp +BuildRequires: ros-%{ros_distro}-rosbag2-py +BuildRequires: ros-%{ros_distro}-rosbag2-storage +BuildRequires: ros-%{ros_distro}-rosidl-runtime-py +BuildRequires: ros-%{ros_distro}-ament-cmake +BuildRequires: ros-%{ros_distro}-ament-cmake-python + +%if 0%{?with_tests} +BuildRequires: ament_cmake_pytest +BuildRequires: ros-%{ros_distro}-rosbag2-storage_mcap +BuildRequires: ros-%{ros_distro}-rosbag2-storage_default_plugins +BuildRequires: ros-%{ros_distro}-std-msgs +%endif + +Provides: %{name}-devel = %{version}-%{release} +Provides: %{name}-doc = %{version}-%{release} +Provides: %{name}-runtime = %{version}-%{release} + +%description +A ROS 2 interface in the style of ROS 1 for reading and writing bag files + +%prep +%autosetup -p1 + +%build +# Needed to bootstrap since the ros_workspace package does not yet exist. +export PYTHONPATH=/opt/ros/%{ros_distro}/lib/python%{python3_version}/site-packages + +export ROS_DISTRO=%{ros_distro} +export ROS_PYTHON_VERSION=%{python3_version} + +# In case we're installing to a non-standard location, look for a setup.sh +# in the install tree and source it. It will set things like +# CMAKE_PREFIX_PATH, PKG_CONFIG_PATH, and PYTHONPATH. +if [ -f "/opt/ros/%{ros_distro}/setup.sh" ]; then . "/opt/ros/%{ros_distro}/setup.sh"; fi +mkdir -p .obj-%{_target_platform} && cd .obj-%{_target_platform} +%cmake3 \ + -UINCLUDE_INSTALL_DIR \ + -ULIB_INSTALL_DIR \ + -USYSCONF_INSTALL_DIR \ + -USHARE_INSTALL_PREFIX \ + -ULIB_SUFFIX \ + -DCMAKE_INSTALL_PREFIX="/opt/ros/%{ros_distro}" \ + -DAMENT_PREFIX_PATH="/opt/ros/%{ros_distro}" \ + -DCMAKE_PREFIX_PATH="/opt/ros/%{ros_distro}" \ + -DCMAKE_INSTALL_LIBDIR="/opt/ros/%{ros_distro}/lib" \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ +%if !0%{?with_tests} + -DBUILD_TESTING=OFF \ +%endif + .. + +%make_build + +%install +# Needed to bootstrap since the ros_workspace package does not yet exist. +export PYTHONPATH=/opt/ros/%{ros_distro}/lib/python%{python3_version}/site-packages + +# In case we're installing to a non-standard location, look for a setup.sh +# in the install tree and source it. It will set things like +# CMAKE_PREFIX_PATH, PKG_CONFIG_PATH, and PYTHONPATH. +if [ -f "/opt/ros/%{ros_distro}/setup.sh" ]; then . "/opt/ros/%{ros_distro}/setup.sh"; fi +%make_install -C .obj-%{_target_platform} + +%if 0%{?with_tests} +%check +# Needed to bootstrap since the ros_workspace package does not yet exist. +export PYTHONPATH=/opt/ros/%{ros_distro}/lib/python%{python3_version}/site-packages + +# Look for a Makefile target with a name indicating that it runs tests +TEST_TARGET=$(%__make -qp -C .obj-%{_target_platform} | sed "s/^\(test\|check\):.*/\\1/;t f;d;:f;q0") +if [ -n "$TEST_TARGET" ]; then +# In case we're installing to a non-standard location, look for a setup.sh +# in the install tree and source it. It will set things like +# CMAKE_PREFIX_PATH, PKG_CONFIG_PATH, and PYTHONPATH. +if [ -f "/opt/ros/%{ros_distro}/setup.sh" ]; then . "/opt/ros/%{ros_distro}/setup.sh"; fi +CTEST_OUTPUT_ON_FAILURE=1 \ + %make_build -C .obj-%{_target_platform} $TEST_TARGET || echo "RPM TESTS FAILED" +else echo "RPM TESTS SKIPPED"; fi +%endif + +%files +/opt/ros/%{ros_distro} + +%changelog +* Fri May 23 2025 David V. Lu!! davidvlu@gmail.com - 0.2.0-1 +- Autogenerated by ros-porting-tools diff --git a/classic_bags.src.rpm b/classic_bags.src.rpm new file mode 100644 index 0000000000000000000000000000000000000000..6180a115cd63d9aab4842654852dfd13762a9b1b GIT binary patch literal 16287 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 literal 0 HcmV?d00001 -- Gitee