diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | ros-humble-mavros-extras.spec | 147 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 149 insertions, 0 deletions
@@ -0,0 +1 @@ +/ros-humble-mavros-extras-2.16.0.tar.gz diff --git a/ros-humble-mavros-extras.spec b/ros-humble-mavros-extras.spec new file mode 100644 index 0000000..a812086 --- /dev/null +++ b/ros-humble-mavros-extras.spec @@ -0,0 +1,147 @@ +# topdir: ros-humble-mavros-extras-2.16.0 (via --transform) +%define ros_distro humble +%define RosPkgName mavros-extras + +Name: ros-%{ros_distro}-%{RosPkgName} +Version: 2.16.0 +Release: 1%{?dist} +Summary: Extra nodes and plugins for MAVROS + +License: GPLv3 and LGPLv3 and BSD +URL: https://github.com/mavlink/mavros +Source0: https://github.com/mavlink/mavros/archive/refs/tags/%{version}.tar.gz#/%{name}-%{version}.tar.gz + +# debug subpackage not meaningful (/opt prefix, nonstandard strip paths) +%global debug_package %{nil} +# /opt python bytecode compilation writes standard sitelib paths — strip brp-python-bytecompile +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') +# ROS packages: .so under /opt/ros — autodeps disabled, ament indirect-dependency model instead +%global __provides_exclude_from ^/opt/ros/%{ros_distro}/.*$ +%global __requires_exclude_from ^/opt/ros/%{ros_distro}/.*$ + +BuildRequires: make +BuildRequires: cmake +BuildRequires: gcc-c++ +BuildRequires: python3-devel +BuildRequires: python3-setuptools + +# --- ROS buildtool dependencies (ament_cmake) --- +BuildRequires: ros-%{ros_distro}-ament-cmake +BuildRequires: ros-%{ros_distro}-ament-cmake-python +BuildRequires: ros-%{ros_distro}-eigen3-cmake-module + +# --- ROS package dependencies --- +BuildRequires: ros-%{ros_distro}-angles +BuildRequires: ros-%{ros_distro}-diagnostic-msgs +BuildRequires: ros-%{ros_distro}-diagnostic-updater +BuildRequires: ros-%{ros_distro}-eigen-stl-containers +BuildRequires: ros-%{ros_distro}-geographic-msgs +BuildRequires: ros-%{ros_distro}-geometry-msgs +BuildRequires: ros-%{ros_distro}-libmavconn +BuildRequires: ros-%{ros_distro}-mavlink +BuildRequires: ros-%{ros_distro}-mavros +BuildRequires: ros-%{ros_distro}-mavros-msgs +BuildRequires: ros-%{ros_distro}-message-filters +BuildRequires: ros-%{ros_distro}-nav-msgs +BuildRequires: ros-%{ros_distro}-pluginlib +BuildRequires: ros-%{ros_distro}-rclcpp +BuildRequires: ros-%{ros_distro}-rclcpp-components +BuildRequires: ros-%{ros_distro}-rcpputils +BuildRequires: ros-%{ros_distro}-rosidl-default-runtime +BuildRequires: ros-%{ros_distro}-sensor-msgs +BuildRequires: ros-%{ros_distro}-std-msgs +BuildRequires: ros-%{ros_distro}-std-srvs +BuildRequires: ros-%{ros_distro}-tf2-eigen +BuildRequires: ros-%{ros_distro}-tf2-ros +BuildRequires: ros-%{ros_distro}-trajectory-msgs +BuildRequires: ros-%{ros_distro}-urdf +BuildRequires: ros-%{ros_distro}-visualization-msgs +BuildRequires: ros-%{ros_distro}-yaml-cpp-vendor + +# --- System (non-ROS) build dependencies --- +BuildRequires: eigen3-devel +BuildRequires: yaml-cpp-devel +BuildRequires: geographiclib-devel +BuildRequires: geographiclib-tools +BuildRequires: python3-click + +# --- Runtime requires (ROS-specific, autodeps disabled) --- +Requires: ros-%{ros_distro}-ros-workspace +Requires: ros-%{ros_distro}-ament-cmake +Requires: ros-%{ros_distro}-rclcpp +Requires: ros-%{ros_distro}-rclcpp-components +Requires: ros-%{ros_distro}-mavros +Requires: ros-%{ros_distro}-libmavconn +Requires: ros-%{ros_distro}-mavros-msgs +Requires: ros-%{ros_distro}-mavlink +Requires: ros-%{ros_distro}-pluginlib +Requires: ros-%{ros_distro}-tf2-ros +Requires: ros-%{ros_distro}-tf2-eigen +Requires: ros-%{ros_distro}-diagnostic-updater +Requires: ros-%{ros_distro}-message-filters +Requires: ros-%{ros_distro}-rcpputils +Requires: ros-%{ros_distro}-urdf +Requires: ros-%{ros_distro}-yaml-cpp-vendor +Requires: ros-%{ros_distro}-rclpy +Requires: ros-%{ros_distro}-rosidl-default-runtime +Requires: ros-%{ros_distro}-diagnostic-msgs +Requires: ros-%{ros_distro}-geographic-msgs +Requires: ros-%{ros_distro}-geometry-msgs +Requires: ros-%{ros_distro}-nav-msgs +Requires: ros-%{ros_distro}-sensor-msgs +Requires: ros-%{ros_distro}-std-msgs +Requires: ros-%{ros_distro}-std-srvs +Requires: ros-%{ros_distro}-trajectory-msgs +Requires: ros-%{ros_distro}-visualization-msgs +Requires: ros-%{ros_distro}-angles +Requires: ros-%{ros_distro}-eigen-stl-containers +Requires: ros-%{ros_distro}-eigen3-cmake-module +Requires: python3-click + +# Virtual provides for compatibility +Provides: %{name}-devel = %{version}-%{release} +Provides: %{name}-doc = %{version}-%{release} +Provides: %{name}-runtime = %{version}-%{release} + +%description +Extra nodes and plugins for MAVROS (MAVLink to ROS bridge). +This package provides additional MAVLink plugins (ADS-B, GPS RTK, camera, +distance sensor, obstacle distance, terrain, vision pose, etc.) and the +terrain tile server. + +%prep +%autosetup -n %{name}-%{version} + +%build +# The source tarball contains the whole mavros repo (multi-package layout). +# We build only the mavros_extras sub-package. +cd mavros_extras + +# ROS bootstrap environment (chroot has ROS SIG repo; guard against missing setup.sh) +[ -f /opt/ros/%{ros_distro}/setup.sh ] && source /opt/ros/%{ros_distro}/setup.sh || true +export PYTHONPATH=/opt/ros/%{ros_distro}/lib/python%{python3_version}/site-packages${PYTHONPATH:+:$PYTHONPATH} +export PKG_CONFIG_PATH=/opt/ros/%{ros_distro}/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH} + +# Explicit out-of-source build (openEuler %cmake macro positional-arg pitfall) +mkdir -p .obj && cd .obj +cmake .. \ + -DCMAKE_INSTALL_PREFIX=/opt/ros/%{ros_distro} \ + -DAMENT_PREFIX_PATH=/opt/ros/%{ros_distro} \ + -DCMAKE_PREFIX_PATH=/opt/ros/%{ros_distro} \ + -UINCLUDE_INSTALL_DIR -ULIB_INSTALL_DIR -USYSCONF_INSTALL_DIR -USHARE_INSTALL_PREFIX -ULIB_SUFFIX \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DBUILD_TESTING=OFF \ + -DCMAKE_CXX_STANDARD=20 +%make_build + +%install +cd mavros_extras/.obj +%make_install DESTDIR=%{buildroot} + +%files +/opt/ros/%{ros_distro} + +%changelog +* Mon Oct 12 2026 AI Importer <ai-importer@openeuler.org> - 2.16.0-1 +- Initial package for openEuler (ROS 2 humble) +- Built from upstream mavros repo, mavros_extras sub-package @@ -0,0 +1 @@ +19fe31661b7c566b2264f0f4d3f3e8ce ros-humble-mavros-extras-2.16.0.tar.gz |
