summaryrefslogtreecommitdiff
path: root/metadata/install-qa-check.d
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2021-06-29 10:15:54 +0100
committerV3n3RiX <venerix@redcorelinux.org>2021-06-29 10:15:54 +0100
commit9aa80713372911cec499b3adb2cd746790920916 (patch)
treeb8e99dc5dd60ac2094a27cc52f74aada8df38f05 /metadata/install-qa-check.d
parentb4d43e8c611df4a8061b6f88d9e9f6b1e3c83903 (diff)
gentoo resync : 29.06.2021
Diffstat (limited to 'metadata/install-qa-check.d')
-rw-r--r--metadata/install-qa-check.d/08gentoo-paths2
-rw-r--r--metadata/install-qa-check.d/60appdata-path7
-rw-r--r--metadata/install-qa-check.d/60distutils-use-setuptools6
-rw-r--r--metadata/install-qa-check.d/60gtk-doc-paths6
-rw-r--r--metadata/install-qa-check.d/60libcrypt-deps47
-rw-r--r--metadata/install-qa-check.d/60python-pyc7
-rw-r--r--metadata/install-qa-check.d/60python-tests2
7 files changed, 63 insertions, 14 deletions
diff --git a/metadata/install-qa-check.d/08gentoo-paths b/metadata/install-qa-check.d/08gentoo-paths
index 5161aef99221..4d84925d8539 100644
--- a/metadata/install-qa-check.d/08gentoo-paths
+++ b/metadata/install-qa-check.d/08gentoo-paths
@@ -66,7 +66,7 @@ gentoo_path_check() {
# report
# ------
if [[ -n ${bad_paths[@]} ]]; then
- eqawarn "The ebuild is installing to one or more unexpected paths:"
+ eqawarn "QA Notice: The ebuild is installing to one or more unexpected paths:"
eqawarn
eqatag -v non-gentoo-paths "${bad_paths[@]}"
eqawarn
diff --git a/metadata/install-qa-check.d/60appdata-path b/metadata/install-qa-check.d/60appdata-path
index 578137a3e9e7..06c5f91e8ce5 100644
--- a/metadata/install-qa-check.d/60appdata-path
+++ b/metadata/install-qa-check.d/60appdata-path
@@ -1,4 +1,4 @@
-# Copyright 2020 Gentoo Authors
+# Copyright 2021 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
@@ -13,9 +13,8 @@ appdata_path_check() {
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 "QA Notice: This package seems to install metainfo files into the"
+ eqawarn "following location(s):"
eqawarn
eqatag -v appdata.invalid-path "${found[@]#${D%/}}"
eqawarn
diff --git a/metadata/install-qa-check.d/60distutils-use-setuptools b/metadata/install-qa-check.d/60distutils-use-setuptools
index effa65358aa5..d08be885eb8e 100644
--- a/metadata/install-qa-check.d/60distutils-use-setuptools
+++ b/metadata/install-qa-check.d/60distutils-use-setuptools
@@ -47,7 +47,9 @@ distutils_use_setuptools_check() {
if [[ ${#expected[@]} -gt 1 ]] && has no "${expected[@]}"; then
# 'no' and '[rb]depend' are mutually exclusive
- eerror "The package seems to have used distutils and setuptools simultaneously."
+ eerror "QA Notice: The package seems to have used distutils and setuptools"
+ eerror "simultaneously"
+ eerror ""
eerror "This could mean the package has bad conditions:"
eerror "https://dev.gentoo.org/~mgorny/python-guide/distutils.html#conditional-distutils-setuptools-use-in-packages"
eerror "Please report a bug about this and CC python@"
@@ -74,7 +76,7 @@ distutils_use_setuptools_check() {
local def=
[[ ${DISTUTILS_USE_SETUPTOOLS} == bdepend ]] && def=' (or unset)'
- eqawarn "DISTUTILS_USE_SETUPTOOLS value is probably incorrect"
+ eqawarn "QA Notice: DISTUTILS_USE_SETUPTOOLS value is probably incorrect"
eqawarn " have: DISTUTILS_USE_SETUPTOOLS=${DISTUTILS_USE_SETUPTOOLS}${def}"
if [[ ${expected[0]} == bdepend ]]; then
eqawarn " expected: (unset)"
diff --git a/metadata/install-qa-check.d/60gtk-doc-paths b/metadata/install-qa-check.d/60gtk-doc-paths
index 866e871c221a..8c12c2604337 100644
--- a/metadata/install-qa-check.d/60gtk-doc-paths
+++ b/metadata/install-qa-check.d/60gtk-doc-paths
@@ -1,4 +1,4 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# QA check: ensure that gtk-doc files are installed in /usr/share/gtk-doc
@@ -14,8 +14,8 @@ gtk_doc_path_check() {
if [[ ${found[@]} ]]; then
eqawarn
- eqawarn "This package seems to install gtk-doc documentation into the following"
- eqawarn "location(s):"
+ eqawarn "QA Notice: This package seems to install gtk-doc documentation into the"
+ eqawarn "following location(s):"
eqawarn
eqatag -v gtk-doc-paths.invalid-path "${found[@]#${D%/}}"
eqawarn
diff --git a/metadata/install-qa-check.d/60libcrypt-deps b/metadata/install-qa-check.d/60libcrypt-deps
new file mode 100644
index 000000000000..26120f7cb8e7
--- /dev/null
+++ b/metadata/install-qa-check.d/60libcrypt-deps
@@ -0,0 +1,47 @@
+# Copyright 2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# QA check: ensure that package specifies a dependency on virtual/libcrypt
+# Author: Georgy Yakovlev <gyakovlev@gentoo.org>
+# Maintainer Sam James <sam@gentoo.org>
+
+libcrypt_check() {
+ if ! type -P scanelf >/dev/null || has binchecks ${PORTAGE_RESTRICT}; then
+ return
+ fi
+
+ # skip libcrypt.so providers
+ case "${CATEGORY}/${PN}" in
+ sys-libs/libxcrypt|sys-libs/glibc|sys-libs/musl|sys-libs/uclibc-ng)
+ return
+ ;;
+ esac
+
+ if grep -q "virtual/libcrypt" <<<${RDEPEND}; then
+ # nothing to do here
+ return
+ fi
+
+ local libcrypt_consumers
+ # grep outputs newline separated list of files, so it's ok to skip specifying delimiter
+ IFS= mapfile libcrypt_consumers < <(find "${ED}" -type f -executable \
+ -print0 | xargs -0 scanelf -qyRF '%F %n' | grep 'libcrypt\.so' 2>/dev/null )
+
+ if [[ -n ${libcrypt_consumers[@]} ]]; then
+ eqawarn "QA Notice: Binary files linked to libcrypt.so found"
+ eqawarn "But a dependency on virtual/libcrypt is not declared!"
+ eqawarn
+ eqatag -v virtual-libcrypt.missing "${libcrypt_consumers[@]%% *}"
+ eqawarn
+ eqawarn "Please add virtual/libcrypt:= dependency"
+ eqawarn "Gentoo bug: https://bugs.gentoo.org/699422"
+ eqawarn "Tracker bug: https://bugs.gentoo.org/798963"
+ eqawarn "See: https://wiki.gentoo.org/wiki/Project:Toolchain/libcrypt_implementation"
+ fi
+
+}
+
+libcrypt_check
+: # guarantee successful exit
+
+# vim:ft=sh
diff --git a/metadata/install-qa-check.d/60python-pyc b/metadata/install-qa-check.d/60python-pyc
index ddc1bf531cd9..e112cdce348b 100644
--- a/metadata/install-qa-check.d/60python-pyc
+++ b/metadata/install-qa-check.d/60python-pyc
@@ -55,7 +55,8 @@ if [[ ${EAPI} == [6-7] ]]; then
if [[ ${missing[@]} ]]; then
eqawarn
- eqawarn "This package installs one or more Python modules that are not byte-compiled."
+ eqawarn "QA Notice: This package installs one or more Python modules that are"
+ eqawarn "not byte-compiled."
eqawarn "The following files are missing:"
eqawarn
eqatag -v python-pyc.missing "${missing[@]#${D}}"
@@ -63,8 +64,8 @@ if [[ ${EAPI} == [6-7] ]]; then
if [[ ${outdated[@]} ]]; then
eqawarn
- eqawarn "This package installs one or more compiled Python modules that have older"
- eqawarn "timestamps than the corresponding source files:"
+ eqawarn "QA Notice: This package installs one or more compiled Python modules that have"
+ eqawarn "older timestamps than the corresponding source files:"
eqawarn
eqatag -v python-pyc.outdated "${outdated[@]#${D}}"
fi
diff --git a/metadata/install-qa-check.d/60python-tests b/metadata/install-qa-check.d/60python-tests
index 713ed63d3764..4c7892fbc93a 100644
--- a/metadata/install-qa-check.d/60python-tests
+++ b/metadata/install-qa-check.d/60python-tests
@@ -17,7 +17,7 @@ python_test_check() {
[[ -n ${any} ]] || return
eqawarn
- eqawarn 'QA Notice: this package seems to contain tests but they are not enabled.'
+ eqawarn 'QA Notice: This package seems to contain tests but they are not enabled.'
eqawarn 'Please either run tests (via distutils_enable_tests or declaring'
eqawarn 'python_test yourself), or add RESTRICT="test" along with an explanatory'
eqawarn 'comment if tests cannot be run.'