summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tiago-dual-controller-configuration.spec19
1 files changed, 15 insertions, 4 deletions
diff --git a/tiago-dual-controller-configuration.spec b/tiago-dual-controller-configuration.spec
index a645cac..535cf65 100644
--- a/tiago-dual-controller-configuration.spec
+++ b/tiago-dual-controller-configuration.spec
@@ -18,10 +18,21 @@ Source0: %{RosPkgName}-%{src_version}.tar.gz
BuildRequires: cmake
BuildRequires: ros-%{ros_distro}-ament-cmake
BuildRequires: ros-%{ros_distro}-ament-cmake-auto
-BuildRequires: ros-%{ros_distro}-launch
-BuildRequires: ros-%{ros_distro}-launch-pal
-BuildRequires: ros-%{ros_distro}-ros2controlcli
-BuildRequires: ros-%{ros_distro}-tiago-controller-configuration
+# 上游 package.xml 中 launch / launch_pal / ros2controlcli /
+# tiago_controller_configuration 四项均为 <exec_depend>(非 build_depend、
+# 非 buildtool_depend)。ament_cmake_auto 的 ament_auto_find_build_dependencies()
+# 只遍历 BUILD_DEPENDS / BUILDTOOL_DEPENDS 调用 find_package(且默认 QUIET、
+# 未传 REQUIRED),exec_depend 不参与构建期;本包 CMakeLists.txt 中亦无对这
+# 四者的显式 find_package。故按 spec-rules-ros §6 的映射纪律(buildtool_depend
+# 只进 BuildRequires,exec_depend 只进 Requires),这四项不写 BuildRequires。
+# 本轮构建失败根因即在此:BuildRequires 把运行期包
+# ros-humble-tiago-controller-configuration 拖进构建期依赖链,而该 RPM
+# (来自 openEuler Embedded ROS2 humble 外挂源,版本 4.24.1)自身声明的
+# gravity_compensation_controller2 / omni_drive_controller 在全部已配置源
+# (官方 everything/update/EPOL + COPR result + additional_repos)均无
+# provider,dnf builddep 报 conflicting requests 而失败。该依赖链断裂源于
+# 外挂源 RPM 自身,非本包 spec 可修复;四项在本包运行期仍需,故按弱依赖禁令
+# 保留在下方 Requires 中,仅从构建期依赖中移除。
# 上游 package.xml 的 pal_module_cmake 是条件依赖(PAL 自家 distro 变量):
# <build_depend condition="$PAL_DISTRO >= alum">pal_module_cmake</build_depend>
# 本构建环境(openEuler COPR,非 PAL_DISTRO)该条件不成立,依赖语义上不生效;