diff options
Diffstat (limited to 'source/l/shared-mime-info/git_meson_buildfix.patch')
-rw-r--r-- | source/l/shared-mime-info/git_meson_buildfix.patch | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/source/l/shared-mime-info/git_meson_buildfix.patch b/source/l/shared-mime-info/git_meson_buildfix.patch new file mode 100644 index 00000000..80fd4dc8 --- /dev/null +++ b/source/l/shared-mime-info/git_meson_buildfix.patch @@ -0,0 +1,87 @@ +From 5a406b06792e26a83c7346b3c2443c0bd8d4cdb2 Mon Sep 17 00:00:00 2001 +From: Eli Schwartz <eschwartz@archlinux.org> +Date: Mon, 8 Nov 2021 18:22:47 -0500 +Subject: [PATCH] migrate from custom itstool to builtin msgfmt for creating + translated XML + +gettext upstream has supported this for a very long time (since 0.19.7 +via commit b3c2a5a242c36fbbaa0c5b17f975d6c638598a23, released in 2015), +and itstool is (mostly) a legacy of the time before gettext had proper +support for these sorts of use cases. + +This is similar to the state of intltool, which is described at +https://wiki.gnome.org/MigratingFromIntltoolToGettext + +During the port from autotools to meson, the legacy use of itstool was +faithfully translated to meson in the only way possible: by jumping +through hoops to run ninja inside ninja in order to generate the .mo +files for itstool, because meson's i18n module used a flawed design and +there was no "real" target to create those files, only a .PHONY +run_target which other rules cannot depend on. + +Although meson 0.60.0 added support for real targets for the built .mo +files, this changed the rules for output filenames, breaking the script. + +But msgfmt does not care, and anyways comes with builtin meson functions +for convenient use with XML files. So let's take this opportunity to +drop legacy dependencies and use the modern, builtin tooling, which +fixes this bug as a side effect. + +Fixes #170 +Index: shared-mime-info-2.1/data/freedesktop_generate.sh +=================================================================== +--- shared-mime-info-2.1.orig/data/freedesktop_generate.sh ++++ /dev/null +@@ -1,12 +0,0 @@ +-#!/bin/sh -e +- +-src_root="$1" +-build_root="$2" +- +-ninja -C "${build_root}" shared-mime-info-gmo +- +-itstool \ +- --its "${src_root}/data/its/shared-mime-info.its" \ +- --join "${src_root}/data/freedesktop.org.xml.in" \ +- -o "${build_root}/data/freedesktop.org.xml" \ +- "${build_root}/po/"*".gmo" +Index: shared-mime-info-2.1/data/meson.build +=================================================================== +--- shared-mime-info-2.1.orig/data/meson.build ++++ shared-mime-info-2.1/data/meson.build +@@ -1,18 +1,12 @@ + + install_man('update-mime-database.1') + +-freedesktop_org_xml = custom_target('freedesktop.org.xml', +- input : files( +- 'freedesktop.org.xml.in', +- 'its/shared-mime-info.its', +- 'its/shared-mime-info.loc', +- ), ++freedesktop_org_xml = i18n.merge_file( ++ input: 'freedesktop.org.xml.in', + output: 'freedesktop.org.xml', +- command: [ +- find_program('freedesktop_generate.sh'), +- meson.source_root(), +- meson.build_root() +- ], ++ data_dirs: '.', ++ po_dir: '../po', ++ type: 'xml', + install: true, + install_dir: get_option('datadir') / 'mime' / 'packages', + ) +Index: shared-mime-info-2.1/meson.build +=================================================================== +--- shared-mime-info-2.1.orig/meson.build ++++ shared-mime-info-2.1/meson.build +@@ -20,7 +20,6 @@ config.set_quoted('VERSION', meson.proje + ############################################################################### + # Find tools + +-itstool = find_program('itstool') + xmllint = find_program('xmllint') + xmlto = find_program('xmlto') + |