diff --git a/backport-migrate-from-custom-itstool-to-builtin-msgfmt-for-creating-translated-XML.patch b/backport-migrate-from-custom-itstool-to-builtin-msgfmt-for-creating-translated-XML.patch new file mode 100644 index 0000000..7fde718 --- /dev/null +++ b/backport-migrate-from-custom-itstool-to-builtin-msgfmt-for-creating-translated-XML.patch @@ -0,0 +1,102 @@ +From 5a406b06792e26a83c7346b3c2443c0bd8d4cdb2 Mon Sep 17 00:00:00 2001 +From: Eli Schwartz +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 + +Reference:https://gitlab.freedesktop.org/xdg/shared-mime-info/-/commit/5a406b06792e26a83c7346b3c2443c0bd8d4cdb2 + +--- + data/freedesktop_generate.sh | 12 ------------ + data/meson.build | 17 ++++++----------- + meson.build | 1 - + 3 files changed, 6 insertions(+), 24 deletions(-) + delete mode 100755 data/freedesktop_generate.sh + +diff --git a/data/freedesktop_generate.sh b/data/freedesktop_generate.sh +deleted file mode 100755 +index ff13e75..0000000 +--- a/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" +diff --git a/data/meson.build b/data/meson.build +index 263567d..69ac56b 100644 +--- a/data/meson.build ++++ b/data/meson.build +@@ -1,18 +1,13 @@ + + 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', + ) +diff --git a/meson.build b/meson.build +index 9a28573..b696baf 100644 +--- a/meson.build ++++ b/meson.build +@@ -20,7 +20,6 @@ config.set_quoted('VERSION', meson.project_version()) + ############################################################################### + # Find tools + +-itstool = find_program('itstool') + xmllint = find_program('xmllint') + xmlto = find_program('xmlto') + +-- +2.33.0 + diff --git a/shared-mime-info.spec b/shared-mime-info.spec index c570f6d..5f92eb9 100644 --- a/shared-mime-info.spec +++ b/shared-mime-info.spec @@ -1,6 +1,6 @@ Name: shared-mime-info Version: 2.1 -Release: 1 +Release: 2 Summary: Shared MIME information database License: GPLv2+ URL: https://freedesktop.org/wiki/Software/shared-mime-info/ @@ -9,6 +9,7 @@ Source0: https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/0ee50652091 Source1: mimeapps.list Patch0: 0001-Remove-sub-classing-from-OO.o-mime-types.patch +Patch1: backport-migrate-from-custom-itstool-to-builtin-msgfmt-for-creating-translated-XML.patch BuildRequires: gcc libxml2-devel glib2-devel gettext intltool perl-XML-Parser meson itstool xmlto @@ -74,6 +75,9 @@ update-mime-database -n %{_datadir}/mime &> /dev/null ||: %{_mandir}/man1/*.gz %changelog +* Mon Jun 20 2022 hanhui - 2.1-2 +- migrate from custom itstool to builtin msgfmt for creating translated XML + * Mon Feb 1 2021 jinzhimin - 2.1-1 - Upgrade to 2.1