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..."
|
echo "Copying installed files..."
|
||||||
cp -a "${INSTALL_DIR}"/* "${STAGING_DIR}/opt/${PACKAGE_NAME}/"
|
cp -a "${INSTALL_DIR}"/* "${STAGING_DIR}/opt/${PACKAGE_NAME}/"
|
||||||
|
|
||||||
# Create symlinks in /usr/bin for system-wide access
|
# Create wrapper scripts in /usr/bin that set up the environment
|
||||||
ln -sf "/opt/${PACKAGE_NAME}/bin/FreeCAD" "${STAGING_DIR}/usr/bin/kindred-create"
|
# The binaries need LD_LIBRARY_PATH to find bundled libraries
|
||||||
ln -sf "/opt/${PACKAGE_NAME}/bin/FreeCADCmd" "${STAGING_DIR}/usr/bin/kindred-create-cmd"
|
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
|
# Create desktop entry following freedesktop.org specification
|
||||||
cat > "${STAGING_DIR}/usr/share/applications/kindred-create.desktop" << 'EOF'
|
cat > "${STAGING_DIR}/usr/share/applications/kindred-create.desktop" << 'EOF'
|
||||||
@@ -104,7 +123,7 @@ Type=Application
|
|||||||
Name=Kindred Create
|
Name=Kindred Create
|
||||||
GenericName=CAD Application
|
GenericName=CAD Application
|
||||||
Comment=Engineering-focused parametric 3D CAD platform
|
Comment=Engineering-focused parametric 3D CAD platform
|
||||||
Exec=kindred-create %F
|
Exec=/usr/bin/kindred-create %F
|
||||||
Icon=kindred-create
|
Icon=kindred-create
|
||||||
Terminal=false
|
Terminal=false
|
||||||
Categories=Graphics;Science;Engineering;
|
Categories=Graphics;Science;Engineering;
|
||||||
|
|||||||
Reference in New Issue
Block a user