From a461c7c1e368fe6f071a7a4d1fe812df5e5b1ff6 Mon Sep 17 00:00:00 2001 From: weiwei123444 <348134071@qq.com> Date: Thu, 21 Aug 2025 07:15:28 +0000 Subject: [PATCH] apply new package psdk_ros3 --- README.en.md | 36 ------ README.md | 37 ------- psdk_ros3.spec | 110 +++++++++++++++++++ ros-humble-psdk-interfaces_1.3.2.orig.tar.gz | Bin 0 -> 9161 bytes 4 files changed, 110 insertions(+), 73 deletions(-) delete mode 100644 README.en.md delete mode 100644 README.md create mode 100644 psdk_ros3.spec create mode 100644 ros-humble-psdk-interfaces_1.3.2.orig.tar.gz diff --git a/README.en.md b/README.en.md deleted file mode 100644 index 9b6d8f3..0000000 --- a/README.en.md +++ /dev/null @@ -1,36 +0,0 @@ -# software-package-server - -#### Description -Software package server is a unified component for openeuler community developer which try to simplify the source package contribution process. - -#### Software Architecture -Software architecture description - -#### Installation - -1. xxxx -2. xxxx -3. xxxx - -#### Instructions - -1. xxxx -2. xxxx -3. xxxx - -#### Contribution - -1. Fork the repository -2. Create Feat_xxx branch -3. Commit your code -4. Create Pull Request - - -#### Gitee Feature - -1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md -2. Gitee blog [blog.gitee.com](https://blog.gitee.com) -3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore) -4. The most valuable open source project [GVP](https://gitee.com/gvp) -5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help) -6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/README.md b/README.md deleted file mode 100644 index 21f2596..0000000 --- a/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# software-package-server - -#### 介绍 -Software package server is a unified component for openeuler community developer which try to simplify the source package contribution process. - -#### 软件架构 -软件架构说明 - - -#### 安装教程 - -1. xxxx -2. xxxx -3. xxxx - -#### 使用说明 - -1. xxxx -2. xxxx -3. xxxx - -#### 参与贡献 - -1. Fork 本仓库 -2. 新建 Feat_xxx 分支 -3. 提交代码 -4. 新建 Pull Request - - -#### 特技 - -1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md -2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) -3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 -4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 -5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) -6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/psdk_ros3.spec b/psdk_ros3.spec new file mode 100644 index 0000000..8e49e8f --- /dev/null +++ b/psdk_ros3.spec @@ -0,0 +1,110 @@ +%bcond_without tests +%bcond_without weak_deps + +%global debug_package %{nil} +%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 psdk-interfaces +%define ros_distro humble +%define with_tests 0 + +Name: ros-%{ros_distro}-%{RosPkgName} +Version: 1.3.2 +Release: 1%{?dist}%{?release_suffix} +Summary: Provides custom message, srv and action types for psdk ros2 wrapper + +License: MPL +Source0: %{name}_%{version}.orig.tar.gz + +Requires: ros-%{ros_distro}-std-msgs +Requires: ros-%{ros_distro}-geometry-msgs +Requires: ros-%{ros_distro}-std-srvs +Requires: ros-%{ros_distro}-action-msgs + +BuildRequires: ros-%{ros_distro}-std-msgs +BuildRequires: ros-%{ros_distro}-geometry-msgs +BuildRequires: ros-%{ros_distro}-std-srvs +BuildRequires: ros-%{ros_distro}-action-msgs +BuildRequires: ros-%{ros_distro}-ament-cmake +BuildRequires: ros-%{ros_distro}-rosidl-default-generators + +%if 0%{?with_tests} +BuildRequires: ros-%{ros_distro}-ament-lint-auto +BuildRequires: ros-%{ros_distro}-ament-common +%endif + +Provides: %{name}-devel = %{version}-%{release} +Provides: %{name}-doc = %{version}-%{release} +Provides: %{name}-runtime = %{version}-%{release} + +%description +Provides custom message, srv and action types for psdk ros2 wrapper + +%prep +%autosetup -p1 + +%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 + +export ROS_DISTRO=%{ros_distro} +export ROS_PYTHON_VERSION=%{python3_version} + +# 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}" \ + -DCMAKE_INSTALL_LIBDIR="/opt/ros/%{ros_distro}/lib" \ + -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 +* Fri May 23 2025 Bianca Bendris bianca@unmanned.life - 1.3.2-1 +- Autogenerated by ros-porting-tools diff --git a/ros-humble-psdk-interfaces_1.3.2.orig.tar.gz b/ros-humble-psdk-interfaces_1.3.2.orig.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..c7f3368960692911ee70b14a351aa28217adb2d3 GIT binary patch literal 9161 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 QCq|Qv+gHB9P{73aKl+(j!~g&Q literal 0 HcmV?d00001 -- Gitee