From 4cc1eea0bc372680fff559aef08996e6cb3cc528 Mon Sep 17 00:00:00 2001 From: I-am-a-robot Date: Thu, 31 Jul 2025 11:00:47 +0000 Subject: [PATCH] apply new package puma_motor_driver --- files_in_srpm.txt | 2 + puma_motor_driver.spec | 107 +++++++++++++++++++ puma_motor_driver.src.rpm | Bin 0 -> 9970 bytes ros-humble-puma-motor-msgs_1.0.1.orig.tar.gz | Bin 0 -> 2816 bytes 4 files changed, 109 insertions(+) create mode 100644 files_in_srpm.txt create mode 100644 puma_motor_driver.spec create mode 100644 puma_motor_driver.src.rpm create mode 100644 ros-humble-puma-motor-msgs_1.0.1.orig.tar.gz diff --git a/files_in_srpm.txt b/files_in_srpm.txt new file mode 100644 index 0000000..2f8a307 --- /dev/null +++ b/files_in_srpm.txt @@ -0,0 +1,2 @@ +puma-motor-msgs.spec +ros-humble-puma-motor-msgs_1.0.1.orig.tar.gz diff --git a/puma_motor_driver.spec b/puma_motor_driver.spec new file mode 100644 index 0000000..bfb11b0 --- /dev/null +++ b/puma_motor_driver.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 puma-motor-msgs +%define ros_distro humble +%define with_tests 0 + +Name: ros-%{ros_distro}-%{RosPkgName} +Version: 1.0.1 +Release: 1%{?dist}%{?release_suffix} +Summary: Messages specific to Puma. + +License: BSD +Source0: %{name}_%{version}.orig.tar.gz + +Requires: ros-%{ros_distro}-action-msgs +Requires: ros-%{ros_distro}-builtin-interfaces +Requires: ros-%{ros_distro}-std-msgs +Requires: ros-%{ros_distro}-rosidl-default-runtime + +BuildRequires: ros-%{ros_distro}-action-msgs +BuildRequires: ros-%{ros_distro}-builtin-interfaces +BuildRequires: ros-%{ros_distro}-std-msgs +BuildRequires: ros-%{ros_distro}-rosidl-default-generators +BuildRequires: ros-%{ros_distro}-ament-cmake + +%if 0%{?with_tests} +%endif + +Provides: %{name}-devel = %{version}-%{release} +Provides: %{name}-doc = %{version}-%{release} +Provides: %{name}-runtime = %{version}-%{release} + +%description +Messages specific to Puma. + +%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 Mike Purvis mpurvis@clearpathrobotics.com - 1.0.1-1 +- Autogenerated by ros-porting-tools diff --git a/puma_motor_driver.src.rpm b/puma_motor_driver.src.rpm new file mode 100644 index 0000000000000000000000000000000000000000..ee155e3c3d22a108a6baf5ed6de68696fa5ff07b GIT binary patch literal 9970 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

3y^B5zi1cR^&3TeaNW`R)39lWT5~W3N{Z z=lI*1SYCLiF{Dq}=Nh%FF z=9%H1o5F`i<`)@TJZHRnQk(_1y?Gyyya5&4Razswn{>3;tLU56BN?M*ws%L8=678$ z9iWCq+>TG2TT`9fzKC>e>m@qB{c`&!QlMogf6IE3a3 zx7iid{sFBtN;*q1&tpRc2J8bFJ`J0UBflT5>Dp`3sNWI1z+}#utX!*WnP9QvWeH;oj5GKZQ48g8bL?s-$8nry*} zrvqUJUvJ=EJ6C;uTT62=efHelA5-mOhdnP2+$mj_KlA&cX4Ma|RrU2wjQ+fa-jH9SwQm*H)F)?r(n3k-~7x9p!)P>Q;`|;I$33-J%VJ497GC z?)W-SJ$%TaJ4jyUATPB!rQXf0i@dO9tMkLc4gI9A+i;H}D2=JJJzgzh7OvBJ9P>5N zt>+?dgxU2z<^k*Uop$ey9~;G2zi%CV>ojh;_+nN-)NqDOjAzq&Y|DkhwlLMhXR!Ac zz%9=b-kH!<#p^09PAVNC&%`WeO$(T3`|;|Eh_OKVoU6AlH5Q%kdy(_}`~4hUzX5W_ z@gOd#W#y++c)W2}jPUH!8FkHZH#-(J?adn;(K78(+8KmWq?fQzP{*-iQUqaIED7j7qfFG;)E=T%utH`cs!=r^frZyb*d zZV9$C^bl*E$Y@&`zNKwQ_4-Ill0kk|`laj@8Ywzm;uWykH{~M=ar@qkp&zbTzD(UX zCvV*JGE{!+3VVH4jZd}P_PK)zIw?c(griyR1EkC?H+OCbG2FnBYk7^`oUZwaa6(RF z&c}$Y8Km=vBfIA2+$#|@G4h^0bXNhHunr-jgoc;e#Fs>!uWHIA+4HW8s0Wp7;y8r+H literal 0 HcmV?d00001 diff --git a/ros-humble-puma-motor-msgs_1.0.1.orig.tar.gz b/ros-humble-puma-motor-msgs_1.0.1.orig.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..b13d197cec385c114a095297bc11f449904b6584 GIT binary patch literal 2816 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 SD4~QO8~zV*P~^t|Pyhgu4SKo& literal 0 HcmV?d00001 -- Gitee