From 116ebfcc447894717e2e5f85f4dc95c238fc428d Mon Sep 17 00:00:00 2001 From: I-am-a-robot Date: Thu, 31 Jul 2025 09:40:48 +0000 Subject: [PATCH] apply new package turtlebot4_tutorials --- files_in_srpm.txt | 2 + ...turtlebot4-cpp-tutorials_1.0.1.orig.tar.gz | Bin 0 -> 2496 bytes turtlebot4_tutorials.spec | 104 ++++++++++++++++++ turtlebot4_tutorials.src.rpm | Bin 0 -> 10410 bytes 4 files changed, 106 insertions(+) create mode 100644 files_in_srpm.txt create mode 100644 ros-humble-turtlebot4-cpp-tutorials_1.0.1.orig.tar.gz create mode 100644 turtlebot4_tutorials.spec create mode 100644 turtlebot4_tutorials.src.rpm diff --git a/files_in_srpm.txt b/files_in_srpm.txt new file mode 100644 index 0000000..a37f1f6 --- /dev/null +++ b/files_in_srpm.txt @@ -0,0 +1,2 @@ +ros-humble-turtlebot4-cpp-tutorials_1.0.1.orig.tar.gz +turtlebot4-cpp-tutorials.spec diff --git a/ros-humble-turtlebot4-cpp-tutorials_1.0.1.orig.tar.gz b/ros-humble-turtlebot4-cpp-tutorials_1.0.1.orig.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..b35eca6cb455efeb42ab3cf29e2c4f368d128cc4 GIT binary patch literal 2496 zcmV;x2|xB9iwFP!000001MOOEbJ|D}_GkTyUhe7&vIc0F zgEW9HgQOb`!LC&P`}K?@5az`=mCfDl>M4g8bx%)EcTacE5TD$eQ|65cGiQ|8l%ITk z6cJ}#d=9xEYPIVA{g0nF_rFoB)M_WyueZ$o z_>=GdTmiRCcqWtccB! z(v0d(wiocm!H9-S!iXgt3pizz1QZEv&lTJm%jE=h7Kc_$Nj_9z-R3LEAoN% zoInHxasR9Y@WlQvmACpoqij^l>Hhx)u;%DhbB-}RU(8KT|GjWHwX;8W2E*=kAIgQ7 zInC$Zzo;d$`?h&b)0|1Rebsu`G27QyH{D)mV0MS*W&gH)cL&!4h-i0r3Hk+GwMOl? zogrk}46{lmrvVV#HnAV|9Y#&h7mnu!+5CIL806p6d%+35`_v{bZq%GcT^lFH>Hh)~ z$F;$xK0czZ<m#f+AEj_ z2~JI_P4B6-5CnHp(ohqbTa>w6&!!M?OW#W^;0Gy8>55S~rNT@u>44lw`E4zwZ(Iy< z#wo=pGr0aor#&+Jt*g%G(9^GPyS)o@q*yPd z*LIkiIru^_LK0>I6d8zY>*l7@zW|iiADO)_zO-&f*JkIg-MhW$AQy(g+Fck9{sVWW zGl3KpBAfC}HMyX{BU>e+BODRym;1xy?yrI4^M7Q&!u^~*bB?F-zfn2c>i^D4wKV^K z12ld>f5Jz~1I)GO8FY2#ho+{U=I59b7|b}GoM&c2_;p>ky`{@MViz!O3Lc;8fi4Eh@<-hs_Bl8vI8& zppFhZ&+rdn3;3gjZ6f!Hn5m@eSU~|RSEd=$8~S>z62%+~4MCeNT;z;`Q7AU__?add z#tVnp!t+>^$(o5Y*wDAATDUCrIn4i3{gAY#Y?p*Jmt;$1&gP@k+R&541I+RU$#WmE zOMZIqdt5YCP7jx7%5d1Ru<*GYqsN09aa1+ajQzXe`1~(hmoJ;+3+{hP#@ShV|MLy- zJpUhTUH8uMME$Q-s^!Q2ua#=){m-|6{z3zJ(Gm67ATLXx9alCOM5XN%x~^3~R>|E9 ziB#Kya*`DZ~{C=FbeeE zqP_sfmA^~)%ptBtVd1b&HRcw<>)fq*f*s! zo~*C?7hQQ=!*6e()&B+Fb^8~mK+$5dXSw&eTmh=-NNZACnQlnwh6?gBPks-4YB>|f z0(l@`$VP1HVH1Vj%oKde=T0EK8lZx<6vLdkBZxYsZ?7wkmLIW|n4$dS^%-OjcTsrG zd!gg8-f=Cqz~gPhLbB^M6Hg`!*OD_6mV7#=bB{kHpGd>H(`G_gCTy1U@U1ZO{Y;X& z-7x9+qGO*!`Gi>1L^lasaX9eFaZGM2se;L<9SzbfM$jp%HngH{Ap7zlUk86NX7UzN zX;-hyr`jhid|Jl_X~(FnJQvqNea!65(V5&SC~X4MbIt4oQ#+LdKdJUi*I~FA%jS1X zWh_fiZZ8@szGJBYTQoC>$8!_T6%VM5oo_})i5OIO-PpEQy^gQ-dN&sQI+WYYMzS*7 z`eaTcT5PT%hMvbSh#)_C!)z`l2g0t`$Bt`f|F*+^_4@W=EW+3r`_EIggws%h&yZ#2 zF${Io)-2^Po5j{^tA$`1QmzW*?u)mTZq03T6$l9%u7hJW2u-(Xv=wE)#d@)r9)?)L zTpQCqWh$AN;j^as-1&&|WvJn*R?dJp0+LRI*hRhRiekh!k{I+DGv%hrN( zJko)1=JZiyqsT(|UrP#s5)j9?G^oWq42@jA>3Yj-Vlycfu+H$6XeLYhWaZKC)|qVW zG#q%1<%&DFDh215PuCqGfL~L9*b*^7%#q)#6hFp@YJQvdfAEl_CP5p=zC@mX1dcS7W`K$)c7DC=~hjourY^Pnh zkv^xFkSS86NRc8%iWDhQq)3q>MT!(DQlv|Jks?Kk6e&`qNRi@y2mb-; Kzz@g(Pyhg;;OV{q literal 0 HcmV?d00001 diff --git a/turtlebot4_tutorials.spec b/turtlebot4_tutorials.spec new file mode 100644 index 0000000..79d4c0f --- /dev/null +++ b/turtlebot4_tutorials.spec @@ -0,0 +1,104 @@ +%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 turtlebot4-cpp-tutorials +%define ros_distro humble +%define with_tests 0 + +Name: ros-%{ros_distro}-%{RosPkgName} +Version: 1.0.1 +Release: 1%{?dist}%{?release_suffix} +Summary: TurtleBot 4 C++ Tutorials + +License: Apache 2.0 +Source0: %{name}_%{version}.orig.tar.gz + +Requires: ros-%{ros_distro}-rclcpp +Requires: ros-%{ros_distro}-irobot-create-msgs + +BuildRequires: ros-%{ros_distro}-rclcpp +BuildRequires: ros-%{ros_distro}-irobot-create-msgs +BuildRequires: ros-%{ros_distro}-ament-cmake + +%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 +TurtleBot 4 C++ Tutorials + +%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 rkreinin rkreinin@clearpathrobotics.com - 1.0.1-1 +- Autogenerated by ros-porting-tools diff --git a/turtlebot4_tutorials.src.rpm b/turtlebot4_tutorials.src.rpm new file mode 100644 index 0000000000000000000000000000000000000000..7f42b701002bfd334be157e971834a670e7a96b2 GIT binary patch literal 10410 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

`76sNAV!GV&H>q8SU6N3#6`@pL_&QVRY&yX| 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 GQ}jQ84