summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kuka-iiqka-eac-driver.spec39
1 files changed, 36 insertions, 3 deletions
diff --git a/kuka-iiqka-eac-driver.spec b/kuka-iiqka-eac-driver.spec
index 6d5d3a7..9149701 100644
--- a/kuka-iiqka-eac-driver.spec
+++ b/kuka-iiqka-eac-driver.spec
@@ -4,7 +4,7 @@
Name: ros-%{ros_distro}-%{RosPkgName}
Version: 1.1.0
-Release: 3%{?dist}
+Release: 4%{?dist}
Summary: A ROS2 hardware interface for use with KUKA iiQKA OS
License: Apache-2.0
URL: https://github.com/kroshu/kuka_drivers.git
@@ -67,10 +67,17 @@ sed -i 's/Kuka::kuka-external-control-sdk/Kuka::kuka-external-control-sdk -labsl
[ -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}
-cd kuka_iiqka_eac_driver
+
+# 源码 tarball 含完整 kuka_drivers.git 单体仓库。eulermaker 源中
+# ros-humble-kuka-drivers-core 仅 1.0.0,缺 1.1.0 新增的
+# joint_interface_validator.hpp 头文件及对应库符号
+# (ValidateJointCommandInterfaces / ValidateJointStateInterfaces),
+# 导致 hardware_interface.cpp 编译期 fatal error。先从源码编译安装
+# kuka_drivers_core 1.1.0 到临时前缀,再让 find_package 优先命中 1.1.0。
+cd kuka_drivers_core
mkdir -p .obj && cd .obj
%cmake3 \
- -DCMAKE_INSTALL_PREFIX="/opt/ros/%{ros_distro}" \
+ -DCMAKE_INSTALL_PREFIX="/tmp/kdc_install" \
-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 \
@@ -78,6 +85,22 @@ mkdir -p .obj && cd .obj
-DBUILD_TESTING=OFF -DTESTING=OFF -DCMAKE_SUPPRESS_REGENERATION=ON \
..
make %{?_smp_mflags}
+make install
+cd ../..
+
+export AMENT_PREFIX_PATH="/tmp/kdc_install:/opt/ros/%{ros_distro}"
+export LD_LIBRARY_PATH="/tmp/kdc_install/lib:/opt/ros/%{ros_distro}/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
+cd kuka_iiqka_eac_driver
+mkdir -p .obj && cd .obj
+%cmake3 \
+ -DCMAKE_INSTALL_PREFIX="/opt/ros/%{ros_distro}" \
+ -DAMENT_PREFIX_PATH="/tmp/kdc_install;/opt/ros/%{ros_distro}" \
+ -DCMAKE_PREFIX_PATH="/tmp/kdc_install;/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 -DTESTING=OFF -DCMAKE_SUPPRESS_REGENERATION=ON \
+ ..
+make %{?_smp_mflags}
%install
[ -f /opt/ros/%{ros_distro}/setup.sh ] && source /opt/ros/%{ros_distro}/setup.sh || true
@@ -91,6 +114,16 @@ make install DESTDIR=%{buildroot}
/opt/ros/%{ros_distro}
%changelog
+* Wed Sep 23 2026 ai-importer <ai-importer@openeuler.org> - 1.1.0-4
+- %build 先从源码编译安装 kuka_drivers_core 1.1.0 到临时前缀
+ /tmp/kdc_install:eulermaker 源中 ros-humble-kuka-drivers-core 仅
+ 1.0.0,缺 1.1.0 新增的 joint_interface_validator.hpp 头文件及对应库
+ 符号 (ValidateJointCommandInterfaces / ValidateJointStateInterfaces),
+ 导致 hardware_interface.cpp 编译期 fatal error。源码 tarball 含完整
+ kuka_drivers.git 单体仓库,kuka_drivers_core 子目录即为 1.1.0 源码。
+ 编译安装到临时前缀后,通过 CMAKE_PREFIX_PATH / AMENT_PREFIX_PATH
+ 让 find_package(kuka_drivers_core) 优先命中 1.1.0 版本。
+
* Wed Sep 23 2026 ai-importer <ai-importer@openeuler.org> - 1.1.0-3
- 增加 grpc-devel BuildRequires:源码 hardware_interface.cpp / robot_manager_node.cpp
直接 #include <grpcpp/create_channel.h>,编译期找不到该头文件(对齐兄弟包