Gentoo Archives: gentoo-dev

From: Georgy Yakovlev <gyakovlev@g.o>
To: gentoo-dev@l.g.o
Cc: Georgy Yakovlev <gyakovlev@g.o>
Subject: [gentoo-dev] [PATCH] metadata/install-qa-check.d/60appdata-path: new check
Date: Thu, 13 Feb 2020 07:39:48
Message-Id: 20200213073911.99704-1-gyakovlev@gentoo.org
this will warn if package installs xml files to /usr/share/appdata
this location is deprecated, files should be installed to
/usr/share/metainfo

https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html

Signed-off-by: Georgy Yakovlev <gyakovlev@g.o>
---
 metadata/install-qa-check.d/60appdata-path | 33 ++++++++++++++++++++++
 1 file changed, 33 insertions(+)
 create mode 100644 metadata/install-qa-check.d/60appdata-path

diff --git a/metadata/install-qa-check.d/60appdata-path b/metadata/install-qa-check.d/60appdata-path
new file mode 100644
index 00000000000..c4878949b0e
--- /dev/null
+++ b/metadata/install-qa-check.d/60appdata-path
@@ -0,0 +1,33 @@
+# Copyright 2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# QA check: ensure that metadata files are installed in /usr/share/metainfo
+# Maintainer: Georgy Yakovlev <gyakovlev@g.o>
+
+appdata_path_check() {
+	[[ -d ${ED%/}/usr/share/appdata ]] || return
+
+	local found=() f
+	while read -d '' -r f; do
+		found+=( "${f%/*}" )
+	done < <(find "${ED%/}/usr/share/appdata" -name '*.xml' -print0 || die)
+
+	if [[ ${found[@]} ]]; then
+		eqawarn
+		eqawarn "This package seems to install metainfo files into the following"
+		eqawarn "location(s):"
+		eqawarn
+		eqatag -v appdata.invalid-path "${found[@]#${D%/}}"
+		eqawarn
+		eqawarn "This location is deprecated, it should not be used anymore by new software"
+		eqawarn "Appdata/Metainfo files should be installed into /usr/share/metainfo directory"
+		eqawarn "For more details, please see the freedesktop Upstrem Metadate guidelines"
+		eqawarn "https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html"
+		eqawarn
+	fi
+}
+
+appdata_path_check
+: # guarantee successful exit
+
+# vim:ft=sh
-- 
2.25.0

Replies