catkin plugin: replace python calls in all profile.d scripts
Metadata
Current evaluation
Merged update to the catkin plugin replacing absolute Python paths with python in all etc/catkin/profile.d scripts. Fixes broken ROS Kinetic snaps on Ubuntu Core after upstream changes and resolves Catkin Tools plugin issues.
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] If this is a bugfix. Have you checked that there is a bug report open for the issue you are trying to fix on [bug reports](https://bugs.launchpad.net/snapcraft)?
- [x] If this is a new feature. Have you discussed the design on the [forum](https://forum.snapcraft.io)?
- [x] Have you successfully run `./runtests.sh static`?
- [x] Have you successfully run `./runtests.sh unit`?
-----
Currently, Snapcraft replaces a Python call in `etc/catkin/profile.d/10.ros.sh` that uses an absolute path (that doesn't exist in the core snap) to use just the `python` command instead, thereby ensuring the one from the snap is used. However, a recent ROS Kinetic update switched up the profile.d files, using absolute paths to Python elsewhere, breaking all newly-built ROS Kinetic snaps on Ubuntu Core.
Fix this by taking broader approach, checking _every_ file in `etc/catkin/profile.d/` for absolute Python paths and replacing each if found. Note that this should fix the Catkin Tools plugin as well.
Refer to https://forum.snapcraft.io/t/4518 for more information.
Please test this PR using the `edge/pr-2007-catkin-kinetic-fix` channel:
sudo snap install snapcraft --channel=edge/pr-2007-catkin-kinetic-fix
Or if you already have it installed:
sudo snap refresh snapcraft --channel=edge/pr-2007-catkin-kinetic-fix
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged update to the catkin plugin replacing absolute Python paths with python in all etc/catkin/profile.d scripts. Fixes broken ROS Kinetic snaps on Ubuntu Core after upstream changes and resolves Catkin Tools plugin issues. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged a catkin plugin fix replacing absolute Python paths in all etc/catkin/profile.d scripts, resolving ROS Kinetic snap build failures on Ubuntu Core and fixing the Catkin Tools plugin. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged by kyrofa. The catkin plugin now replaces absolute Python paths in all etc/catkin/profile.d/ scripts, resolving broken ROS Kinetic snaps on Ubuntu Core and fixing the Catkin Tools plugin. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #232 Catkin plugin: Use in-snap python instead of OS-provided. | snapcraft | merged | Merged a fix for the Catkin plugin failing on Ubuntu Xenial due to removed OS Python 2. Shebangs now use /usr/bin/env python and 10.ros.sh uses path-based Python, resolving review-flagged file conflicts and missing attributes. | |
| #842 Catkin plugin: Support ROS Kinetic. | snapcraft | merged | Merged. Adds ROS Kinetic support to the Catkin plugin by refactoring source handling for extensibility and mapping ROS to Ubuntu releases. Fixed a fileutils coverage gap during review. Approved and merged. | |
| #195 Catkin plugin: Improve cmake path rewrite. | snapcraft | merged | Merged updates to the Catkin plugin that replace hard-coded cmake path rewrites with a generic, robust approach. The change modifies two files to correctly redirect ROS package Config.cmake files to the install directory. | |
| #152 Catkin plugin: Add support for ROS tools. | snapcraft | merged | Merged Catkin plugin updates to properly install ROS packages, include non-source files, and enable ROS tools via an updated wrapper environment. Resolved an xml2-config conflict while planning to remove the redundant roscore plugin. Tests doubled. |