← Back to issue list

catkin plugin: use build-packages for compilers

View original Github issue

Metadata

Project
snapcraft
Number
#2545
Type
pull request
State
merged
Author
kyrofa
Labels
—
Created
Updated
Closed

Current evaluation

Merged PR #2545 in commit ddb2d2627, replacing Catkin's side-loaded compiler workaround with required build-packages and fixing LP: #1827148 rebuild failures.

Resolution: closed resolved

Reason: PR #2545 was merged as commit ddb2d2627. It makes Catkin declare compilers as build-packages and removes the historical workaround, resolving LP: #1827148.

Evaluated by: mr-cal-bot

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
stealth/space-bunny-alpha — closed resolved Merged PR #2545 in commit ddb2d2627, replacing Catkin's side-loaded compiler workaround with required build-packages and fixing LP: #1827148 rebuild failures.
stealth/space-bunny-alpha — closed resolved PR #2545 (commit ddb2d2627) merged: Catkin plugin now declares compilers as build-packages instead of pulling them aside, fixing LP: #1827148 rebuild breakage; ~335 lines of workaround code removed. #2548 merged first to unblock tests.
stealth/space-bunny-alpha — closed resolved Merged PR #2545 as commit ddb2d2627, making Catkin request compilers as build-packages and fixing LP: #1827148.
stealth/space-bunny-alpha — closed resolved Merged PR #2545 (commit ddb2d2627) made Catkin use compiler build-packages instead of side-loading them, fixing LP #1827148 and rebuild failures.
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.

Update history

No update history recorded yet.

Related work

  • Related To: snapcraft#2548 (confidence 100%)

    Merged prerequisite PR that corrected integration-test package lookup so this PR's tests could pass.

Related issues

Issue Project State Summary Similarity
#1070 catkin plugin: don't stage compilers. snapcraft merged Merged PR #1070 as commit ea8736af4, moving required Catkin compilers to an alternate work area so they are available during builds but excluded from final snaps; fixes LP #1658828.
80%
#881 Catkin plugin: Python nodes require gcc/g++ too. snapcraft merged Merged as commit 2f0c8ba04: catkin plugin now stages gcc/g++ unconditionally at the start of the build (instead of only when roscpp is a dependency), fixing LP bug #1638317.
74%
#1743 catkin plugin: support building entire workspace snapcraft merged Merged #1743 in commit ec4cac26a, making catkin-packages optional so the Catkin plugin builds the entire workspace when omitted; this also resolves snapcraft#1713.
73%
#1779 catkin-tools plugin: use stage-packages snapcraft merged Merged #1779 (ebc4f2ce2): catkin-tools now uses stage-packages for clean-system builds, with a snapd-suite integration test.
71%
#1658828 Catkin plugin stages compilers snapcraft (launchpad) closed Catkin no longer stages compilers: snapcore/snapcraft#1070 (ea8736af4) moved them to an alternate work area, keeping compiler bloat out of ROS snaps.
71%
#68 catkin fails to build complex sources snapcraft closed Fixed by merged PR #94: commit 8741af4a3 added generic source-subdir support, letting plugins select source packages inside monorepos.
71%
#840 Catkin plugin: build with in-snap python. snapcraft merged Merged #840 as 7f9fa3ac1, fixing LP #1628990 by using in-snap Python during Catkin builds and adding gcc, libc-dev, and make as build packages.
71%
#2546 [legacy] catkin plugin: ensure cxxflags are consistent snapcraft merged Merged PR #2546 into legacy, making catkin include paths deterministic so CXXFLAGS stay stable between builds and avoid unnecessary rebuilds (LP: #1827148).
70%