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 <gyakov...@gentoo.org>
---
 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 <gyakov...@gentoo.org>
+
+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


Reply via email to