Date: Sunday, November 28, 2021 @ 11:56:34 Author: andyrtr Revision: 429407
upgpkg: shared-mime-info 2.0+115+gd74a913-1: update to latest git commit; run the hook early because other hooks may depend on it - FS#72858 Added: shared-mime-info/trunk/MR_162.patch Modified: shared-mime-info/trunk/PKGBUILD --------------+ MR_162.patch | 130 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ PKGBUILD | 17 +++++-- 2 files changed, 143 insertions(+), 4 deletions(-) Added: MR_162.patch =================================================================== --- MR_162.patch (rev 0) +++ MR_162.patch 2021-11-28 11:56:34 UTC (rev 429407) @@ -0,0 +1,130 @@ +From 5a406b06792e26a83c7346b3c2443c0bd8d4cdb2 Mon Sep 17 00:00:00 2001 +From: Eli Schwartz <eschwa...@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 +--- + .gitlab-ci.yml | 2 -- + README.md | 2 +- + data/freedesktop_generate.sh | 12 ------------ + data/meson.build | 16 +++++----------- + meson.build | 1 - + 5 files changed, 6 insertions(+), 27 deletions(-) + delete mode 100755 data/freedesktop_generate.sh + +diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml +index 985dfe9..345e1ce 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 c23d9d5..b2fb0ac 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 62ccffa..0000000 +--- 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 24361c9..09ed7a9 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 0d08c8a..60f17ae 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) + +-- +GitLab + Modified: PKGBUILD =================================================================== --- PKGBUILD 2021-11-28 00:10:24 UTC (rev 429406) +++ PKGBUILD 2021-11-28 11:56:34 UTC (rev 429407) @@ -2,8 +2,8 @@ # Maintainer: Jan de Groot <j...@archlinux.org> pkgname=shared-mime-info -_commit=c1d1c70684dac11ce6c14a5089b5cb0b64a7dc27 # master 2020-12-31 -pkgver=2.0+57+gc1d1c70 +_commit=d74a913cdf2ee17c469c470012e47cf6f48afcbe # master 2021-10-11 +pkgver=2.0+115+gd74a913 pkgrel=1 pkgdesc="Freedesktop.org Shared MIME Info" arch=('x86_64') @@ -10,7 +10,8 @@ license=('GPL2') depends=('libxml2' 'glib2') #makedepends=('itstool' 'gettext') -makedepends=('itstool' 'gettext' 'xmlto' 'docbook-xsl' 'git' 'meson') +#makedepends=('itstool' 'gettext' 'xmlto' 'docbook-xsl' 'git' 'meson') +makedepends=('gettext' 'xmlto' 'docbook-xsl' 'git' 'meson') install=shared-mime-info.install # https://gitlab.freedesktop.org/xdg/shared-mime-info url="https://www.freedesktop.org/wiki/Specifications/shared-mime-info-spec/" @@ -18,9 +19,11 @@ source=("git+https://gitlab.freedesktop.org/xdg/shared-mime-info.git#commit=$_commit" # tu run the testsuite "git+https://gitlab.freedesktop.org/xdg/xdgmime.git#commit=de283fc430460b9b3a7e61432a6d273cd64cb102" # master 2020-12-30 + MR_162.patch update-mime-database.hook) sha256sums=('SKIP' 'SKIP' + 'cd69a48c3e074a99e7705db04ce29956b4f6480a9b261369b60052af4edc8796' 'f08efbcbac9d2bd18a805b8dcf3ed06d7763b97eca5935aa64d65593774b6501') options=(!makeflags) @@ -32,6 +35,11 @@ prepare() { # build xdgmime from source to run the testsuite - check HACKING.md CFLAGS= make -C xdgmime + + # fix a build failure with meson 0.60.x and later + # https://gitlab.freedesktop.org/xdg/shared-mime-info/-/merge_requests/162 + cd $pkgname + patch -Np1 -i ../MR_162.patch } build() { @@ -56,5 +64,6 @@ package() { DESTDIR="$pkgdir" meson install -C build - install -Dm644 "$srcdir"/update-mime-database.hook "$pkgdir"/usr/share/libalpm/hooks/update-mime-database.hook + # use a prefix to run it early enough - other hooks may depend on it - FS#72858 + install -Dm644 "$srcdir"/update-mime-database.hook "$pkgdir"/usr/share/libalpm/hooks/30-update-mime-database.hook }