summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2026-10-05 17:19:34 +0000
committerCoprDistGit <infra@openeuler.org>2026-10-05 17:19:34 +0000
commit73f1db8f6dd2f6817912ee37a55443f20ebe15f1 (patch)
treebb0c07117baaf1952d7f7a96b51c8a2369f494b0
parent54c68babfb7f3d7b0657048a9020c67d640aff64 (diff)
automatic import of ros-humble-kinematics-interface-kdlopeneuler24.03_LTS
-rw-r--r--.gitignore1
-rw-r--r--kinematics-interface-kdl-eigen-include.patch35
-rw-r--r--kinematics-interface-kdl.spec121
-rw-r--r--sources1
4 files changed, 158 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..3459b5e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/kinematics-interface-kdl-0.4.2.tar.gz
diff --git a/kinematics-interface-kdl-eigen-include.patch b/kinematics-interface-kdl-eigen-include.patch
new file mode 100644
index 0000000..48a118e
--- /dev/null
+++ b/kinematics-interface-kdl-eigen-include.patch
@@ -0,0 +1,35 @@
+From: Rourou2285 <snowmantin@foxmail.com>
+Date: Sat, 3 Oct 2026 17:25:38 +0800
+Subject: [PATCH] Use the Eigen include directory provided by Eigen3Config.cmake
+
+Use the Eigen include directory provided by Eigen3Config.cmake.
+
+Upstream includes Eigen with a hardcoded "eigen3/" prefix:
+
+ #include "eigen3/Eigen/Core"
+
+That only resolves when the headers are installed under /usr/include/eigen3,
+which is the case on openEuler 24.03. On openEuler 26.09 eigen3-devel installs
+them under /usr/include/eigen instead, so the build fails with:
+
+ fatal error: eigen3/Eigen/Core: No such file or directory
+
+The target already links Eigen3::Eigen (find_package(Eigen3 REQUIRED NO_MODULE)),
+and that imported target adds the correct include directory on both layouts, so
+including <Eigen/Core> and <Eigen/LU> works everywhere.
+
+Signed-off-by: Rourou2285 <snowmantin@foxmail.com>
+
+--- a/include/kinematics_interface_kdl/kinematics_interface_kdl.hpp
++++ b/include/kinematics_interface_kdl/kinematics_interface_kdl.hpp
+@@ -23,8 +23,8 @@
+ #include <unordered_map>
+ #include <vector>
+
+-#include "eigen3/Eigen/Core"
+-#include "eigen3/Eigen/LU"
++#include <Eigen/Core>
++#include <Eigen/LU>
+ #include "kdl/chainfksolverpos_recursive.hpp"
+ #include "kdl/chainfksolvervel_recursive.hpp"
+ #include "kdl/chainjnttojacsolver.hpp"
diff --git a/kinematics-interface-kdl.spec b/kinematics-interface-kdl.spec
new file mode 100644
index 0000000..ba9d043
--- /dev/null
+++ b/kinematics-interface-kdl.spec
@@ -0,0 +1,121 @@
+%bcond_with tests
+%bcond_without weak_deps
+
+%define ros_distro humble
+
+%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 kinematics-interface-kdl
+
+Name: ros-%{ros_distro}-%{RosPkgName}
+Version: 0.4.2
+Release: 2%{?dist}%{?release_suffix}
+Summary: KDL implementation of ros2_control kinematics interface
+
+Url: https://control.ros.org
+License: Apache License 2.0
+Source0: %{RosPkgName}-%{version}.tar.gz
+Patch0: kinematics-interface-kdl-eigen-include.patch
+
+Requires: eigen3-devel
+Requires: ros-%{ros_distro}-kdl-parser
+Requires: ros-%{ros_distro}-kinematics-interface
+Requires: ros-%{ros_distro}-pluginlib
+Requires: ros-%{ros_distro}-tf2-eigen-kdl
+Requires: ros-%{ros_distro}-ros-workspace
+
+BuildRequires: eigen3-devel
+BuildRequires: ros-%{ros_distro}-kdl-parser
+BuildRequires: ros-%{ros_distro}-kinematics-interface
+BuildRequires: ros-%{ros_distro}-pluginlib
+BuildRequires: ros-%{ros_distro}-tf2-eigen-kdl
+BuildRequires: ros-%{ros_distro}-ament-cmake
+BuildRequires: ros-%{ros_distro}-eigen3-cmake-module
+BuildRequires: ros-%{ros_distro}-ros-workspace
+
+%if 0%{?with_tests}
+BuildRequires: ros-%{ros_distro}-ament-cmake-gmock
+BuildRequires: ros-%{ros_distro}-ros2-control-test-assets
+%endif
+
+Provides: %{name}-devel = %{version}-%{release}
+Provides: %{name}-doc = %{version}-%{release}
+Provides: %{name}-runtime = %{version}-%{release}
+
+%description
+KDL implementation of ros2_control kinematics interface
+
+%prep
+%autosetup -p1 -n kinematics-interface-kdl-0.4.2
+
+%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
+
+# 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}" \
+ -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
+* Tue Oct 06 2026 kuyan_kubuds <kuyan@kubuds.cn> - 0.4.2-2
+- Sync kinematics-interface-kdl 0.4.2 from humble branch to master
+
+* Sat Oct 03 2026 Rourou <snowmantin@foxmail.com> - 0.4.2-2
+- Include Eigen without the "eigen3/" prefix so the headers are found on
+ openEuler 26.09, where eigen3-devel installs them under /usr/include/eigen.
+
+* Mon Sep 21 2026 Wanming Hu <huwanming@huawei.com> - 0.4.2-1
+- Upgrade kinematics-interface-kdl from 0.1.0 to 0.4.2 for ROS 2 Humble.
+
+* Thu May 04 2023 Bence Magyar <bence.magyar.robotics@gmail.com> - 0.1.0-1
+- Autogenerated by ros-porting-tools
diff --git a/sources b/sources
new file mode 100644
index 0000000..8b86cf5
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+eaa6c3ff2b44f0f63bff1e3cb4792324 kinematics-interface-kdl-0.4.2.tar.gz