From c8a103eab7a60fabb76dd4c96cf66d07ff8c2fb1 Mon Sep 17 00:00:00 2001 From: forbes Date: Wed, 28 Jan 2026 18:43:55 -0600 Subject: [PATCH] Fix .deb package: add wrapper scripts for library paths The bundled binaries need LD_LIBRARY_PATH, PYTHONPATH, and QT_PLUGIN_PATH set to find their libraries. Replace symlinks with wrapper scripts that set up the environment before exec. --- package/debian/build-deb.sh | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/package/debian/build-deb.sh b/package/debian/build-deb.sh index 48106ce49b..4a84de0fe7 100755 --- a/package/debian/build-deb.sh +++ b/package/debian/build-deb.sh @@ -92,9 +92,28 @@ mkdir -p "${STAGING_DIR}/usr/share/doc/${PACKAGE_NAME}" echo "Copying installed files..." cp -a "${INSTALL_DIR}"/* "${STAGING_DIR}/opt/${PACKAGE_NAME}/" -# Create symlinks in /usr/bin for system-wide access -ln -sf "/opt/${PACKAGE_NAME}/bin/FreeCAD" "${STAGING_DIR}/usr/bin/kindred-create" -ln -sf "/opt/${PACKAGE_NAME}/bin/FreeCADCmd" "${STAGING_DIR}/usr/bin/kindred-create-cmd" +# Create wrapper scripts in /usr/bin that set up the environment +# The binaries need LD_LIBRARY_PATH to find bundled libraries +cat > "${STAGING_DIR}/usr/bin/kindred-create" << 'WRAPPER' +#!/bin/bash +export KINDRED_CREATE_HOME="/opt/kindred-create" +export LD_LIBRARY_PATH="${KINDRED_CREATE_HOME}/lib:${LD_LIBRARY_PATH:-}" +export QT_PLUGIN_PATH="${KINDRED_CREATE_HOME}/lib/qt6/plugins:${QT_PLUGIN_PATH:-}" +export PYTHONHOME="${KINDRED_CREATE_HOME}" +export PYTHONPATH="${KINDRED_CREATE_HOME}/lib/python3.11:${KINDRED_CREATE_HOME}/lib/python3.11/site-packages:${PYTHONPATH:-}" +exec "${KINDRED_CREATE_HOME}/bin/FreeCAD" "$@" +WRAPPER +chmod 755 "${STAGING_DIR}/usr/bin/kindred-create" + +cat > "${STAGING_DIR}/usr/bin/kindred-create-cmd" << 'WRAPPER' +#!/bin/bash +export KINDRED_CREATE_HOME="/opt/kindred-create" +export LD_LIBRARY_PATH="${KINDRED_CREATE_HOME}/lib:${LD_LIBRARY_PATH:-}" +export PYTHONHOME="${KINDRED_CREATE_HOME}" +export PYTHONPATH="${KINDRED_CREATE_HOME}/lib/python3.11:${KINDRED_CREATE_HOME}/lib/python3.11/site-packages:${PYTHONPATH:-}" +exec "${KINDRED_CREATE_HOME}/bin/FreeCADCmd" "$@" +WRAPPER +chmod 755 "${STAGING_DIR}/usr/bin/kindred-create-cmd" # Create desktop entry following freedesktop.org specification cat > "${STAGING_DIR}/usr/share/applications/kindred-create.desktop" << 'EOF' @@ -104,7 +123,7 @@ Type=Application Name=Kindred Create GenericName=CAD Application Comment=Engineering-focused parametric 3D CAD platform -Exec=kindred-create %F +Exec=/usr/bin/kindred-create %F Icon=kindred-create Terminal=false Categories=Graphics;Science;Engineering;