From 7405f7c360dad7f50511f3d71a30e16b849dd1cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Mon, 21 Oct 2024 02:33:33 +0200 Subject: [PATCH] build: Do not require appstream-util for metainfo version check appstream-util is deprecated in favor of appstreamcli. The new tool does not have a `validate-version` command, so implement the check in directly in the check-version.py script. Part-of: --- meson/check-version.py | 10 +++++++--- subprojects/extensions-app/meson.build | 10 ++++------ 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/meson/check-version.py b/meson/check-version.py index 81750c990..c24ab41b4 100755 --- a/meson/check-version.py +++ b/meson/check-version.py @@ -2,7 +2,8 @@ import os, sys from pathlib import Path -import argparse, subprocess +from xml.etree.ElementTree import ElementTree +import argparse def check_version(version, file, type='news'): if type == 'news': @@ -12,8 +13,11 @@ def check_version(version, file, type='news'): if not ok: raise Exception("{} does not start with {}".format(file, version)) elif type == 'metainfo': - subprocess.run(['appstream-util', 'validate-version', file, version], - check=True) + query = './releases/release[@version="{}"]'.format(version) + ok = ElementTree(file=file).find(query) is not None + print("{}: {}".format(file, "OK" if ok else "FAILED")) + if not ok: + raise Exception("{} does not contain release {}".format(file, version)) else: raise Exception('Not implemented') diff --git a/subprojects/extensions-app/meson.build b/subprojects/extensions-app/meson.build index d651374d5..4b3598b77 100644 --- a/subprojects/extensions-app/meson.build +++ b/subprojects/extensions-app/meson.build @@ -69,12 +69,10 @@ if not meson.is_subproject() gtk_update_icon_cache: true ) - if appstream_util.found() - meson.add_dist_script('build-aux/meson/check-version.py', - meson.project_version(), - '--type=metainfo', - 'data/metainfo/org.gnome.Extensions.metainfo.xml.in') - endif + meson.add_dist_script('build-aux/meson/check-version.py', + meson.project_version(), + '--type=metainfo', + 'data/metainfo/org.gnome.Extensions.metainfo.xml.in') summary_dirs = { 'prefix': get_option('prefix'),