Fix .deb desktop icon: use Kindred logo instead of FreeCAD icon

The build-deb.sh was copying org.freecad.FreeCAD.svg as the desktop
icon because it checked the install directory first, where only the
FreeCAD icon exists. Reorder to prefer resources/branding/kindred-logo.svg.

Also generate PNG icons from the SVG using rsvg-convert when available,
for better desktop environment compatibility.
This commit is contained in:
forbes
2026-01-29 22:30:21 -06:00
parent 7e0fcdf9dd
commit 9c14f17bee

View File

@@ -176,22 +176,33 @@ StartupNotify=true
StartupWMClass=FreeCAD
EOF
# Copy or create icon files
if [ -f "${INSTALL_DIR}/share/icons/hicolor/scalable/apps/org.freecad.FreeCAD.svg" ]; then
cp "${INSTALL_DIR}/share/icons/hicolor/scalable/apps/org.freecad.FreeCAD.svg" \
# Copy Kindred branding icons (prefer Kindred logo over FreeCAD default)
if [ -f "${PROJECT_ROOT}/resources/branding/kindred-logo.svg" ]; then
cp "${PROJECT_ROOT}/resources/branding/kindred-logo.svg" \
"${STAGING_DIR}/usr/share/icons/hicolor/scalable/apps/kindred-create.svg"
elif [ -f "${PROJECT_ROOT}/resources/branding/kindred-create.svg" ]; then
cp "${PROJECT_ROOT}/resources/branding/kindred-create.svg" \
elif [ -f "${INSTALL_DIR}/share/icons/hicolor/scalable/apps/org.freecad.FreeCAD.svg" ]; then
cp "${INSTALL_DIR}/share/icons/hicolor/scalable/apps/org.freecad.FreeCAD.svg" \
"${STAGING_DIR}/usr/share/icons/hicolor/scalable/apps/kindred-create.svg"
fi
# Copy PNG icons if available
for size in 48 256; do
if [ -f "${INSTALL_DIR}/share/icons/hicolor/${size}x${size}/apps/org.freecad.FreeCAD.png" ]; then
cp "${INSTALL_DIR}/share/icons/hicolor/${size}x${size}/apps/org.freecad.FreeCAD.png" \
"${STAGING_DIR}/usr/share/icons/hicolor/${size}x${size}/apps/kindred-create.png"
fi
done
# Generate PNG icons from the Kindred SVG for better desktop integration
if command -v rsvg-convert > /dev/null 2>&1 && \
[ -f "${STAGING_DIR}/usr/share/icons/hicolor/scalable/apps/kindred-create.svg" ]; then
for size in 48 256; do
rsvg-convert -w "$size" -h "$size" \
"${STAGING_DIR}/usr/share/icons/hicolor/scalable/apps/kindred-create.svg" \
-o "${STAGING_DIR}/usr/share/icons/hicolor/${size}x${size}/apps/kindred-create.png" \
2>/dev/null || true
done
else
# Fallback: copy FreeCAD PNGs if available
for size in 48 256; do
if [ -f "${INSTALL_DIR}/share/icons/hicolor/${size}x${size}/apps/org.freecad.FreeCAD.png" ]; then
cp "${INSTALL_DIR}/share/icons/hicolor/${size}x${size}/apps/org.freecad.FreeCAD.png" \
"${STAGING_DIR}/usr/share/icons/hicolor/${size}x${size}/apps/kindred-create.png"
fi
done
fi
# Create MIME type definition for .fcstd files
cat > "${STAGING_DIR}/usr/share/mime/packages/kindred-create.xml" << 'EOF'