From 1559106257ed5136c32c7fae05423bc2fd3c7e4e Mon Sep 17 00:00:00 2001 From: davidhan008 <619409713@qq.com> Date: Fri, 15 Aug 2025 19:04:19 +0800 Subject: [PATCH] init game controller spl --- _multibuild | 9 ++ game-controller-spl-interfaces.spec | 104 ++++++++++++++++++ game-controller-spl.spec | 76 +++++++++++++ gc-spl-2022.spec | 78 +++++++++++++ gc-spl-interfaces.spec | 104 ++++++++++++++++++ gc-spl.spec | 76 +++++++++++++ ...mble-game-controller-spl_2.1.0.orig.tar.gz | Bin 0 -> 8498 bytes ros-humble-gc-spl-2022_2.1.0.orig.tar.gz | Bin 0 -> 3900 bytes ...humble-gc-spl-interfaces_2.1.0.orig.tar.gz | Bin 0 -> 2233 bytes ros-humble-gc-spl_2.1.0.orig.tar.gz | Bin 0 -> 8461 bytes 10 files changed, 447 insertions(+) create mode 100644 _multibuild create mode 100644 game-controller-spl-interfaces.spec create mode 100644 game-controller-spl.spec create mode 100644 gc-spl-2022.spec create mode 100644 gc-spl-interfaces.spec create mode 100644 gc-spl.spec create mode 100644 ros-humble-game-controller-spl_2.1.0.orig.tar.gz create mode 100644 ros-humble-gc-spl-2022_2.1.0.orig.tar.gz create mode 100644 ros-humble-gc-spl-interfaces_2.1.0.orig.tar.gz create mode 100644 ros-humble-gc-spl_2.1.0.orig.tar.gz diff --git a/_multibuild b/_multibuild new file mode 100644 index 0000000..ea8b3bb --- /dev/null +++ b/_multibuild @@ -0,0 +1,9 @@ + + game-controller-spl + game-controller-spl-interfaces + game-controller-spl-interfaces + gc-spl + gc-spl-2022 + gc-spl-interfaces + gc-spl-interfaces + diff --git a/game-controller-spl-interfaces.spec b/game-controller-spl-interfaces.spec new file mode 100644 index 0000000..ad53638 --- /dev/null +++ b/game-controller-spl-interfaces.spec @@ -0,0 +1,104 @@ +%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 game-controller-spl-interfaces +%define ros_distro humble +%define with_tests 0 + +Name: ros-%{ros_distro}-%{RosPkgName} +Version: 2.1.0 +Release: 1%{?dist}%{?release_suffix} +Summary: ROS game-controller-spl-interfaces package + +License: Apache License 2.0 +Source0: %{name}_%{version}.orig.tar.gz + +Requires: ros-%{ros_distro}-rosidl-default-runtime + +BuildRequires: ros-%{ros_distro}-rosidl-default-generators +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 +RoboCup SPL GameController Data ROS msg +RoboCup SPL GameController Data ROS msg + +%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 ijnek kenjibrameld@gmail.com - 2.1.0-1 +- Autogenerated by ros-porting-tools diff --git a/game-controller-spl.spec b/game-controller-spl.spec new file mode 100644 index 0000000..46d1395 --- /dev/null +++ b/game-controller-spl.spec @@ -0,0 +1,76 @@ +%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 game-controller-spl +%define ros_distro humble +%define with_tests 0 + +Name: ros-%{ros_distro}-%{RosPkgName} +Version: 2.1.0 +Release: 1%{?dist}%{?release_suffix} +Summary: GameController-Robot communication in RoboCup SPL + +License: Apache License 2.0 +Source0: %{name}_%{version}.orig.tar.gz + +Requires: ros-%{ros_distro}-game-controller-spl-interfaces +Requires: python3-construct +Requires: ros-%{ros_distro}-rclpy + + +%if 0%{?with_tests} +BuildRequires: ros-%{ros_distro}-ament-copyright +BuildRequires: ros-%{ros_distro}-ament-flake8 +BuildRequires: ros-%{ros_distro}-ament-pep257 +BuildRequires: python3-pytest +%endif + +Provides: %{name}-devel = %{version}-%{release} +Provides: %{name}-doc = %{version}-%{release} +Provides: %{name}-runtime = %{version}-%{release} + +%description +GameController-Robot communication in RoboCup SPL + +%prep +%autosetup -p1 + +%build + +# 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 +%py3_build + +%install +# 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 +%py3_install -- --prefix "/opt/ros/%{ros_distro}" + +%if 0%{?with_tests} +%check +# Look for a directory with a name indicating that it contains tests +TEST_TARGET=$(ls -d * | grep -m1 "\(test\|tests\)" ||:) +if [ -n "$TEST_TARGET" ] && %__python3 -m pytest --version; 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 +%__python3 -m pytest $TEST_TARGET || echo "RPM TESTS FAILED" +else echo "RPM TESTS SKIPPED"; fi +%endif + +%files +/opt/ros/%{ros_distro} + +%changelog +* Fri May 23 2025 ijnek kenjibrameld@gmail.com - 2.1.0-1 +- Autogenerated by ros-porting-tools diff --git a/gc-spl-2022.spec b/gc-spl-2022.spec new file mode 100644 index 0000000..750061c --- /dev/null +++ b/gc-spl-2022.spec @@ -0,0 +1,78 @@ +%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 gc-spl-2022 +%define ros_distro humble +%define with_tests 0 + +Name: ros-%{ros_distro}-%{RosPkgName} +Version: 2.1.0 +Release: 1%{?dist}%{?release_suffix} +Summary: GameController-Robot communication in RoboCup SPL at RoboCup2022 + +License: Apache License 2.0 +Source0: %{name}_%{version}.orig.tar.gz + +Requires: ros-%{ros_distro}-rclpy +Requires: rcgcd_spl_14 +Requires: rcgcd_spl_14_conversion +Requires: rcgcrd_spl_4 +Requires: rcgcrd_spl_4_conversion + + +%if 0%{?with_tests} +BuildRequires: ros-%{ros_distro}-ament-copyright +BuildRequires: ros-%{ros_distro}-ament-flake8 +BuildRequires: ros-%{ros_distro}-ament-pep257 +BuildRequires: python3-pytest +%endif + +Provides: %{name}-devel = %{version}-%{release} +Provides: %{name}-doc = %{version}-%{release} +Provides: %{name}-runtime = %{version}-%{release} + +%description +GameController-Robot communication in RoboCup SPL at RoboCup2022 + +%prep +%autosetup -p1 + +%build + +# 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 +%py3_build + +%install +# 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 +%py3_install -- --prefix "/opt/ros/%{ros_distro}" + +%if 0%{?with_tests} +%check +# Look for a directory with a name indicating that it contains tests +TEST_TARGET=$(ls -d * | grep -m1 "\(test\|tests\)" ||:) +if [ -n "$TEST_TARGET" ] && %__python3 -m pytest --version; 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 +%__python3 -m pytest $TEST_TARGET || echo "RPM TESTS FAILED" +else echo "RPM TESTS SKIPPED"; fi +%endif + +%files +/opt/ros/%{ros_distro} + +%changelog +* Fri May 23 2025 ijnek kenjibrameld@gmail.com - 2.1.0-1 +- Autogenerated by ros-porting-tools diff --git a/gc-spl-interfaces.spec b/gc-spl-interfaces.spec new file mode 100644 index 0000000..ac32747 --- /dev/null +++ b/gc-spl-interfaces.spec @@ -0,0 +1,104 @@ +%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 gc-spl-interfaces +%define ros_distro humble +%define with_tests 0 + +Name: ros-%{ros_distro}-%{RosPkgName} +Version: 2.1.0 +Release: 1%{?dist}%{?release_suffix} +Summary: ROS gc-spl-interfaces package + +License: Apache License 2.0 +Source0: %{name}_%{version}.orig.tar.gz + +Requires: ros-%{ros_distro}-rosidl-default-runtime + +BuildRequires: ros-%{ros_distro}-rosidl-default-generators +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 +RoboCup SPL GameController Data ROS msg +RoboCup SPL GameController Data ROS msg + +%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 ijnek kenjibrameld@gmail.com - 2.1.0-1 +- Autogenerated by ros-porting-tools diff --git a/gc-spl.spec b/gc-spl.spec new file mode 100644 index 0000000..04f6f1c --- /dev/null +++ b/gc-spl.spec @@ -0,0 +1,76 @@ +%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 gc-spl +%define ros_distro humble +%define with_tests 0 + +Name: ros-%{ros_distro}-%{RosPkgName} +Version: 2.1.0 +Release: 1%{?dist}%{?release_suffix} +Summary: GameController-Robot communication in RoboCup SPL + +License: Apache License 2.0 +Source0: %{name}_%{version}.orig.tar.gz + +Requires: ros-%{ros_distro}-gc-spl-interfaces +Requires: python3-construct +Requires: ros-%{ros_distro}-rclpy + + +%if 0%{?with_tests} +BuildRequires: ros-%{ros_distro}-ament-copyright +BuildRequires: ros-%{ros_distro}-ament-flake8 +BuildRequires: ros-%{ros_distro}-ament-pep257 +BuildRequires: python3-pytest +%endif + +Provides: %{name}-devel = %{version}-%{release} +Provides: %{name}-doc = %{version}-%{release} +Provides: %{name}-runtime = %{version}-%{release} + +%description +GameController-Robot communication in RoboCup SPL + +%prep +%autosetup -p1 + +%build + +# 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 +%py3_build + +%install +# 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 +%py3_install -- --prefix "/opt/ros/%{ros_distro}" + +%if 0%{?with_tests} +%check +# Look for a directory with a name indicating that it contains tests +TEST_TARGET=$(ls -d * | grep -m1 "\(test\|tests\)" ||:) +if [ -n "$TEST_TARGET" ] && %__python3 -m pytest --version; 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 +%__python3 -m pytest $TEST_TARGET || echo "RPM TESTS FAILED" +else echo "RPM TESTS SKIPPED"; fi +%endif + +%files +/opt/ros/%{ros_distro} + +%changelog +* Fri May 23 2025 ijnek kenjibrameld@gmail.com - 2.1.0-1 +- Autogenerated by ros-porting-tools diff --git a/ros-humble-game-controller-spl_2.1.0.orig.tar.gz b/ros-humble-game-controller-spl_2.1.0.orig.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..adbba4ea7238d790718a900f7e15533a3279999d GIT binary patch literal 8498 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 literal 0 HcmV?d00001 diff --git a/ros-humble-gc-spl-2022_2.1.0.orig.tar.gz b/ros-humble-gc-spl-2022_2.1.0.orig.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..128c5fef76348aad94e079357d601f2333ef8413 GIT binary patch literal 3900 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 KuqA>3cmM#o6r(`^ literal 0 HcmV?d00001 diff --git a/ros-humble-gc-spl-interfaces_2.1.0.orig.tar.gz b/ros-humble-gc-spl-interfaces_2.1.0.orig.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..56f23dd22239e10b3b9cc7b759d9d47157530dbb GIT binary patch literal 2233 zcmV;q2uAlGiwFP!000001MOQ|bJ|K0&a-~S6xj!R%YYEqq=2&+WXuK-D@1IU%R6U~ z2B9D%jwFul+S>oVJrV+OaR8r$tjqeU99!Kz-94A?X^kc`@`QEM9ugCeDbc9&;m3mq z6bc3ZH(>KOFmoR=xqLp$^LbtnfDTW5;e-AYeA&X>^@sx|9ozQ4C%2Ek*||4@yns}D zI;ECZDN(hkWlIG?RrzcwqiXyol`jl=wM2@;Y<5VqC8CZT1%RnMuR)s52reb(2CWlj75V*#?V;Vln@6{KMZH@n7T%#Si%((7(NS=kb5Q{MWB* z-KN-3&cTHPj_{2eo9!cbxY**Y=_uu9f>*l)snvLvNY&6Wa+Zit?=BM&`PG)uH8vjSCtIMZL3l4dLr&h za;Mhb)Ue{it7W?_!rLY8U$?||15~{rS^Qe82rn@kcd*B{>i810VR&0@v|(eZWJ9-_ zumLYz-f$?w>51K1Te<6BOOmp5Bf^)UBvM)(ap^^b$LP{PSy}8WHATd&F8CO+7Eooe z*0@_*2xxs#S?UcaY;1#0M5$MxvVSc$D!HX4QSoJ=XI*h+DWo=~S{r|9)xWF^hOFKI z#=P6aSF$JuBEqIfU6Q*{vH8sGCX-R2i{Q$p;$S3$X8F)jwgpoUTaat06VgobOdS`` zr~|t=nJ&nz4y2yJiaEfgC^<^TN8$^SW_ z5a<72gkPKgcPH*loVeq}efq?me^ZJ32jPhPzc>^)-o~E%&kOwK_g^8C%VgsGe*#3~ znZ-B?GZ71fHNuFPCbi&kWZJ~b3isIuG_zfb?)emdfx>?tLOvQo1I&)?ldy`Gtsur2 zW7X>69Yx#!9}bQG^@GXdZ0w8wBEtJLbNVk;`h3JIt@7B$MUGTEi8Bl(43tLs-$*Ww2YKyh6tYlKISt-U28VWn4*h#b4SMZet9e^5W(5n=8DU<48&#xl;$^c5G(gALT z-TcID3J)&(P!bOmv69*BU#Hd`KpC1@)ne2lruV!ok)Yo349K!`%jXy_J@#Yf(eeL^ zcfh^zU)VbT6LPsY{!f88{!bnMFOC_!DR%3S1^82@hy&w){S)MoYiw`)Z=e4|0*LGX zQy^F-idgI5%k}_*pM4P?nsa)A)MsLG5xy)oDjCLhsCI#-P}y4^xj-|+nncC!#CBV{ zsR&H+nVP2k$gLTvu``Ll3Q;E)2;R*nNOzWR`o7rBbqiK|j)^^vjpd<$&uhw}2w~26 zx!Po6Gj7WKYUwjCUXAUU^j*b7<90Bi%{|pbYz7_x3IQ~z8IR1ZX{ErN3YIt$H zvX%#Qo0t9-(XtN zpAhMWZB-I5--+LRz$MCO|R#}p(&u0kUx=<6^`j^6O(}X%++*z;M~ZaL-QMNY7{Dar*l*@aZ5 zYUw#!eme#+ptCmVuu(Z&#npJzixDG6j2JOu#E20iMvNFSV#J6MBSwrEZyf&vz-G1c H08jt`a#wD_ literal 0 HcmV?d00001 diff --git a/ros-humble-gc-spl_2.1.0.orig.tar.gz b/ros-humble-gc-spl_2.1.0.orig.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..3d90a46ebb79c8ba13a1c3a86e02fd0a234387da GIT binary patch literal 8461 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