ERutcxfq+Mt~~+K85R%yo%sCh7BuSf<9nRj@-uNkEy`*35+BM>X1^``fl%Bl-i7Z0|faUyEKpW$@2;9Uhix-`t-`mz`&|-*ScZj(x;f5GQV<=58u@akQV5pC5Rm_W
R!pY!DVl51#g;$1$_kV6AweJ7`
literal 0
HcmV?d00001
diff --git a/ros-humble-tuw-nav-msgs_0.2.1.orig.tar.gz b/ros-humble-tuw-nav-msgs_0.2.1.orig.tar.gz
new file mode 100644
index 0000000000000000000000000000000000000000..778f3913d7c1def1c5299dcaeb8f9700b693e90e
GIT binary patch
literal 2426
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
literal 0
HcmV?d00001
diff --git a/tuw-airskin-msgs.spec b/tuw-airskin-msgs.spec
new file mode 100644
index 0000000..8e6b5b7
--- /dev/null
+++ b/tuw-airskin-msgs.spec
@@ -0,0 +1,106 @@
+%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 tuw-airskin-msgs
+%define ros_distro humble
+%define with_tests 0
+
+Name: ros-%{ros_distro}-%{RosPkgName}
+Version: 0.2.1
+Release: 1%{?dist}%{?release_suffix}
+Summary: The tuw_airskin_msgs package
+
+License: BSD
+Source0: %{name}_%{version}.orig.tar.gz
+
+Requires: ros-%{ros_distro}-builtin-interfaces
+Requires: ros-%{ros_distro}-std-msgs
+Requires: ros-%{ros_distro}-rosidl-default-runtime
+
+BuildRequires: ros-%{ros_distro}-builtin-interfaces
+BuildRequires: ros-%{ros_distro}-std-msgs
+BuildRequires: ros-%{ros_distro}-ament-cmake
+BuildRequires: ros-%{ros_distro}-rosidl-default-generators
+
+%if 0%{?with_tests}
+BuildRequires: ros-%{ros_distro}-ament-common
+%endif
+
+Provides: %{name}-devel = %{version}-%{release}
+Provides: %{name}-doc = %{version}-%{release}
+Provides: %{name}-runtime = %{version}-%{release}
+
+%description
+The tuw_airskin_msgs package
+
+%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 Markus Bader markus.bader@tuwien.ac.at - 0.2.1-1
+- Autogenerated by ros-porting-tools
diff --git a/tuw-geometry-msgs.spec b/tuw-geometry-msgs.spec
new file mode 100644
index 0000000..fa4b93d
--- /dev/null
+++ b/tuw-geometry-msgs.spec
@@ -0,0 +1,109 @@
+%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 tuw-geometry-msgs
+%define ros_distro humble
+%define with_tests 0
+
+Name: ros-%{ros_distro}-%{RosPkgName}
+Version: 0.2.1
+Release: 1%{?dist}%{?release_suffix}
+Summary: ROS tuw-geometry-msgs package
+
+License: BSD
+Source0: %{name}_%{version}.orig.tar.gz
+
+Requires: ros-%{ros_distro}-builtin-interfaces
+Requires: ros-%{ros_distro}-std-msgs
+Requires: ros-%{ros_distro}-geometry-msgs
+Requires: ros-%{ros_distro}-rosidl-default-runtime
+
+BuildRequires: ros-%{ros_distro}-builtin-interfaces
+BuildRequires: ros-%{ros_distro}-std-msgs
+BuildRequires: ros-%{ros_distro}-geometry-msgs
+BuildRequires: ros-%{ros_distro}-ament-cmake
+BuildRequires: ros-%{ros_distro}-rosidl-default-generators
+
+%if 0%{?with_tests}
+BuildRequires: ros-%{ros_distro}-ament-common
+%endif
+
+Provides: %{name}-devel = %{version}-%{release}
+Provides: %{name}-doc = %{version}-%{release}
+Provides: %{name}-runtime = %{version}-%{release}
+
+%description
+The tuw_geometry_msgs package
+The tuw_geometry_msgs package
+
+%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 George Todoran george.todoran@tuwien.ac.at - 0.2.1-1
+- Autogenerated by ros-porting-tools
diff --git a/tuw-msgs.spec b/tuw-msgs.spec
new file mode 100644
index 0000000..6077c93
--- /dev/null
+++ b/tuw-msgs.spec
@@ -0,0 +1,106 @@
+%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 tuw-msgs
+%define ros_distro humble
+%define with_tests 0
+
+Name: ros-%{ros_distro}-%{RosPkgName}
+Version: 0.2.1
+Release: 1%{?dist}%{?release_suffix}
+Summary: The tuw_msgs meta package
+
+License: BSD
+Source0: %{name}_%{version}.orig.tar.gz
+
+Requires: ros-%{ros_distro}-tuw-geometry-msgs
+Requires: ros-%{ros_distro}-tuw-airskin-msgs
+Requires: ros-%{ros_distro}-tuw-multi-robot-msgs
+Requires: ros-%{ros_distro}-tuw-nav-msgs
+Requires: ros-%{ros_distro}-tuw-object-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
+The tuw_msgs meta package
+
+%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 Markus Bader markus.bader@tuwien.ac.at - 0.2.1-1
+- Autogenerated by ros-porting-tools
diff --git a/tuw-multi-robot-msgs.spec b/tuw-multi-robot-msgs.spec
new file mode 100644
index 0000000..002c3ae
--- /dev/null
+++ b/tuw-multi-robot-msgs.spec
@@ -0,0 +1,108 @@
+%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 tuw-multi-robot-msgs
+%define ros_distro humble
+%define with_tests 0
+
+Name: ros-%{ros_distro}-%{RosPkgName}
+Version: 0.2.1
+Release: 1%{?dist}%{?release_suffix}
+Summary: The tuw_multi_robot_msgs package contains messages for sending graph, route and sync data over topics.
+
+License: BSD
+Source0: %{name}_%{version}.orig.tar.gz
+
+Requires: ros-%{ros_distro}-builtin-interfaces
+Requires: ros-%{ros_distro}-std-msgs
+Requires: ros-%{ros_distro}-geometry-msgs
+Requires: ros-%{ros_distro}-rosidl-default-runtime
+
+BuildRequires: ros-%{ros_distro}-builtin-interfaces
+BuildRequires: ros-%{ros_distro}-std-msgs
+BuildRequires: ros-%{ros_distro}-geometry-msgs
+BuildRequires: ros-%{ros_distro}-ament-cmake
+BuildRequires: ros-%{ros_distro}-rosidl-default-generators
+
+%if 0%{?with_tests}
+BuildRequires: ros-%{ros_distro}-ament-common
+%endif
+
+Provides: %{name}-devel = %{version}-%{release}
+Provides: %{name}-doc = %{version}-%{release}
+Provides: %{name}-runtime = %{version}-%{release}
+
+%description
+The tuw_multi_robot_msgs package contains messages for sending graph, route and sync data over topics.
+
+%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 Benjamin Binder benjamin.binder@tuwien.ac.at - 0.2.1-1
+- Autogenerated by ros-porting-tools
diff --git a/tuw-nav-msgs.spec b/tuw-nav-msgs.spec
new file mode 100644
index 0000000..8e9b2f1
--- /dev/null
+++ b/tuw-nav-msgs.spec
@@ -0,0 +1,110 @@
+%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 tuw-nav-msgs
+%define ros_distro humble
+%define with_tests 0
+
+Name: ros-%{ros_distro}-%{RosPkgName}
+Version: 0.2.1
+Release: 1%{?dist}%{?release_suffix}
+Summary: The tuw_nav_msgs package
+
+License: BSD
+Source0: %{name}_%{version}.orig.tar.gz
+
+Requires: ros-%{ros_distro}-builtin-interfaces
+Requires: ros-%{ros_distro}-std-msgs
+Requires: ros-%{ros_distro}-geometry-msgs
+Requires: ros-%{ros_distro}-nav-msgs
+Requires: ros-%{ros_distro}-rosidl-default-runtime
+
+BuildRequires: ros-%{ros_distro}-builtin-interfaces
+BuildRequires: ros-%{ros_distro}-std-msgs
+BuildRequires: ros-%{ros_distro}-geometry-msgs
+BuildRequires: ros-%{ros_distro}-nav-msgs
+BuildRequires: ros-%{ros_distro}-ament-cmake
+BuildRequires: ros-%{ros_distro}-rosidl-default-generators
+
+%if 0%{?with_tests}
+BuildRequires: ros-%{ros_distro}-ament-common
+%endif
+
+Provides: %{name}-devel = %{version}-%{release}
+Provides: %{name}-doc = %{version}-%{release}
+Provides: %{name}-runtime = %{version}-%{release}
+
+%description
+The tuw_nav_msgs package
+
+%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 Markus Bader markus.bader@tuwien.ac.at - 0.2.1-1
+- Autogenerated by ros-porting-tools
diff --git a/tuw-object-msgs.spec b/tuw-object-msgs.spec
new file mode 100644
index 0000000..2a7db7b
--- /dev/null
+++ b/tuw-object-msgs.spec
@@ -0,0 +1,109 @@
+%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 tuw-object-msgs
+%define ros_distro humble
+%define with_tests 0
+
+Name: ros-%{ros_distro}-%{RosPkgName}
+Version: 0.2.1
+Release: 1%{?dist}%{?release_suffix}
+Summary: ROS tuw-object-msgs package
+
+License: BSD
+Source0: %{name}_%{version}.orig.tar.gz
+
+Requires: ros-%{ros_distro}-std-msgs
+Requires: ros-%{ros_distro}-geometry-msgs
+Requires: ros-%{ros_distro}-builtin-interfaces
+Requires: ros-%{ros_distro}-rosidl-default-runtime
+
+BuildRequires: ros-%{ros_distro}-std-msgs
+BuildRequires: ros-%{ros_distro}-geometry-msgs
+BuildRequires: ros-%{ros_distro}-builtin-interfaces
+BuildRequires: ros-%{ros_distro}-ament-cmake
+BuildRequires: ros-%{ros_distro}-rosidl-default-generators
+
+%if 0%{?with_tests}
+BuildRequires: ros-%{ros_distro}-ament-common
+%endif
+
+Provides: %{name}-devel = %{version}-%{release}
+Provides: %{name}-doc = %{version}-%{release}
+Provides: %{name}-runtime = %{version}-%{release}
+
+%description
+The tuw_object_msgs package. This pkg provides a set of messages used to detect, map and track objects of different types.
+
+
+%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 Markus Bader markus.bader@tuwien.ac.at - 0.2.1-1
+- Autogenerated by ros-porting-tools
--
Gitee