Packaging for Linux & BSD systems (maintainer wishlist)

Updated 7 years ago

Background - the Packaging Problem

Many Linux and BSD distributions place strict (and often contradictory) requirements on software intended for that system. These requirements can be technical, legal or moral in nature, and meeting them can be a challenging task. Traditionally, this job is left to each system's package maintainer who applies patches to the MuseScore code "downstream" to meet the requirements. As the "upstream" MuseScore code changes the patches can stop working and so they must be updated each time a new version of MuseScore is released. For this reason, Linux and BSD releases of MuseScore are often available much later than the Windows or Mac OS versions.

The Solution

To make life easier for the package maintainers long-term, and to make new MuseScore versions available sooner on Linux and BSD, all packaging tasks should be performed upstream (where possible). Ideally, package maintainers should not have any downstream patches. Anything that has previously been implemented via a patch should be sent upstream. Where necessary, suitable IF statements, Makefile variables and CMake options should be used to ensure that changes only affect the relevant distributions.

Linux & BSD packaging tasks

Please edit these lists wiki-style to keep them up-to-date. Anyone is welcome to attempt to implement the missing features via pull requests to the MuseScore:master branch on Github.

Maintainer Wishlist

Missing packaging-related features, packaging bugs or anything that maintainers currently have to provide downstream (e.g. through patches). Please state which distributions are affected.

  1. Updating the machine-readable copyright file (Debian, Ubuntu & related distros)
  2. Updating the build-depends and related lists (Debian, Ubuntu & related distros)
  3. Keeping man page ($ man mscore) up-to-date with Command line options (Linux & BSD)
  4. Automated translations of desktop file and man pages (Linux & BSD)
  5. Add MSCX, MSCZ and MusicXML (XML & MXL) to the xdg/shared-mime-info database (Linux & BSD - this would enable systems to recognise MuseScore files even when MuseScore is not installed).

Solved packaging issues

Move items from the wishlist to here when they get implemented in the MuseScore:master branch on Github.

  1. .desktop file (sets icon and declares mimetypes): #16275: .desktop needs work
  2. MuseScore app icon SVG
  3. Add MSCX, MSCZ, XML and MXL (MusicXML) to local MIME database
  4. MuseScore file icon and MusicXML file icon SVGs
  5. #59196: App icon doesn't scale on Ubuntu (and other Linux?)
  6. #57736: make mp3 support optional - required for packaging on many Linux because MP3 is non-free
  7. Solved conflicts when installing multiple versions of mscore in $PATH (you must override the $SUFFIX variable in Makefile).
  8. add an uninstall option to the make file
  9. #76331: Linux Makefile "uninstall" target doesn't remove directories