summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Schwartz <eschwartz@archlinux.org>2021-11-08 18:22:47 -0500
committerEli Schwartz <eschwartz@archlinux.org>2021-11-21 14:15:52 -0500
commit5a406b06792e26a83c7346b3c2443c0bd8d4cdb2 (patch)
tree8580194185391bd06678259dee9c4dc0a68e3ba7
parentd74a913cdf2ee17c469c470012e47cf6f48afcbe (diff)
downloadshared-mime-info-5a406b06792e26a83c7346b3c2443c0bd8d4cdb2.tar.gz
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
-rw-r--r--.gitlab-ci.yml2
-rw-r--r--README.md2
-rwxr-xr-xdata/freedesktop_generate.sh12
-rw-r--r--data/meson.build16
-rw-r--r--meson.build1
5 files changed, 6 insertions, 27 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 985dfe96..345e1ce1 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -9,7 +9,6 @@ variables:
glib2-devel
gettext
git
- itstool
xmlto
findutils
gettext-devel
@@ -34,4 +33,3 @@ build:meson:
paths:
- _build/meson-logs/*.txt
- _build/meson-dist/*.*
-
diff --git a/README.md b/README.md
index c23d9d5c..b2fb0ac5 100644
--- a/README.md
+++ b/README.md
@@ -19,7 +19,7 @@ $ ninja -v -C _build install
```
It requires the glib development package to be installed as well as
-gettext and itstool.
+gettext.
This database is translated at Transifex.
diff --git a/data/freedesktop_generate.sh b/data/freedesktop_generate.sh
deleted file mode 100755
index 62ccffa7..00000000
--- a/data/freedesktop_generate.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/sh -e
-
-src_root="$1"
-build_root="$2"
-
-${NINJA:-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 24361c97..09ed7a98 100644
--- a/data/meson.build
+++ b/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',
)
diff --git a/meson.build b/meson.build
index 0d08c8a0..60f17ae7 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', required: false)