diff --git a/.write_tar b/.write_tar new file mode 100644 index 0000000..e69de29 diff --git a/rpm/template.spec b/rpm/template.spec new file mode 100644 index 0000000..39dad9e --- /dev/null +++ b/rpm/template.spec @@ -0,0 +1,128 @@ +%bcond_without tests +%bcond_without weak_deps + +%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/humble/.*$ +%global __requires_exclude_from ^/opt/ros/humble/.*$ + +Name: ros-humble-naoqi-driver +Version: 2.1.1 +Release: 1%{?dist}%{?release_suffix} +Summary: ROS naoqi_driver package + +License: BSD +Source0: %{name}-%{version}.tar.gz + +Requires: boost-devel +Requires: boost-python%{python3_pkgversion}-devel +Requires: ros-humble-action-msgs +Requires: ros-humble-cv-bridge +Requires: ros-humble-image-transport +Requires: ros-humble-kdl-parser +Requires: ros-humble-naoqi-bridge-msgs >= 2.0.0 +Requires: ros-humble-naoqi-libqi +Requires: ros-humble-naoqi-libqicore +Requires: ros-humble-rclcpp +Requires: ros-humble-rclcpp-action +Requires: ros-humble-robot-state-publisher +Requires: ros-humble-tf2-ros +Requires: ros-humble-ros-workspace +BuildRequires: boost-devel +BuildRequires: boost-python%{python3_pkgversion}-devel +BuildRequires: ros-humble-action-msgs +BuildRequires: ros-humble-ament-cmake +BuildRequires: ros-humble-cv-bridge +BuildRequires: ros-humble-diagnostic-msgs +BuildRequires: ros-humble-diagnostic-updater +BuildRequires: ros-humble-geometry-msgs +BuildRequires: ros-humble-image-transport +BuildRequires: ros-humble-kdl-parser +BuildRequires: ros-humble-naoqi-bridge-msgs >= 2.0.0 +BuildRequires: ros-humble-naoqi-libqi +BuildRequires: ros-humble-naoqi-libqicore +BuildRequires: ros-humble-rclcpp +BuildRequires: ros-humble-rclcpp-action +BuildRequires: ros-humble-robot-state-publisher +BuildRequires: ros-humble-rosidl-default-generators +BuildRequires: ros-humble-sensor-msgs +BuildRequires: ros-humble-tf2-geometry-msgs +BuildRequires: ros-humble-tf2-msgs +BuildRequires: ros-humble-tf2-ros +BuildRequires: ros-humble-ros-workspace +BuildRequires: ros-humble-rosidl-typesupport-fastrtps-c +BuildRequires: ros-humble-rosidl-typesupport-fastrtps-cpp +Conflicts: ros-humble-nao-driver +Conflicts: ros-humble-naoqi-rosbridge +Provides: %{name}-devel = %{version}-%{release} +Provides: %{name}-doc = %{version}-%{release} +Provides: %{name}-runtime = %{version}-%{release} +Provides: ros-humble-rosidl-interface-packages(member) + +%if 0%{?with_tests} +BuildRequires: ros-humble-ament-lint-auto +BuildRequires: ros-humble-ament-lint-common +%endif + +%if 0%{?with_weak_deps} +Supplements: ros-humble-rosidl-interface-packages(all) +%endif + +%description +Driver module between Aldebaran's NAOqiOS and ROS2. It publishes all sensor and +actuator data as well as basic diagnostic for battery, temperature. It +subscribes also to RVIZ simple goal and cmd_vel for teleop. + +%prep +%autosetup -p1 + +%build +# 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/humble/setup.sh" ]; then . "/opt/ros/humble/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/humble" \ + -DAMENT_PREFIX_PATH="/opt/ros/humble" \ + -DCMAKE_PREFIX_PATH="/opt/ros/humble" \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ +%if !0%{?with_tests} + -DBUILD_TESTING=OFF \ +%endif + .. + +%make_build + +%install +# 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/humble/setup.sh" ]; then . "/opt/ros/humble/setup.sh"; fi +%make_install -C .obj-%{_target_platform} + +%if 0%{?with_tests} +%check +# 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/humble/setup.sh" ]; then . "/opt/ros/humble/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/humble + +%changelog +* Tue Dec 05 2023 Victor Paléologue - 2.1.1-1 +- Autogenerated by Bloom + diff --git a/rpm/template.spec.em b/rpm/template.spec.em deleted file mode 100644 index bebb96b..0000000 --- a/rpm/template.spec.em +++ /dev/null @@ -1,88 +0,0 @@ -%bcond_without tests -%bcond_without weak_deps - -%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') -%global __provides_exclude_from ^@(InstallationPrefix)/.*$ -%global __requires_exclude_from ^@(InstallationPrefix)/.*$ - -Name: @(Package) -Version: @(Version) -Release: @(RPMInc)%{?dist}%{?release_suffix} -Summary: ROS @(Name) package - -License: @(License) -@[if Homepage and Homepage != '']URL: @(Homepage)@\n@[end if]@ -Source0: %{name}-%{version}.tar.gz -@[if NoArch]@\nBuildArch: noarch@\n@[end if]@ - -@[for p in Depends]Requires: @p@\n@[end for]@ -@[for p in BuildDepends]BuildRequires: @p@\n@[end for]@ -@[for p in Conflicts]Conflicts: @p@\n@[end for]@ -@[for p in Replaces]Obsoletes: @p@\n@[end for]@ -@[for p in Provides]Provides: @p@\n@[end for]@ -@[if TestDepends]@\n%if 0%{?with_tests} -@[for p in TestDepends]BuildRequires: @p@\n@[end for]@ -%endif@\n@[end if]@ -@[if Supplements]@\n%if 0%{?with_weak_deps} -@[for p in Supplements]Supplements: @p@\n@[end for]@ -%endif@\n@[end if]@ - -%description -@(Description) - -%prep -%autosetup -p1 - -%build -# 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 "@(InstallationPrefix)/setup.sh" ]; then . "@(InstallationPrefix)/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="@(InstallationPrefix)" \ - -DAMENT_PREFIX_PATH="@(InstallationPrefix)" \ - -DCMAKE_PREFIX_PATH="@(InstallationPrefix)" \ - -DSETUPTOOLS_DEB_LAYOUT=OFF \ -%if !0%{?with_tests} - -DBUILD_TESTING=OFF \ -%endif - .. - -%make_build - -%install -# 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 "@(InstallationPrefix)/setup.sh" ]; then . "@(InstallationPrefix)/setup.sh"; fi -%make_install -C .obj-%{_target_platform} - -%if 0%{?with_tests} -%check -# 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 "@(InstallationPrefix)/setup.sh" ]; then . "@(InstallationPrefix)/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 -@[for lf in LicenseFiles]%license @lf@\n@[end for]@ -@(InstallationPrefix) - -%changelog@ -@[for change_version, (change_date, main_name, main_email) in changelogs] -* @(change_date) @(main_name) <@(main_email)> - @(change_version) -- Autogenerated by Bloom -@[end for]