diff options
author | Eli Schwartz <eschwartz@archlinux.org> | 2022-03-05 21:20:43 -0500 |
---|---|---|
committer | Eli Schwartz <eschwartz@archlinux.org> | 2022-03-06 11:09:56 -0500 |
commit | 8b573d7dc65bf20fcb0377ce4c56841496ad0c69 (patch) | |
tree | 19ed6b09516c19b9c99a826b5c9e243257b49d93 /docs/markdown | |
parent | 1f3640c7dbce18ba11b6f383c3ad5c454a8a2c1d (diff) | |
download | meson-8b573d7dc65bf20fcb0377ce4c56841496ad0c69.zip meson-8b573d7dc65bf20fcb0377ce4c56841496ad0c69.tar.gz meson-8b573d7dc65bf20fcb0377ce4c56841496ad0c69.tar.bz2 |
i18n.merge_file: do not disable in the absence of gettext tools
Disabling targets because the tools used to build them aren't available
is a pretty suspicious thing to do. Users who want this are probably, in
general, advised to check themselves whether it is possible to build
those targets with find_program(..., required: false)
The i18n.gettext() invocation is a bit unusual because the product of
running it is non-critical files, specifically, translation catalogs. If
users don't have the tools needed to build them, they may not be able to
use them either, because perhaps they have NLS disabled on their
platform or it's difficult to put it in the bootstrap path.
So, for this reason, it was made non-fatal and the message catalogs are
just not created, and the resulting build is still perfectly usable
*unless* you want to use it in another language, at which point it
"works" but the text is all inscrutable to the end user, and that's a
feature of the target platform.
That's an acceptable tradeoff for translation catalogs.
It is NOT an acceptable tradeoff for merge_file, which produces desktop
files or MIME database catalogs or other files which have crucial roles
to perform, without which the software in question simply doesn't work
at all. In such cases, this just fails to install crucial files, users
report bugs to the project in question, and the project adds
`find_program('xgettext')` to guarantee the hard error due to lack of
confidence in Meson.
Fixes #6165
Fixes #8436
Diffstat (limited to 'docs/markdown')
-rw-r--r-- | docs/markdown/snippets/merge_file_sanity.md | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/docs/markdown/snippets/merge_file_sanity.md b/docs/markdown/snippets/merge_file_sanity.md new file mode 100644 index 0000000..ff59c51 --- /dev/null +++ b/docs/markdown/snippets/merge_file_sanity.md @@ -0,0 +1,15 @@ +## i18n.merge_file no longer arbitrarily leaves your project half-built + +The i18n module partially accounts for builds with NLS disabled, by disabling +gettext compiled translation catalogs if it cannot build them. Due to +implementation details, this also disabled important data files created via +merge_file, leading to important desktop files etc. not being installed. + +This overreaction has been fixed. It is no longer possible to have NLS-disabled +builds which break the project by not installing important files which have +nothing to do with NLS (other than including some). + +If you were depending on not having the Gettext tools installed and +successfully mis-building your project, you may need to make your project +actually work with NLS disabled, for example by providing some version of your +files which is still installed even when merge_file cannot be run. |