Replaces DEB creation via alien with a native packaging step using dpkg-deb. Updates desktop file Exec path, improves artifact staging, and adds post-install scripts for desktop integration. This streamlines DEB builds and improves compatibility with Debian-based systems.
The postinst script responsible for placing the desktop icon during DEB package installation has been removed from the build workflow. This simplifies the packaging process and eliminates custom post-installation steps.
Introduces a debian/postinst script in the build workflow to copy the ytsage.desktop file to the user's desktop during DEB package installation, ensuring the desktop icon is available. Also updates the icon cache and handles cases where the desktop directory or SUDO_USER is not set.
Deleted post-processing steps that manually fixed desktop entry and icon placement in DEB packages after conversion from RPM. This streamlines the build process and removes custom extraction and repackaging logic.
Enhanced the workflow to handle multiple data archive compression formats (xz, gz, zst) when extracting and repackaging DEB files. Added checks for the presence of the data archive and updated extraction and repackaging commands to match the detected format, improving robustness and compatibility.
Adds a post-processing step to ensure desktop entry and icon files are correctly placed in DEB packages built via alien, addressing issues where alien may miss proper desktop integration.
Standardizes executable and artifact naming to 'ytsage' and includes architecture in output filenames. Adds desktop entry and RPM install script for better desktop integration. Updates AppImage and RPM metadata, and ensures proper icon and category handling for Linux builds.
Changed the internal executable target name to 'YTSage' instead of including the version. The AppImage filename still includes the version, but the base executable name is now consistent and versionless.
Introduces a GitHub Actions workflow to automate building and packaging Linux releases on tag push. The workflow sets up Python, installs dependencies, builds AppImage, RPM, and DEB packages using cx_Freeze, and uploads artifacts to a draft GitHub release.