Catkin plugin requires a valid environment before it runs setup.sh
Metadata
Current evaluation
Catkin setup.sh environment handling was fixed in snapcore/snapcraft#1239, cited by the maintainer as the resolution for Launchpad #1674487.
Resolution: closed resolved
Reason: The maintainer linked snapcore/snapcraft#1239 as the fix immediately before the item was closed, directly identifying the resolving pull request.
Evaluated by: mr-cal-bot
No scores available.
Issue body
Catkin has a number of environment hooks that are run when `setup.sh` is sourced. Various packages insert their own hooks here, which means `setup.sh` runs a variable number of things depending on what's contained in stage-packages.
Of particular note are the Turtlebot packages, which install environment hooks that call various other binaries (e.g. rospack). These hooks fail as the environment setup by the Catkin plugin is more for run-time than build-time, and isn't completely valid by the time setup.sh runs. Specifically:
- The LD_LIBRARY_PATH is setup _after_ the plugin sets up its environment.
- $SNAP_USER_DATA is not defined at build time, thus making $ROS_HOME point to /ros (absolute).
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | Catkin setup.sh environment handling was fixed in snapcore/snapcraft#1239, cited by the maintainer as the resolution for Launchpad #1674487. | |
| stealth/space-bunny-alpha | — | closed resolved | Fixed by merged PR #1239 (commit 449ad2634): the catkin plugin now builds a valid build-time environment, setting LD_LIBRARY_PATH before sourcing setup.sh and pointing ROS_HOME to a valid path, so Turtlebot env hooks no longer fail. | |
| stealth/space-bunny-alpha | — | closed resolved | Fixed by merged PR #1239 (commit 449ad2634): the Catkin plugin prepares LD_LIBRARY_PATH and ROS_HOME before sourcing setup.sh, preventing environment-hook failures. | |
| qwen/qwen3.6-35b-a3b | — | — | Abandoned and closed without resolution. The Catkin plugin executes setup.sh before LD_LIBRARY_PATH and SNAP_USER_DATA are initialized, breaking environment hooks. No fix was implemented. | |
| qwen/qwen3.6-35b-a3b | — | — | Closed without resolution. The Catkin plugin runs setup.sh before LD_LIBRARY_PATH and SNAP_USER_DATA are defined, causing environment hook failures. No fix was implemented. |
Update history
| Date | Change |
|---|---|
| created |
Related work
-
Likely Fixed By:
snapcore/snapcraft#1239
(confidence 100%)
The maintainer explicitly commented: "Fix here" with a link to this pull request.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #1239 catkin plugin: create completely valid environment | snapcraft | merged | Merged PR #1239 (commit 449ad2634) fixing LP: #1674487: catkin plugin now sets LD_LIBRARY_PATH and a valid ROS_HOME before sourcing setup.sh, so build-time env matches runtime. | |
| #1099 catkin plugin: don't pass args to setup.sh. | snapcraft | merged | Merged in canonical/snapcraft#1099 (commit 13ec80ff0), fixing LP #1660852 by preventing app arguments from reaching ROS's setup.sh and restoring them for the launched binary. | |
| #1660852 Wrapper created by Catkin plugin crashes with certain arguments | snapcraft (launchpad) | closed | Fixed by snapcore/snapcraft#1099, which stopped the Catkin wrapper from forwarding command-line arguments to ROS setup.sh. |