summaryrefslogtreecommitdiff
path: root/source/l/shared-mime-info/git_meson_buildfix.patch
diff options
context:
space:
mode:
Diffstat (limited to 'source/l/shared-mime-info/git_meson_buildfix.patch')
-rw-r--r--source/l/shared-mime-info/git_meson_buildfix.patch87
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')
+