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.
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user