Build libmarinholab-sas-core .deb (sas_cpp) into the PPA alongside the ROS .debs - #5
Merged
Merged
Conversation
The sas_core thin wrapper requires the non-ROS C++ core provided by MarinhoLab/sas_cpp as the libmarinholab-sas-core .deb (find_package marinholab_sas_core). It is not a colcon package (no package.xml), so it cannot go through the existing bloom loop; build it from its own debian/ packaging before colcon build, using sas_cpp main by default (overridable via SAS_CPP_REF). The .deb lands in tmp_ros2/ next to the ROS package .debs, so the existing PPA extract/scan/deploy pipeline ships it automatically. Co-authored-by: openhands <openhands@all-hands.dev>
Drop --depth 1 so sas_cpp's own tools/version.sh can count commits since the monthly version tag, and run tools/bump-changelog.sh (dch) to stamp debian/changelog with the rolling YY.MM.NN version before dpkg-buildpackage. Verified: changelog bump is idempotent, .deb builds and installs, find_package consumer probe runs a Clock. Co-authored-by: openhands <openhands@all-hands.dev>
tools/bump-changelog.sh (run by build_ros2.sh before dpkg-buildpackage) needs dch, which is not in the base image. Co-authored-by: openhands <openhands@all-hands.dev>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this does
Adds the
libmarinholab-sas-core.deb(non-ROS C++ core from MarinhoLab/sas_cpp) to the PPA build, alongside the ROS package.debs.This is the prerequisite of the
sas_corethin wrapper (SmartArmStack/sas_core#12): its CMakeLists doesfind_package(marinholab_sas_core REQUIRED), and every downstream package that links the core needs the.debpresent beforecolcon buildand before the ROS.debbuilds.Changes
1.
build_ros2.sh— one new section (after the clone loop, before thecolconcheck):sas_cppis not a colcon package (nopackage.xml), so it cannot go through the existingPRE_BUILD/bloom loop — it uses its owndebian/packaging (cleandh/cmake rules,dpkg-buildflags-based).main, overridable viaSAS_CPP_REF.--depth) sosas_cpp's owntools/version.shcan count commits since the monthly version tag, andtools/bump-changelog.sh(idempotentdch) stampsdebian/changelogwith the rollingYY.MM.NNversion beforedpkg-buildpackage— so the.debversion tracks the branch content (same scheme as theSAS_VERSIONtimestamp of the ROS.debs)..deb(and its dbgsym.ddeb) are written intotmp_ros2/, so the existing PPA pipeline (extract_debian_from_container.shglobbing/root/tmp_ros2/*.deb/*.ddeb→ GH release →dpkg-scanpackages --multiversion→ Pages PPA) ships it automatically, no workflow changes.2.
prebuild_ros2.sh— one extra package in the builder image:devscripts(providesdch, required bytools/bump-changelog.sh). Without it the build aborts atdpkg-checkbuilddeps/dch: command not found.Verification
Ran the new section verbatim inside
ghcr.io/marinholab/gazebo:jazzy(arm64, the same base the builder image uses), withprebuild_ros2.sh+devscriptsfirst:tools/bump-changelog.sh→ idempotent, changelog stamped withtools/version.shoutputdpkg-buildpackage -us -uc -b→libmarinholab-sas-core_<version>_arm64.deb+ dbgsym.ddebdpkg -i→ installs cleanly;dpkg -Lshows lib + CMake package configfind_package(marinholab_sas_core)→ linkmarinholab::sas::core+Eigen3::Eigen→ runs aClockloop (probe ok 0.013s, exit 0)#include <sas_core/sas_clock.hpp>+namespace sasalias against the installed lib → compiles and runs (exit 0)Known limitation / follow-ups
tools/version.shcounts commits since tagv${YY.MM}(e.g.v26.09), butsas_cpp's current tag is26.09(nov). Until the tag is renamed (orversion.shadjusted), the rolling component is00and the version stays26.09.00. The mechanism itself works: once the monthlyv*tag exists, new commits →26.09.NN..debis on the PPA: add a rosdep key +<depend> libmarinholab-sas-core</depend>to the wrapper'spackage.xmlsoros-jazzy-sas-coredeclares a properDepends; then replace the in-image build block in the sas_core PR'sdocker/Dockerfilewithapt-get install -y libmarinholab-sas-core.To publish: run the
sas deb builderworkflow (workflow_dispatch) as usual.This pull request was created by an AI agent (OpenHands) on behalf of the repository owner.