This is used by software centres such as GNOME Software to display
information about the app, both before and after it is installed.
The <id> used here follows the recommendations in the Appstream
specification, with the exception of violating the spec's strong
encouragement to use only lowercase characters. This is because the
version that is already published by Flathub uses an uppercase T in the
final component of the ID.[0] The file shipped by Fedora followed an older
convention of using the desktop file name as the ID. This is
acknowledged by the <provides> section near the bottom of the file,
which will allow software centres to associate the reverse-domain-name
ID with the older ID.[1]
Many fields in this file are translatable. This was the motivation for
the preceeding two changes:
- By using xgettext rather than intltool, the untranslated template may
be written using the normal appstream XML tags, rather than needing to
use (for example) <_name>Tux Paint</_name> to mark that field for
translation, which renders the template not valid for tools like
'appstreamcli validate'.
- Merging translations at build time, rather than committing the
translated XML to the repo as well, avoids another potentially
error-prone manual step when updating the source file or translations.
The release notes are taken from the press releases on the Tuxpaint
website. They will be extracted for translation. Another option is to
replace the <description> with <url type="details">...</url>, but AFAIK
no software centres currently show these URLs.[2]
[0]: https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-id-generic
[1]: https://www.freedesktop.org/software/appstream/docs/sect-Metadata-Application.html#tag-id-desktopapp
[2]: https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-releases
TODO:
- align comment
Fixes: https://sourceforge.net/p/tuxpaint/feature-requests/172/
Previously, both the .desktop.in template and the final .desktop file
were checked into source control.
While in some ways convenient, the manual step of updating it may be
forgotten after updating a translation or adjusting the template. It
also potentially introduces confusion as to which file to modify.
Instead, generate the .desktop file at build time. Since this is now
done using msgfmt rather than intltool, there is no additional
dependency beyond gettext, which is already used at build time to
compile .po files to .mo files.
1. Building the DMG file now requires explicitly calling the 'make
TuxPaint.dmg' target.
2. Messages output after completing a Makefile target has been
customized on macOS.
The motivation here is Apple Silicon. With the instruction of Apple
Silicon, the porting developer may need to sign the app bundle and/or
create the app bundle as universal before creating the DMG file, so the
Makefile no longer auto-creates the DMG file. Instead, macOS-specific
messages have been added so the developer knows what to do next.
Adding snapshot of (basically untranslated) Magic tool docs
in the other locales currently supported by 'tuxpaint-docs'.
Update Makefile to install them.
All old, outdated, manually-generated translations of docs now
go into an "outdated" subdirectory. The "tuxpaint-docs"/gettext-based
ones are the "first-class citizens".
Don't install the docs directory's "Makefile", or the instructions
for how to release Tux Paint, as those are not necessary to end users.
Unlike "directional" brushes, in which a 3x3 grid representing the
8 cardinal directions (45 degree steps) is used, only a single brush
image is required, and Tux Paint will rotate it between 0 and 360 degrees,
depending on the direction the mouse is going.
The brush's ".dat" file should contain a line consisting of the word
"rotate".
Note: This adds a dependency on "SDL_gfx" library (Homepage:
https://www.ferzkopp.net/wordpress/2016/01/02/sdl_gfx-sdl2_gfx/
SourceForge project page: https://sourceforge.net/projects/sdlgfx/)
as this feature use it's "rotozoom" functionality.
WIP -- Doesn't handle animated brushes correctly yet!
Closes https://sourceforge.net/p/tuxpaint/feature-requests/122/
The Makefile variable "HOST" was introduced to cross-compile Tux Paint
for iOS. Unfortunately this variable is often set at the environment
variable level on many Linux distributions so it can cause the Makefile
to think it is attempting to be cross-compiled when that is not the
intention.
This change modifies the Makefile so it attempts to cross compile only
when both HOST and HOSTROOT environment variable (which are both
required for cross compilation) are set.