From 09e9a2613db5926ed282e3d01797095ded56f71a Mon Sep 17 00:00:00 2001 From: I-am-a-robot Date: Fri, 4 Jul 2025 10:40:53 +0000 Subject: [PATCH] apply new package clearpath_desktop --- clearpath_desktop.spec | 107 ++++++++++++++++++ clearpath_desktop.src.rpm | Bin 0 -> 10907 bytes files_in_srpm.txt | 2 + ...le-clearpath-config-live_0.3.0.orig.tar.gz | Bin 0 -> 3708 bytes 4 files changed, 109 insertions(+) create mode 100644 clearpath_desktop.spec create mode 100644 clearpath_desktop.src.rpm create mode 100644 files_in_srpm.txt create mode 100644 ros-humble-clearpath-config-live_0.3.0.orig.tar.gz diff --git a/clearpath_desktop.spec b/clearpath_desktop.spec new file mode 100644 index 0000000..71b5853 --- /dev/null +++ b/clearpath_desktop.spec @@ -0,0 +1,107 @@ +%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 clearpath-config-live +%define ros_distro humble +%define with_tests 0 + +Name: ros-%{ros_distro}-%{RosPkgName} +Version: 0.3.0 +Release: 1%{?dist}%{?release_suffix} +Summary: ROS clearpath-config-live package + +License: Apache-2.0 +Source0: %{name}_%{version}.orig.tar.gz + +Requires: ros-%{ros_distro}-clearpath-generator-common +Requires: python3-watchdog +Requires: ros-%{ros_distro}-rclpy +Requires: ros-%{ros_distro}-xacro + +BuildRequires: ros-%{ros_distro}-ament-cmake +BuildRequires: ros-%{ros_distro}-ament-cmake-python + +%if 0%{?with_tests} +BuildRequires: ros-%{ros_distro}-ament-lint-auto +BuildRequires: ros-%{ros_distro}-ament-common +%endif + +Provides: %{name}-devel = %{version}-%{release} +Provides: %{name}-doc = %{version}-%{release} +Provides: %{name}-runtime = %{version}-%{release} + +%description +Live URDF Updater from Clearpath Configuration. +Live URDF Updater from Clearpath Configuration. + +%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 Luis Camero lcamero@clearpathrobotics.com - 0.3.0-1 +- Autogenerated by ros-porting-tools diff --git a/clearpath_desktop.src.rpm b/clearpath_desktop.src.rpm new file mode 100644 index 0000000000000000000000000000000000000000..ac9245f0beeba2c2a7562526f4384f80486af485 GIT binary patch literal 10907 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 P6H2}BN5@0|`SX7P-;afE literal 0 HcmV?d00001 diff --git a/files_in_srpm.txt b/files_in_srpm.txt new file mode 100644 index 0000000..8be08ef --- /dev/null +++ b/files_in_srpm.txt @@ -0,0 +1,2 @@ +clearpath-config-live.spec +ros-humble-clearpath-config-live_0.3.0.orig.tar.gz diff --git a/ros-humble-clearpath-config-live_0.3.0.orig.tar.gz b/ros-humble-clearpath-config-live_0.3.0.orig.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..308c135b8cf6c500ee50c6383382db121396883c GIT binary patch literal 3708 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 aQlv