From ffac1a9029b857cea12d61a9688f18f8d9fc61c3 Mon Sep 17 00:00:00 2001 From: I-am-a-robot Date: Wed, 2 Jul 2025 02:09:41 +0000 Subject: [PATCH] apply new package imu_pipeline --- files_in_srpm.txt | 2 + imu_pipeline.spec | 112 ++++++++++++++++++++ imu_pipeline.src.rpm | Bin 0 -> 12918 bytes ros-humble-imu-processors_0.4.1.orig.tar.gz | Bin 0 -> 4573 bytes 4 files changed, 114 insertions(+) create mode 100644 files_in_srpm.txt create mode 100644 imu_pipeline.spec create mode 100644 imu_pipeline.src.rpm create mode 100644 ros-humble-imu-processors_0.4.1.orig.tar.gz diff --git a/files_in_srpm.txt b/files_in_srpm.txt new file mode 100644 index 0000000..e27bfa8 --- /dev/null +++ b/files_in_srpm.txt @@ -0,0 +1,2 @@ +imu-processors.spec +ros-humble-imu-processors_0.4.1.orig.tar.gz diff --git a/imu_pipeline.spec b/imu_pipeline.spec new file mode 100644 index 0000000..63c9af5 --- /dev/null +++ b/imu_pipeline.spec @@ -0,0 +1,112 @@ +%bcond_without tests +%bcond_without weak_deps + +%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 imu-processors +%define ros_distro humble +%define with_tests 0 + +Name: ros-%{ros_distro}-%{RosPkgName} +Version: 0.4.1 +Release: 1%{?dist}%{?release_suffix} +Summary: Processors for sensor_msgs::Imu data + +Url: http://ros.org/wiki/imu_processors +License: BSD +Source0: %{name}_%{version}.orig.tar.gz + +Requires: ros-%{ros_distro}-geometry-msgs +Requires: ros-%{ros_distro}-nav-msgs +Requires: ros-%{ros_distro}-rclcpp +Requires: ros-%{ros_distro}-rclcpp-components +Requires: ros-%{ros_distro}-sensor-msgs +Requires: ros-%{ros_distro}-tf2-ros + +BuildRequires: ros-%{ros_distro}-geometry-msgs +BuildRequires: ros-%{ros_distro}-nav-msgs +BuildRequires: ros-%{ros_distro}-rclcpp +BuildRequires: ros-%{ros_distro}-rclcpp-components +BuildRequires: ros-%{ros_distro}-sensor-msgs +BuildRequires: ros-%{ros_distro}-tf2-ros +BuildRequires: ros-%{ros_distro}-ament-cmake + +%if 0%{?with_tests} +BuildRequires: ros-%{ros_distro}-ament-cmake-cpplint +%endif + +Provides: %{name}-devel = %{version}-%{release} +Provides: %{name}-doc = %{version}-%{release} +Provides: %{name}-runtime = %{version}-%{release} + +%description +Processors for sensor_msgs::Imu data + +%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 Paul Bovbel pbovbel@clearpathrobotics.com - 0.4.1-1 +- Autogenerated by ros-porting-tools diff --git a/imu_pipeline.src.rpm b/imu_pipeline.src.rpm new file mode 100644 index 0000000000000000000000000000000000000000..8d7ea7490f99bdc4075e69b195d641e2c02a2864 GIT binary patch literal 12918 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 H0C)fZs_5lR literal 0 HcmV?d00001 -- Gitee