From 12ecfeb70c68cc0f43e62715786434f2ffcb9c2d Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Tue, 13 Oct 2026 02:06:12 +0000 Subject: automatic import of ros-humble-mavros-extras --- .gitignore | 1 + hil-gps-id-yaw-compat.patch | 17 ---- mavros-extras.spec | 151 +++++++++++++++++++++++++++++++++++ ros-humble-mavros-extras.spec | 179 ------------------------------------------ sources | 2 +- 5 files changed, 153 insertions(+), 197 deletions(-) delete mode 100644 hil-gps-id-yaw-compat.patch create mode 100644 mavros-extras.spec delete mode 100644 ros-humble-mavros-extras.spec diff --git a/.gitignore b/.gitignore index b902f01..3900168 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /ros-humble-mavros-extras-2.16.0.tar.gz +/mavros-extras-2.4.0.tar.gz diff --git a/hil-gps-id-yaw-compat.patch b/hil-gps-id-yaw-compat.patch deleted file mode 100644 index dc49eec..0000000 --- a/hil-gps-id-yaw-compat.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- a/mavros_extras/src/plugins/hil.cpp 2026-10-12 10:25:09.627053991 +0000 -+++ b/mavros_extras/src/plugins/hil.cpp 2026-10-12 10:25:09.636054018 +0000 -@@ -240,8 +240,12 @@ - gps.vd = req->vd; - gps.cog = req->cog; - gps.satellites_visible = req->satellites_visible; -- gps.id = req->id; -- gps.yaw = req->yaw; -+ // id and yaw fields were added to HilGPS.msg in mavros 2.16.0; -+ // the ROS SIG repo ships mavros_msgs 2.14.0 which lacks these fields. -+ // Leave gps.id/gps.yaw at default (0) - HIL_GPS still sent, just -+ // without optional id/yaw from the ROS message. -+ // gps.id = req->id; -+ // gps.yaw = req->yaw; - // [[[end]]] (sum: 7jKMh3Vikx) - - uas->send_message(gps); diff --git a/mavros-extras.spec b/mavros-extras.spec new file mode 100644 index 0000000..694bc06 --- /dev/null +++ b/mavros-extras.spec @@ -0,0 +1,151 @@ +%define src_version 2.4.0 + +# 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.4.0 +Release: 1%{?dist} +Summary: Extra nodes and plugins for MAVROS + +License: GPLv3 and LGPLv3 and BSD +URL: https://github.com/mavlink/mavros +Source0: %{RosPkgName}-%{src_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 +* Tue Oct 13 2026 ai-importer - 2.4.0-1 +- Rebase to 2.4.0 (ROS batch import) +* Mon Oct 12 2026 AI Importer - 2.16.0-1 +- Initial package for openEuler (ROS 2 humble) +- Built from upstream mavros repo, mavros_extras sub-package \ No newline at end of file diff --git a/ros-humble-mavros-extras.spec b/ros-humble-mavros-extras.spec deleted file mode 100644 index 0c7bfdf..0000000 --- a/ros-humble-mavros-extras.spec +++ /dev/null @@ -1,179 +0,0 @@ -# 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: 5%{?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 - -# Patch: mavros_msgs 2.14.0 (ROS SIG repo) lacks HilGPS.id/yaw fields added in 2.16.0 -Patch0: hil-gps-id-yaw-compat.patch - -# 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 -# geographiclib-devel pulls in official geographiclib (provides /usr/bin/GeoConvert -# etc. + FindGeographicLib.cmake + headers); do NOT add separate geographiclib-tools — -# the in-session built geographiclib-tools-2.7.0 ships the same /usr/bin/* and causes -# a file-conflict transaction-test failure. -BuildRequires: geographiclib-devel -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 -p1 -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 - 2.16.0-5 -- Add -p1 to %%autosetup: Patch0 (hil-gps-id-yaw-compat.patch) uses git-style - a/ and b/ path prefixes. Without -p1, patch looks for the literal - a/mavros_extras/src/plugins/hil.cpp path (which does not exist), causing - "No file to patch. Skipping patch." and aborting %%prep before compilation. - -* Mon Oct 12 2026 AI Importer - 2.16.0-4 -- Add Patch0 (hil-gps-id-yaw-compat.patch): comment out gps.id/gps.yaw - assignments in hil.cpp that reference HilGPS fields added in mavros 2.16.0. - The ROS SIG repo ships mavros_msgs 2.14.0 which lacks these fields, causing - "has no member named 'id'/'yaw'" compile errors at hil.cpp:243-244. - The MAVLink HIL_GPS message still has id/yaw (defaults to 0). - -* Mon Oct 12 2026 AI Importer - 2.16.0-3 -- Escape %%cmake token in a %%build comment: rpm expands %%macros even - inside comments, so the openEuler %%cmake macro's multi-line body (which - includes %%set_build_flags + a (...) subshell) leaked out of the comment - and was executed as build commands, causing "syntax error near - unexpected token )'" at line 61 of the build script. Replaced with - %%cmake (literal %%cmake) so the comment stays a comment. - -* Mon Oct 12 2026 AI Importer - 2.16.0-2 -- Drop BuildRequires: geographiclib-tools: it duplicates /usr/bin/* tools - already provided by official geographiclib (pulled by geographiclib-devel), - causing a dnf transaction-test file conflict. - -* Mon Oct 12 2026 AI Importer - 2.16.0-1 -- Initial package for openEuler (ROS 2 humble) -- Built from upstream mavros repo, mavros_extras sub-package diff --git a/sources b/sources index 14ebb66..4ab210e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -529dbde82cd5a7d6bc48030e744513c5 ros-humble-mavros-extras-2.16.0.tar.gz +b18d677c04e1912bfa36fecf5636019f mavros-extras-2.4.0.tar.gz -- cgit v1.2.3