diff --git a/.github/workflows/build-linux.yml b/.github/workflows/build-linux.yml index 3408398..b085ebd 100644 --- a/.github/workflows/build-linux.yml +++ b/.github/workflows/build-linux.yml @@ -199,6 +199,57 @@ jobs: # Build DEB (via alien from RPM) python setup_cxfreeze.py bdist_deb || echo "bdist_deb completed with warnings (alien)" + # Fix DEB desktop integration (alien sometimes misses this) + deb_file=$(ls dist/ytsage_*.deb 2>/dev/null | head -n1 || true) + if [ -n "$deb_file" ]; then + echo "Fixing DEB desktop integration for: $deb_file" + + # Create temporary directory for DEB extraction + temp_deb_dir=$(mktemp -d) + cd "$temp_deb_dir" + + # Extract the DEB package + ar x "$GITHUB_WORKSPACE/$deb_file" + + # Extract the data archive + mkdir -p data + cd data + tar xf ../data.tar.xz + + # Ensure desktop files are properly placed + if [ ! -d "usr/share/applications" ]; then + mkdir -p usr/share/applications + fi + if [ ! -d "usr/share/pixmaps" ]; then + mkdir -p usr/share/pixmaps + fi + + # Copy desktop entry if it exists in the package but not in the right place + if [ -f "usr/lib/ytsage-${version}/share/applications/ytsage.desktop" ] && [ ! -f "usr/share/applications/ytsage.desktop" ]; then + cp "usr/lib/ytsage-${version}/share/applications/ytsage.desktop" "usr/share/applications/" + echo "Copied desktop entry to proper location" + fi + + # Copy icon if it exists in the package but not in the right place + if [ -f "usr/lib/ytsage-${version}/share/pixmaps/ytsage.png" ] && [ ! -f "usr/share/pixmaps/ytsage.png" ]; then + cp "usr/lib/ytsage-${version}/share/pixmaps/ytsage.png" "usr/share/pixmaps/" + echo "Copied icon to proper location" + fi + + # Repackage the data archive + tar cJf ../data.tar.xz ./* + cd .. + + # Create the fixed DEB package + ar r "${GITHUB_WORKSPACE}/${deb_file}" debian-binary control.tar.xz data.tar.xz + + # Clean up + cd "$GITHUB_WORKSPACE" + rm -rf "$temp_deb_dir" + + echo "DEB package desktop integration fixed" + fi + echo "Post-build directory listing:" echo "-- dist --"; ls -lah dist || true echo "-- build --"; ls -lah build || true