catkin plugin: use build-packages for compilers
Metadata
Current evaluation
Merged updates to the Catkin plugin that specify compilers as build-packages instead of isolating them. This resolves a rebuild failure and aligns with current base requirements. Approved by one reviewer and passed CI.
Suggested action: —
No scores available.
Issue body
- [x] Have you followed the [guidelines for contributing](https://github.com/snapcore/snapcraft/blob/master/CONTRIBUTING.md)?
- [x] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)?
- [x] Have you successfully run `./runtests.sh static`?
- [x] Have you successfully run `./runtests.sh tests/unit`?
-----
Currently, the Catkin plugin pulls compilers off to the side rather than requesting that they be installed on the host. The reason for this is historical at this point: before bases existed, one could build a ROS snap on any version of Ubuntu, even versions unsupported by the ROS distribution being used. In an effort to ensure this worked as well as possible, the Catkin plugin did as much as it could without utilizing `build-packages` to ensure all components were compatible.
With the introduction of bases (and the fact that the only ROS1 releases available correspond to LTS releases, and thus bases), this is no longer a concern. It's no longer possible to build a ROS snap on an unsupported Ubuntu version in a supported manner. Add to that the fact that there's a bug in the plugin's use of the compilers that prevents rebuilds from working properly, and it's time to get rid of them.
Rather than pulling compilers off to the side, this PR fixes [LP: #1827148](https://bugs.launchpad.net/snapcraft/+bug/1827148) by simply specifying them as required `build-packages`.
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged updates to the Catkin plugin that specify compilers as build-packages instead of isolating them. This resolves a rebuild failure and aligns with current base requirements. Approved by one reviewer and passed CI. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged. Updates the Catkin plugin to declare compilers as build-packages, replacing legacy workarounds. Resolves rebuild failures (LP: #1827148) and aligns with modern bases support. Merged after test dependencies were satisfied. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged. Replaces isolated compiler handling in the Catkin plugin with required build-packages, fixing rebuild failures (LP: #1827148). This change aligns with modern bases support and simplifies the build environment. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #1070 catkin plugin: don't stage compilers. | snapcraft | merged | Merged to master. The catkin plugin now routes compilers to an alternate working area instead of staging them, resolving LP #1658828 and preventing their inclusion in the final snap. Approved, passed CI, and merged. | |
| #1779 catkin-tools plugin: use stage-packages | snapcraft | merged | Merged a fix switching the catkin-tools plugin from build-packages to stage-packages, resolving clean system failures. Added an integration test. Approved by two reviewers and passed CI. | |
| #1743 catkin plugin: support building entire workspace | snapcraft | merged | Merged. The catkin-packages property is now optional. When omitted, the plugin builds the entire workspace. Resolves LP: #1721168. Approved by two reviewers with passing CI checks. | |
| #2459 catkin plugin: describe how to build all packages | snapcraft | merged | Merged a documentation update for the catkin plugin explaining how to build all packages. Adds a missing blurb from a previous bug fix. Approved by two reviewers, passed CI, and modified one file. | |
| #2546 [legacy] catkin plugin: ensure cxxflags are consistent | snapcraft | merged | Merged fix for the legacy catkin plugin ensuring deterministic include path ordering. Resolves unnecessary rebuilds from non-deterministic cxxflags. Approved, passed CI, and merged. | |
| #1526 catkin plugin: don't assume catkin is in underlay | snapcraft | merged | Merged fix updating the catkin plugin to use its isolated installation instead of assuming catkin exists in the underlay. Resolves Launchpad bug #1696014. Includes reviewer-requested test naming updates. Approved and merged. | |
| #3168 plugins: fix loading of catkin-tools | snapcraft | merged | Merged a one-line correction changing catkin_tools to catkin-tools in the plugin loader, resolving package loading failures. Approved, passed CI, and addresses LP #1882996. |