From a74802f9b796c5bc62f5e7d9e771da42243b9e2e Mon Sep 17 00:00:00 2001 From: I-am-a-robot Date: Fri, 4 Jul 2025 10:58:58 +0000 Subject: [PATCH] apply new package mola_common --- files_in_srpm.txt | 2 + mola_common.spec | 107 +++++++++++++++++++++++ mola_common.src.rpm | Bin 0 -> 15872 bytes ros-humble-mola-common_0.4.0.orig.tar.gz | Bin 0 -> 8640 bytes 4 files changed, 109 insertions(+) create mode 100644 files_in_srpm.txt create mode 100644 mola_common.spec create mode 100644 mola_common.src.rpm create mode 100644 ros-humble-mola-common_0.4.0.orig.tar.gz diff --git a/files_in_srpm.txt b/files_in_srpm.txt new file mode 100644 index 0000000..c63c786 --- /dev/null +++ b/files_in_srpm.txt @@ -0,0 +1,2 @@ +mola-common.spec +ros-humble-mola-common_0.4.0.orig.tar.gz diff --git a/mola_common.spec b/mola_common.spec new file mode 100644 index 0000000..5ed51e6 --- /dev/null +++ b/mola_common.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 mola-common +%define ros_distro humble +%define with_tests 0 + +Name: ros-%{ros_distro}-%{RosPkgName} +Version: 0.4.0 +Release: 1%{?dist}%{?release_suffix} +Summary: ROS mola-common package + +Url: https://github.com/MOLAorg/ +License: BSD +Source0: %{name}_%{version}.orig.tar.gz + + +BuildRequires: ros-%{ros_distro}-ros-environment +BuildRequires: ros-%{ros_distro}-ament-cmake-xmllint +BuildRequires: cmake +BuildRequires: ros-%{ros_distro}-ament-cmake-gtest +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 +Common CMake scripts to all MOLA modules +Common CMake scripts to all MOLA modules + +%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 Jose_Luis Blanco_Claraco joseluisblancoc@gmail.com - 0.4.0-1 +- Autogenerated by ros-porting-tools diff --git a/mola_common.src.rpm b/mola_common.src.rpm new file mode 100644 index 0000000000000000000000000000000000000000..35d2d32d1c9b60c819c52262d3ec9a91e0fdb158 GIT binary patch literal 15872 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