Skip to content

Commit b99d6ab

Browse files
facontidavideclaude
andcommitted
fix: set LD_LIBRARY_PATH for linuxdeploy to find conda libs
linuxdeploy does its own dependency resolution and couldn't find libspdlog.so and other conda-provided libraries. Instead of manual ldd/cp bundling, let linuxdeploy handle it with CONDA_PREFIX/lib in LD_LIBRARY_PATH. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Entire-Checkpoint: c316f698da7d
1 parent 18d2c40 commit b99d6ab

1 file changed

Lines changed: 3 additions & 16 deletions

File tree

.github/workflows/appimage.yaml

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -44,21 +44,6 @@ jobs:
4444
# Copy binary (colcon without --merge-install)
4545
cp install/pj_bridge/lib/pj_bridge/pj_bridge_ros2 AppDir/usr/bin/
4646
47-
# Bundle shared libraries from the conda environment
48-
# (exclude glibc/ld-linux which must come from the host)
49-
ldd AppDir/usr/bin/pj_bridge_ros2 | \
50-
grep "$CONDA_PREFIX" | \
51-
awk '{print $3}' | \
52-
xargs -I{} cp --no-dereference {} AppDir/usr/lib/ 2>/dev/null || true
53-
54-
# Also copy transitive deps from conda lib/
55-
for lib in AppDir/usr/lib/*.so*; do
56-
ldd "$lib" 2>/dev/null | \
57-
grep "$CONDA_PREFIX" | \
58-
awk '{print $3}' | \
59-
xargs -I{} cp --no-dereference {} AppDir/usr/lib/ 2>/dev/null || true
60-
done
61-
6247
# Copy ament index (needed for schema discovery at runtime)
6348
cp -r "$CONDA_PREFIX"/share/ament_index AppDir/usr/share/ 2>/dev/null || true
6449
@@ -97,7 +82,9 @@ jobs:
9782
APPRUN
9883
chmod +x AppDir/AppRun
9984
100-
# Generate AppImage
85+
# Let linuxdeploy resolve and bundle all shared libraries
86+
# LD_LIBRARY_PATH includes conda env so linuxdeploy can find ROS/spdlog/etc libs
87+
export LD_LIBRARY_PATH="$CONDA_PREFIX/lib:${LD_LIBRARY_PATH:-}"
10188
ARCH=x86_64 ./linuxdeploy-x86_64.AppImage \
10289
--appdir AppDir \
10390
--output appimage

0 commit comments

Comments
 (0)